梯度下降中参数更新公式的数学逻辑
大部分的机器学习模型(或者严格来说,统计学习方法)从结构上可以被抽象为三个基本要素:模型、策略、算法。其中策略作为评判模型好坏的标准,最直观的表述便是损失函数。在神经网络和大部分的机器学习模型中,对损失函数有这样的定义:
C ( w , b ) = 1 2 n ∑ x ∣ ∣ y ( x ) − a ∣ ∣ 2 C(w, b) = \frac{1}{2n}\sum_{x}||y(x)-a||^2 C(w,b)=2n1x∑∣∣y(x)−a∣∣2
其中 w w w和 b b b都是模型 y ( x ) y(x) y(x)的参数,在神经网络中的S型神经元中,则被看做是激活函数的 权重和 偏置
更一般的,损失函数往往都是 C ( v 1 , v 2 , . . . , v n ) C(v_1,v_2,...,v_n) C(v1,v2,...,vn)的形式,其中 v i ( i = 1 , 2 , . . . , n ) v_i (i=1,2,...,n) vi(i=1,2,...,n)是模型的参数
但损失函数仅仅是给出了当前模型优劣程度的一个定量表达,这对于指导我们改进模型,提高拟合程度没有直接帮助。梯度下降算法则是希望利用损失函数 C ( w , b ) C(w,b) C(w,b),寻找模型参数 w w w和 b b b的更新方向,以极小化损失函数为目标,达到提高模型精确程度的目的。而参数更新一般都有如下公式:
v i ← v i − η ∂ C ∂ v i v_i←v_i-\eta\frac{\partial C}{\partial v_i} vi←vi−η∂vi∂C
不失一般性,将损失函数看做是关于向量 v = ( v 1 , v 2 , . . . , v n ) v=(v_1,v_2,...,v_n) v=(v1,v