3.26关于softmax网络的一些小笔记

1.什么是softmax(激活函数)

softmax函数的形式如下:
P ( i ) = exp ⁡ ( θ i T x ) ∑ k = 1 K exp ⁡ ( θ k T x ) P(i)=\frac{\exp \left(\theta_{i}^{T} x\right)}{\sum_{k=1}^{K} \exp \left(\theta_{k}^{T} x\right)} P(i)=k=1Kexp(θkTx)exp(θiTx)
它可以把一个数据映射到[0,1]之间,可以说就是取得这个数据的概率吧。
θ \theta θ是待求参数,要做的事情就是求出恰当的 θ \theta θ使 P ( i ) P(i) P(i)的值最大啦。


(关于推导过程:是假设出一个 β i \beta_{i} βi与样本值 x x x成正相关,即 β i = θ i T x \beta_{i}=\theta_{i}^{T} x βi=θiTx。所以所求出的值是一个估计值。在推导公式时,令 β i = log ⁡ ϕ i ϕ K , i = 1 , … , K \beta_{i}=\log \frac{\phi_{i}}{\phi_{K}}, i=1, \ldots, K βi=logϕKϕi,i=1,,K,所以当概率密度函数真的为 log ⁡ ϕ i ϕ K \log \frac{\phi_{i}}{\phi_{K}} logϕKϕi时,所求的概率为真实值。)

2.什么是交叉熵(损失函数)

:描述一个随机变量不确定性的数量,表示一个信源发送一个符号所提供的平均信息量。熵越大,正确估计这个随机变量的可能性就越小。
如果X是一个离散型随机变量,取值空间为R,其概率分布为 p ( x ) = P ( X = x ) , x ∈ R p(x)=P(X=x),x \in \mathbf{R} p(x)=P(X=x),xR。那么,X的熵 H ( X ) H(X) H(X)定义为:
H ( X ) = − ∑ x ∈ R p ( x ) log ⁡ 2 p ( x ) H(X)=-\sum_{x \in \mathbf{R}} p(x) \log _{2} p(x) H(X)=xRp(x)log2p(x)
相对熵(KL距离):衡量相同事件空间里两个概率分布相对差距。两个概率分布 p ( x ) p(x) p(x) q ( x ) q(x) q(x)的相对熵定义为:
D ( p ∥ q ) = ∑ x ∈ X p ( x ) log ⁡ p ( x ) q ( x ) = H ( p ) − H ( q ) D(p \| q)=\sum_{x \in X} p(x) \log \frac{p(x)}{q(x)}=H(p)-H(q) D(pq)=xXp(x)logq(x)p(x)=H(p)H(q)
也就是说,如果p是真实分布,q是假设分布,相对熵就可以用来衡量q的无效性啦。
交叉熵:用来衡量估计模型和真实概率分布之间差异情况。
如果一个随机变量 X , q ( x ) X,q(x) X,q(x)为用于近似 p ( x ) p(x) p(x)的概率分布,那么,随机变量 X X X和模型 q q q之间的交叉熵定义为
H ( X , q ) = H ( X ) + D ( p ∥ q ) = − ∑ x p ( x ) log ⁡ q ( x ) = E p ( log ⁡ 1 q ( x ) ) \begin{aligned} H(X, q) &=H(X)+D(p \| q) \\ &=-\sum_{x} p(x) \log q(x) \\ &=E_{p}\left(\log \frac{1}{q(x)}\right) \end{aligned} H(X,q)=H(X)+D(pq)=xp(x)logq(x)=Ep(logq(x)1)
就和相对熵相差了一个 H ( p ) H(p) H(p),都反映了 p , q p,q p,q的相似程度。

3.softmax网络工作流程

对损失函数求导,有
∂ L o s s i ∂ i = − ∂ ln ⁡ y i ∂ i = ∂ ( − ln ⁡ e i ∑ j e j ) ∂ i = − 1 e i ∑ j e j ⋅ ∂ ( e i ∑ j e j ) ∂ i = − ∑ j e j e i ⋅ ∂ ( 1 − ∑ j + i e j ∑ j e j ) ∂ i = − ∑ j e j e i ⋅ ( − ∑ j ≠ i e j ) ⋅ ∂ ( 1 ∑ j e j ) ∂ i = ∑ j e j ⋅ ∑ j ≠ i e j e i ⋅ − e i ( ∑ j e j ) 2 = ∑ j ≠ i e j ∑ j e j = − ( 1 − e i ∑ j e j ) = y i − 1 \begin{aligned} \frac{\partial L o s s_{i}}{\partial_{i}} &=-\frac{\partial \ln y_{i}}{\partial_{i}} \\ &=\frac{\partial\left(-\ln \frac{e^{i}}{\sum_{j} e^{j}}\right)}{\partial_{i}} \\ &=-\frac{1}{\frac{e^{i}}{\sum_{j} e^{j}}} \cdot \frac{\partial\left(\frac{e^{i}}{\sum_{j} e^{j}}\right)}{\partial_{i}} \\ &=-\frac{\sum_{j} e^{j}}{e^{i}} \cdot \frac{\partial\left(1-\frac{\sum_{j+i} e^{j}}{\sum_{j} e^{j}}\right)}{\partial_{i}} \\ &=-\frac{\sum_{j} e^{j}}{e^{i}} \cdot\left(-\sum_{j \neq i} e^{j}\right) \cdot \frac{\partial\left(\frac{1}{\sum_{j} e^{j}}\right)}{\partial_{i}} \\ &=\frac{\sum_{j} e^{j} \cdot \sum_{j \neq i} e^{j}}{e^{i}} \cdot \frac{-e^{i}}{\left(\sum_{j} e^{j}\right)^{2}} \\ &=\frac{\sum_{j \neq i} e^{j}}{\sum_{j} e^{j}} \\ &=-\left(1-\frac{e^{i}}{\sum_{j} e^{j}}\right) \\ &=y_{i}-1 \end{aligned} iLossi=ilnyi=i(lnjejei)=jejei1i(jejei)=eijeji(1jejj+iej)=eijejj=ieji(jej1)=eijejj=iej(jej)2ei=jejj=iej=(1jejei)=yi1
即正向求出 y i + 1 y_{i}+1 yi+1则可以得到反向更新的梯度。
(梯度:梯度的方向是函数增长速度最快的方向,那么梯度的反方向就是函数衰减最快的方向。想要拿到损失函数的最小值,可以采用梯度下降法去做。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值