全文共1268個字,36張圖,預計閱讀時間10分鐘。
關於logistic regression一些常見問題,整理出來,方便大家應對各種坑爹的面試官。
01
爲什麼用sigmoid函數?
the odds of experiencing an event
如果我們想預測每天股票漲多少,可以假設線性模型
要解決這個問題,我們先理解一個概念the odds of experiencing an event: 假設我們認爲股票漲的概率爲p,對於伯努利分佈而言,不漲的概率即爲1-p。那麼我們構造了p/(1-p),就是the odds of experiencing an event勝率,
趨向負無窮。這就又轉化爲可以用線性模型預測的問題了:即爲對數勝率。當我們堅信它會漲的情況下,p趨於1,
趨向正無窮;當我們堅信它不會漲的情況下,p趨向0,
趨於負無窮。這就又轉化爲可以用線性模型預測的問題了:
將
展開就可以得到:
。這就解釋了爲什麼說logistic regression是線性模型,因爲它的決策邊界是線性的;這就解釋了爲什麼想到了要用sigmoid作爲壓縮函數。
exponential model
就這一種辦法麼?當然不是: 假設第i個特徵對漲的貢獻是
,則記數據點(
,屬於漲的概率爲
,
正比於
;
假設第i個特徵對不漲的貢獻是
,則記數據點(
屬於不漲的概率爲
,正比於
所以,令漲=1則有:
,上下同除以
且令
,則依舊得到了
的sigmoid結果。
exponential family
如果大家對數學有點點研究的話,exponential family指出:如果一類分佈(a class of distribution)屬於exponential family,那麼它能寫成如下形式:
伯努利分佈可以寫成:
把後面的
展開,就有了sigmoid形式出現了:
對應上方的exponential family的形式,
,這不又回到了the odds of experiencing an event勝率的問題了嘛。
02
爲什麼要用交互熵做損失函數?
極大似然角度
我們假設預測結果服從伯努利分佈,那麼可以把一個case預測結果寫成:
其中
爲給定前提
下
率值要使當前參數下所有事情發生的概率最大,聯合分佈爲各邊緣分佈的乘積,得到:
其中
取log後方便計算:
這個就是我們最初的交互熵的形式。
信息熵角度
熵
用來衡量信息量大小,熵越大,越不穩定,信息量越大。
KL散度
用來衡量兩份數據的相似程度,KL散度越大,越不相似。
從公式上,我們就可以看出:
其實很好理解的,對應訓練數據traindata分佈,和未知的真實數據分佈越一致越好;同理,模型預測的分佈,和訓練數據traindata分佈也是越一致越好,所以用KL散度來度量就是一個不錯的方法。
至於爲什麼不直接最小化
而是選擇了最小化H(A,B),我是覺得就和交互熵求導前面加上1/2一樣,爲了簡化計算量,本質上是一致的。
原文鏈接:https://www.jianshu.com/p/61ac39a57f9d