您的位置:首页 > 其它

机器学习笔记(一):梯度下降算法,随机梯度下降,正规方程

2017-02-13 23:39 441 查看

一、符号解释

M 训练样本的数量

x 输入变量,又称特征

y 输出变量,又称目标

(x, y) 训练样本,对应监督学习的输入和输出


表示第i组的x  


表示第i组的y

h(x)表示对应算法的函数


是算法中的重要参数(向量)


表示参数为的函数,以下考虑线性回归,所以表述为:


二、梯度下降算法



表示函数计算输出的结果,用y表示期望的输出值



-y表示误差,若我们有m组训练样本,在训练过程中,我们希望误差越小越好,所以来调整参数


使得


其中二分之一是使得运算更加简便,采用误差的平方来计算,对于所有的样本,误差之和最小的参数

就是我们要得到的结果。

我们称上述式子为

,我们要不断修改参数,使

的值尽可能小

初始时候,我们设定

接下来不断改变



更新

,其中

手动设置的学习速率参数。

通过对J函数求偏导数,我们求得J的梯度,即J下降最快的方向,通过这个方向更新参数,使得J的函数值越来越小。

计算当m=1时,只有1组训练样本时:



当有m组样本时,把每一组的效果累加起来:



有其中后一部分便是

的结果。

由于每次更新参数,都遍历了一次所有的样本数据,这样做属于完全梯度下降,具有更高的准确性,却在遍历m集合上花费了大量的时间,当训练集合很大是,这种方法是很浪费时间的,所以引出随机梯度下降。

三、随机梯度下降算法:

Repeat:

对于j从1到m:



对于每一次更新参数,不必遍历所有的训练集合,仅仅使用了一个数据,来变换一个参数。这样做不如完全梯度下降的精确度高,可能会走很多弯路,但整体趋势是走向minmum。

这样做可以节省更多的时间,算法更快。

四、正规方程:

引入概念:

对矩阵求导:



则参数的调整可表述为:


若f是一个从m*n矩阵映射到实数的函数,则:



trAB = trBA (求迹运算)

trABC = trCAB = trBCA







所以


则对于直接误差

求内积:





则有


时,误差最小,此时

可有正规方程表示:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: