文章目录
信息熵公式
香农(Shannon) - 信息论
H ( X ) = E [ I ( X ) ] = E [ − l o g ( P ( X ) ) ] = ∑ i = 0 n − p ( x i ) ⋅ l o g ( p ( x i ) ) \begin{align*} H(X) &= E[I(X)]\\ &=E[-log(P(X))]\\ &=\sum_{i=0}^n -p(x_i)\cdot log(p(x_i)) \end{align*} H(X)=E[I(X)]=E[−log(P(X))]=i=0∑n−p(xi)⋅log(p(xi))
- X X X 为随机变量
- I ( X ) I(X) I(X) 为自信息
自信息公式推导
I ( X ) = l o g ( 1 P ( X ) ) = − l o g ( P ( X ) ) \begin{align*} I(X) &=log(\frac{1}{P(X)})\\ &= -log(P(X)) \end{align*} I(X)=log(P(X)1)=−log(P(X))
1. 使用 P ( X ) P(X) P(X)
- 根据该基本事件 X X X 发生
- 自信息量 =
1
/
P
(
X
)
1/P(X)
1/P(X)
- 一个基本事件发生的概率越低,代表当其发生时所 “携带的信息” 以及 “使得系统信息熵降低程度” 更大,可以更精准地定位系统状态/熵的变化幅度
2. 选用 l o g log log 的原因
- 一条信息的可能性 “含量” 随着内存位数的增加而指数倍增加
- 系统的实际衡量标准之一就是 “内存” 大小
- 二进制:计算机存储信息
- 1 b i t 1\ bit 1 bit 有 { 0 , 1 } \{0, 1\} {0,1} → 2 1 \rightarrow 2^1 →21 个状态
- N b i t s N\ bits N bits 有 → 2 N \rightarrow 2^N →2N 个状态
- 将信息含量按照存储方式(如二进制)转化为实际的内存大小:
l
o
g
2
(
2
N
)
→
N
b
i
t
s
log_2(2^N) \rightarrow N\ bits
log2(2N)→N bits
- 整个系统中,每个最小单位所存储的信息量(标准化):
i
=
1
/
2
N
i = 1/2^N
i=1/2N
N = l o g 0.5 ( i ) → N = l o g ( i ) → N = l o g ( 2 N ) \begin{align*} N &= log_{0.5}(i)\\ \rightarrow N &= log(i)\\ \rightarrow N &= log(2^N) \end{align*} N→N→N=log0.5(i)=log(i)=log(2N) - 对数的换底公式: l o g m / n = l o g m l o g n log_{m/n} = \frac{log_m}{log_n} logm/n=lognlogm;因此使用 l o g 2 , l o g 10 log_2,\ log_{10} log2, log10 还是 l n ln ln 都不影响其含义
- 整个系统中,每个最小单位所存储的信息量(标准化):
i
=
1
/
2
N
i = 1/2^N
i=1/2N
梯度优化
1. 在分类问题中,交叉熵等价于最大似然估计(MLE)
假设有 K 个类别进行分类;使用独热编码(one-hot)作为 y y y
- 交叉熵(单样本,K 分类): H ( y , y ^ ) = − ∑ j = 1 K y j ⋅ l o g ( y ^ j ) H(y, \hat{y}) = -\sum_{j=1}^K y_j\cdot log(\hat{y}_j) H(y,y^)=−∑j=1Kyj⋅log(y^j)
- 最大似然估计: l ( θ ) = ∑ i = 1 n l o g P ( y i ∣ x i ; θ ) l(\theta) = \sum_{i=1}^n logP(y_i|x_i; \theta) l(θ)=∑i=1nlogP(yi∣xi;θ)
- 由于多分类问题的独热编码 target,在
K
K
K 个类中,只有在正确预测的位置概率才会为 1 否则为 0(与独热编码分布一致),因此将样本的真实分布作为幂,对于系统信息熵无影响
L = − ∑ i = 1 n ∑ j = 1 K y i j ⋅ l o g ( y ^ i j ) l ( θ ) = ∑ i = 1 n ∑ j = 1 K l o g ( y ^ i j y i j ) = ∑ i = 1 n ∑ j = 1 K y i j l o g ( y ^ i j ) ⇒ − L = l ( θ ) \begin{align*} L &= -\sum_{i=1}^n\sum_{j=1}^K y_{ij}\cdot log(\hat{y}_{ij}) \\ l(\theta) &= \sum_{i=1}^n \sum_{j=1}^K log(\hat{y}_{ij}^{y_{ij}}) \\ &= \sum_{i=1}^n \sum_{j = 1}^K y_{ij}log(\hat{y}_{ij})\\ \\ &\Rightarrow -L = l(\theta) \end{align*} Ll(θ)=−i=1∑nj=1∑Kyij⋅log(y^ij)=i=1∑nj=1∑Klog(y^ijyij)=i=1∑nj=1∑Kyijlog(y^ij)⇒−L=l(θ)
2. 为什么在误差很大的地方,均方误差会难以优化?—— 梯度消失问题
-
M
S
E
=
1
n
∑
i
=
1
n
(
y
i
−
y
^
i
)
2
MSE = \frac{1}{n}\sum_{i=1}^n(y_i-\hat{y}_i)^2
MSE=n1∑i=1n(yi−y^i)2
- 当 y ^ i \hat{y}_i y^i 和 y i y_i yi 的误差很大时, M S E MSE MSE 在 y ^ i \hat{y}_i y^i 处的导数也很小
- 当误差达到一定程度时,该处导数可能会更加趋近于零,从而导致 梯度消失问题 出现,模型无法利用梯度进一步优化损失函数
- 在梯度优化的过程中,令
y
^
i
→
y
i
\hat{y}_i\rightarrow y_i
y^i→yi 则可以降低梯度
- y ^ i > y i \hat{y}_i > y_i y^i>yi,则优化方向为 y ^ i − \hat{y}_{i-} y^i−
- y ^ i < y i \hat{y}_i < y_i y^i<yi,则优化方向为 y ^ i + \hat{y}_{i+} y^i+
- 因此,虽然
M
S
E
=
1
n
∑
i
=
1
n
(
y
i
−
y
^
i
)
2
⇔
1
n
∑
i
=
1
n
(
y
^
i
−
y
i
)
2
MSE = \frac{1}{n}\sum_{i=1}^n(y_i-\hat{y}_i)^2 \Leftrightarrow \frac{1}{n}\sum_{i=1}^n(\hat{y}_i - y_i)^2
MSE=n1∑i=1n(yi−y^i)2⇔n1∑i=1n(y^i−yi)2,但通过前者的写法,其导数结果即为梯度优化的方向(不需要额外添加负号「
−
-
−」)
∂ M S E ∂ y ^ i = − 2 ( y i − y ^ i ) \begin{align*} \frac{\partial MSE}{\partial \hat{y}_i} &= -2(y_i-\hat{y}_i) \end{align*} ∂y^i∂MSE=−2(yi−y^i)
补充定义
信息熵
- 信息熵度量随机变量的不确定性
- 熵越大,代表随机变量的结果越不确定,则意味着需要更多的信息来降低系统的混乱程度 → \rightarrow → 降低熵
- 根据香农的信息理论,信息熵代表了对随机变量进行压缩时的平均最小编码长度
- 编码长度越长,代表系统中能够包含更多的信息
- 也影响了系统在计算机中实际的内存空间大小
随机变量
- 变量的值作为基本事件在基本空间内按照一定概率分布
KL 散度(相对熵)
- 两个概率分布,基于其中一种的编码用于另一种的样本,所产生的额外内存需求:即由于两种分布的差异,导致系统中的熵增
- 假设
P
(
x
)
P(x)
P(x) 代表样本实际分布,
Q
(
x
)
Q(x)
Q(x) 代表整体的理论分布
K L ( P ∣ ∣ Q ) = ∑ P ( x ) ⋅ l o g P ( x ) Q ( x ) = ∫ P ( x ) ⋅ l o g P ( x ) Q ( x ) ⇒ ∑ P ( x ) ⋅ [ l o g ( P ( x ) ) − l o g ( Q ( x ) ) ] ∵ P ( x ) 为样本实际分布,无变动,对于系统的信息熵无影响 ∴ K L ( P ∣ ∣ Q ) = − ∑ P ( x ) ⋅ l o g ( Q ( x ) ) \begin{align*} KL(P||Q) &= \sum P(x)\cdot log\frac{P(x)}{Q(x)}\\ &= \int P(x)\cdot log\frac{P(x)}{Q(x)}\\ &\Rightarrow \sum P(x)\cdot [log(P(x)) - log(Q(x))]\\\ \because &P(x) 为样本实际分布,无变动,对于系统的信息熵无影响\\ \therefore &KL(P||Q) = -\sum P(x)\cdot log(Q(x)) \end{align*} KL(P∣∣Q) ∵∴=∑P(x)⋅logQ(x)P(x)=∫P(x)⋅logQ(x)P(x)⇒∑P(x)⋅[log(P(x))−log(Q(x))]P(x)为样本实际分布,无变动,对于系统的信息熵无影响KL(P∣∣Q)=−∑P(x)⋅log(Q(x))
- 假设
P
(
x
)
P(x)
P(x) 代表样本实际分布,
Q
(
x
)
Q(x)
Q(x) 代表整体的理论分布
参考来源
https://www.jianshu.com/p/4e2be2b562b0
https://blog.csdn.net/u012436149/article/details/54287435
https://blog.csdn.net/weixin_43846347/article/details/94363273