剖析深度學習 (4):Sigmoid, Softmax怎麼來?為什麼要用MSE和Cross Entropy?談廣義線性模型
Posted on March 14, 2020 in AI.ML. View: 26,630
深度學習發展至今已經有相當多好用的套件,使得進入的門檻大大的降低,因此如果想要快速的實作一些深度學習或機器學習,通常是幾行程式碼可以解決的事。但是,如果想要將深度學習或機器學習當作一份工作,深入了解它背後的原理和數學是必要的,才有可能因地制宜的靈活運用,YC準備在這一系列當中帶大家深入剖析深度學習。
學習一段時間深度學習的你是不是有一個疑惑:
- Activation Function為什麼要用Sigmoid和Softmax?
- Loss Function為什麼要用MSE和Cross Entropy?
- 其他狀況要用什麼?
當然你可以把它們看作是個合理定義,
但是學習深度就端看你是不是可以用最少的定義表示最多的東西
如果你仔細google一下就會發現有一個相關名詞—廣義線性定理,但是大部分的文章和教材都沒辦法將它講的很清楚,原因是因為沒有先介紹「充分統計量」的概念。
在本講你會學到如何用「充分統計量」來說明在廣義線性定理中的Canonical Link Function,進而推導出Activation Function,你會學到如何藉由MLE和MAP來推導出Loss Function,學完以後你會對Activation Function和Loss Function有更深的認識。
這一篇我可以非常自豪的說,網路上的資料在這個議題上找不到寫的比我更詳細的,這是我看過很多書和教材融會貫通而成的,請大家一定要看到最後,必定收穫滿滿。
前情提要
上一講中我們清楚的了解頻率學派和貝氏學派各自的觀點,並且從兩者觀點出發去探討機器學習問題。
頻率學派使用Maximum Likelihood Estimation (MLE) 來優化,優化關係式如下:
此式等價於最小化Data與Model之間的Cross Entropy,或等價於最小化Data與Model之間的KL Divergence,與第二講的資訊理論完美契合。
貝氏學派則使用Maximum A Posterior (MAP) 來優化,優化關係式如下:
除了第一項與MLE一樣之外,我們還需要考慮第二項,此項考慮了參數的出現分布,當參數分布是均等時,MAP和MLE是等價的。但是我們希望 \(\theta\) 可以接近0,所以一般會去假設 \(p(\theta\mid m)\) 為一個Variance有限且平均值為0的分布,如果選擇使用Normal Distribution,則會得到L2 Regularization Term;如果選擇用Laplace Distribution,則會得到L1 Regularization Term。
所以接下來要讓機器可以學習只剩下最後一哩路,如何將【1】或【2】變換成擬合問題呢?
其實只需要找到合適的分布代入 \(p(y_i\mid x_i,m,\theta)\) 就可以了。
充分統計量 (sufficient statistic)
在這之前要引入一個重要的統計工具,那就是「充分統計量」。
什麼「充分統計量」呢?Wiki的定義是
在統計學中,關於一個統計模型和其相關的未知參數的充分統計量是指「沒有任何其他可以從同一樣本中計算得出的統計量可以提供任何有關未知參數的額外信息」。
其數學表示式為:
其中:\(f_\theta(.)\)為你的Model假定的分布,當中包含決定Model的參數\(\theta\);\(y_1,y_2,..,y_n\) 為多筆資料;\(T(.)\) 稱為充分統計量,可以是一個單值或矩陣,它可以讓唯一包含 \(\theta\) 資訊的 \(g_\theta\) 不在直接depend on \(y_i\),而是depend on \(T(.)\) ,也因此做到了「沒有任何其他可以從同一樣本中計算得出的統計量可以提供任何有關未知參數的額外信息」,因為唯一包含未知參數 \(\theta\) 的 \(g_\theta(.)\) 只需要 \(T(.)\) 當作Input,其餘的統計量皆不需要,此時我們會稱 \(T\) 為充分統計量。
還是以我們相當熟悉的Normal Distribution當作例子 (如果不熟悉,請詳見第一講) :
當我定義兩個充分統計量 \(S_1=\sum_iy_i\) 和 \(S_2=\sum_iy_i^2\) ,所以充分統計量為
代入得:
此時整個分布都不需要depend on \(y_i\) ,只depend on 充分統計量 \(T(.)\)。
將【5】式取 \(\operatorname{ln}\) ,就得到它的log probability:
這樣分離有什麼好處?好處是當我們需要Maximum \(\operatorname{ln}p_{\theta}(y_1,y_2,..,y_n)\) 時事情會變得容易。
假設我想利用數據 \(y_1,y_2,..,y_n\) 找一組參數 \(\theta\) 使 \(\operatorname{ln}p_{\theta}(y_1,y_2,..,y_n)\) 最大:
其優化式為:
所以:
這個關係式就足以讓我們找到最佳的 \(\theta^*\) ,而其只與充分統計量 \(\{T(...)\}\) 有關,也就是說:當我從數據當中統計出充分統計量 \(\{T(...)\}\) 就足以讓我找到最佳的Model參數。
繼續剛剛的例子,將【6】代入【7】就可以得到Model的最佳參數:
是不是跟我們之前學的東西是自恰的啊!
現在你知道我不得不提「充分統計量」這個概念的原因了吧!
有了「充分統計量」的概念,拿到一個分布你可以清楚的知道:我需要哪些必要的統計量才可以擬合這個分布,並且可以透過Maximun Log Probability輕易的找到這些充分統計量對應的Model變數。
廣義線性模型(Generalized Linear Models, GLM)
如果你看其他的介紹文章,通常會先講古典線性模型,再講廣義線性模型,我這邊會反過來講,因為古典線性模型只是廣義線性模型的特例 — 當假設Normal Distribution時,所以只要真正搞懂廣義線性模型,古典線性模型也就懂了。
我們手上現在會有兩個東西:分布模型和線性擬合模型
- 分布模型:就是 \(p(y_i\mid x_i,m,\theta)\),搭配優化準則MLE和MAP就可以找最佳參數
- 擬合模型:寫作為 \(h(x_i,m,\theta)=\theta^0+\sum_k \theta_i^kx_i^k \ \ ↪︎【10】\)
如何將這兩者連繫起來呢?我們透過Mean \(\mu\) 和 Link Function \(g(.)\) 來做到:
其中:擬合模型 \(h(x_i,m,\theta)\) 負責擬合Mean經Link Function \(g(.)\) 轉換後的值。這個Link Function \(g(.)\) 其實限制很少,只需要符合兩點即可:
- Link Function必須是單調遞增(monotonic)
- Link Function的值域必須能夠覆蓋理論分布的空間
所以接下來作法就容易了,只要依以下步驟:
- 決定好分布模型 \(p(y_i\mid x_i,m,\theta)\) 且決定好Link Function \(g(.)\)
- 算出模型的Mean並透過Link Function來連接Mean和擬合模型: \(\mu=E_{y\sim p(y_i\mid x_i,m,\theta)}[y]=g^{-1}(h(x_i,m,\theta))\)
- 用上面的關係式將 \(h(x_i,m,\theta)\) 代換到 \(p(y_i\mid x_i,m,\theta)\) 裡
- 利用MLE和MAP來找尋最佳參數 \(\theta\)
古典線性模型
接下來我們就來演示一下廣義線性模型的特例—古典線性模型,古典線性模型使用Normal Distribution當分布模型 \(p(y_i\mid x_i,m,\theta)\),並且使用Identity Function當作 Link Function \(g(.)\) 。
- 使用Normal Distribution和Identity Link Function
$$ p(y_i\mid x_i,m,\theta)=\frac{1}{\sqrt{2\pi}\sigma}exp\{{-\frac{1}{2\sigma^2}(y_i-\mu)^2}\} \ \ ↪︎【13】 $$
-
算出模型的Mean並透過Link Function來連接Mean和線性擬合模型
$$ \mu=g^{-1}(h(x_i,m,\theta))=h(x_i,m,\theta) \ \ ↪︎【15】 $$ -
用上面的關係式將 \(h(x_i,\theta)\) 代換到 \(p(y_i\mid x_i,m,\theta)\) 裡
$$ p(y_i\mid x_i,m,\theta)=\frac{1}{\sqrt{2\pi}\sigma}exp\{{-\frac{1}{2\sigma^2}(y_i-h(x_i,m,\theta))^2}\} \ \ ↪︎【16】 $$ -
利用MLE和MAP來找尋最佳參數 \(\theta\) 將【16】式代入【1】式,經化簡可得:
$$ \theta_{MLE}=argmax_\theta\ \sum_{i}\ -\frac{1}{2\sigma^2}(y_i-h(x_i,m,\theta))^2 \ \ ↪︎【17】 $$因為擬合模型只對 \(\mu\) 感興趣,所以這裡令 \(\sigma^2=1\) ,得:$$ \theta_{MLE}=argmin_\theta\ \sum_{i}\ \frac{1}{2}(y_i-h(x_i,m,\theta))^2 \ \ ↪︎【18】 $$
上面的式子就是Loss Function為Mean Squared Error (MSE) 的Regression,它背後假設的分布就是Normal Distribution。
這裡的 \(h(x_i,m,\theta)\) 可以是線性的,當然如果將feature space先作非線性轉換得 \(z_i\) 再代入得 \(h(z_i,m,\theta)\) 也可以是非線性的,當然 \(h(z_i,m,\theta)\) 可以是Neural Network,先用前面幾層Hidden Layers做非線性轉換,在拿轉換後的結果與數據做線性擬合。其中:\(m\) 代表的是Network的Hyperparameters,包括:Network的結構、Learning Rate的大小、Batch Size、...等等;而 \(\theta\) 則是Network中需要學習的權重。
接下來我要問一個問題:
其他分布能使用古典線性模型嗎?
假設今天是Binary Classification的問題,則其分布不再是Normal Distribution,而是Bernoulli Distribution:
其中:\(y_i \in \{0,1\}\),\(\pi\) 代表 \(y_i=1\) 的機率。
一樣假設Identity Function當作 Link Function \(g(.)\)
這樣對嗎?其實是錯誤的。Link Function沒有對應到正確的值域,所以 \(h(x_i,m,\theta)\) 可以是整個實數空間,而 \(\pi\) 卻只能是落在0到1之間,等式不能成立。
所以古典線性模型並不能適用於非Normal Distribution,我們必須找其他合適的Link Function。
事實上,認真找可以找到若干個正確符合的 Link Function,但是只有唯一一種Link Function符合讓Mean符合「充分統計」,這就是 Canonical Link Function。而其他符合的 Link Function 則稱為 Non-Canonical Link Function。
指數族分布(Exponential Family)與 Canonical Link Function
要談Canonical Link Function就必須要談「指數族分布」,指數族分布很好的囊括了常見的分布,包括:Normal Distribution、Bernoulli Distribution、Poisson Distribution、...等等,而且還具備了許多良好的性質。
指數族分布定義如下:
其中:
- \(\eta\) : Natural Parameters or Linear Predictor
- \(A(\eta)\): Log Partition Function or Log Normalizer
- \(T(y)\): sufficient statistics (充分統計量),通常的分布是 \(T(y)=y\)
- \(h(y)\): base measure
因為機率加總為1,所以 \(A(\eta)\) 的型式是受其他變數的影響:
然後指數族分布有一些重要的數學關係式(證明詳見此篇)
列下考慮多筆Data的情況:
仔細觀察【24】式和【3】式:指數族分布的 \(T(y)\) 符合「充分統計」,你會發現 \(exp\{.\}\) 這裡對映到的是 \(g_\theta\) 。
所以我們可以依循著剛剛的套路找到最佳參數與統計量的對映,使用【7】式:
因此指數族分布隱含著一個相當好的特性:在最好的參數 \(\eta^*\) 之下,分布對 \(T(y)\) 的期望值就等同於你量測 \(T(y_i)\) 的平均值,而且 \(T(y_i)\) 還是一個充分統計量,也就是說你已經不需要其他統計量了。
當 \(T(y)=y\) (大部分情形都是),可得與Mean的關係式:
因此我們建立了 Mean \(\mu\) 和 \(\eta\) 的關係,假設:
其中: \(g^{-1}(.)\) 就是大名鼎鼎的 Activation Function 。
此時,讓 \(\eta=h(x_i,m,\theta)\),則Link Function \(g(.)\) 稱為Canonical Link Function:
在符合指數族分布的情況下,採用 \(\eta\) 和 Canonical Link Function,會讓Mean變成為充分統計量,這意味著我們很有效率的使用著數據。
現在我們可以回頭加深觀念:為什麼在古典模型當中會選擇 Identity Link Function 呢?因為對於Normal Distribution而言,Identity Link Function 是 Canonical Link Function。
對應【20】式得:
-
$$ h(y)=\frac{1}{\sqrt{2\pi}} \ \ ↪︎【30】 $$
-
$$ \eta=\begin{bmatrix} \mu/\sigma^2 \\ -1/2\sigma^2 \end{bmatrix} \ \ ↪︎【31】 $$
-
$$ T(y)=\begin{bmatrix} y \\ y^2 \end{bmatrix} \ \ ↪︎【32】 $$
-
$$ A(\eta)=\operatorname{ln}\sigma+\frac{1}{2\sigma^2}\mu^2=-\frac{1}{2}\operatorname{ln}(-2\eta_2) -\frac{\eta_1^2}{4\eta_2} \ \ ↪︎【33】 $$
再代入【20】式找 Link Function:
有兩項充分統計量,所以要擬合一個Normal Distribution需要兩個統計量(其實我們剛才我們已經知道)。但是對於線性模型我們只需要 Mean \(\mu\) ,所以我們只考慮第一項:
得證,確實古典模型在使用Normal Distribution時選擇的 Identity Link Function 是Canonical Link Function。
Binary Classification:從GLM推出Sigmoid和(狹義的)Cross Entropy
再重新來看Bernoulli Distribution。
再寫一次【19】式:
對應【20】式得:
- \(h(y)=1 \ \ ↪︎【37】\)
- \(\eta=\operatorname{ln}(\frac{\pi}{1-\pi}) \ \ ↪︎【38】\)
- \(T(y)=y \ \ ↪︎【39】\)
- \(A(\eta)=-\operatorname{ln}(1-\pi)=ln(1+e^\eta) \ \ ↪︎【40】\)
再代入【20】式找 Canonical Link Function:
其中: \(\frac{1}{1+e^{-\eta}}\) 就是Sigmoid Function,計作 \(\sigma(.)\)
上式就是我們擬合的關係式, \(h(x_i,m,\theta)\) 可以是線性方程式,也可以是Neural Network,然後有注意到嗎?Sigmoid 剛剛好是 \(h(x_i,m,\theta)\) 輸出後的最後一層,我們使用廣義線性定理就自然而然的得到Activation Function,這就是為什麼在Binary Classification問題中NN最後一層是Sigmoid的原因 。
接下來就按步驟求出最佳參數:
- 使用Bernoulli Distribution和相應的 Canonical Link Function
$$ p(y_i\mid x_i,m,\theta)=\pi^{y_i}(1-\pi)^{1-y_i} \ \ ↪︎【43】 $$
-
算出模型的Mean並透過Link Function來連接Mean和線性擬合模型
$$ \pi=g^{-1}(h(x_i,m,\theta))=\sigma (h(x_i,m,\theta) ) \ \ ↪︎【45】 $$ -
用上面的關係式將 \(h(x_i,\theta)\) 代換到 \(p(y_i\mid x_i,m,\theta)\) 裡
$$ p(y_i\mid x_i,m,\theta)=(\sigma (h(x_i,m,\theta) ))^{y_i}(1-\sigma (h(x_i,m,\theta) ))^{1-y_i} \ \ ↪︎【46】 $$ -
利用MLE和MAP來找尋最佳參數 \(\theta\) 將【46】式代入【1】式,經化簡可得:
$$ \theta_{MLE}=argmin_\theta\ \sum_{i}\ -y_i \operatorname{ln}(p_i)-(1-y_i)\operatorname{ln}(1-p_i) \ \ ↪︎【47】 $$其中: \(p_i=\sigma (h(x_i,m,\theta))\)。沒錯!我們推出了(狹義的)Cross Entropy。
Multi-class Classification:從GLM推出Softmax和(狹義的)Cross Entropy
Categorical Distribution的分布:
將第二個 \(\sum\) 猜開放到前一個\(\sum\) 裡:
對應【20】式得:
- \(h(y)=1 \ \ ↪︎【49】\)
- \(\eta_j=\operatorname{ln}\frac{\phi_j}{\phi_k};\ \ \ (j=1,...,k-1) \ \ ↪︎【50】\)
- \(T_j(y)=\delta(y=j) \ \ ↪︎【51】\)
- \(A(\eta_1,...,\eta_{k-1})=-\operatorname{ln}\phi_k=\operatorname{ln}[\sum_{j=1}^{k}e^{\eta_j}] \ \ ↪︎【52】\)
[堆導] \(A(\eta_j)\) 的計算過程,從【50】式出發:
胡亂假設 \(\phi_k\) 存在,接下來加總所有的 \(\phi_j\) 應該為 1:
所以:
回代【53】式,得:
剛剛我雖然胡亂假設有\(\phi_k\)的存在,不過做完的結果並不違和,\(e^{\eta_j}\) 作為各項的機率,並且除上所有機率的相加 \(\sum_{j=1}^{k}e^{\eta_j}\),可以確保所有機率總和為 \(\sum_{j=1}^{k}\phi_j=1\) 。所以:
將【52】式代入【20】式找 Canonical Link Function:
其中: \(\frac{e^{\eta_j}}{\sum_{j=1}^{k-1}e^{\eta_j}}\) 就是Softmax Function,計作 \(softmax\{.\}\)
接下來就按步驟求出最佳參數:
- 使用Categorical Distribution和相應的 Canonical Link Function
$$ p(y_i\mid x_i,m,\theta)=\prod_{j=1}^{k}\phi_j^{\delta(y_i=j)} \ \ ↪︎【60】 $$
-
算出模型的Mean並透過Link Function來連接Mean和線性擬合模型
$$ \phi_j=g^{-1}(h(x_i,m,\theta))=softmax\{h_j(x_i,m,\theta)\} \ \ ↪︎【62】 $$ -
用上面的關係式將 \(h(x_i,\theta)\) 代換到 \(p(y_i\mid x_i,m,\theta)\) 裡
$$ p(y_i\mid x_i,m,\theta)=\prod_{j=1}^{k}softmax\{h_j(x_i,m,\theta)\}^{\delta(y_i=j)} \ \ ↪︎【63】 $$ -
利用MLE和MAP來找尋最佳參數 \(\theta\) 將【63】式代入【1】式,經化簡可得:
$$ \theta_{MLE}=argmin_\theta\ \sum_{i}\sum_{j} -\delta(y_i=j)\operatorname{ln}p_{i,j} \ \ ↪︎【64】 $$其中: \(p_{i,j}=softmax\{h_j(x_i,m,\theta)\}\)。我們也推出了Multi-class Cross Entropy。
結論
恭喜大家堅持到這裡,應該會收穫不少。以後別人問你為什麼使用Mean Square Error?為什麼這裡要加Sigmoid?為什麼這裡要用 (狹義的) Cross Entropy?為什麼這裡卻要用Softmax?你都可以輕易的回答,甚至給你另外一個Distribution,例如:Possion Distribution,你也可以推出它的Canonical Link Function,也可以知道應該要用什麼樣的Loss去優化,你已經融會貫通了!
再複習一下!
為了將上章節提到的MLE和MAP化作擬合問題實際用數據去訓練Model,我們需要廣義線性定理,廣義線性定理必須藉由 Link Function 來連接擬合模型和分布模型,這樣就可以藉由MLE和MAP來優化擬合模型內的參數, Link Function 的限制只有兩條:單調遞增和值域覆蓋。
但是任意取的話,其平均值不一定是模型的「充分統計量」,而當 Link Function 為 Canonical Link Function時,平均值正是「充分統計量」,因此意味著我們可以很有效率的使用著數據,而Canonical Link Function的反函數正是大名鼎鼎的Activation Function,所以在廣義線性模型的推導中自然會得到:
- Regression問題時,Normal Distribution使用Linear當Activation Function
- Binary Classification問題時,Bernoulli Distribution使用Sigmoid當Activation Function
- Multi-class Classification問題時,Categorical Distribution使用Softmax當Activation Function
當定義完成含有擬合參數的分布模型後,我們就可以用MLE或MAP來找到擬合的優化方式:
- Regression問題時,使用Mean Square Error
- Binary Classification問題時,使用(狹義的)Cross Entropy
- Multi-class Classification問題時,使用 Multi-class Cross Entropy
所有這些以前不加解釋的東西,都可以由廣義線性定理推導出來。
Reference
- Ian Goodfellow and Yoshua Bengio and Aaron Courville. Deep Learning. 2016.
- Christopher Bishop. Pattern Recognition and Machine Learning. 2006.
- ML notes: why the Least Square Error?
- Introduction: exponential family, conjugacy, and sufficiency
- Generalized Linear Models
- towardsdatascience: Generalized linear models
- https://stats.stackexchange.com/questions/40876/what-is-the-difference-between-a-link-function-and-a-canonical-link-function
- Wiki: Exponential family
- http://statmath.wu.ac.at/courses/heather_turner/glmCourse_001.pdf
- http://zhouyichu.com/machine-learning/Generalized-Linear-Models/
- http://www.airc.org.tw/newsfiles/r.pdf
- https://www.flutterbys.com.au/stats/tut/tut10.4.html
- https://stats.stackexchange.com/questions/40876/what-is-the-difference-between-a-link-function-and-a-canonical-link-function
- https://stats.stackexchange.com/questions/288451/why-is-mean-squared-error-the-cross-entropy-between-the-empirical-distribution-a
- https://ithelp.ithome.com.tw/articles/10200862
- Chapter 7 & 8 Sufficient Statistics & More about Estimation
- https://beginningwithml.wordpress.com/2018/06/22/3-4-softmax-regression/
[此文章為原創文章,轉載前請註明文章來源]
- 20200603: 修正從【4】到【9】式的公式錯誤(感謝 俊嘉 細心的揪出公式的錯誤)