100天搞定機器學習|Day17-18 神奇的邏輯迴歸

jpld發表於2019-08-14

前情回顧

機器學習100天|Day1資料預處理
100天搞定機器學習|Day2簡單線性迴歸分析
100天搞定機器學習|Day3多元線性迴歸
100天搞定機器學習|Day4-6 邏輯迴歸
100天搞定機器學習|Day7 K-NN
100天搞定機器學習|Day8 邏輯迴歸的數學原理
100天搞定機器學習|Day9-12 支援向量機
100天搞定機器學習|Day11 實現KNN
100天搞定機器學習|Day13-14 SVM的實現
100天搞定機器學習|Day15 樸素貝葉斯
Day17,Avik-Jain開始在Coursera深度學習的專業課程,完成第1周和第2周內容以及學習課程中的邏輯迴歸、神經網路,並用Python實現一個神經網路。

Day4-6我們已經學習過邏輯迴歸模型。

100天搞定機器學習|Day4-6 邏輯迴歸

但是當時並沒有擴充套件性的深入探討,畢竟這個模型十分簡單易懂。其實模型之間是有關聯的,比如Logistic Regression引出SVM迴歸模型。

首先,我們再回歸一下Logistic Regression

邏輯迴歸進行分類的主要思想是:根據現有資料對分類邊界線建立迴歸公式,以此進行分類。我們想要的函式應該是,能接受所有的輸入然後預測出類別。例如,對於而分類問題,該函式應該返回0或1。

邏輯迴歸假設函式如下

image

它對θTX作了一個函式g變換,對映至0到1的範圍之內,而函式g稱為sigmoid function或者logistic function,函式影象如下圖所示。

image

邏輯迴歸是用來得到樣本屬於某個分類的概率,當輸入z等於0時,Sigmoid函式值為0.5。隨著z的增大,對應的函式值趨近於1;隨著z的減小,對應的函式值趨近於0。 

然後,我們通過邏輯迴歸引出SVM

我們發現hθ(x)只與θTX有關,θTX>0,則hθ(x)>0.5.g(z)只不過是用來對映,真實的類別決定權還在θTX。模型達到的目標無非就是讓訓練資料中y=1的特徵θTX>>0,而是y=0的特徵θTX<<0。Logistic迴歸就是要學習得到θ,使得正例的特徵遠大於0,負例的特徵遠小於0,強調在全部訓練例項上達到這個目標。

image

上圖中間那條線是θTX=0,logistic回顧強調所有點儘可能地遠離中間那條線,學習出的結果也就中間那條線。這樣我們可以得出結論,我們更應該關心靠近中間分割線的點,讓他們儘可能地遠離中間線,而不是在所有點上達到最優。

然後,看看邏輯迴歸的代價函式

image

當y=1時,並將z=θTx帶入其中, 損失函式影象進行少量修改就能得到SVM損失函式影象,取z=1的點作為分界點畫一條和邏輯迴歸很接近的線性影象得到上圖中玫紅色的直線,稱其為Cost1(z)。 y=0,類似地得到Cost0(z)。

image

從 邏輯迴歸 處修改後得到的基本公式為: image

因為人們在使用邏輯迴歸和支援向量機時遵循的規則不同,有些地方還需要修改 ,在上述式子中的損失部分和正則化部分都去掉 1/m 項

在邏輯迴歸中使用λ來平衡樣本的損失函式項和正則化項,而在SVM中,使用C來平衡.

最終的SVM的表示式

image

在這裡,當最小化代價函式,獲得引數 θ 時,支援向量機所做的是它來直接預測 y 的值等於 1,還是等於 0。所以學習引數 θ 就是支援向量機假設函式的形式。 

另:詳細過程建議大家觀看吳恩達課程原版機器學習公開課

https://www.coursera.org/course/ml 

--------------迴歸正題分割線--------------

神經網路又與邏輯迴歸什麼關係呢?先說結論:

邏輯迴歸是沒有隱藏層的神經網路

邏輯迴歸引出神經網路的過程,我認為李宏毅的機器學習課程最為巧妙。

首先Logistic迴歸是有侷限性的,對於線性不可分的資料沒有辦法分類。

image

image

比如上面這種情況,就沒有辦法使用一條直線進行分類。

image

一個解決方法是可以通過轉換特徵空間方法解決異或問題,線性不可分的資料在特徵轉化後可以很好地被紅色直線區分開。 但是不能總是通過依賴手工的方法來找到一個好的轉換,這就違背了機器學習的本質。

image

so,Logistic迴歸可以看做是兩層神經元,啟用函式是Sigmoid函式的神經網路。左邊兩個Sigmoid函式作用是特徵轉換,右邊作用是分類。

image

Logistic迴歸連線在一起就是深度學習的基本結構。

image

相關文章