美国的电视游戏节目Let’s Make a Deal 有一个经典游戏项目,参赛者面都三扇关闭的门,其中一扇门后面有一辆汽车,另外两扇门后面各藏有一只山羊,只要参赛者选中了有汽车的门即可赢得它。游戏开始后,当参赛者选定一扇门但未去开启它的时候,节目主持人会开启剩下两扇门的其中一扇,露出一只山羊,随后主持人会问参赛者要不要换另一扇仍然关上的门。为了最大化赢得汽车的概率,作为玩家要不要换门呢?如果要,中奖概率变成多少?答案是要换,这会使赢得汽车的几率从 1 3 \frac{1}{3} 31 提升到 2 3 \frac{2}{3} 32
这个问题有点反直觉,因为打开一道不相干的门似乎和你最初的选择无关,不会影响你中奖的概率。但事实上,打开不相关门这件事不但和你的初始选择有关(因此概率不会变为 1 2 \frac{1}{2} 21),更会导致中奖概率发生变化。理解它最简单的方法是如下穷举所有的可能性
简单地分析下
这里我们先建立一个直观的认识,随着门数 n n n 增加,事件 “连续打开 n − 2 n-2 n−2 道门都是不中奖的” 出现的概率 p = 1 n + n − 1 n 1 C n − 1 n − 2 = 2 n , n ≥ 3 p = \frac{1}{n} + \frac{n-1}{n}\frac{1}{C_{n-1}^{n-2}} = \frac{2}{n},n \geq 3 p=n1+nn−1Cn−1n−21=n2,n≥3 是不断减小的, 而换门后中奖的概率在不断增大,说明系统的不确定度在不断降低( n → ∞ n\to\infin n→∞ 时几乎可以肯定奖品就在最后一道门后),也就是说一般意义下
某事件发生概率越低,其提供的信息就越多,消除的系统不确定度就越多,系统剩余的不确定度就越低
规范一点说,信息
本质是对(随机实验的/随机变量的/系统的)不确定度减小程度的度量,观察者可用它调整对于各种可能情结果的预测概率;与之相对的,不能够消除观察者对于某件事情不确定性的事物被称为 噪音
,比如这里门的形状和颜色等特征。观测者直接接受到的 数据
则是信息和噪音的叠加,即 数 据 = 信 息 + 噪 音 数据=信息+噪音 数据=信息+噪音
为了对信息的多少进行度量,类似其他物理量,我们需要一个1单位信息的参照物。由于信息是不确定性减小程度的度量,那么就选择一个随机实验的不确定性作为参照物,当参照实验像抛硬币一样有两种等概率事件时,测量单位就叫比特bit。注意到信息是指数增加的,抛 n n n 次硬币的可能情况是 2 n 2^n 2n ,所以
举例来说,记 “一个八面骰子掷出数字 1” 为事件 A,发生后提供的信息量为 I ( A ) I(A) I(A);“硬币掷出正面” 为事件 B,发生后提供的信息量 I ( B ) = 1 I(B)=1 I(B)=1 为一单位信息量,有 p ( A ) = 1 8 p ( B ) , I ( A ) = log 2 8 = 3 = 3 I ( B ) p(A) = \frac{1}{8}p(B),\space I(A) = \log_28=3 = 3I(B) p(A)=81p(B), I(A)=log28=3=3I(B)
对数函数不同的底对应信息量的不同单位,相当于用不同的进制数对相同的信息进行编码
bit
nat
Hart
信息量
:给定有限取值离散随机变量 X X X 及其概率分布 p ( X = x i ) , i = 1 , 2 , . . . , n p(X=x_i),i=1,2,...,n p(X=xi),i=1,2,...,n,则事件 X = x i X=x_i X=xi 发生包含的信息量是 I ( X = x i ) = − log p ( X = x i ) I(X=x_i) = -\log p(X=x_i) I(X=xi)=−logp(X=xi)
和直觉一致:概率越大的事件,其发生带来的信息量越小,系统剩余的不确定度越大;概率越小的事件,其发生带来的信息量越大,系统剩余的不确定度越小
举例来说,某明星在微博上发了几张自拍,这是个大概率事件,发生后没有带来什么信息,对于他未来发展的不确定性依然很强;另一方面,此明星吸毒被捕,这是个小概率事件,信息量极大,他未来发展的不确定性也大幅下降,因为此人将被封杀
两个极端情况为
“编码” 是理解信息的另一个重要角度,简单说就是要做这样一件事
给定一个若干字符组成的字符集,要为每个字符找到一个唯一的二进制数来表示它,要求任一字符的编码都不能是另一字符编码的前缀(避免在信道上顺序传输时发生误识别)。为了提升效率,我们这里还要求所有字符编码的总长度最短(最优编码)
举个例子,现在要对字符集 { A , B , C , D , E , F , G } \{A,B,C,D,E,F,G\} {A,B,C,D,E,F,G} 设计编码,至少需要多少个二进制位?注意到这是给定了各个字符出现概率相等,它们都是等价的,显然表示任一字符至少要 log 2 8 = 3 \log_28=3 log28=3 个二进制位,这样总码长为 8 × 3 = 24 8\times 3 = 24 8×3=24 bit
考虑这个编码问题:对字符集 { A , A , A , A , B , B , C , C } \{A,A,A,A,B,B,C,C\} {A,A,A,A,B,B,C,C} 设计编码,至少需要多少个二进制位?注意到这是给定了各个字符出现概率不等, p ( A ) = 1 2 , p ( B ) = p ( C ) = 1 4 p(A)=\frac{1}{2},p(B)=p(C) = \frac{1}{4} p(A)=21,p(B)=p(C)=41,我们可以使用经典的哈夫曼编码规则,给概率高的字符分配短的编码,概率低的字符分配长的编码。设 N A , N B , N C N_A,N_B,N_C NA,NB,NC 分别代表三种字符的出现次数, N N N 代表总字符数,以 A A A 为例,表示 A A A 需要的二进制位数至少为
I ( A ) = log 2 N − log 2 N A = log 2 N N A = log 2 1 p ( A ) = − log 2 p ( A ) I(A) = \log_2N-\log_2N_A = \log_2{\frac{N}{N_A}} = \log_2\frac{1}{p(A)} = -\log_2p(A) I(A)=log2N−log2NA=log2NAN=log2p(A)1=−log2p(A) 这里 log 2 N − log 2 N A \log_2N-\log_2N_A log2N−log2NA 可以理解为:先假设 N N N 个字符互不相同,需要 log 2 N \log_2N log2N 位加以区分,而实际上 N A N_A NA 个字符不需要区分,故减去 l o g 2 N A log_2N_A log2NA。按照哈夫曼编码规则,编码长度(位数)和结果为
I ( A ) = − log 2 1 2 = 1 , 编 码 0 I ( B ) = − log 2 1 4 = 2 , 编 码 10 I ( C ) = − log 2 1 4 = 2 , 编 码 11 \begin{aligned} &I(A) = -\log_2\frac{1}{2}=1,\space 编码 0 \\ &I(B) = -\log_2\frac{1}{4}=2,\space 编码 10 \\ &I(C) = -\log_2\frac{1}{4}=2,\space 编码 11 \end{aligned} I(A)=−log221=1, 编码0I(B)=−log241=2, 编码10I(C)=−log241=2, 编码11 如此编码字符集,总码长为 N A × 1 + N B × 2 + N C × 2 = 12 N_A\times 1+N_B\times 2+N_C\times 2 = 12 NA×1+NB×2+NC×2=12 bit,比直接 8 × log 2 8 = 24 8\times\log_28=24 8×log28=24 bit 要短很多
可见,字符最短编码长度和信息量有着相同的形式,于是信息量也可以理解为事件的最短编码长度。出现概率越高的事件,其信息量越低,编码长度也就越短
举个简单的例子:一天24小时,设当前时刻为 t t t,有以下事件 { A : t ∈ [ 0 , 12 ) , B : t ∈ [ 0 , 6 ) , C : t ∈ [ 6 , 12 ) , D : t ∈ [ 0 , 2 ) } \{A:t\in[0,12),B:t\in[0,6),C:t\in[6,12),D:t\in [0,2)\} {A:t∈[0,12),B:t∈[0,6),C:t∈[6,12),D:t∈[0,2)},可见 p ( A ) = 1 2 , p ( B ) = p ( C ) = 1 4 , p ( D ) = 1 12 p(A) = \frac{1}{2},p(B) = p(C)=\frac{1}{4},p(D)=\frac{1}{12} p(A)=21,p(B)=p(C)=41,p(D)=121,如果对它们编码,最短编码长度分别为 I ( A ) = 1 , I ( B ) = I ( C ) = 2 , I ( C ) = 2 l o g 2 3 I(A)=1,I(B)=I(C)=2,I(C)=2log_23 I(A)=1,I(B)=I(C)=2,I(C)=2log23,时间判断越是精确,其包含的信息量越大,需要越多的编码来表示
更加直观的理解,不给任何工具,判断当前是白天还是黑夜,只要看天亮不亮就行;判断现在是上午还是下午,要综合考虑现在阳光亮度,气温等特征;判断现在具体是几点,需要的信息就更多了,比如使用日影法等测量方法。随着判断越来越精确,需要考虑的特征越来越多,信息量越来越大,如果给每个特征用一位进行编码,对应的编码就越来越长。从这个例子也可以看出信息对不确定度的削减作用
信息熵
:信息量的期望,代表通过传递 X X X 所传递的信息量,是对 X X X 不确定性的度量
说明:由于信息熵仅依赖于 X X X 的分布,而与 X X X 取值无关,所以离散、连续随机变量的信息熵通常分别记为 H ( p ) H(p) H(p) 和 H ( f ) H(f) H(f)。当式中的概率 p , f p,f p,f 由数据估计而得到时(比如极大似然估计),所得的信息熵称为 经验熵
信息熵的性质:
理解信息熵
条件熵
:设有随机变量 ( X , Y ) (X,Y) (X,Y) 其联合分布为: P ( X = x i , Y = y j ) = p ( x i , y j ) , i = 1 , 2 , . . . , n ; j = 1 , 2 , . . . , m P(X = x_i,Y=y_j) = p(x_i,y_j),\space\space\space i=1,2,...,n;\space\space\space j=1,2,...,m P(X=xi,Y=yj)=p(xi,yj), i=1,2,...,n; j=1,2,...,m。随机变量 X X X 给定条件下的条件熵 H ( Y ∣ X ) H(Y|X) H(Y∣X),定义为 X X X 给定条件下 Y Y Y 的条件概率分布的的熵对 X X X 的数学期望,即经验条件熵
基于条件熵可以进一步定义信息增益的概念:训练数据集 D D D 的经验熵与给定特征 A A A 条件下 D D D 的经验条件熵 H ( D ∣ A ) H(D|A) H(D∣A) 之差定义为特征 A A A 对训练数据集 D D D 的信息增益
,即
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A) = H(D)-H(D|A) g(D,A)=H(D)−H(D∣A) 直观地看,给出的条件提供了附加信息,由于 A , D A,D A,D 相关,显然在随机事件 A A A 的条件下,随机变量 D D D 的不确定度会减小,信息增益,就是量化了由于特征 A A A 而使得对数据集 D D D 分类的不确定性减小的程度
一般地,熵 H ( Y ) H(Y) H(Y) 与条件熵 H ( Y ∣ X ) H(Y|X) H(Y∣X) 之差 H ( Y ) − H ( Y ∣ X ) H(Y) - H(Y|X) H(Y)−H(Y∣X) 称为
互信息mutual information
,它在数值计算上和信息增益往往是等价的。说 “互信息” 的时候,两个随机变量的地位是相同的;说 “信息增益” 的时候,是把一个变量看成减小另一个变量不确定度的手段
“互信息”或者“信息增益”经常作为决策树中选择特征的标准,两种称呼都很常见。
在第 2 节中,我们说明了可以从编码角度理解信息熵。给定一个字符集的概率分布,我们可以设计一种编码,使得表示该字符集组成的字符串平均需要的比特数最少。假设这个字符集是 X X X,对 x i ∈ X x_i\in X xi∈X,其出现概率为 P ( x i ) P(x_i) P(xi),那么其最优编码平均需要的比特数等于这个字符集的信息熵
H ( P ) = − ∑ i = 1 n P ( x i ) log P ( x i ) H(P) = -\sum_{i=1}^n P(x_i)\log P(x_i) H(P)=−i=1∑nP(xi)logP(xi) 在同样的字符集上,假设存在另一个概率分布 Q ( X ) Q(X) Q(X)。如果**用概率分布 Q ( X ) Q(X) Q(X) 的最优编码,即字符 X = x i X=x_i X=xi 的编码长度等于 − log Q ( x i ) -\log Q(x_i) −logQ(xi),来为符合分布 P ( X ) P(X) P(X) 的字符集编码,得到的最优编码长度期望值(信息熵)就称为 “交叉熵”,即
H P ( Q ) = − ∑ i = 1 n P ( x i ) log Q ( x i ) H_P(Q) = -\sum_{i=1}^n P(x_i)\log Q(x_i) HP(Q)=−i=1∑nP(xi)logQ(xi) 注意,由于没有对 P P P 分布使用对应的最优编码,此时表示这些字符会比理想情况多用一些比特数
交叉熵
:用一个猜测的分布 Q Q Q 的编码去编码真实的分布 P P P,得到的最优编码长度期望值 / 用分布 Q Q Q 拟合分布 P P P,得到的信息熵
C E H ( P , Q ) = − ∑ x ∈ X P ( x ) l o g Q ( x ) CEH(P,Q) = -\sum\limits_{x\in X}P(x)logQ(x) CEH(P,Q)=−x∈X∑P(x)logQ(x)
交叉熵有一个重要的性质:最小化交叉熵等价于做最大似然估计,下面分有标签和无标签两类情况加以说明
无标签情况(这时模型表示样本值的分布,例如重复投一个骰子来估计其各个面出现的概率)
使用最大似然估计法估计模型参数如下
θ M L E = arg max θ ∏ i = 1 m p m o d e l ( x ( i ) ; θ ) = arg max θ ∑ i = 1 m log p m o d e l ( x ( i ) ; θ ) = arg max θ 1 m ∑ i = 1 m log p m o d e l ( x ( i ) ; θ ) = arg max θ E x ∼ p ^ d a t a log p m o d e l ( x ; θ ) = arg max θ ∫ x p ^ d a t a ( x ) log p m o d e l ( x ; θ ) d x = arg min θ − ∫ x p ^ d a t a ( x ) log p m o d e l ( x ; θ ) d x = arg min θ C E H ( p ^ d a t a , p m o d e l ) \begin{aligned} \theta_{MLE} &= \argmax_{\theta}\prod_{i=1}^mp_{model}(x^{(i)};\theta)\\ &= \argmax_{\theta}\sum_{i=1}^m\log p_{model}(x^{(i)};\theta)\\ &= \argmax_{\theta}\frac{1}{m}\sum_{i=1}^m\log p_{model}(x^{(i)};\theta)\\ &= \argmax_{\theta}\mathbb{E}_{x\sim\hat{p}_{data}}\log p_{model}(x;\theta)\\ &= \argmax_{\theta}\int_x\hat{p}_{data}(x)\log p_{model}(x;\theta)dx\\ &= \argmin_{\theta}-\int_x\hat{p}_{data}(x)\log p_{model}(x;\theta)dx\\ &= \argmin_{\theta} CEH(\hat{p}_{data},{p}_{model}) \end{aligned} θMLE=θargmaxi=1∏mpmodel(x(i);θ)=θargmaxi=1∑mlogpmodel(x(i);θ)=θargmaxm1i=1∑mlogpmodel(x(i);θ)=θargmaxEx∼p^datalogpmodel(x;θ)=θargmax∫xp^data(x)logpmodel(x;θ)dx=θargmin−∫xp^data(x)logpmodel(x;θ)dx=θargminCEH(p^data,pmodel) 当样本数量 lim m → ∞ \lim_{m\to\infin} limm→∞ 时,有 θ M L E = arg min θ C E H ( p d a t a , p m o d e l ) \theta_{MLE} = \argmin_{\theta} CEH(p_{data},{p}_{model}) θMLE=θargminCEH(pdata,pmodel)
有标签情况(这时模型表示某样本值下标签的条件分布,一般的机器学习任务,无论分类还是回归都是这个形式)
使用最大似然估计法估计模型参数如下
θ M L E = arg max θ ∏ i = 1 m p m o d e l ( y ( i ) ∣ x ( i ) ; θ ) = arg max θ ∑ i = 1 m log p m o d e l ( y ( i ) ∣ x ( i ) ; θ ) = arg max θ 1 m ∑ i = 1 m log p m o d e l ( y ( i ) ∣ x ( i ) ; θ ) = arg max θ E x , y ∼ p ^ d a t a log p m o d e l ( y ∣ x ; θ ) = arg max θ ∫ x , y p ^ d a t a ( x , y ) log p m o d e l ( y ∣ x ; θ ) d x d y = arg max θ ∫ x , y p ^ d a t a ( y ∣ x ) p ^ d a t a ( x ) log p m o d e l ( y ∣ x ; θ ) d x d y = arg max θ ∫ x p ^ d a t a ( x ) [ ∫ y p ^ d a t a ( y ∣ x ) log p m o d e l ( y ∣ x ; θ ) d y ] d x = arg max θ E x ∼ p ^ d a t a [ ∫ y p ^ d a t a ( y ∣ x ) log p m o d e l ( y ∣ x ; θ ) d y ] = arg min θ E x ∼ p ^ d a t a [ − ∫ y p ^ d a t a ( y ∣ x ) log p m o d e l ( y ∣ x ; θ ) d y ] = arg min θ E x ∼ p ^ d a t a [ C E H ( p ^ d a t a , p m o d e l ) ] \begin{aligned} \theta_{MLE} &= \argmax_{\theta}\prod_{i=1}^mp_{model}(y^{(i)}|x^{(i)};\theta)\\ &= \argmax_{\theta}\sum_{i=1}^m\log p_{model}(y^{(i)}|x^{(i)};\theta)\\ &= \argmax_{\theta}\frac{1}{m}\sum_{i=1}^m\log p_{model}(y^{(i)}|x^{(i)};\theta)\\ &= \argmax_{\theta}\mathbb{E}_{x,y\sim\hat{p}_{data}}\log p_{model}(y|x;\theta)\\ &= \argmax_{\theta}\int_{x,y}\hat{p}_{data}(x,y)\log p_{model}(y|x;\theta)dxdy\\ &= \argmax_{\theta}\int_{x,y}\hat{p}_{data}(y|x)\hat{p}_{data}(x)\log p_{model}(y|x;\theta)dxdy\\ &= \argmax_{\theta}\int_x\hat{p}_{data}(x)\Big[\int_y\hat{p}_{data}(y|x)\log p_{model}(y|x;\theta)dy\Big]dx\\ &= \argmax_{\theta}\mathbb{E}_{x\sim\hat{p}_{data}}\Big[\int_y\hat{p}_{data}(y|x)\log p_{model}(y|x;\theta)dy\Big]\\ &= \argmin_{\theta}\mathbb{E}_{x\sim\hat{p}_{data}}\Big[-\int_y\hat{p}_{data}(y|x)\log p_{model}(y|x;\theta)dy\Big]\\ &= \argmin_{\theta} \mathbb{E}_{x\sim\hat{p}_{data}}[CEH(\hat{p}_{data},{p}_{model})] \end{aligned} θMLE=θargmaxi=1∏mpmodel(y(i)∣x(i);θ)=θargmaxi=1∑mlogpmodel(y(i)∣x(i);θ)=θargmaxm1i=1∑mlogpmodel(y(i)∣x(i);θ)=θargmaxEx,y∼p^datalogpmodel(y∣x;θ)=θargmax∫x,yp^data(x,y)logpmodel(y∣x;θ)dxdy=θargmax∫x,yp^data(y∣x)p^data(x)logpmodel(y∣x;θ)dxdy=θargmax∫xp^data(x)[∫yp^data(y∣x)logpmodel(y∣x;θ)dy]dx=θargmaxEx∼p^data[∫yp^data(y∣x)logpmodel(y∣x;θ)dy]=θargminEx∼p^data[−∫yp^data(y∣x)logpmodel(y∣x;θ)dy]=θargminEx∼p^data[CEH(p^data,pmodel)] 当样本数量 lim m → ∞ \lim_{m\to\infin} limm→∞ 时,有 θ M L E = arg min θ E x ∼ p d a t a [ C E H ( p d a t a , p m o d e l ) ] \theta_{MLE} =\argmin_{\theta} \mathbb{E}_{x\sim p_{data}}[CEH(p_{data},{p}_{model})] θMLE=θargminEx∼pdata[CEH(pdata,pmodel)]
由上面的分析我们注意到,最大似然估计往往将损失建模为负对数似然
,这样的损失一定等价于定义在训练集上的经验分布和定义在模型上的概率分布间的交叉熵
由最大似然法导出的交叉熵,在模型定义不同时往往可以变形成不同的损失,比如在线性回归中就变形为 MSE 损失。这里又有一个知识点:分类问题常常使用交叉熵而非 MSE 作为损失函数,这是因为
具体可以参考:分类问题为什么用交叉熵损失不用 MSE 损失
KL散度(相对熵)
:用来描述两个概率分布 P P P 和 Q Q Q 的差异的一种非对称性度量方法。
机器学习中,有时我们选择 KL 散度来评估 predict 和 label 之间的差别,当目标分布不变时可以使用交叉熵 C H E ( l a b e l , p r e d i c t ) CHE(label ,predict ) CHE(label,predict) 代替 D K L D_{KL} DKL 作为损失函数