熵与softmax

2019-08-29  本文已影响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+对数似然。

上一篇下一篇

猜你喜欢

热点阅读