1. 程式人生 > >機器學習之數學系列(二)邏輯迴歸反向傳播數學推導

機器學習之數學系列(二)邏輯迴歸反向傳播數學推導

一、簡介

  在深度學習領域,我們往往採用梯度下降(或上升)法來優化訓練函式模型,梯度下降法尤其是在優化凸函式上表現極佳。模型優化涉及到反向傳播過程,反向傳播過程需要先推匯出梯度計算公式然後利用機器進行代數運算。這篇博文的工作是詳細推導了邏輯迴歸反向傳播梯度計算公式(什麼是梯度?簡單來講就是成本函式對未知引數向量的導數,這個梯度方向是成本函式下降最快的方向),最後附上邏輯迴歸優化演算法和邏輯迴歸實現程式碼。


邏輯迴歸描述

  邏輯迴歸問題描述如Figure1所示,它是在多元線性迴歸的基礎上對迴歸結果使用sigmoid函式進行啟用計算得到條件概率 p

( y = 0 x ) p ( y
= 1 x ) p(y=0|x)或p(y=1|x) ,用來解決二分類問題。這裡多說一點如果你想實現多分類可以使用softmax,soft就體現在每一類別都有非零置信度(條件概率),而不是像hard那樣只有一個類別有1置信度其餘置信度均為0。以一個樣本作為輸入的logistic regression forward propagation數學形式化表達為:


單個輸入樣本下的邏輯迴歸前向傳播數學形式化表達

二、反向傳播梯度計算公式推導

  接下來是logistic regression back propagation,反向傳播梯度計算要求1.熟知前向傳播代數計算過程2.複合函式偏導數的鏈式法則[3]以及向量微分理論[4]。在反向傳播推導梯度時可以(1)先計算一個輸入樣本的梯度,然後根據變數與變數的偏導數有相同shape(形式)來推廣計算多個輸入樣本的梯度也就是實現梯度的向量化或叫矩陣化[1][2],之所以要將梯度向量化是為了使用相關矩陣理論來簡化代數運算。(2)直接對向量化後的多輸入樣本根據鏈式法則和向量求導理論推導梯度即可。接下來我將使用這兩種方法來詳細的推導梯度計算公式。
  首先,按方法(1)推導梯度。由於邏輯迴歸parameters就只有 w w b b ,故而反向傳播過程只需計算 L w d w \frac {∂L} {∂w}\equiv dw L b d b \frac {∂L} {∂b}\equiv db ,從而獲得梯度 g r a d ( L ) = ( d w , d b ) grad(L)=(dw,db) 。過程如下所示。

一個輸入樣本下的鏈式法則

求單樣本輸入梯度到求多樣本輸入梯度
  其次,按方法(2)計算得到梯度 g r a d ( J ) = ( d w , d b ) grad(J)=(dw,db) ,推導過程如下所示。
直接求多輸入樣本梯度

三、 邏輯迴歸優化演算法

邏輯迴歸優化演算法
  邏輯迴歸的實現,詳見我的github倉庫:https://github.com/yiguanxian/implement-logistic-regression
  由於博主水平有限,博文中難免有錯誤和不當之處,歡迎小夥伴們給與批評和指正,也歡迎小夥伴們補充其他更簡單的方法,可以直接留言評論。希望我的這篇博文能對你有所幫助,祝好!

參考:
[1]https://mooc.study.163.com/learn/2001281002?tid=2001392029#/learn/content?type=detail&id=2001702011
[2]https://mooc.study.163.com/learn/2001281002?tid=2001392029#/learn/content?type=detail&id=2001702012
[3] 歐陽光中,朱學炎等.數學分析下冊[M].北京:高等教育出版社,2007:168.
[4]吳孟達,李兵等.高等工程數學[M].北京:科學出版社,2004:71-75.