1.Cross_entropy公式及导数推导
损失函数:
a=σ(z), where z=wx+b
利用SGD等算法优化损失函数,通过梯度下降法改变参数从而最小化损失函数:
对两个参数权重和偏置进行求偏导:
推导过程如下(关于偏置的推导是一样的):
Note:这个推导中利用了sigmoid激活函数求导,才化简成最后的结果的。sigmoid求导详解
2.分析交叉熵Loss的特点
导数中没有σ′(z)这一项,权重的更新是受σ(z)−y这一项影响,即受误差的影响。所以当误差大的时候,权重更新就快,当误差小的时候,权重的更新就慢。这一特性很好的解决了L2 loss的不足。
#####3.关于softmax和sigmoid
我们最后一层(也就是输出)是通过sigmoid函数,因此采用了交叉熵代价函数。而深度学习中更普遍的做法是将softmax作为最后一层,此时常用的是代价函数是log-likelihood cost。
其实这两者是一致的,logistic回归用的就是sigmoid函数,softmax回归是logistic回归的多类别推广。log-likelihood代价函数在二类别时就可以化简为交叉熵代价函数的形式。具体可以参考UFLDL教程。