熵——机器学习中各种熵的总结

机器学习中的熵一般包括信息熵,条件熵,交叉熵几种


信息熵

为什么信息熵中有log?

参考博客:https://www.cnblogs.com/kyrieng/p/8694705.html

自信息\(I(x)\)
  • 一条信息的信息量大小和它的不确定性有直接的关系, 信息量的度量就等于不确定性的多少
  • 考虑一个离散随机变量\(x\),随机变量的信息量由概率分布\(p(x)\)确定
  • 我们的目标是找到一个函数\(I(x) = f(p(x))\)(自变量是\(p(x)\),因为随机变量的信息量由概率分布确定),能够衡量\(x\)信息内容的多少
    • 且必须是概率分布\(p(x)\)的单调函数?
  • 现在考虑同时出现两个相互独立的随机变量\(x\)和\(y\),那么他们的信息量和应该是
    $$I(x,y) = I(x)+I(y) = f(p(x)) + f(p(y))$$
    • 同时他们的联合概率分布为
      $$p(x,y) = p(x)p(y)$$
  • 由上面的两个表达式可以知道\(f(\cdot)\)应该是一个对数相关的函数,因为
    $$log_{a}(MN) = log_{a}M + log_{a}N$$
  • 所以我们可以考虑把原始信息量定义为
    $$I(x) = f(p(x)) = -log p(x)$$
    • 其中负号是用来保证信息量是正数或者零
    • log 函数基的选择是任意的(信息论中基常常选择为2,因此信息的单位为比特bits;而机器学习中基常常选择为自然常数,因此单位常常被称为奈特nats)
  • \(I(x)\)也被称为随机变量\(x\)的自信息(self-information),描述的是随机变量的某个事件发生所带来的信息量
信息熵\(H(x)\)
  • 现在假设一个发送者想传送一个随机变量的值给接收者
  • 那么在这个过程中,他们传输的平均信息量可以通过求 \(I(x)=−logp(x)\)关于概率分布\(p(x)\)的期望得到:
    $$
    \begin{align}
    H(x) &= \sum_{x}p(x)(-logp(x))
    &= -\sum_{x}p(x)logp(x)
    &= -\sum_{i=1}^{n}p(x_{i})logp(x_{i})
    \end{align}
    $$
  • \(H(X)\)就被称为随机变量\(x\)的熵,它是表示随机变量不确定的度量,是对所有可能发生的事件产生的信息量的期望
  • 从公式可得,随机变量的取值个数越多,状态数也就越多,信息熵就越大,混乱程度就越大,当随机分布为均匀分布时,熵最大,且
    $$0 ≤ H(X) ≤ logn$$
    • 证明
      $$p(1)+p(2)+\dots+p(n)=1$$
    • 目标函数
      $$f(p(1),p(2),\dots,p(n))=-(p(1)logp(1)+p(2)logp(2)+\dots+p(n)logp(n))$$
    • 约束条件
      $$g(p(1),p(2),\dots,p(n),\lambda)=p(1)+p(2)+\dots+p(n)-1=0$$
    • 定义拉格朗日函数
      $$
      L(p(1),p(2),\dots,p(n),\lambda)=-(p(1)logp(1)+p(2)logp(2)+\dots+p(n)logp(n))+\lambda(p(1)+p(2)+\dots+p(n)-1)
      $$
    • 对\(p(i)\)和\(\lambda\)求偏导,并令其等于0得
      $$p(1)=p(2)=\dots=p(n)=\displaystyle\frac{1}{n}$$
    • 带入目标函数得
      $$
      \begin{align}
      f(\displaystyle\frac{1}{n},\frac{1}{n},\dots,\frac{1}{n}) &= -(\frac{1}{n}log\frac{1}{n} + \frac{1}{n}log\frac{1}{n} + \dots + \frac{1}{n}log\frac{1}{n})
      & = -log(\frac{1}{n})
      & = logn
      \end{align}
      $$