前言
通信轉數據挖掘不久,發現自己在一些機器學習概念問題有些模糊,不同的教科書的公式形式有些出入,稍有混亂。本文總結了自己對交叉熵這個概念的一些物理意義方面的理解,嘗試將這些概念融會貫通。由於水平實在不高,只是把想到的東西簡單堆砌,簡單梳理了一下邏輯,看起來比較啰嗦.同時有不對之處(有些數學定義都是我自己的理解),希望不吝賜教。
伯努利分布
伯努利分布,又稱0-1分布。這個離散分布非常直觀,在中學我們就學過。但是,把這個分布復習一下,對后面一些理解大有裨益。對於一個伯努利試驗,它只有兩個結果1或0。通常,取1的概率為 $p$,取0的概率為$1-p$。$p$就是該伯努利分布的參數。
對於隨機變量$X$服從伯努利分布,$\Pr(X=1)=p,\Pr(X=0)=q=1-p,0<p<1$.可以發現,對於伯努利分布,本來是需要兩個參數的$p$和$q$的,但是由於$p$ 和 $q$相關,只有一個自由度.所以一般用 $p$ 來表示就足夠了.相應的概率質量函數(pmf)為:
$$ f(x;p)=\left\{
\begin{aligned}
&p ,&x=1, \\
&1-p, &x=0.
\end{aligned}
\right.
$$
這種pmf用分段函數的形式簡單易懂,但是分段函數對於后續推導來說比較麻煩.所以伯努利分布的另外一種pmf的形式出現了:
$$f(x;p)=p^{x}(1-p)^{1-x},x={0,1}.$$
這種形式相當漂亮,一個表達式中包含了兩種情況. 由於 $x$ 取值非1即0,對於特定的x取值,這個表達式中每次僅有部分起作用.(當 $x=1$, $(1-p)$ 的部分的指數項為0, 所以表達式的值為 $p$,和上面的分段函數等價).這里唯一需要注意的是定義域的取值,只能是0或1.(對於二分類的問題,標簽有時會取值 $\pm1$. 題外話,通信原理里處理數字信號調制,正交碼時候也經常遇到這種問題,有時是0,1,有時是 $\pm1$.)
廣義伯努利分布
事實上,伯努利分布的只能取布爾值,可以對應於二分類問題.對於多分類問題,對應的是廣義伯努利分布,也就是隨機變量的取值個數不局限於2個.關於廣義伯努利分布見wiki:
In probability theory and statistics, a categorical distribution (also called a generalized Bernoulli distribution, multinoulli distribution[1]) is a discrete probability distribution that describes the possible results of a random variable that can take on one of Kpossible elementary events (single outcomes of the discrete sample space, often referred to as categories), with the probability of each elementary event separately specified.
BTW,獨立重復試驗的話,伯努利分布進化為二項分布;廣義伯努利分布進化為多項分布.
由於廣義伯努利分布和多分類有着密切關系,我們簡單看看它.首先確認的是它有幾個參數?回想伯努利分布,有兩個參數 $p$ 和 $q$, 由於相關, 只要一個 $p$就夠了.類似,廣義伯努利分布有 $k$ 個參數$p_1,p_2,\dots,p_k$,分別代表取值為 $i,i\in\{1,2,\dots,k\}$的概率. 由於概率和為1的導致相關,只有 $k-1$ 個自由度,只要 $k-1$ 個參數就夠了.但是,最后一個參數是這么表示的 $p_k=1-p_1-\dots-p_{k-1}$,寫起來太麻煩,還不如直接用 $k$ 個參數來表示.好了,廣義伯努利分布的pmf是什么呢?類似的可以這么寫
$$f(x;p_1,\dots,p_k)=p_i,\hspace{10pt}x=i,\hspace{10pt}i\in\{1,2,\dots,k\}.$$
這里雖然表達式只有一行,但卻是一個不折不扣的分段函數,因為函數的值 $p_i$隨着 $x$的定義域的每個值上都不同.那么我們想使用上面那個漂亮的非分段函數,使得函數的值在 $x$的定義域可以用個同一的表達式表示.但是,這里遇到了一個困難.因為對於伯努利分布, $x\in\{0,1\}$時, $x$ 和 $1-x$互斥且完備(我等於1,你就不等於1;還要滿足一個,我和你必有一個發生,即和為1)(這也是為啥 $x$取0,1的好處).
而對於廣義伯努利分布, $x$的取值比較隨意,一般是$\{1,2,\dots,k\}$,我們也希望找到一組互斥且完備的量來寫出那個漂亮的非分段函數的pmf.如何做到呢?我們先引入一個示性函數.
示性函數
示性函數(指示函數)就是這么一個函數能滿足我們的所有訴求.看看wiki:
In mathematics, an indicator function or a characteristic function is a function defined on a set X that indicates membership of an element in a subset A of X, having the value 1 for all elements of A and the value 0 for all elements of X not in A.
我在測度論和概率論的課程里面第一次接觸到這個簡單函數(原諒我測度論學的一塌糊塗).它和伯努利分布有着天然的契合性.這是一個定義在集合 $X$ 上的函數,映射到 $\{0,1\}$. 它表示集合$X$中有哪些元素屬於某個子集 $A$,定義為
$$ {I}_{A}(x)=\left\{
\begin{aligned}
&1 ,&x\in A, \\
&0, &x\notin A.
\end{aligned}
\right.
$$
它有個性質,就是它的期望等於$A$的概率:$$E(I_A) =\int _X I_A(x) \mathrm{d}\mathbb{P}=\int _A \mathrm{d}\mathbb{P}=P(A).$$
這個性質涉及到測度和測度積分,也不是我短時間說清楚的,有疑問的翻書吧.那么有了這個函數, 定義集合$X=\{0,1\}$,定義子集 $A=\{1\}$,則$\bar{A}=\{0\}$,我們能夠將伯努利分布的非分段函數的pmf改寫為
$$f(x;p)=p^{I_A(x)} (1-p)^{I_{\bar{A}}(x)},x={0,1}.$$
類似的,我們可以對廣義伯努利函數這么定義.定義集合$X=\{0,1,\dots,k\}$,將全集 $X$划分為 $k$ 個互斥的子集 $A_1=\{1\}$,$A_2=\{2\}$,...,$A_k=\{k\}$.可以得到 $k$個互斥且完備的示性函數,以第一個為例:
$$ {I}_{A_1}(x)=\left\{
\begin{aligned}
&1 ,&x\in A_1, \\
&0, &x\in A_2,or, A_3,..,or,A_k.
\end{aligned}
\right.
$$
可以發現,當 $x\in A_1$時,僅有$I_{A_1}(x)=1$,其他的$I_{A_i}(x)=0,i\neq1.$那么廣義伯努利函數的非分段函數的pmf可以表示為
$$\begin{aligned}f(x;p_1,\dots,p_k)=
&p_1^{I_{A_{1}} (x)} \dots p_k^{I_{A_{k}} (x)},x=\{0,1,\dots,k\}\\
=&\prod_{i=1}^k p_i^{I_{A_i}(x)},x=\{0,1,\dots,k\}.
\end{aligned}
$$
這個連積的形式很簡潔.特別強調的是Notation的問題,這里的所有下標和機器學習的下標沒關系,純粹就是伯努利分布自己參數的下標.后面的推導的時候,我還會特別強調各個上下標是什么意思.
至此,伯努利分布和廣義伯努利分布的pmf都可以用一個統一的表達形式.值得注意的是,示性函數的引入,使我們不必固定隨機變量的取值.想想也是,伯努利分布中,只有唯一的參數 $p$,和$x$的定義域的取值無關.