### [AI / ML領域相關學習筆記入口頁面](https://hackmd.io/@YungHuiHsu/BySsb5dfp) --- # [ML] 機器學習基礎指標:Maximum Likelihood Estimation、Softmax、Entropy、KL Divergence ### **對數似然(Log Likelihood)與最大似然估計(Maximum Likelihood Estimation, MLE)**: 在給定一組獨立同分佈的樣本 $X = {x_1, x_2, \ldots, x_n}$ 和模型參數 $\theta$ 的情況下,似然函數 $L(\theta)$ 是樣本在參數 $\theta$ 下的聯合機率密度函數(或聯合機率質量函數),而對數似然函數 $\ell(\theta)$ 是似然函數 $L(\theta)$ 取對數后的結果。 $$ L(\theta) = P(X|\theta) = \prod_{i=1}^{n} P(x_i|\theta) $$ 對數似然函數的作用是簡化最大似然估計(MLE)的計算,因為對數可以將乘法轉換為加法,從而在計算上更為方便。通過對似然函數取對數,我們可以將樣本的機率估計轉換為對各個樣本的對數機率的求和。 $$ \ell(\theta) = \log L(\theta) = \sum_{i=1}^{n} \log P(x_i|\theta) $$ :writing_hand:將機率的乘法轉換為對數的加法,可以更方便地進行參數估計和優化 MLE的目標即是找到使得 $\ell(\theta)$ 達到最大值的參數 $\theta$。 ### **Softmax**: Softmax函數將一個實數向量轉換為一個機率分佈,用於多類別分類問題。對於向量 $z$,第 $i$ 個元素的Softmax為: $$ \sigma(z)_i = \frac{e^{z_i}}{\sum_{j} e^{z_j}} $$ - Sigmoid函數將一個實數映射到(0,1)區間,用於二元分類問題。Sigmoid可視為softmax的特例,並用公式推導簡化過程 $$ \sigma(x) = \frac{1}{1 + e^{-x}} $$ ### **Shannon熵(Shannon Entropy)與交叉熵(Cross-Entropy)**: - **Shannon熵**是衡量單個機率分佈不確定性的量。對於機率分佈 $p$,熵 $H(p)$ 為: $$ H(p) = -\sum_{i} p_i \log(p_i) $$ - **交叉熵**為衡量兩個機率分佈 $p$ 和 $q$ 之間的差異,公式為: $$ H(p, q) = -\sum_{i} p_i \log(q_i) $$ - 表示使用模型預測分佈 $q(x)$ 來近似目標分佈 $p(x)$ 時的平均編碼長度(推薦閱讀[ [ML/DL]從計算機編碼的角度看Entropy, Cross Entropy和KL-Divergence](https://meetonfriday.com/posts/216f7e20/)) - 為機器學習常用的Loss Function之一 - $p(x)$ 是目標分佈(例如真實標籤的分佈),但因為p的真實分布往往不可得,因此,學習領域會用q的分布去似,而 $q(x)$ 即是模型學習到的的預測分佈 :::info 當模型學習(編碼表示/壓縮)能力越強、學習到的機率分布$q(x)$越接近真實的目標分布$p(x)$,則得到的Cross-Entropy越小,表示模型的預測結果與真實標籤之間的差異越小,模型的性能越好 ::: - Softmax與Cross-Entropyas Loss Function之間的關係 ![image](https://hackmd.io/_uploads/Bk929da4p.png) source: [2018。Raúl Gómez blog。Understanding Categorical Cross-Entropy Loss, Binary Cross-Entropy Loss, Softmax Loss, Logistic Loss, Focal Loss and all those confusing names](https://gombru.github.io/2018/05/23/cross_entropy_loss/) ### **Kullback-Leibler Divergence (KL Divergence)**: ![image](https://hackmd.io/_uploads/S1LMnKhVp.png =400x) source: [2022.02。J. Rafid Siddiqui。Why Is Cross Entropy Equal to KL-Divergence?](https://towardsdatascience.com/why-is-cross-entropy-equal-to-kl-divergence-d4d2ec413864) KL Divergence是衡量兩個分佈之間差異的另一種方法,定義為目標分佈和模型預測分佈的交叉熵(Cross-Entropy,$H(p, q)$ )與目標分佈熵(Shannon Entropy,$H(p)$)之間的差異程度: $$ D_{KL}(p \parallel q) = H(p, q) - H(p) $$ :::info 在ML/DL領域中,KL Divergence 也可以理解為模型學習到的編碼方式/機率分布和真實的編碼方式/機率分布有落差時,偏誤的程度(編碼誤差) ::: 將上述的交叉熵和Shannon熵公式代入 KL 散度的定義中,我們得到: $$ D_{KL}(p \parallel q) = -\sum_x p(x) \log q(x) + \sum_x p(x) \log p(x) $$ 這裡,第一項是交叉熵 $H(p, q)$,第二項是目標分佈 $p(x)$ 的熵 $H(p)$。 簡化後,我們得到: $$ D_{KL}(p \parallel q) = -\sum_x p(x) \log q(x) + \sum_x p(x) \log p(x) = -\sum_x p(x) [\log q(x) - \log p(x)] = \sum_x p(x) \log \left( \frac{p(x)}{q(x)} \right) $$ KL 散度即表示這種近似(預測分布)相比於最優(即使用真實分佈 $p(x)$)所多出來的信息量(即loss)或 誤差程度。 換句話說,KL 散度是衡量使用一個非最佳分佈 $q(x)$ 來表示數據時相對於使用最佳分佈 $p(x)$ 所產生的信息損失。這個信息損失就是交叉熵和真實分佈的熵之間的差異。 - 以圖片壓縮的觀點來比喻 - 假設我們想要壓縮一張圖片的檔案大小,同時盡量保留圖像的細節和品質。我們可以將這個過程比喻為使用一個壓縮後的圖片機率分佈 $q(x)$ 來近似原始圖片機率分佈 $p(x)$。 - 我們希望找到一種壓縮演算法(編碼器),用較短而有效的編碼來表示這些像素點,即用更簡潔的方式來儲存圖像。减小文件大小同时盡量保留圖片重要细節。 - 當編碼器效率越好時,這時原始圖片$p(x)$與壓縮圖片$q(x)$的分布(資訊)就會近似、交叉熵與KL就會盡可能小、平均編碼長度會小 # Reference #### [2017.05。Andrew M. Webb。Cross Entropy and Log Likelihood](https://www.awebb.info/probability/2017/05/18/cross-entropy-and-log-likelihood.html) #### [2019.12。glassboxmedicine.com。MACHINE LEARNING Connections: Log Likelihood, Cross Entropy, KL Divergence, Logistic Regression, and Neural Networks](https://glassboxmedicine.com/2019/12/07/connections-log-likelihood-cross-entropy-kl-divergence-logistic-regression-and-neural-networks/) #### [202.02。Samuel Cheng。Understanding softmax, cross-entropy, and KL-divergence](https://medium.com/@phsamuel.work/understanding-softmax-cross-entropy-and-kl-divergence-31801a4ac099) #### [2020.02。YC Note。剖析深度學習 (2):你知道Cross Entropy和KL Divergence代表什麼意義嗎?談機器學習裡的資訊理論](https://ycc.idv.tw/deep-dl_2.html) #### [2019.09。meetonfriday.com。[ML/DL]從計算機編碼的角度看Entropy, Cross Entropy和KL-Divergence](https://meetonfriday.com/posts/216f7e20/)