线性回归算法(用直线来拟合数据)
h0(x)=θ0+θ1*x,要想h0(预测值)接近y(实际值),也就是使得预测值和实际值的平方误差和最小,可用平方代价误差函数来解决。
平方代价误差函数说明:平方是为了保证正值,二分之一m的目的是求导(计算变化率)后消掉系数。(假设h,参数θ,代价函数J,优化目标)
如何进行机器学习?如何确定θ(0),θ(1)?此处测试数据集有(1,1),(2,2),(3,3)三个点。分别对θ(0),θ(1)取不同的值,调用平方代价误差函数,计算出目标值,找到最小的目标值,学习完毕。
梯度下降算法:找到局部最优解。
我们爬山的时候,想要找到一条最短的下山山路。可以发现,站在不同位置找的路是不一样的。
梯度下降算法:
‘’:=‘’表示赋值,α是一个数字,被称为学习速率(步长)。如下山的时候,我们迈出的步子很大,α就很大,否则α就很小。
此公式的意义是:我们处在θj点,要走到J的最小值点,然后走一段距离步长,达到另一个θj方向。梯度乘一个负号是因为朝着梯度(微分,代表着某个给定切点的斜率)的反方向前进。
导数相当于斜率,当斜率为正数时,θ1减小,反之,θ1增加。当斜率为负数时,θ1更大了。但导数为0,即斜率与x轴平行时,找到最低点。
α的如何取值呢?假如α过小,求梯度下降会很缓慢,慢慢慢慢到达最低点。如果α过大,可能无法收敛。因为它很可能迈一大步后斜率从负变成正,经过计算又到达负,依次类推。α取值不宜过大过小。
应用于线性回归的的梯度下降算法