一、引言
1.1 机器学习定义
提问:
1.2 监督学习
Eg1:
预测房价的例子:横轴表示房子的面积,单位是平方英尺,纵轴表示房价,单位是千美元。那基于这组数据,假如你有一个朋友,他有一套750平方英尺房子,现在他希望把房子卖掉,他想知道这房子能卖多少钱。
从图中可以看出直线拟合数据,预测这套房子可能卖$150, 000;二次函数来拟合数据,预测房子可能卖$200, 000。这是预测连续的数值,这是一个回归问题。
Eg2:
预测肿瘤恶性(malignant)还是良性(benign):集中,横轴表示肿瘤的大小,纵轴上,我标出1和0 表示是或者不是恶性肿瘤。
图中我们有5个良性肿瘤样本跟5个恶性肿瘤样本,现在假设一个人的肿瘤尺寸是横轴上粉色箭头位置那么大,那么机器学习要做的就是估算这个肿瘤是恶性还是良性的概率。这是预测离散的值,是一个分类问题。
有些机器学习问题,遇到的特征不止一种。比如我们知道肿瘤的尺寸、患者的年龄这两个特征(通常采用的特征有肿块密度、尺寸一致性、形状一致性等)
通过机器学习算法用图中直线分类两种肿瘤(良性的肿瘤改成用O表示,恶性的继续用X表示)。图中粉红色的瘤位于良性区域,是良性肿瘤的概率大。
概括一下,监督学习的思想是:数据集中的每个样本都有对应的标签,再根据这些样本集来预测未知样本的结果。预测房子的价格这类预测连续的值属于回归问题,预测肿瘤的结果这类预测离散的值属于分类问题。
提问:
1.3 非监督学习
无监督学习是把不带标签的数据分成不同的聚类(聚类只是无监督学习中的一种)。谷歌新闻每天都在收集非常非常多的网络新闻内容。它再将这些新闻分组,组成有关联的新闻。所以谷歌新闻做的就是搜索非常多的新闻事件,自动地把它们聚类到一起。所以,这些新闻事件全是同一主题的,所以显示到一起。
Eg:
鸡尾酒宴问题,宴会上两个人同时说话,麦克风会同时录下两个人的声音,把每个人的声音单独的分离出来就属于无监督学习
看上去这个算法会很复杂,实际上这个算法可以用一行代码来完成
[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');
使用Octave或Matlab,很多算法都可以用几行代码来实现,这也是本视频采用Octave或Matlab编程的原因。
提问:
二、单变量线性回归
2.1 模型表示
训练集
监督学习算法工作原理
只有一个变量x,所以是单变量线性回归
2.2 代价函数
有了训练集,有了假设函数,我们要做的就是如何选择和这两个参数
我们的目标就是使得代价函数最小。
2.3 代价函数直观理解 I
下图中简化,并且图中的
,可以计算得到代价函数
,即
同样的方法可以得到=0.5,0,1.5……时
的值,得到的图形如下,从图中可以看出
=1时,
取最小值0.
2.4 代价函数直观理解 II
当存在两个参数、
时,代价函数是一个三维函数,其曲面图像碗状一样
接下来用等高线图来分析,取不同的
、
时对应的
和
从图中可以看出,在最后一幅图中,接近于取最小值了。
2.5 梯度下降
下边俩图表明:起始点(初始参数)不同,局部最优值不同
梯度下降算法(为学习率,算法需要同时更新
和
):
梯度(gradient)就是J在该点的斜率,有正有负,如下图所示
关于学习率,如果太小,每次挪动的步子太小,它会需要很多步才能到达全局最低点;如果太大,每次挪动的步子太大,梯度下降法可能会越过最低点,甚至可能无法收敛。
如果将初始化在局部最优值位置,那么梯度(导数)就会为0,代入公式后
的值将会保持不变
梯度下降算法用时不需要改变学习率,因为在接近局部最小值时梯度(导数值)会自动减小
2.6 Gradient descent for linear regression
求偏导:
将求得的偏导数代入到梯度下降算法中,得到: