梯度下降
梯度下降是一种适用面很广的优化参数方法,理由偏导数对多元函数的参数迭代更新使得损失函数取得最小值。
损失函数-Loss Function
损失函数一般都使用方差来评判模型的好坏。
理论基础
比如有一个线性预测函数: f ( x ) = b + w x f(x)=b+wx f(x)=b+wx
我们就用方差作为Loss Function: L ( f ) = ∑ i = 1 n ( y i − f ( x i ) ) 2 L(f)=\sum_{i=1}^{n}(y_{i}-f(x_{i}))^2 L(f)=i=1∑n(yi−f(xi))2
让这个函数取地最小值的参数 b , w b,w b,w 就是我们想要的参数,所以最终可以把Loss Function看作以原函数系数为自变量的函数: L ( b , w ) = ∑ i = 1 n ( y i − ( b + w x i ) ) 2 L(b,w)=\sum_{i=1}^{n}(y_{i}-(b+wx_{i}))^2 L(b,w)=i=1∑n(yi−(b+wxi))2
这样就成了求极值的问题。
具体步骤
- 随机选择起点,即随机选择预测函数的参数(Loss Function的自变量);
- 选择学习率 η \eta η;
在这里插入一个小技巧:在做梯度下降时寻找适合的学习率很关键;建议将不同learning rate的训练结果可视化在一张图上
这样就知道自己的学习率是不是合适的。 - 计算Loss Function在这一点的偏导数 ∂ L ∂ w \frac{\partial L}{\partial w} ∂w∂L 和 ∂ L ∂ b \frac{\partial L}{\partial b}