当前课程知识点:机器学习概论 > 第一章 绪论 > 1.4 机器学习系统设计 > 机器学习系统设计(2)
其中有一种可能的表示方法是我们抽出一些特征来
我们不去记棋盘和棋盘上所有走子的可能
和所有棋的状态的可能 太麻烦
我们觉得数据太多很多表示不好 那么我们就找一些特征
大家觉得刚才从我们同学下的这盘棋里面
你觉得什么样的特征很重要
来去决定一下这个棋盘好不好
可以想到的同学就不用站起来 可以直接大声一点说
棋子的连贯性 对 它是不是连成一条线对吗
其实是它有没有被堵住那个路 还有呢
个数 有多少个棋子 还有呢
与底线的距离很好 还有呢
还有没有 会不会被吃 对
就自己被威胁的子的个数的情况或者是个数什么的
然后我相信大家刚才说的棋子的个数里面
应该也包括特殊的情况 就是成了王的棋子的个数
因为它王的权力更大 好 还可以有非常多
然后我们以后的下午茶时间往往会给大家比如说一个问题
然后带着大家一起分析 我们会列出来都有哪些不同的特征
今天我们是在课程的中间 就大家这样自由的说一下就行
然后刚才说过的几个同学课后找一下助教
说一下你的姓名和学号 记一下就行
我们看一看 以非常简单的例子来看
这是一个例子 比如说我们就用了白子的个数 红子的个数
白王的个数 红王的个数 以及有多少被威胁的
红子有多少被威胁的白子
比如说我们就用了这六个特征
那么我们这个时候就可以用这样的一种状态来去表示
我们一共有六个特征 每个特征的取值以及你最终的label
最终在这个状态下他是赢了还是输了
这个就是一条数据 你到了这里有了数据的表示
然后你接下来你就可能基于这个
你就可以设计出我可以有一个算法就一个函数
这个函数是有六个特征 七个参数的线性融合
那么这就OK了这设计出来 下一步我们才去想
什么样的学习算法能够学到这个函数应该怎么表示
大家现在应该看到了 算法只是其中的一步
前面有很多步不同的 有很多算法
我们在这里给大家介绍第一个算法 也是非常简单的算法
我们把它叫做梯度下降法 也把它叫做最小误差法
很常用 你初始化自己的一个函数 参数初始化
你就可以有这个系统了 你可以下棋 下完之后你就有结果
你可以把你下棋的时候你预计的结果的
每一个状态的值和他实际的做一个对比
把他们的误差 差值的平方加到一起 希望让它最小
这就是你的梯度下降法的算法
所以算法就是初始化全值 然后选一个训练样例
就是白子多少黑子多少什么的 白王多少黑王多少等等这些
随机的选一个 然后这个时候用你的函数来计算出来
它的最终的V可能等于80 然后发现实际他赢了最终的V是一百
这时候你俩的误差就有了就等于20
然后对于每一个特征 然后来把特征前面的权值更新一下
新的权值等于旧的权值加上一个你的错误率
就关于这个状态的错误的误差乘以一个你的特征本身这个特征的取值
再乘以一个c c是一个很小的一个系数
就是你的梯度
一般比如说0.1或者0.01等等
然后来去把它加到一起更新我当前的权值
也就说明我当前的权值和我的误差的方向有关
如果你的做的大了 那么你这个差值会做一些修正
然后如果你的变小了 它会往反方向去修正
还有它和你特征本身的自己的skill有关
就因为有的是01值 有的是0到10的值等等
它也和你自己特征它自己的取值的大小有关
或一些放缩或有一些学习
更新了之后就再重新取下一个例子
就再取下一个点 然后再学一直到收敛
或者你的训练数据用完了或者再学一轮等等
那么把它们加到一起 我们到底怎么设计机器学习的系统呢
在这个里面以这个例子为例 我们整个系统过程是这样的
你初始化一个权值你的系统就有了
你就可以系统自己跟自己玩
我们刚才说自己跟自己玩比较容易收集数据
然后就会得到一系列的每一步的棋盘状态
和他们最终赢了还是输的 就是你对这个状态的标记
然后把这个状态的标记放到这个里面
然后接下来就可以label出你的数据
这时候你的数据就产生出来了 你就获得了训练数据
获得之后就修正你的权值修正函数
接下来再重复地下重复地玩 然后一直到训练的足够好
这是一个非常简化的思路
但是感兴趣的同学你们可以回去自己试试看
因为这个程序不难 它的规则也不复杂
那么总的来说我们来看一看我们刚才讨论
怎么设计一个简单的机器学习的系统
一般来说不管是什么任务 脱开我们下跳棋
一般来说我们第一步要去决定你的数据哪里来
怎么来这个数据
然后你可以自己跟自己下跟别人下等等这样的
这是用什么样的经验
第二步 你从经验里面想要学到什么
这个是你的目标函数 你要确定成什么东西
你怎么表示这个东西
第三就是你真正的表示的时候
上面是说你的目标的函数是什么
你是一个棋盘还是一个值还是个神经网络等等
接下来就是它应该怎么去表示
比如说我们想用现在棋盘的状态 我应该抽哪些特征
这些特征我应该让它线性融合 还是二次方融合
还是别的怎么样的融合
最后是要用什么样的学习算法 当然这个其实还不完
因为我们说了还有一步其实是你需要做评价
因此设计一个通用的机器学习系统第一要研究数据
研究问题和数据
第二要研究特征和特征的表示
第三要考虑用什么算法
第四要做评价
这是我们整个的过程 然后中间有很多有雷的地方
比如说你设计的目标是不是可达到的是不是可操作的
然后还有比如说你的算法
未来还需要考虑这个算法适不适用这种问题
是不是有鲁棒性 是不是有可解释性
以及最后是不是能够做得到
这个就是我们今天的课程的主要的内容
最后用一分钟来带大家来复习一下我们今天讲的什么
首先跟大家讲了在机器学习里面
机器学习方法经常使用的研究的或者是应用的背景
我们提到了数据挖掘 提到了很多需要个性化定制的场景
提到了一些不能用人手工完成的场景非常多的例子
然后到底什么是机器学习 不同的人有不同的定义
但是基本上大家都包括这样的要素
第一任务 第二什么样的经验 第三你要实现什么样的目标
然后我们带着大家以跳棋程序为例
但是也结合了很多其它的例子
来去讨论怎么样去设计一个机器学习的系统
它应该有什么样的原则 通常我们需要四步
第一步要注意使用什么样的经验 在这里一定要注意
有很多坑在里面 就是你数据尽量的减少数据的bias
他可能和你数据收集的全部全偏不偏
你怎么使用这个数据的顺序
以及你特征提的准不准都有关系
还有就是我们要设计你想要怎么表示这个问题
你想要学什么 然后以及第三怎么学怎么表示这个东西
你抽什么样的特征来去表达
这个特征之间这些它是怎么组合起来的
然后最终是你要用什么算法来去描述
所以数据特征和特征表示算法和评价这几个都搞定了
才是一个通用机器学习系统的设计
所以大家如果想替代期末考试的大实验的话
你也要把这些都设计清楚
它才是有可能可以成为一个
完整的掌握的机器学习系统设计的部分
好 今天我们的课就到这
-1.1 课程介绍
--课程介绍(1)
--课程介绍(2)
-1.2 机器学习的背景
--机器学习的背景
-1.3 什么是机器学习
--什么是机器学习
-1.4 机器学习系统设计
-第一章作业
-2.1 决策树的基本概念
--决策树的基本概念
-2.2 决策树的实例和发展历史
-2.3 经典决策树算法ID3
-2.4 过拟合和前剪枝
--过拟合和前剪枝
-第二章作业
-3.1 下午茶时间:勒索软件
-3.2 后剪枝
--后剪枝
-3.3 决策树的改进和归纳学习假设
-3.4 贝叶斯学习的背景
--贝叶斯学习的背景
-3.5 极大似然假设、朴素贝叶斯和最小描述长度
-第三章作业
-4.1 下午茶时间:微博的垃圾检测
-4.2 马尔可夫模型
--马尔可夫模型
-4.3 隐马尔可夫模型
--隐马尔可夫模型
-4.4 评估问题
--评估问题(1)
--评估问题(2)
-4.5 解码问题
--解码问题
-4.6 隐马尔可夫模型的应用
-第四章作业
-5.1 下午茶时间:图灵奖
-5.2 假设评估
--假设评估(1)
--假设评估(2)
--假设评估(3)
-5.3 置信度和置信区间
-5.4 有限数据下的比较
--有限数据下的比较
-第五章作业
-6.1 下午茶时间:黑洞照片
-6.2 基于实例的学习的基本概念
-6.3 最近邻算法
--最近邻算法
-6.4 K邻近算法
--K近邻算法
-6.5 KD树
--KD树
-6.6 距离加权的K近邻算法
-第六章考试
-7.1 支持向量机的背景
--支持向量机的背景
-7.2 线性支持向量机
-第七章作业
-8.1 核函数支持向量机
-8.4 支持向量机总结
--支持向量机总结
-8.5 无监督学习简介
-8.6 层次聚类
--层次聚类
-8.7 K-means聚类和K-medoids聚类
-第八章作业




