梯度下降算法
-
上节问题:机器学习线性回归中真正的求解过程应该是梯度下降,按照目标函数可以直接求出一个解,但是我们只是把这个解当作一个特殊值,一个巧合;
-
学习过程的思路是梯度下降,机器的到目标函数后,相当于下山问题,在当前点求得下山的最快方向,前进一步后,在下一个点继续求梯度,因为是梯度下降,所以是梯度的反方向,也就是下山方向,“步子”越小,越准确越好,然后一直到山底徘徊,找到最优解
-
参数更新方法。cite0和cita1都会对结果产生影响,他们分别是x0和x1的参数,因为x0和x1之间是独立的,所以他们的参数也当然是独立的,将cita0和cita1进行分别求解,先对cita0求导,在对cita1进行求导,综合两个方向找到梯度的方向。
-
对于每一个样本求损失函数:真实值减去预测值的平方÷2。应该使当前模型尽可能多的满足样本,损失函数值越小越好;所以我们拿出m个样本进行评估,加平方项是为了让结果差异更大一些,预测结果不好的情况下放大不好的效果,将J(cita)当成一个损失函数。又第一个式子求偏导到第二个式子,h0(xi)相当于cita0x0+cita1x1+…+citajxj,对citaj求偏导即其他位置都是常数,只将xj留下(xij,表示当前第i个样本的第j个属性,是一个值),第二行后面式子是当前方向加上新求出来的梯度,新求出来的是带负号的,因为梯度下降,取相反,所以变正号。这就完成了参数的更新。
-
优化参数设置。批量梯度下降是求的所有样本平均梯度下降最优的方向,可是样本多了,会超级慢;随机梯度下降就不一样了:每次随机用一个样本计算,速度变快但是每次方向都不确定。小批量梯度下降:则可以融合这两种方法,如果选的样本多就是注重准确率,样本少就是看重速率
-
学习率,上述式子的α就是学习率(步长),学习率越大一次更新也大;反之更新也小