美文网首页
熵与softmax

熵与softmax

作者: 热爱生活的大川 | 来源:发表于2019-08-29 11:24 被阅读0次

    一、信息熵(information entropy)

    1. 不确定性
      I(p)是不确定性的度量,则需满足
      a. I(p)是概率p的减函数,且非负
      b. 独立事件间I(p)具有可加性:I(p_ip_j)=I(p_i)+I(p_j)
      可知,I(p)=-log(p)满足以上条件,可作为不确定性度量。

    2. 信息
      信息的基本作用就是消除事物的不确定性。因而信息的度量等于不确定性的度量。

    3. 信息熵
      熵是体系混乱程度的度量。信息熵则是整个体系的不确定性的度量。公式表示为
      H(p)=E(I(p))=-\sum_i{p_ilog(p_i)}

    4. 相对熵(KL散度)
      相对熵用于衡量某一概率分布q相对真实概率分布p的信息熵差异,公式为
      \begin{align} D_{KL}(p||q) &= \sum_i{p_ilog( \frac{p_i}{q_i} )} \\ &= (-\sum_i{p_ilog(q_i)})-(-\sum_i{p_ilog(p_i)}) \\ &= H(p,q)-H(p) \end{align}
      相对熵始终非负,可通过Jensen不等式证明:
      \sum_i{p_ilog(\frac{p_i}{q_i})}=-\sum_i{p_ilog(\frac{q_i}{p_i})} \ge -log(\sum_ip_i\frac{q_i}{p_i})=0

    5. 交叉熵
      定义H(p,q)=-\sum{p_ilog(q_i)}为概率分布q相对真实分布p的交叉熵。当p确定时,D_{KL}中只有H(p,q)与q相关,在优化D_{KL}时,等价于优化H(p,q)

    二、softmax+交叉熵

    1. sigmoid函数
      \delta(x)=\frac{1}{1+e^{-x}}
      \delta'(x)=\delta(1-\delta)

    2. 逻辑回归(LR)
      对于二分类0-1问题,我们用sigmoid函数\delta(\theta^Tx)表示分类为1的概率
      H(x) =\delta(\theta^Tx)= \left\{ \begin{array}{lr} 1,\delta\ge 0.5 \\ 0,\delta<0.5 \end{array} \right.
      对于输入样本x_iy_i为1时概率为\delta(\theta^Tx_i)y_i为0时概率为1-\delta(\theta^Tx_i),则输出为y_i的概率可统一写为\delta(\theta^Tx_i)^{y_i}(1-\delta(\theta^Tx_i))^{1-y_i}
      则其对数似然函数为:L_g(\theta) = \sum\left({y_i}log(\delta(\theta^Tx_i))+(1-y_i)log(1-\delta(\theta^Tx_i))\right)
      对其求导:
      \begin{align} L_g'(\theta) &= \sum{\left({y_i}\frac{1}{\delta}\delta'+(1-y_i)\frac{1}{1-\delta}(1-\delta)' \right)} \\ & = \sum{\left({y_i}\frac{1}{\delta}\delta(1-\delta)+(1-y_i)\frac{1}{1-\delta}(-\delta(1-\delta))\right)}x_i \\ & = \sum{\left({y_i}(1-\delta)+(1-y_i)(-\delta)\right)}x_i \\ & = \sum(y_i-\delta)x_i \end{align}
      也可以说损失函数导数为:\frac{\partial{L}}{\partial{x_i}}= \delta - y_i

    3. softmax
      对于softmax层,其多个输入分别为z_i,经过该层后,分别对应输出为\delta(z_i)=\frac{e^{z_i}}{\sum{e^{z_j}}}
      显然,对于二分类,softmax层等价于sigmoid函数的作用:
      \frac{e^{z_1}}{e^{z_1}+e^{z_2}}=\frac{1}{1+e^{-\frac{z_1}{z_2}}}
      我们来看下导数:
      \frac{\partial{\delta(z_i)}}{\partial{z_i}} =\partial(1-\frac{\sum_{j \ne i}{e^{z_j}}}{\sum{e^{z_j}}})\frac{1}{\partial{z_i}}=\frac{e^{z_i}\sum_{j \ne i}{e^{z_j}}}{(\sum{e^{z_j}})^2}=\delta(z_i)(1-\delta(z_i))
      \frac{\partial{\delta(z_j)}}{\partial{z_i}}=\partial(\frac{{e^{z_j}}}{\sum{e^{z_j}}})\frac{1}{\partial{z_i}}=-\frac{e^{z_i}e^{z_j}}{(\sum{e^{z_j}})^2}=-\delta(z_i)\delta(z_j)

    4. softmax+交叉熵
      交叉熵损失函数定义为L(z) = -\sum{y_i}log(\delta(z_i)),对其中一个输入值的偏导数如下:
      \begin{align} \frac{\partial{L}}{\partial{z_i}} &= -\sum_j{y_j}\frac{1}{\delta(z_j)} \frac{\partial{\delta(z_j)}}{\partial{z_i}} \\ &= -y_i(1-\delta(z_i))+\delta(z_i) \sum_{j \ne i}{y_j} \\ &= \delta(z_i) -y_i \\ \end{align}
      可见在0-1分类情况下,softmax+交叉熵等价于sigmoid+对数似然。

    相关文章

      网友评论

          本文标题:熵与softmax

          本文链接:https://www.haomeiwen.com/subject/ljjvectx.html