改进神经网络学习方法——交叉熵代价函数

本文深入探讨了神经网络学习中交叉熵代价函数的引入原因和优势,对比了二次代价函数,揭示了交叉熵如何解决学习速度下降的问题。通过数学推导,解释了交叉熵函数关于权重和偏置的导数,展示了在多层神经网络中的应用,并讨论了在输出层使用线性神经元时的情况。此外,还介绍了交叉熵的起源,以及在logistic回归和softmax回归中的作用。
摘要由CSDN通过智能技术生成

交叉熵代价函数
改进神经网络学习方法——交叉熵代价函数
《Neural Networks and Deep Learning》 (Michael Nielsen) \text{(Michael Nielsen)} (Michael Nielsen) 笔记 (三)
对二次代价函数 C = ( y − a ) 2 2 ( 1 ) C=\frac{(y-a)^{2}}{2} \qquad(1) C=2(ya)2(1) a a a是神经元的输出,训练输入为 x = 1 , y = 0 x=1,y=0 x=1,y=0我们有 a = σ ( z ) a=\sigma(z) a=σ(z),其中 z = w x + b z=wx+b z=wx+b,使用链式法则求权重和偏置的偏导数: ∂ C ∂ w = ( a − y ) σ ′ ( z ) x = a σ ′ ( z ) ( 2 ) ∂ C ∂ b = ( a − y ) σ ′ ( z ) = a σ ′ ( z ) ( 3 ) \begin{aligned} \frac{\partial C}{\partial w} &=(a-y) \sigma^{\prime}(z) x=a \sigma^{\prime}(z)\qquad(2) \\ \frac{\partial C}{\partial b} &=(a-y) \sigma^{\prime}(z)=a \sigma^{\prime}(z) \qquad(3)\end{aligned} wCbC=(ay)σ(z)x=aσ(z)(2)=(ay)σ(z)=aσ(z)(3)

图片名称

从上图可以看出,当神经元的输出接近 1 1 1时,曲线变得相当平,所以 σ ′ ( z ) \sigma^{\prime}(z) σ(z)就很小,方程 ( 2 ) (2) (2) ( 3 ) (3) (3)也告诉我们 ∂ C ∂ w \frac{\partial C} { \partial w} wC ∂ C ∂ b \frac{\partial C} { \partial b} bC会非常小,这其实是学习缓慢的原因所在。
引入交叉熵代价函数

图片名称

神经元的输出就是 a = σ ( z ) a=\sigma(z) a=σ(z), z = ∑ j w j x j + b z=\sum_{j} w_{j} x_{j}+b z=jwjxj+b
定义这个神经元的交叉熵代价函数:
C = − 1 n ∑ x [ y ln ⁡ a + ( 1 − y ) ln ⁡ ( 1 − a ) ] ( 4 ) C=-\frac{1}{n} \sum_{x}[y \ln a+(1-y) \ln (1-a)] \qquad(4) C=n1x[ylna+(1y)ln(1a)](4)其中 n n n训练数据的总数,求和是在所有的训练输入 x x x上进行的, y y y是对应的目标输出。
将交叉熵看作是代价函数的两点原因:一、交叉熵是非负的。二、如果对于所有的训练输入 x x x,神经元实际的输出接近目标值,达到很好的正确率,那么交叉熵将接近 0 0 0
交叉熵代价函数有一个比二次代价函数更好的特性是它避免了学习速度下降的问题。
我们将 a = σ ( z ) a=\sigma(z) a=σ(z)带入到 ( 4 ) (4) (4)中应用两次链式法则,得 ∂ C ∂ w j = − 1 n ∑ x ( y σ ( z ) − ( 1 − y ) 1 − σ ( z ) ) ∂ σ ∂ w j = − 1 n ∑ x ( y σ ( z ) − ( 1 − y ) 1 − σ ( z ) ) σ ′ ( z ) x j \begin{aligned} \frac{\partial C}{\partial w_{j}} &=-\frac{1}{n} \sum_{x}\left(\frac{y}{\sigma(z)}-\frac{(1-y)}{1-\sigma(z)}\right) \frac{\partial \sigma}{\partial w_{j}} \\ &=-\frac{1}{n} \sum_{x}\left(\frac{y}{\sigma(z)}-\frac{(1-y)}{1-\sigma(z)}\right) \sigma^{\prime}(z) x_{j} \end{aligned} wjC=n1x(σ(z)y1σ(z)(1y))wjσ=n1x(σ(z)y1σ(z)(1y))σ(z)xj注: ∂ C ∂ w j = − 1 n ∑ ∂ ∂ w j [ y ln ⁡ a + ( 1 − y ) ln ⁡ ( 1 − a ) ] = − 1 n ∑ ∂ ∂ a [ y ln ⁡ a + ( 1 − y ) ln ⁡ ( 1 − a ) ] ⋅ ∂ a ∂ w j = − 1 n ∑ ( y a − 1 − y 1 − a ) ⋅ ∂ a ∂ w j = − 1 n ∑ ( y s ( z ) − 1 − y 1 − s ( z ) ) ∂ ζ ( z ) ∂ w j = − 1 n ∑ ( y ζ ( z ) − 1 − y 1 − ζ ( z ) ) ζ ′ ( z ) x j \begin{aligned} \frac{\partial C}{\partial w_{j}} &=-\frac{1}{n} \sum \frac{\partial}{\partial w_{j}}[y \ln a+(1-y) \ln (1-a)] \\ &=-\frac{1}{n} \sum \frac{\partial}{\partial a}[y \ln a+(1-y) \ln (1-a)] \cdot \frac{\partial a}{\partial w_{j}} \\ &=-\frac{1}{n} \sum\left(\frac{y}{a}-\frac{1-y}{1-a}\right)\cdot \frac{\partial a}{\partial w_{j}} \\ &=-\frac{1}{n} \sum\left(\frac{y}{s(z)}-\frac{1-y}{1-s(z)}\right) \frac{\partial \zeta(z)}{\partial w_{j}} \\ &=-\frac{1}{n} \sum\left(\frac{y}{\zeta(z)}-\frac{1-y}{1-\zeta(z)}\right) \zeta^{\prime}(z) x_{j} \end{aligned} wjC=n1wj[ylna+(1y)ln(1a)]=n1a[ylna+(1y)ln(1a)]wja=n1(ay1a1y)wja=n1(s(z)y1s(z)1y)wjζ(z)=n1(ζ(z)y1ζ(z)1y)ζ(z)xj合并结果简化成: ∂ C ∂ w j = 1 n ∑ x σ ′ ( z ) x j σ ( z ) ( 1 − σ ( z ) ) ( σ ( z ) − y ) \frac{\partial C}{\partial w_{j}}=\frac{1}{n} \sum_{x} \frac{\sigma^{\prime}(z) x_{j}}{\sigma(z)(1-\sigma(z))}(\sigma(z)-y) wjC=n1xσ(z)(1σ(z))σ(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值