基礎篇:人臉識別實戰(深度學習)- 邏輯迴歸Logistic Regression

什麼是邏輯迴歸?

邏輯迴歸算法應用非常廣泛,他是用來解決“分類”問題,可能同學要問,迴歸問題不是返回的是數值嗎?怎麼變成分類了?這是因爲邏輯迴歸比較特殊,他雖然返回的是數值,但是這個數值是各個類別出現的概率,概率最大的類別,我們就將它作爲類別的輸出結果。
所以,邏輯迴歸就是根據事物的特徵值,最後能夠輸出判別這個事物屬於什麼類別的一種方法。

如何更加特徵值獲得分類結果?

首先看下面2個公式:

p^\hat{p} = σ( θTθ^T * XbX_b)

σ(t) = 11+et\frac{1}{1+e^t}

  • θTθ^T :每個特徵對應的權值,這就是我們訓練模型需要找到的目標值
  • XbX_b:需要輸入的特徵
  • σ(t) :這個就是大名鼎鼎的sigmod激活函數,下面對他詳細介紹:
sigmod函數
  • 公式σ(t) = 11+et\frac{1}{1+e^t}
  • 當t趨近於正無窮時候,值域趨近於1
  • 當t趨近於負無窮時候,值域趨近於0
  • 當t > 0 時:p^\hat{p} > 0.5
  • 當t < 0 時:p^\hat{p} < 0.5
    sigmod函數

結論

通過上面的公式我們知道了,我們要獲得分類結果,就必須找出正確的 θTθ^T,因爲找到θ了,我們就能根據輸入特徵XbX_b,通過公式獲得每個類別輸出的概率

如何找出 θTθ^T

步驟

  • 我們初始化一個隨機的θ
  • 我們將初始化的θ和真實的分類結果相減,就能得到一個誤差,我們稱這個誤差爲“損失函數”
  • 所以,只要這個損失函數足夠的小,我們的初始化的θ就無窮的接近真實的θ
  • 所以,我們的目標變成了減小“損失函數”

減小損失函數Loss

分析損失函數的構成
  • 當樣本值y = 1時: p^\hat{p} 越小,損失越大
  • 當樣本值y =0時: p^\hat{p} 越大,損失越大
通過上面的分析,我們可以將損失定義爲:

L = - y log(p^\hat{p}) - ( 1 - y ) log(1 - p^\hat{p})

  • 因爲p^\hat{p},屬於(0,1)之間,如果p^\hat{p}偏離真實點越遠,損失提高的速度越快,懲罰提高的速度也就越快
所以樣本的損失函數爲:

L(θ) = - 1m\frac{1}{m} i=1m\sum_{i =1}^{m}yiy^{i} log(p^\hat{p}) + ( 1 - yiy^{i}) log(1 - p^\hat{p})

帶入第1,2個公式得:

L(θ) = - 1m\frac{1}{m} i=1m\sum_{i =1}^{m}yiy^{i} log(σ( θTθ^TXbX_b) ) + ( 1 - yiy^{i} ) log(1 - σ( θTθ^TXbX_b) )

梯度下降法

思想

梯度下降法的思想就是,先隨機初始化一個值x,我們希望慢慢移動這個值,將它移動到f(x)值最小的地方去,但怎樣移動能夠移動到最小的地方呢?答案就是,按照導數的方向去移動,每次移動一小步,慢慢就能移動到最小的地方去。但是有可能出現移動到局部最小值,而無法出來,這是之後需要解決的問題。下面我們來對上面的損失函數求導。

梯度公式

梯度公式就是將上面的L(θ)求導對應的公式,由於求導過程不難,但是太繁瑣,這裏地方也沒辦法將列出來,我就直接給出求導公式了:
ΔL(θ) = 1m\frac{1}{m} XbX_b * (σ( θTθ^T - y) )

總結

  • 我們要求到邏輯迴歸的權值,就需要明白他的激活函數特性
  • 根據激活函數的特徵,我們求得損失函數
  • 我們通過梯度下降法獲得最小損失函數,從而求得邏輯迴歸的權值
  • 但是,細心的朋友會發現,我們推導的時候,只是針對線性可分的情況,如果要適應非線性可分的情況,只需要加入多項式即可
  • 另外,當激活函數變化時,推導的梯度下降的公式也會變化
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章