引言
之前一致不明白,为什么交叉熵损失函数在进行梯度计算的时候的公式跟最小二乘是一致的。抱着这样的疑问,我对交叉熵损失函数进行的偏微分,进行验证。
正文
最小二乘法损失函数
J ( θ ) = 1 2 m ∑ i m ( h ( x i ) − y i ) 2 J(\theta)=\frac{1}{2m}\sum_i^m(h(x^i)-y^i)^2 J(θ)=2m1i∑m(h(xi)−yi)2
此时 h ( x ) = w x + b h(x)=wx+b h(x)=wx+b,所以
∂ J ( θ ) ∂ θ j = 1 m ∑ i m ( h ( x i ) − y i ) x j i \frac{\partial J(\theta)}{\partial \theta_j}=\frac{1}{m}\sum_i^m(h(x^i)-y^i)x_j^i ∂θj∂J(θ)=m1i∑m(h(xi)−yi)xji
交叉熵损失函数
J ( θ ) = − ∑ i = 1 m ( y i l o g 2 h ( x i ) + ( 1 − y i ) l o g 2 1 − h ( x i ) ) J(\theta)=-\sum_{i=1}^m(y_ilog_2^{h(x^i)}+(1-y_i)log_2^{1-h(x^i)}) J(θ)=−i=1∑m(yilog2h(xi)+(1−yi)log21−h(xi))
此时 h ( x ) = 1 1 + e − w T x h(x)=\frac{1}{1+e^{-w^Tx}} h(x)=1+e−wTx1, h ′ ( x ) = h ( x ) ( 1 − h ( x ) ) h'(x)=h(x)(1-h(x)) h′(x)=h(x)(1−h(x))。所以
∂ J ( θ ) ∂ θ j = − 1 m ∑ i = 1 m [ y i 1 h ( x i ) h ′ ( x i ) + ( 1 − y i ) 1 1 − h ( x i ) ⋅ − h ′ ( x i ) ] = − 1 m ∑ i = 1 m [ y i ( 1 − h ( x i ) ) x j i − ( 1 − y i ) h ( x i ) x j i ] = 1 m ∑ i m ( h ( x i ) − y i ) x j i \frac{\partial J(\theta)}{\partial \theta_j}=-\frac{1}{m}\sum_{i=1}^m[y^i\frac{1}{h(x^i)}h'(x^i)+(1-y^i)\frac{1}{1-h(x^i)}·-h'(x^i)] \newline =-\frac{1}{m}\sum_{i=1}^m[y^i(1-h(x^i))x_j^i-(1-y^i)h(x^i)x_j^i]\newline=\frac{1}{m}\sum_i^m(h(x^i)-y^i)x_j^i ∂θj∂J(θ)=−m1i=1∑m[yih(xi)1h′(xi)+(1−yi)1−h(xi)1⋅−h′(xi)]=−m1i=1∑m[yi(1−h(xi))xji−(1−yi)h(xi)xji]=m1i∑m(h(xi)−yi)xji
其中 x j i x_j^i xji, j j j代表样本 x i x^i xi的第 j j j个特征。 m m m表示样本总数。
总结
所以它们两者进行梯度下降时的公式一致的核心原因就在于,目标函数 h ( x ) h(x) h(x)。