当前位置:   article > 正文

sigmoid函数、tanh函数、softmax函数及求导_tanh的导数

tanh的导数

sigmoid函数和tanh函数都是激活函数,接收一个输入,产生一个输出。这里的求导是对激活函数求导。而softmax函数是一个多输入多输出的激活函数,这里提到的求导是对经过softmax函数后进行交叉熵计算得到的损失函数求导。

sigmoid函数及求导

sigmoid激活函数形式为:
σ ( x ) = s i g m o i d ( x ) = 1 1 + e − x \sigma (x)=sigmoid(x)=\frac{1}{1+e^{-x}} σ(x)=sigmoid(x)=1+ex1
其导数为:
d σ ( x ) d x = σ ( x ) ( 1 − σ ( x ) ) \frac{\text d \sigma(x)}{\text dx}=\sigma(x)(1-\sigma(x)) dxdσ(x)=σ(x)(1σ(x))

tanh函数及求导

tanh激活函数形式为:
t a n h ( x ) = e x − e − x e x + e − x tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} tanh(x)=ex+exexex
其导数为:
d t a n h ( x ) d x = 1 − ( t a n h ( x ) ) 2 \frac{\text d tanh(x)}{\text dx}=1-(tanh(x))^2 dxdtanh(x)=1(tanh(x))2

softmax函数及求导

sigmoid函数以及tanh函数的求导都是比较简单的,而softmax函数的求导则稍显复杂。详细求导过程详见我的另一篇博客softmax函数及交叉熵函数求导,这里只是总结三种函数的求导。
这里以神经网络多分类问题为例,假设输出层有 n n n个神经元,输出为 z 1 , z 2 , . . . , z n z_1,z_2,...,z_n z1,z2,...,zn,经过softmax函数后的输出为 a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1,a2,...,an a i a_i ai的计算公式为:
a i = e z i ∑ j = 1 n e z j a_i=\frac{e^{z_i}}{\sum_{j=1}^{n}{e^{z_j}}} ai=j=1nezjezi
假设真实标签为 y 1 , y 2 , . . . , y n y_1,y_2,...,y_n y1,y2,...,yn,由于是分类问题,因此 y i y_i yi的取值为0或1,并且 ∑ i = 1 n y i = 1 \sum_{i=1}^{n}y_i=1 i=1nyi=1。则交叉熵损失函数为:
L ( a , y ) = − ∑ i n y i ln ⁡ a i L(\bold{a},\bold{y})=-\sum_{i}^ny_i\ln a_i L(a,y)=inyilnai
则其导数为:
∂ L ∂ z i = a i − y i \frac{\partial L}{\partial z_i}=a_i-y_i ziL=aiyi

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/333554
推荐阅读
  

闽ICP备14008679号