01 邏輯迴歸的理解

1簡介:

邏輯迴歸是一個分類算法,本質是對線性迴歸做了一個變換。將值域壓在0~1的空間。從而可以未每一個特徵,估算出一個概率。作預測問題。二分類。

邏輯迴歸問題,本質上就變成,求解變換後的每個特徵的權重。

ax1+bx2+cx3 = (0~1);

 求解模型參數θ:

 (a b c)權重。

的問題。

2 算法細節:

分類算法模型:

y = f(x) 

y:用戶對系統的反饋,1或者0.(label)。有監督的學習,我們需要收集大量的樣本。並且要帶有預測目標的label值。同時也是作爲我們要預測的值。

x:特徵向量。(id:6,name:kesalin,salary : 6000),輸入的特徵。

f:算法模型,邏輯迴歸模型。

邏輯迴歸算法:

y = { 0 , 1} 。二值

x  =  ( 125, 367,  756 , ... , n)。n維實數向量

樣本 : (x , y) =  ( 125, 367,  756 , ... , n,0 / 1} 

邏輯迴歸模型:

logistics 變化  σ(x)= 1 / (1 + e^-x)  。 是一個非線性的模型

線性模型 g(x) = 2 x1 + 3 x2 + ... + 643 xn + 865  = θΤ x + b 。 是一個線性模型

邏輯迴歸模型 就是對線性模型 g(x) 作爲 x ,代入 logistics 變化  σ(x)。將值域壓縮到 0 到 1 之間。

1  / ( 1 + e^ - g(x))

=      1 / (1 + 

e ^ - (θΤ x + b)

)

邏輯迴歸的決策邊界0.5時, a = 0  = 》 θΤ x + b = 0.因爲決策邊界θΤ x + b是線性的。所以邏輯迴歸也是線性模型。

結論: 

y = 1 時的概率:1 / (1 + e ^ - (θΤ x + b))

y  = 0時的概率: 1 - 1 / (1 + e ^ - (θΤ x + b))


y發生的概率簡寫 =  p(yn | 0) =   1 / (1 + e ^ - (θΤ x + b)) (yn)

 *  [ 1 - 1 / (1 + e ^ - (θΤ x + b)) ] ^ (1-yn);


場景

用戶點擊率預估。在一個用戶帶有特徵向量(name:mosi,age :25,salary:666)。用來預估用戶是否點擊廣告。(id:19,type:鞋類)。將點擊設置爲 y = 1。預測用戶的點擊率問題。就轉換爲:

1 / (1 + e ^ - (θΤ x + b)) 

= 1 /(1 + e ^ (

θΤ(name:mosi,age :25,salary:666,....其他特徵.....,id:19,type:鞋類)+b

))

整個概率的表達式,只有θ 和 b 不知道。所以點擊概率的問題。就變成θ和b的求解問題。這兩個參數,可以通過大量的歷史數據做參數估算。

而參數估算的過程,就是我們邏輯迴歸的機器學習訓練的過程。

p(yn | 0) =   1 / (1 + e ^ - (θΤ x + b)) (yn)

 *  [ 1 - 1 / (1 + e ^ - (θΤ x + b)) ] ^ (1-yn);

估算這個θ。


2.4參數預估

最大似然估計MLE 原理。(預測概率)

y = f (x) = f (θ)

似然函數:L =  Πp( xi )  =  Π f (θ) 。求L最大時,θ的值。


邏輯迴歸 每個樣本的函數是

p(yn | 0) =   1 / (1 + e ^ - (θΤ x + b)) (yn)

 *  [ 1 - 1 / (1 + e ^ - (θΤ x + b)) ] ^ (1-yn);

那麼對於所有歷史數據。的似然函數

P(D) = Π

1 / (1 + e ^ - (θΤ x + b)) (yn)

 *  [ 1 - 1 / (1 + e ^ - (θΤ x + b)) ] ^ (1-yn)

對似然函數取對數 log P(D)

log P(D) = Σ yn log1 / (1 + e ^ - (θΤ x + b)) + (1-yn)log [ 1 - 1 / (1 + e ^ - (θΤ x + b)) ] ^ (1-yn)

目標:因爲log 是嚴格遞增的,所以求似然函數的最大值P(D),所以也是求log P(D)取最大值時,θ和b的取值。

設  f(θ,b) = -  log P(D)。
那麼求max log P(D)也就是求min f(θ,b) 
那麼只需要證明  f(θ,b)  是一個凸函數。就可以使用各種優化算法來,逼近minf(θ,b),從而求解 θ 和 b的取值。

2.1目標函數 (min Loss + 正則項降低複雜性):

min f(θ) +  λ g(θ)

最優解的求解過程(凸函數的局部最優解,是求導=0的點。)。

凸函數的快捷證明方法

二階導數 >=0

凸函數的組合也是凸函數

凸函數的負數也是凸函數

海森矩陣是半正定的

2.2優化算法

邏輯迴歸的本質就是求解θ b,在損失函數最小的解。可以通過兩種迭代算法來求。

2.2.1 隨機梯度下降(一階求偏導 )

θ n +1 = θ n  - η   f (θ n)/ τ θ n。

因爲是下降過程,所以是 - 號

反覆迭代直到  f (θ n)/ τ θ n = 0,收斂。這個點,就是函數的局部最優解。或者,當 θ的變化很小時,也可近視收斂。

1:η 是步長,超參數,步長太大會發生震盪不穩定,太小則需要更長的迭代次數,性能變差。可以通過交叉驗證,尋求一個最好的步長。


邏輯迴歸的目標函數

f(θ ,b)= - Σ yn log 1 / (1 + e ^ - (θΤ x + b)) + (1-yn)log [ 1 - 1 / (1 + e ^ - (θΤ x + b)) ] ^ (1-yn)


需要估算兩個參數,所以對2個參數都做梯度下降。則

f(x)對θ 求偏導 得到 θ 的梯度 =Σ1 / (1 + e ^ - (θΤ x + b)) - yn 】 x n

f(x)對b 求偏導 得到 b 的梯度 = Σ【1 / (1 + e ^ - (θΤ x + b)) - yn 】


將θ和b的梯度,代入梯度下降公式裏。

θ n +1 = θ n  - η  * 梯度 = θn - η Σ【1 / (1 + e ^ - (θΤ x + b)) - yn 】 x n
θ b +1 = θ b  - η  * 梯度 = θn - η Σ【1 / (1 + e ^ - (θΤ x + b)) - yn 】

每一次迭代,都需要代入所有的樣本。因爲Σ 是連加,每一次更新,參數 θ,b都需要所有的樣本。性能消耗太大。顯然不科學。所以引入了隨機梯度下降來解決這個問題。


隨機梯度下降

每次迭代估算參數的時候,都隨機選取一個樣本 xn,yn。x是一個特徵向量。yn是label。

從而幹掉連加,解決性能問題。

θ n +1 = θ n  - η  * 梯度 = θn - η 【1 / (1 + e ^ - (θΤ x + b))  - yn 】 x n
θ b +1 = θ b  - η  * 梯度 = θn - η 【1 / (1 + e ^ - (θΤ x + b))  - yn 】


爲什麼隨機梯度每次迭代只選取一個樣本,也可以求解最優解

現在情況裏,我們收集到的樣本,其實只是所有的存在樣本的一小部分。所以我們的樣本集也只是一個真實的一個部分而已。

因爲真實的梯度  :

 = (1/ N) * Σ 1~N f(θ,b,xn,yn) 


所以真正的loss Function,其實是一個算數平均值。

N是樣本的個數。如果N = 所有的樣本值的時候,算出來的越準確。

N = 1 時,就是隨機梯度下降。有很大的噪音。但是因爲朝着梯度的反方向前進,總的來說,還是在逼近最優解的路上。並且他的計算成本低。

1<N <所有樣本,批量隨機梯度下降,在梯度下降和隨機梯度下降之間,取了個綜合。 


所以,隨機梯度算法,是很適合做在線學習的。因爲邏輯迴歸在迭代的過程中,是不依賴整體的歷史數據的。


mtkl 採樣:分詞采樣,對每一層結果做一個算數平均值。



2.2.2 擬牛頓法(二階求偏導)



2.3 正則化

L1

L2





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章