AndrewNG机器学习听课笔记(1 )——线性回归(linear regression)
Andrew NG机器学习听课笔记(1)
:参数,也叫回归系数
:训练样本
: i =1…m:第i个样本
: j=1…n:样本的第j维
:回归方程
:给定
对应的值,也叫target,目标
以及与之对应的target
,求得回归方程
,使得
能够对一个新的样本
对应的target
做出相应的预测。
来表示,当然这个表示方法不唯一,不同的表示方法可能会导致不同的结果,我们会在以后慢慢讨论。
。
开始,重复以下步骤
,首先我们针对只有一个样本的情况:
从而上述的更新算法
这是针对一个样本的情况,当有多个样本(m)时更新算法就变成了
![]()
上式就是随机梯度下降法最终的更新准则。其中
是一个自己设定的参数,叫做学习率,由它控制着梯度下降的速度。
通过上面的描述不难发现一个严重的问题:当样本容量非常大的时候,每更新一个
都要把所有的样本跑一遍,这样浪费了大量的时间和空间复杂度,同时当样本足够大的时候,算法是不可行的。
为此提出了一个类似于梯度下降法的优化方法:随机梯度下降法:
算法如下:
For j = 1:m
(对所有的i)
repeat
另外对于最小二乘,大家都知道的一个方法:
,
,![]()
则
,从而
,对
关于
求导并让导数等于0,最终就得到了
,从而
,这是一个非迭代的算法,算是一个解析解吧。
下面讨论针对
有不同的表示方法:
下面给出minkowski距离的一个通式:![]()
上式中q取不同的值,会导致我们最终的迭代收敛的位置:当q=1时,算法收敛于中值,当q=2时,算法收敛于均值,当q=0时,算法收敛于众数。
最终还有一个关于收敛终止条件的,有两种方法,第一种是前后两次更新的
的差小于某个阈值。但更常用的是前后两次更新后
的值的变化。