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

来源:互联网 发布:程序员的自我修养 git 编辑:程序博客网 时间:2024/05/21 12:10

一、符号解释

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




所以

则对于直接误差求内积:


则有

时,误差最小,此时可有正规方程表示:

0 0