一、什么是梯度
梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
二元函数和多元函数梯度下降示意图依次如下:
二、梯度下降和函数求最值对比
函数对比 | 普通函数: f ( x ) = x 2 f(x)=x^2 f(x)=x2 | 损失函数: l ( θ ) = θ 1 2 + θ 2 2 + . . . l(\theta)=\theta_1^2+\theta_2^2+... l(θ)=θ12+θ22+... |
---|---|---|
有极值点的充分 | 在该点处 f ′ ( x ) = 0 f^{'}(x)=0 f′(x)=0,且在 f ′ ( x ) = 0 f^{'}(x)=0 f′(x)=0 处左右两旁导数符号相反。 | 参数空间正定(矩阵正定可以参考笔者二次型和矩阵正定的意义) |
求极值工具 | 梯度下降 | 梯度下降 |
达成的目标 | 求函数最小值,一般用于解决最优化问题 | 求loss最小值,loss最小说明此时模型最优;如在分类问题可采用交叉熵loss,说明此时该模型达到参数最优,即在该参数下系统最为有序,也即熵值最小(熵可以参见笔者机器学习、深度学习关于熵你所需要知道的一切;在回归问题中采用均方误差loss,说明参数估计已经达到了极大似然估计的最佳) |
迭代策略 | x n e x t = x n o w − f ′ ( x n o w ) × Δ x x_{next}=x_{now}-f^{'}(x_{now})\times \Delta x xnext=xnow−f′(xnow)×Δx | θ n e x t = θ n o w − l ′ ( θ n o w ) × Δ θ \theta_{next}=\theta_{now}-l^{'}(\theta_{now})\times \Delta \theta θnext=θnow−l′(θnow)×Δθ |
常用函数 | 见高等数学系列,不胜枚举 | sigmoid、tanh、relu、一次函数(神经网络系数、MAE)、二次函数(MSE)、对数函数(logloss) |
三、传播算法(BP)详细公式推导