機器學習基石筆記10:邏輯斯蒂(Logistic)回歸 上
題目:輸入訓練集是病人的信息,標記是得病與否,要求目標函數判斷得病的概率
首先根據要求設計假設函數如下:
- 目標函數:
- 求各屬性的加權總分
- 將分數轉化為0-1的值,利用邏輯斯蒂函數 (該函數是一個平滑(處處可微分),單調遞增的S形(sigmoid)函數,因此又被稱為sigmoid函數)
- 求最小誤差函數(損失函數)
轉換一下目標函數的表現形式:
假設有訓練集 ,則通過目標函數產生此樣本的概率是(g=likelihood(h)~f :g取h的最大似然 => g= argmax likelihood(h)):
注意:其中上式中P(xn)對h的選擇沒有影響,所有的h都是一樣的
則有: =>找到一個h,讓這個可能性最大(最大似然)
因為我們已經有 ,所以我們要求最大值時的w,如下:
接下來,求解方程
該函數為連續、可微、凹函數,因此其最小值在梯度為零時取得。
對權值向量w的各個分量求解偏微分:
Wi分量的梯度(偏微分)為:
Ein整個梯度統一表示為:
再觀察此函數,發現該函數是以 函數為權值,對 加權求和函數
聯想到PLA演算法,並將PLA的求解步驟改寫成如:
對於邏輯斯蒂回歸來說,v是梯度下降的方向, 是每次下降的步長
為了簡單計算,將步長 固定,將v作為單位向量僅代表方向,找出使得Ein(w)最小的w,即有: (非線性帶約束),將曲線看做很小的線段(泰勒展開(只對很小的線段步長適用)),則有:
因為 ,所以可以轉換為一下求最小問題:
因為兩個向量最小的情況為其方向相反,即乘積為負值,則v如下:
將v代入 公式有:
更新公式表示權值向量w每次向著梯度的反方向移動一小步,按照此種方式更新可以儘快速度找到Ein最小的w,此種方式稱作梯度下降。接下來討論 步長 對梯度下降的影響:
根據上面的w更新公式, 不同對w更新的結果可以如上圖一二所示,較小的步長更新正確但較慢,較大的步長容易出錯(不適用於泰勒展開) ,圖三表示步長可變,與梯度大小成正比,以此我們有新的公式 ,再代入上面公式有:
此時 固定,被稱為學習速率。
邏輯斯蒂回歸演算法總結如下:
- w初始值w0,迭代次數為t
- 計算梯度
- 更新
- 直到 或者達到迭代次數
題圖:實在不知道找啥圖了,隨手怒上一張二次元少女。 2017年11月6日11:09:48
推薦閱讀:
TAG:機器學習 | Logistic回歸 | logisticregression |