雖然邏輯迴歸姓 迴歸,不過其實它的真實身份是二分類器。介紹完了姓,咱們來介紹一下它的名字,邏輯斯蒂。這個名字來源於邏輯斯蒂分佈:git
設X是連續隨機變量,X服從邏輯斯蒂分佈是指X具備下列的分佈函數和密度函數: 算法
上式中,μ 表示位置參數,γ>0 爲形狀參數。機器學習
有沒有發現F(x)是啥?有圖你就知道真相了:函數
有沒有發現右邊很熟悉?沒錯,就是sigmoid 曲線,這個曲線是以點( μ, 0.5) 爲中心對稱。從圖中能夠看出,曲線在中心附近增加速度較快,而形狀參數 γ 值越小,曲線在中心附近增加越快,請自行腦補一下。學習
sigmoid曲線有幾個特性:優化
1.x趨向正無窮時F(x)趨近於1atom
2.x趨向負無窮時F(x)趨近於0spa
3.x在0處爲0.5blog
它的這些特性,決定它很是適合用於看成基於機率的二項分類函數。相似的還有正態分佈的分佈函數,和它很是相似,若是選用正態分佈,則是貝葉斯邏輯迴歸(Bayesian logistic regression)。事件
邏輯斯諦迴歸的採用的是最大似然估計的思想。對於給定的訓練數據集T = {(x1, y1),(x2, y2),......(xn, yn)},咱們找到它的似然函數(即它發生的機率),若是能使似然函數取得最大值,那麼就是讓這個樣本發生的機率最大(這個機率是個聯合機率)。
咱們看一下邏輯迴歸的似然函數。
L(w)取得極大值,則須要yi爲1時,P(Y = 1 | x)儘可能的大,yi爲0時,P(Y = 1 | x)儘可能的小。
咱們的機率函數P(Y = 1 | x)爲
P (Y = 1 | x) 爲sigmod函數(等價形式),爲了使yi爲1時,P(Y = 1 | x)儘可能的大,yi爲0時,P(Y = 1 | x)儘可能的小。咱們須要調整w⋅x,使得yi 爲1時,w⋅x儘可能取比較大的值,位於原點右側較遠的地方,yi爲0時,w⋅x儘可能位於原點左側較遠的地方,即它發生的機率儘可能小。換句話說,咱們調整w⋅x使得yi爲1儘可能發生,爲0儘可能不要發生。這個時候似然函數取得最大值
借用andrew ng老師的圖
咱們要找到w⋅x = 0 這條曲線,使得樣本x儘可能被分紅兩部分,一類發生的機率儘可能大,另外一類機率儘可能小。樣本點與w⋅x = 0 的距離,即偏差,服從邏輯斯諦分佈。
一個事件的概率(odds):指該事件發生與不發生的機率比值,若事件發生機率爲p,那麼事件發生的概率就是
那麼該事件的對數概率(log odds或者logit)就是:
那麼,對邏輯迴歸而言,Y=1的對數概率就是:
也就是說,輸出Y=1的對數概率是由輸入x的線性函數表示的模型,這就是 邏輯迴歸模型。當 w⋅x的值越接近正無窮,P(Y=1|x) 機率值也就越接近1.
模型的數學形式肯定後,剩下就是如何去求解模型中的參數。在統計學中,經常使用極大似然估計法來求解,即找到一組參數,使得在這組參數下,咱們的數據的似然度(機率)最大。
設:
似然函數:
對數似然函數:
如今要求 w 使得L(w) 最大,有的人可能會有疑問:
在機器學習領域,咱們更常常遇到的是損失函數的概念,其衡量的是模型預測錯誤的程度。經常使用的損失函數有0-1損失,log損失,hinge損失等。一般是最小化損失函數,這裏爲啥求極大似然估計?
實際上,對數似然損失在單個數據點上的定義爲:
若是取整個數據集上的平均對數似然損失,咱們剛好能夠獲得:
即在邏輯迴歸模型中,咱們最大化似然函數和最小化對數似然損失函數其實是等價的。
接下來就是對L(w)求極大值(也可認爲是求J(w)的最小值),獲得w的估計值。邏輯迴歸學習中一般採用的方法是梯度降低法 和 牛頓法。
[先跑個題],講到求極值的方法,忽然想到有幾個可視化的gif圖,可以很直觀地體現各類算法的優劣,好東西固然要分享了。
Imgur 網友經過可視化方法,對比了SGD, momentum, Nesterov, AdaGrad, AdaDelta,
RMSProp等優化算法在Long Valley, Beale’s Function及Saddle Point狀況下的性質。
Long Valley:
Beale’s Function:
Saddle Point:
之後會專門寫一篇來說求極值的方法,這是題外話了,咱們仍是繼續迴歸邏輯吧,哈哈。
下面介紹使用梯度降低法來求解邏輯迴歸問題。
算法(梯度降低法求解邏輯迴歸)
輸入:目標函數:J(w)(對數似然損失函數),梯度函數: g(w)=∇J(w), 計算精度ϵ
輸出:J(w) 的極小值點 w∗
過程:
(1) 取初始值 w0∈Rn, 令k=0
(2) 計算J(wk)
(3) 計算梯度 gk=g(wk)=∇J(w)
若||gk||<ϵ ,中止迭代,令
不然,令pk=−g(wk),求λk,使得
(4) 令wk+1=wk+λkpk,計算 J(wk+1)
當||J(wk+1)−J(wk)||<ϵ 或 ||wk+1−wk||<ϵ,中止迭代,令
(5) 不然,令k=k+1,轉(3).
當模型的參數過多時,很容易遇到過擬合的問題。而正則化是結構風險最小化的一種實現方式,經過在經驗風險上加一個正則化項,來懲罰過大的參數來防止過擬合。
正則化是符合奧卡姆剃刀(Occam’s razor)原理的:在全部可能選擇的模型中,可以很好地解釋已知數據而且十分簡單的纔是最好的模型。
咱們來看一下underfitting,fitting跟overfitting的狀況:
顯然,最右這張圖overfitting了,緣由多是能影響結果的參數太多了。典型的作法在優化目標中加入正則項,經過懲罰過大的參數來防止過擬合:
p=1或者2,表示L1 範數和 L2範數,這二者仍是有不一樣效果的。
L1範數:是指向量中各個元素絕對值之和,也有個美稱叫「稀疏規則算子」(Lasso regularization)。那麼,參數稀疏 有什麼好處呢?
L2範數:它有兩個美稱,在迴歸裏面,有人把有它的迴歸叫「嶺迴歸」(Ridge Regression),有人也叫它「權值衰減」(weight decay)。
接下來咱們思考一下爲何L1範式會產生稀疏性。
假設代價函數 L 與某個參數 x 的關係如圖所示:
則最優的 x 在綠點處,x 非零。
如今施加 L2 regularization,新的代價函數()如圖中藍線所示:
施加L2範式的實質是在原來函數曲線上上移一個拋物線的位移,雖然拋物線在0處取得最小值,可是拋物線在0處過於平緩。最優的 x 在黃點處,x 的絕對值減少了,但依然非零。
而若是施加 L1 regularization,則新的代價函數()如圖中粉線所示: