机器学习之梯度下降

前言
T度下降应该算是机器学习反向传播的核心了。现在对T度下降的原理做了下理解分析。
为什么做梯度下降
众所周知 y = x * w+b 是机器学习的核心所在,我们将 输入定义为x,输出定义为y,真实值为label。那么真实值和输出之间的差值表示为损失
loss = label-y 换算y得到 loss = label - (xw+b) 。
因为x,label为输入值和真实值,所以为已知量。
那么我们需要得到的就是loss最小的时候w,b的值。
而计算w,b的过程就是T度下降的过程。
我们不妨来试着计算下,loss = label-(x * w+b) 中 为了让loss值不为负数,我们可以采用平方的方式来做计算,loss = (label-(x
w+b))^2
可以将这个式子展开 即可以得到一个二次方程,我们先不管系数问题,就可以得到
loss = A * (w^2)+B *(w * b) +C * (b ^2)+D * w+ E * b + D ,那么这就转换成了一个二次方程。
我们不妨用最简单的二次方程来做示例loss = w^2 (b为偏移量,暂且忽略),我们现在要计算出loss最小的时候w的值。那么这里就要用到T度下降的方法了。

怎么做梯度下降呢
我们简单理解成人从高山上下坡,最后到最低点的过程。我们刚才的二次函数loss=w^2反抛物线来理解。
机器学习之梯度下降
在图中可以看到,二次函数最低点就是loss = 0,即切线的斜率为0的时候 。假设我们初始的w在1的位置,那么我们一共用了4次下降后,最终达到了最低点。

机器学习之梯度下降
那么,我们每次挪动的w的值,挪动多少呢? 这里不能挪动固定值,而且挪到斜率为0的时候就不挪动了(因为最低点的斜率为0)。
那么就有了 有了 w1 = w0 - rate*(斜率) ,其中rate叫做步长(就是学习率)。
而loss对于w函数求导就是斜率,
用公式表达为 loss(w)’ = 斜率
最终计算
w1 = w0-rate * ( loss(w)’ )
同理我们可以得到
b1 = b0 - rate * ( loss(b)’ )