Machine Learning 學習筆記 03 最小二乘法、極大似然法、交叉熵

小能日記發表於2022-04-07

損失函式

神經網路裡的標準和人腦標準相比較 相差多少的定量表達

最小二乘法

首先要搞明白兩個概率模型是怎麼比較的。有三種思路,最小二乘法、極大似然估計,交叉熵

image-20220406133626684

當一張圖片人腦判斷的結果是 \(x1\),神經網路判斷的結果是 \(y1\),直接把它們相減 \(\left|x_{1}-y_{1}\right|\) 就是他們相差的範圍。我們將多張圖片都拿過來判斷加起來,當最終值最小的時候,\(\min \sum_{i=1}^{n}\left|x_{i}-y_{i}\right|\) 就可以認定兩個模型近似。

但是絕對值在定義域內不是全程可導的,所以可以求平方 \(\min \sum_{i=1}^{n}\left(x_{i}-y_{i}\right)^{2}\)

就這是最小二乘法,但是隻用它判斷兩個概率模型差別有多少,去作為損失函式會比較困難。所以引入極大似然估計


極大似然估計

image-20220406175626499

似然值是真實的情況已經發生,我們假設它有很多模型,在這個概率模型下,發生這種情況的可能性就叫似然值。

挑出似然值最大的,那可能性也就越高,此時的概率模型應該是與標準模型最接近的。

\[\begin{array}{l} P\left(C_{1}, C_{2}, C_{3}, \ldots, C_{10} \mid \theta\right) \\ P\left(x_{1}, x_{2}, x_{3}, x_{4}, \ldots, x_{n} \mid W, b\right) \end{array} \]

\(\theta\) 是拋硬幣的概率模型,\(W,b\) 是神經網路的概率模型。前者結果是硬幣是正還是反,後者結果是圖片到底是不是貓。

\[\begin{array}{l} P\left(x_{1}, x_{2}, x_{3}, x_{4}, \ldots, x_{n} \mid W, b\right) \\ =\prod_{i=1}^{n} P\left(x_{i} \mid W, b\right) \end{array} \]

在神經網路是這樣的引數下,輸入的照片如果是貓概率是多少、如果不是貓概率是多少,所有圖片判斷後,相乘得到的值就是似然值。取到極大似然值就是最接近的值。

但在訓練的時候 \(W、b\) 無論輸入什麼樣的照片都是固定的值,如果我們都用貓的照片來確定的話標籤都是\(1\),那就沒有辦法進行訓練,理論可行卻沒有操作性。但是我們還可以利用條件,訓練神經網路的時候既可以得到 \(x_{i}\) 也可以得到 \(y_{i}\)\(y_{i}\) 的輸出結果依賴 \(W,b\) 。每次輸入照片不一樣,\(y_{i}\) 的結果也就不一樣。

\[\begin{array}{l} =\prod_{i=1}^{n} P\left(x_{i} \mid W, b\right) \\ =\prod_{i=1}^{n} P\left(x_{i} \mid y_{i}\right) \end{array} \]

\(x_{i}\) 的取值是 \(0、1\) ,符合二項伯努利分佈,概率分佈表示式為

\[f(x)=p^{x}(1-p)^{1-x}=\left\{\begin{array}{ll} p, & x=1 \\ 1-p, & x=0 \end{array}\right. \]

\(x=1\) 就是圖片為貓的概率。而 \(p\) 就是 \(y_{i}\) (神經網路認定是貓的概率),將其帶入替換 $ P\left(x_{i} \mid y_{i}\right)$

\[=\prod_{i=1}^{n} y_{i}^{x_{i}}\left(1-y_{i}\right)^{1-x_{i}} \]

我們更喜歡連加,在前面加 \(log\) ,並化簡

\[\begin{array}{l} \log \left(\prod_{i=1}^{n} y_{i}^{x_{i}}\left(1-y_{i}\right)^{1-x_{i}}\right) \\ =\sum_{i=1}^{n} \log \left(y_{i}^{x_{i}}\left(1-y_{i}\right)^{1-x_{i}}\right) \\ =\sum_{i=1}^{n}\left(x_{i} \cdot \log y_{i}+\left(1-x_{i}\right) \cdot \log \left(1-y_{i}\right)\right) \end{array} \]

所以,求極大似然值,就是求如下公式

\[\begin{array}{l} \max \left(\sum_{i=1}^{n}\left(x_{i} \cdot \log y_{i}+\left(1-x_{i}\right) \cdot \log \left(1-y_{i}\right)\right)\right) \\ \min -\left(\sum_{i=1}^{n}\left(x_{i} \cdot \log y_{i}+\left(1-x_{i}\right) \cdot \log \left(1-y_{i}\right)\right)\right) \end{array} \]

image-20220407001346199

複習一下對數

  1. $\log _{a}(1)=0 $
  2. $ \log _{a}(a)=1 $
  3. \(負數與零無對數\)
  4. \(\log _{a} b * \log _{b} a=1\)
  5. $ \log _{a}(M N)=\log _{a} M+\log _{a} N $
  6. $\log _{a}(M / N)=\log _{a} M-\log _{a} N $
  7. $ \log _{a} M^{n}=n \log _{a} M(\mathrm{M}, \mathrm{N} \in \mathrm{R}) $
  8. $ \log _{a^{n}} M=\frac{1}{n} \log _{a} M $
  9. $a^{\log _{a} b}=b $

交叉熵

要想直接比較兩個模型,前提是兩個模型型別是同一種,否則就不能公度。概率模型如果想要被統一衡量,我們需要引入熵(一個系統裡的混亂程度)。

資訊量

我們想獲取資訊量的函式,就要進行定義。並找尋能讓體系自洽的公式。

\[{f}({x}):=\text { 資訊量 }\\ {f}( 阿根廷奪冠 )={f}( 阿根廷進決賽 )+{f}( 阿根廷贏了決賽 ) \\ f\left(\frac{1}{8}\right)=f\left(\frac{1}{4}\right)+f\left(\frac{1}{2}\right)\\ P(\text { 阿根廷奪冠 })=P(\text { 阿根廷進決賽 }) \cdot {P} \text { (阿根廷贏了決賽 })\\ \]

image-20220407002837245

將上面的第四條公式帶入第三條得到如下第二條。為了使資訊量定義能讓體系自洽,我們給定定義 \(log\),這樣符合相乘變相加的形式。

\[\begin{array}{c} f(x):=? \log _{?} x \\ f\left(x_{1} \cdot x_{2}\right)=f\left(x_{1}\right)+f\left(x_{2}\right) \end{array} \]

為了符合我們最直觀的感覺,因為概率越小,資訊量越大。而 \(log\) 函式單調遞增,我們轉換方向。

\[\begin{array}{c} f(x):=-\log _{2} x \\ f\left(x_{1} \cdot x_{2}\right)=f\left(x_{1}\right)+f\left(x_{2}\right) \end{array} \]

看計算機裡多少位資料,給計算機輸入一個16位資料,輸入之前隨便取的值是 \(1/2^{16}\) 的概率 ,輸入之後的概率直接變為了 \(1\) 。資訊量就是 \(16\) 位元。

資訊量可以理解為一個事件從原來不確定到確定它的難度有多大,資訊量大,難度高。

熵不是衡量某個具體事件,而是整個系統的事件,一個系統的從不確定到確定難度有多大

它們都是衡量難度,單位也可以一樣都是位元。

image-20220407004826252


系統熵的定義

將上方對系統貢獻的資訊量可以看成是期望的計算。

image-20220407005434902


KL散度

image-20220407005745574

image-20220407005906096

image-20220407005934701

image-20220407010117666

KL散度絕對是大於等於\(0\)的,當\(Q、P\)相等的時候等於\(0\),不相等的時候一定大於\(0\)

為了讓\(Q、P\)兩個模型接近,所以必須使交叉熵最小

交叉熵中 \(m\) 是兩個概率模型裡事件更多的那個,換成 \(n\) 是圖片數量。

\(m\)選擇的解釋:假如\(p\)的事件數量是\(m\)\(q\)的事件數量是\(n\)\(m>n\),那麼寫成\(∑\)求和,用較大的\(m\)做上標。就可以分解為,\(∑1到n+∑n+1到m\),那麼對於\(q\)來說,因為\(q\)的數量只有\(n\),那麼對應的\(q\)的部分\(∑n+1到m\)都等於\(0\)

\[\begin{array}{l} \boldsymbol{H}(\boldsymbol{P}, \boldsymbol{Q}) \\ =\sum_{i=1}^{m} p_{i} \cdot\left(-\log _{2} q_{i}\right) \\ =\sum_{i=1}^{n} x_{i} \cdot\left(-\log _{2} q_{i}\right) \\ =-\sum_{i=1}^{n}\left(x_{i} \cdot \log _{2} y_{i}+\left(1-x_{i}\right) \cdot \log _{2}\left(1-y_{i}\right)\right) \end{array} \]

\(P\) 是基準,要被比較的概率模型,我們要比較的人腦模型,要麼完全是貓要麼不是貓。

\(x_{i}\) 有兩種情況,而 \(y_{i}\) 只判斷圖片有多像貓,並沒有去判斷相反的這個貓有多不像貓,而公式裡的 \(x_{i}\)\(q_{i}\) 要對應起來,當 \(x_{i}\)\(1\) ,要判斷多像貓,當 \(x_{i}\)\(0\) 的時候,要判斷不像貓的概率。

最後我們推匯出來,公式跟極大似然推匯出來的是一樣的。但是從物理角度去看兩者是有很大不同的,只是形式上的一樣。

  • 極大似然法裡的 \(log\) 使我們按習慣引入的,把連乘換成相加。而交叉熵的 \(log\) 是寫在資訊量定義裡的,以 \(2\) 為底,計算出來的單位是位元,是有量綱的。
  • 極大似然法求的是最大值,我們按習慣求最小值。而交叉熵負號是寫在定義裡的。

相關文章