【機器學習基礎】Logistic回歸基礎

jopen 9年前發布 | 36K 次閱讀 機器學習

soft binary classification

Logistics回歸模型要解決的是分類問題,在之前的二元分類問題中,我們將數據分成正例和負例,但是像PLA算法一樣,用單位階躍函數來處理的這種瞬間跳躍的過程有時很難處理。于是,我們希望能得到正例的概率值是多少。

【機器學習基礎】Logistic回歸基礎

logistic regression的假設

我們在PLA和線性回歸算法中都用數據的加權來計算一個分數s,在logistic回歸中,我們用sigmoid函數來將這個分數s轉化成0到1的概率值。

【機器學習基礎】Logistic回歸基礎

所以,用下面的h(x)來表示一個假設,而這個logistic函數θ(x)就是θ(x)=1/[1+exp(-x)](該函數平滑且處處可微)。

【機器學習基礎】Logistic回歸基礎

logistic regression的訓練誤差函數

我們設想目標函數f(x) = P(+1|x),這里數據的正例和負例的概率分布其實是一個伯努利分布。那么,如果我們的假設h(x)要逼近f(x)函數,那么對于訓練數據D,由h構成的似然度應該近似等于從這個伯努利分布中抽取數據的概率。

【機器學習基礎】Logistic回歸基礎

那么我們要求的最終假設g就是使得這個似然度最大的h。

【機器學習基礎】Logistic回歸基礎

接下來,我們來衡量這個可能性(likelihood),這里將數據的先驗概率P(xi)化成灰色,因為它對于所有的數據來說都是一樣的,所以相當于是一 個常數,整理一下,我們可以看到這個可能性正比于所有的h乘起來的結果(其中h(ynxn)包含了h(xi)和h(-xi)的情形)。

【機器學習基礎】Logistic回歸基礎

cross entropy error

下面的圖片告訴了我們,如何將這個可能性的式子進行化簡,使得我們在后面的計算變得容易。我們用θ(·)函數代替了h,將式子取對數使得乘積的形式變成求和的形式,最后再添一個負號,將最大似然函數的形式變成了求解最小值的最優化問題。

【機器學習基礎】Logistic回歸基礎

這里,我們定義了交叉熵誤差來衡量我們的訓練誤差。

【機器學習基礎】Logistic回歸基礎

最小化誤差函數

我們得到了訓練誤差的具體形式,由于這個訓練誤差函數是可微并且是凸函數,所以依照之前的思路,對這個函數求梯度。

【機器學習基礎】Logistic回歸基礎

我們要使得梯度為0,這里雖然我們得到了求取w的數學式子,但是這個式子并不是一個閉合的公式,無法像線性回歸一樣直接求解一個矩陣來得到解,那么如何找到滿足這個條件的w呢?

梯度下降法

讓我們回想一下PLA演算法中求w的過程,是通過錯分的數據來一步一步修正的,從而得到最終的w。
這里,我們可以按照類似的思路,一步一步的去修正w,使得Ein的結果越來越小。
在logistic回歸中,Ein的式子是平滑的。現在我們可以將這個Ein想象成一個山谷,我們要到達山谷的最低點,就是要沿著當前的梯度最大的方向每次邁出一小步,直到到達谷底,使得Ein最小,得到最佳解w。

線性近似

要確定一個w使得Ein最小,不可能一步到位,指導思路還是由繁化簡,用線性近似(linear approximation)的方式來解決問題,我們用多維度的泰勒展開公式來近似Ein,只要給定一個小的η,就可以近似這個Ein。

【機器學習基礎】Logistic回歸基礎

這里Ein(wt)和η都是已知的,Ein的梯度表示了下降的方向,也可以求出來,唯一要考慮的就是最好的向量v該如何選擇。

【機器學習基礎】Logistic回歸基礎

梯度下降

對于v和Ein的梯度這兩個向量,使得其值是最小的方法就是讓v向量的方向和Ein的梯度的方向想法,這樣使得兩個向量的內積是最小的,另外由于v的模是1,還需要有個歸一化的步驟。

【機器學習基礎】Logistic回歸基礎

由于η和▽Ein(wt)的模都是一個常數,可以將其化簡成為一個新的η',也可以用常數η來表示。

【機器學習基礎】Logistic回歸基礎

這樣我們就得到了logistic回歸求解最優化解的步驟。

【機器學習基礎】Logistic回歸基礎

隨機梯度下降法(Stochastic Gradient Descent)

在上一小節的梯度下降法的介紹中,我們知道在每一輪迭代中,計算梯度時要把所有的點對梯度的共享都要計算出來m,如下圖所示:

【機器學習基礎】Logistic回歸基礎

這里在每一輪的時間復雜度都是O(N),這樣看起來是有些麻煩費時的。那有沒有一種方法可以將每一輪的時間復雜度降為O(1)呢?
如上一節,我們每一次的要更新的v都是要和所算的梯度是反方向的,但是我們能不能通過一個點(xn,yn)而不是N個點來得到這個v呢?
我們可以將求和再除以N的過程想象成一個隨機過程的平均,將這個期望用隨機的一個抽樣來代替。所以這里不是一個真正的梯度,而是在一個點上對err函數做偏微分,把整體的梯度看做是這個隨機過程的期望值。

【機器學習基礎】Logistic回歸基礎

這樣,我們可以將隨機梯度看做是真正的梯度減去隨機的噪聲,但是從期望值來說,可能和之前想要走的方向沒有太大差別。

【機器學習基礎】Logistic回歸基礎

所以我們得到了隨機梯度下降的方法,這種方法的優點是比較簡單,適合在線學習和大量的數據的情形,缺點是穩定性不好,尤其是η太大的話,可能情況很糟糕,所以這里的η經驗上取0.1會比較好。

【機器學習基礎】Logistic回歸基礎

其最終的表達式如下:

【機器學習基礎】Logistic回歸基礎

參考資料

機器學習基石課程,林軒田,臺灣大學

轉載請注明作者Jason Ding及其出處
Github主頁(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
簡書主頁(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!