1. 程式人生 > >機器學習算法 --- 邏輯回歸及梯度下降

機器學習算法 --- 邏輯回歸及梯度下降

叠代 eight 二分 計算 gif 參數 mode model 推導

一、邏輯回歸簡介

  logistic回歸又稱logistic回歸分析,是一種廣義的線性回歸分析模型,常用於數據挖掘,疾病自動診斷,經濟預測等領域。

  logistic回歸是一種廣義線性回歸(generalized linear model),因此與多重線性回歸分析有很多相同之處。

  其公式如下:

        技術分享圖片

  其圖像如下:

        技術分享圖片

  我們通過觀察上面的圖像可以發現,邏輯回歸的值域為(0, 1),當輸入為0時,其輸出為0.5;當輸入小於0,並且越來越小時,其輸出越來越接近於0;相反的,當其輸入大於0,並且越來越大時,其輸出越來越接近於1。

  通常我們使用線性回歸來預測值,但邏輯回歸隨有“回歸”二字,卻通常是用來解決二分類問題的。

  當其輸出大於0.5時,我們可以認為該樣本屬於甲類;小於0.5時,認為該樣本屬於已類。

  但是由於一個樣本數據通常會有多個特征,我們不能將其直接帶入logistic回歸公式中,所以,就需要借助之前所介紹的線性回歸,使該樣本的多個特征值生成一個特定的值,在帶入公式中,對其分類,所以z的表達式如下:

    技術分享圖片

  即可得到對於一個數據關於邏輯回歸的詳細表達式:

    技術分享圖片

  通過上式,我們就可以對一個任意數據進行邏輯回歸分析了,但是這當中存在一個問題,即關於θ的取值,只有公式中的θ已知,我們才能對一個未分類的數據運用此公式,那麽該如何求得θ呢?

請看下面的公式推導。

二、Logistic Regression公式推導

  在上面,我們得到 技術分享圖片 後,需要求得θ,關於如何求得θ,將在此進行詳細分析。

  通常在機器學習中,我們常常有一個過程叫訓練,所謂訓練,即通過已知分類(或標簽)的數據,求得一個模型(或分離器),然後使用這個模型對未知標簽的數據打上標簽(或者對其進行分類)。

  所以,我們使用樣本(即已知分類的數據),進行一系列的估算,得到θ。這個過程在概率論中叫做參數估計。

  在此,我們將使用極大似然估計的推導過程,求得關於計算θ的公式:

    (1) 首先我們令:

      技術分享圖片

    (2) 將上述兩式整合:

      技術分享圖片  

    (3) 求其似然函數:

      技術分享圖片

    (4) 對其似然函數求對數:

      技術分享圖片

    (5) 當似然函數為最大值時,得到的θ即可認為是模型的參數。求似然函數的最大值,我們可以使用一種方法,梯度上升,但我們可以對似然函數稍作處理,使之變為梯度下降,然後使用梯度下降的思想來求解此問題,變換

  的表達式如下:

      技術分享圖片 (由於乘了一個負的系數,所以梯度上升變梯度下降。)

    (6) 因為我們要使用當前的θ值通過更新得到新的θ值,所以我們需要知道θ更新的方向(即當前θ是加上一個數還是減去一個數離最終結果近),所以得到J(θ)後對其求導便可得到更新方向(為什麽更新方向這麽求?以及得到更新方向後為什麽按照下面的式子處理?請看下方的梯度下降公式的演繹推導),求導過程如下:

      技術分享圖片

    (7) 得到更新方向後便可使用下面的式子不斷叠代更新得到最終結果。

      技術分享圖片

三、梯度下降公式的演繹推導

  關於求解函數的最優解(極大值和極小值),在數學中我們一般會對函數求導,然後讓導數等於0,獲得方程,然後通過解方程直接得到結果。但是在機器學習中,我們的函數常常是多維高階的,得到導數為0的方程後很難直接求解(有些時候甚至不能求解),所以就需要通過其他方法來獲得這個結果,而梯度下降就是其中一種。

  對於一個最簡單的函數:技術分享圖片, 我們該如何求出y最小是x的值呢(不通過解2x = 0的方法)?  

技術分享圖片

    (1) 首先對x任取一個值,比如x = -4,可以得到一個y值。  

技術分享圖片

    (2) 求得更新方向(如果不求更新方向對x更新,比如x-0.5,或x+0.5,得到圖像如下)。

技術分享圖片

      可以發現,我們如果是向負方向更新x,那麽我就偏離了最終的結果,此時我們應該向正方向更新,所以我們在對x更新前需要求得x的更新方向(這個更新方向不是固定的,應該根據當前值確定,比如當x=4時,應向負方向更新)

      求其導函數在這一點的值,y‘ = 2x,x = -4, y‘ = -8,那麽它的更新方向就是y‘,對x更新我們只需x:=x-α·y‘(α(大於0)為更新步長,在機器學習中,我們叫它學習率)。

      PS:之前說了是多維高階方程,無法求解,而不是不能對其求導,所以可以對其求導,然後將當前x帶入。

    (3) 不斷重復之前的(1),(2)步,直到x收斂。

  

  梯度下降方法:

    對於這個式子技術分享圖片,如果:

      (1) m是樣本總數,即每次叠代更新考慮所有的樣本,那麽就叫做批量梯度下降(BGD),這種方法的特點是很容易求得全局最優解,但是當樣本數目很多時,訓練過程會很慢。當樣本數量很少的時候使用它。

      (2)當m = 1,即每次叠代更新只考慮一個樣本,公式為技術分享圖片,叫做隨機梯度下降(SGD),這種方法的特點是訓練速度快,但是準確度下降,並不是全局最優。比如對下列函數(當x=9.5時,最終求得是區部最優解):

技術分享圖片

      (3) 所以綜上兩種方法,當m為所有樣本數量的一部分(比如m=10),即我們每次叠代更新考慮一小部分的樣本,公式為技術分享圖片,叫做小批量梯度下降(MBGD),它克服了上述兩種方法的缺點而又兼顧它們的優點,在實際環境中最常被使用。

機器學習算法 --- 邏輯回歸及梯度下降