機器學習 | 線性迴歸與邏輯迴歸
線性迴歸與邏輯迴歸
作者:RichardsZ 公眾號:智慧駕駛軟體寶典
一、線性模型
線性模型(linear model),試圖通過資料屬性的線性組合來進行預測的函式
f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w d x d + b f(x)=w_1x_1+w_2x_2+...+w_dx_d+b f(x)=w1x1+w2x2+...+wdxd+b(簡單,基本,可解釋性好)
向量形式: f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b, 這裡x通常為列向量,每一行代表資料的每一維度,例如天貓資料 [ 瀏 覽 量 訪 客 數 下 單 數 成 交 數 成 交 金 額 ] \begin{bmatrix} 瀏覽量\\ 訪客數 \\下單數 \\成交數 \\成交金額\end{bmatrix} ⎣⎢⎢⎢⎢⎡瀏覽量訪客數下單數成交數成交金額⎦⎥⎥⎥⎥⎤。而 w T w^T wT則代表列向量的轉置,即行向量,代表每一維度所賦予的權重weight, w T x w^Tx wTx則表現為向量的內積運算。
線性模型既可以用於“分類”也可以用於“迴歸”,對數學層面而言,迴歸則意味著利用資料進行函式的擬合。對於分類,就是利用超平面來做分割。
二、線性迴歸
- 有監督學習 => 學習樣本 D = { ( x i , y i ) } i = 1 N D = \{(x_i,y_i)\}^N_{i=1} D={(xi,yi)}i=1N
- 輸出的結果 y i y_i yi為連續型變數
- x i = > y i x_i=>y_i xi=>yi的對映關係需要學習
- x x x與 y y y之間看作線性關係 f : x − > y f:x->y f:x−>y
例如,吳恩達教材中對房價進行預測模型:影響房價的屬性並不是簡單的一個維度,而是多個維度,包括面積,臥室數量,朝向,地段等等。多維資料用向量表示為 x ⃗ = [ 面 積 臥 室 數 量 朝 向 地 段 . . . ] \vec x=\begin{bmatrix} 面積\\ 臥室數量 \\朝向 \\地段 \\...\end{bmatrix} x=⎣⎢⎢⎢⎢⎡面積臥室數量朝向地段...⎦⎥⎥⎥⎥⎤,而對應各個維度的權重為 w T = [ w 1 , w 2 , w 3 , . . . , w d ] w^T=[w_1,w_2,w_3,...,w_d] wT=[w1,w2,w3,...,wd],整體的線性迴歸模型表示為:
f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w d x d + b f(x)=w_1x_1+w_2x_2+...+w_dx_d+b f(x)=w1x1+w2x2+...+wdxd+b,目的就是得出此模型中合理的權重組合,使得此模型能夠對總體的有標籤資料有良好的擬合性,同時具備可預測性。
那麼問題來了,如何才能夠說明得出的權重組合是最優的呢,評判指標是怎樣的?這裡我們引入損失函式的概念!
1.損失函式是什麼?
例如在上述擬合
f
(
x
)
=
w
1
x
1
+
w
2
x
2
+
.
.
.
+
w
d
x
d
+
b
f(x)=w_1x_1+w_2x_2+...+w_dx_d+b
f(x)=w1x1+w2x2+...+wdxd+b的過程中,得到的權重組合
w
T
w^T
wT並不唯一,我們的目的是找到最合適的權重組合
[
w
1
,
w
2
,
w
3
,
.
.
.
,
w
d
]
[w_1,w_2,w_3,...,w_d]
[w1,w2,w3,...,wd]使得擬合的結果儘可能的逼近“訓練樣本”的標準答案y(即資料的標籤)如下圖所示。
(為了體現權重的概念,這裡將f(x)替換為
h
θ
(
x
)
h_\theta (x)
hθ(x))
可以看出,在一個維度的模型中,迴歸模型得出的預估值與資料的真實值存在差異,因此我們需要引入一個“規則”,用來評判得出的權重組合與標準答案之間的差距,這套規則就是“損失函式”。
這裡定義的損失函式稱作“均方差MSE”:
注:即模型的預估值與真實值之間的差值的平方,然後做平均。這裡有人會問,為什麼損失函式還有一個
1
2
\frac {1}{2}
21的係數?看完下文你會明白,這裡先不做解答。
2.梯度下降法
現在我們有了損失函式的定義,接下來我們就要靠著一種”方法“來尋求權重的最優解,指導優化的方向即該模型的損失函式達到最優,通過上圖可以看出,“MSE均方差損失函式”為標準的凸函式,在一維資料的場景中,其存在梯度最小值,在梯度最小值工況下,損失函式也達到最小值,即預估值與真實值之間的差異最小。那麼問題又來了,該如何尋找到損失函式的梯度最小值的方法呢?
這裡的方法,可由”梯度下降法“解決!如下圖所示。
當損失函式體現為凸函式時,尋找梯度最小值的過程可近似理解為小球下坡的過程,試想,在一個凹谷頂端放置一顆小球並鬆開,小球會收到合力的影響,向梯度下降的方向滾動,當小球所處的位置梯度下降逐漸收斂時,也意味著小球抵達了凹坑最低點。
d J ( θ 1 ) d θ 1 \frac {dJ(\theta_1 )}{d\theta_1 } dθ1dJ(θ1):損失函式的梯度 | 梯度意味著函式變化最快的方向,加上負號則意味著函式下降最快的方向,如同小球下坡的過程 |
---|
α \alpha α:學習率 | 相當於小球每次運動的步長 |
---|---|
α \alpha α太小 | 步子邁的太小,導致收斂速度太慢 |
α \alpha α太大 | 步子邁的太大,導致震盪甚至不收斂 |
3.過擬合與欠擬合
欠擬合(高偏差) | 模型沒有很好的捕捉到資料的特徵,擬合出的曲線效果差 |
過擬合 (高方差) | 模型過度捕捉資料的特徵,包括噪聲,異常值,抖動嚴重,泛化能力差 |
PS: 一般來說,工業場景中出現欠擬合的狀態較少。工業中多出現由於資料處理不當,訓練次數過多等因素出現過擬合狀態,而如何避免過擬合,則需要引出“正則化”的概念
4.過擬合與正則化
試想,當模型出現過擬合後,擬合後的模型囊括了大量不該有的噪聲,異常值,整體的模型方差較大,抖動劇烈,損失函式幾近於0,這是我們不想見到的。
如果,我們在損失函式中引入了一個“懲罰項”,使得整體的損失函式並不接近於0,這樣處理,即使模型出現過擬合導致損失函式很小,但由於懲罰項的存在,也會令損失函式本身意識到模型尚未擬合完畢,這樣就可以避免過擬合的風險。
L2正則化懲罰項中,
λ
\lambda
λ作為超引數,需要人為調參。
廣義線性迴歸
上文介紹的線性迴歸模型為 f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b, 但有些關係並不一定符合此線性關係,那麼該如何處理?
比如,令
l
n
y
=
w
T
x
+
b
lny=w^Tx+b
lny=wTx+b,等式兩邊同時取對數,那麼該模型可修改為
y
=
e
w
T
x
+
b
y=e^{w^Tx+b}
y=ewTx+b,因此模型實際實在用
e
w
T
x
+
b
e^{w^Tx+b}
ewTx+b來逼近資料的特徵,這類線性迴歸稱作“對數線性迴歸”。
三、邏輯迴歸
在分類問題中,通常不需要擬合樣本的分佈,而是要劃分樣本與樣本之間的分界線,如果我們仍然採用“線性迴歸+閾值”的方式,那麼會出現很多問題。
例如:
我們利用線性迴歸的曲線對閾值對腫瘤好壞進行判斷,當
x
=
x
0
x=x_0
x=x0時,判定
f
(
x
)
=
1
f(x)=1
f(x)=1,即為惡性腫瘤。但如果資料存在噪聲,使得模型整體產生了偏移,那麼判定的邊界x也將會出現偏移,影響了判定結果。
Sigmod啟用函式
表示式: g ( z ) = 1 1 + e − z g(z)=\frac {1}{1+e^{-z}} g(z)=1+e−z1
Sigmod函式,啟用函式的一種,用於將模型進行進一步處理,可把連續值壓縮成0-1之間的值,可視為概率,概率值反映了預測為正類的可能性:概率越大,可能性越大。
例如:
h
θ
(
x
)
=
g
(
w
T
x
+
b
)
h_\theta (x) = g(w^Tx+b)
hθ(x)=g(wTx+b), 當
w
T
x
+
b
>
0
w^Tx+b>0
wTx+b>0時,通過啟用函式g(z)的作用,得到的結果為0.5~1的概率。反過來,當
w
T
x
+
b
<
0
w^Tx+b<0
wTx+b<0時,得到的結果為0~0.5之間的概率,這樣就可以將線性迴歸擬合的曲線做成了“決策邊界”
問題來了?該如何找到這條迴歸曲線呢,線上性迴歸中,我們利用了損失函式作為擬合好壞的指標,通過梯度下降來尋找權重最優值。在邏輯迴歸中,同樣可以利用此方法:
上圖中,真實值y由線性迴歸的連續值變為了諸如0,1的分類值,擬合曲線由線性迴歸的
w
T
x
+
b
w^Tx+b
wTx+b變為了經過啟用函式處理的
g
(
w
T
x
+
b
)
g(w^Tx+b)
g(wTx+b),然後通過梯度下降法進行優化權重。
但注意!!!!!!!!原線性迴歸的損失函式是一個凸函式,而邏輯迴歸中,由於Sigmod啟用函式的引入,使得損失函式並不是凸函式,這樣的結果會導致:待優化的權重小球會極易陷入區域性最小值,如上圖所示,它會認為此刻所處的位置就是全域性最小值,變成了井底之蛙。
因此,我們需要對損失函式進行處理,使之變為標準凸函式後,再進行梯度下降
對數損失/二元交叉熵損失
對於Sigmod啟用後的損失函式 g ( w T x + b ) g(w^Tx+b) g(wTx+b),我們希望將它轉變為凸函式,敬仰的數學家們尋找到了一種函式可用於處理此類問題,這種新的損失函式形式稱為“二元交叉熵損失函式”也稱“對數損失”
交叉熵損失函式思路如下:
在二分類問題中,當真實樣本為1時,我們希望損失函式越小越好,
當真實值樣本為1時,
J
(
θ
)
=
−
l
o
g
h
θ
(
x
(
i
)
)
J(\theta )=-logh_\theta (x^{(i)})
J(θ)=−loghθ(x(i)),此時損失函式影像為:
看了 交叉熵損失函式的圖形,簡單明瞭!橫座標是預測輸出,縱座標是交叉熵損失函式 。顯然,預測輸出越接近真實樣本標籤 1,損失函式 L 越小;預測輸出越接近 0,L 越大。因此,函式的變化趨勢完全符合實際需要的情況。
反過來,當真實樣本為0時,
J
(
θ
)
=
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
J(\theta )=log(1-h_\theta (x^{(i)}))
J(θ)=log(1−hθ(x(i))),損失函式影像為:
同樣,預測輸出越接近真實樣本標籤 0,損失函式 L 越小;預測函式越接近 1,L 越大。函式的變化趨勢也完全符合實際需要的情況。
從上面兩種圖,可以幫助我們對交叉熵損失函式有更直觀的理解。無論真實樣本標籤 y 是 0 還是 1,L 都表徵了預測輸出與 y 的差距。
轉化為通用形態
同樣,為了避免過擬合,引入L2正則化項,最終損失函式可表達為
損失函式轉化為交叉熵形式的凸函式後,可以利用損失函式對權重進行優化,依舊可以採用梯度下降法。
總結
將自己的所學所得分享大家,轉載請註明出處,謝謝!
後續會繼續進行完善!
相關文章
- 機器學習_最小二乘法,線性迴歸與邏輯迴歸機器學習邏輯迴歸
- 機器學習之邏輯迴歸機器學習邏輯迴歸
- 機器學習整理(邏輯迴歸)機器學習邏輯迴歸
- 機器學習-線性迴歸機器學習
- [DataAnalysis]機器學習演算法——線性模型(邏輯迴歸+LDA)機器學習演算法模型邏輯迴歸LDA
- 機器學習簡介之基礎理論- 線性迴歸、邏輯迴歸、神經網路機器學習邏輯迴歸神經網路
- 【小白學AI】線性迴歸與邏輯迴歸(似然引數估計)AI邏輯迴歸
- 人工智慧-機器學習-邏輯迴歸人工智慧機器學習邏輯迴歸
- 機器學習之線性迴歸機器學習
- 機器學習整理(線性迴歸)機器學習
- 機器學習之邏輯迴歸:模型訓練機器學習邏輯迴歸模型
- 機器學習之邏輯迴歸:計算概率機器學習邏輯迴歸
- 【機器學習】邏輯迴歸過程推導機器學習邏輯迴歸
- 機器學習筆記-多類邏輯迴歸機器學習筆記邏輯迴歸
- 【機器學習基礎】邏輯迴歸——LogisticRegression機器學習邏輯迴歸
- 邏輯迴歸模型邏輯迴歸模型
- 【機器學習】線性迴歸預測機器學習
- 機器學習5-線性迴歸機器學習
- 資料探勘從入門到放棄(一):線性迴歸和邏輯迴歸邏輯迴歸
- 機器學習之邏輯迴歸:計算機率機器學習邏輯迴歸計算機
- 機器學習之使用Python完成邏輯迴歸機器學習Python邏輯迴歸
- 【6%】100小時機器學習——邏輯迴歸機器學習邏輯迴歸
- 手擼機器學習演算法 - 邏輯迴歸機器學習演算法邏輯迴歸
- 機器學習入門 - 快速掌握邏輯迴歸模型機器學習邏輯迴歸模型
- 機器學習筆記(3):多類邏輯迴歸機器學習筆記邏輯迴歸
- 機器學習中的邏輯迴歸模型簡介機器學習邏輯迴歸模型
- 從零開始學機器學習——邏輯迴歸機器學習邏輯迴歸
- Python邏輯迴歸Python邏輯迴歸
- 淺談邏輯迴歸邏輯迴歸
- 【機器學習】線性迴歸原理介紹機器學習
- 【機器學習】線性迴歸sklearn實現機器學習
- 機器學習實戰(一)—— 線性迴歸機器學習
- 線性迴歸(吳恩達機器學習)吳恩達機器學習
- spark Ml 機器學習之 線性迴歸Spark機器學習
- 機器學習筆記(1):線性迴歸機器學習筆記
- 機器學習——簡單線性迴歸(上)機器學習
- 機器學習——簡單線性迴歸(下)機器學習
- 對數機率迴歸(邏輯迴歸)原理與Python實現邏輯迴歸Python