吴恩达《机器学习》学习笔记五——逻辑回归
吳恩達《機器學習》學習筆記五——邏輯回歸
- 一、 分類(classification)
- 1.定義
- 2.閾值
- 二、 邏輯(logistic)回歸假設函數
- 1.假設的表達式
- 2.假設表達式的意義
- 3.決策界限
- 三、 代價函數
- 1.平方誤差函數的問題
- 2.logistic回歸的代價函數
- 四、梯度下降法求參數
- 五、多分類問題
- 1.介紹
- 2.“一對多”算法解決多分類問題
課程鏈接:https://www.bilibili.com/video/BV164411b7dx?from=search&seid=5329376196520099118
前四次筆記算是通過線性回歸模型來對機器學習進行了一個入門,下面開始學習第二個模型:邏輯回歸,雖帶有回歸字樣,但這卻是一個分類算法,從最簡單的二分類問題開始。邏輯回歸的應用場景更多,而且它是神經網絡的一部分基礎。
一、 分類(classification)
1.定義
下面是一些二分類的例子,即預測的結果只有兩種情況,比如垃圾郵件和正常郵件,有腫瘤和沒有腫瘤等。二分類的預測結果可以用0/1兩個數來表示,一般沒有固定的要求,通常0表示沒有某樣東西,1表示有某樣東西。
當然,除了二分類還有多分類問題,即存在多種預測結果,后面將先討論清楚二分類問題,然后推廣到多分類就很容易理解。
2.閾值
用模型去擬合分類問題的數據,很難得到絕對的0/1值,很可能計算后是處于0到1之間的某個值,而結果卻只允許有0/1,所以我們需要一個閾值,當預測值大于閾值時,判定為1,當預測值小于閾值時,判定為0。我們用之前線性回歸的模型來解決二分類問題,解釋一下閾值:
如上圖所示,紅色的×是各個數據樣本,假設用線性回歸模型h(x)=θ ^T x來擬合數據,可能得到如上紫紅色的直線,假設此時將閾值設置為0.5,左邊四個數據樣本經過h(x)預測后的值是小于0.5的,將被判定為0,右邊四個數據樣本經過h(x)預測后的值是大于0.5的,將被判定為1,這樣得到的預測結果正好與真實結果相吻合。閾值如果設置成0.1或者是0.9呢?有些樣本將會被判定錯誤。這就是閾值選擇的重要性。
但是顯然,用線性回歸來擬合二分類有很大問題,如下圖:在遠處多加入一個數據樣本,線性回歸擬合后的模型可能就會從紫紅色直線變成藍色直線,而此時再用0.5作為閾值,有兩個正樣本將會被誤判為負樣本,所以我們需要更適用于分類問題的新模型。
二、 邏輯(logistic)回歸假設函數
1.假設的表達式
之前線性回歸的預測結果很可能會大于1或小于0,在結果只能是0/1的分類問題中是不合適的,所以希望找到一個模型使得預測結果在0-1之間。邏輯回歸的假設函數如下圖所示,是一個復合函數h_θ (x)=g(θ ^ T x),其中,g(z)=1 ?(1+e ^ (-z) ),得到h_θ (x)=1 ?(1+e ^ (-θ ^T x) )。這個函數又稱為sigmoid函數或logistic函數,它的形狀如下圖所示。
2.假設表達式的意義
h_θ (x)=1 ?(1+e ^ (-θ ^T x) )的數學含義是輸入x時,預測結果y=1的概率。例如腫瘤分類問題中計算得h_θ (x)=0.7,那就意味著有腫瘤的概率是0.7或70%,這是它的內在含義,更數學的寫法是h_θ (x)=p(y=1|x;θ)。這里更數學的推導和解釋,可以看深度之眼的西瓜書或統計學習方法的課程,非常詳細。深度之眼相關課程推薦
3.決策界限
邏輯回歸的假設函數以及預測結果的判定如下所示,預測的結果h(x)如果大于等于0.5,則判定為1,反之判定為0。
那么,什么時候h(x)大于0.5,什么時候小于0.5呢?從sigmoid函數的圖像可以看出,當θ ^ T x >0時,h(x)將大于0.5,當θ ^ T x <0時,h(x)將小于0.5。也就是說,當θ ^T x >0時,預測結果為1,反之為0。
那什么是決策界限呢?看下面這個例子:
○和×是正負數據樣本,它的假設函數為
如何求具體參數值下面再說,假設我們已經求出,分別為-3,1和1。根據剛剛說的,當θ ^T x >0時,預測結果為1,所以當-3+x1+x2>0時,預測y=1。而-3+x1+x2這條直線是劃分正負結果的決策關鍵,所以它稱為決策界限。
需要注意的是,決策界限是假設函數的一個屬性,由假設函數的參數θ決定,與數據集的分布情況沒有關系,即使它沒能很好的分類,它也是決策界限,沒有很好分類只是假設函數本身沒有選好。
再看個稍微復雜一些的例子:
假設有這么一個數據集和假設函數,假設函數的參數已經求出來為-1,0,0,1,1。根據上面所說,如果-1+x1^ 2+x2^ 2>0,則預測結果y=1。而-1+x1^ 2+x2^ 2這個曲線就是決策界限。
一般化的話,就是如下這種情況:復雜的高階多項式可以得到更復雜的決策界限。
三、 代價函數
回顧一下訓練集,假設函數等信息:
假設函數的形式也有了,下面就是如何根據訓練集求得參數值的問題。與線性回歸問題一樣,需要一個代價函數來評判預測結果與真實結果之間的擬合程度。
1.平方誤差函數的問題
在線性回歸問題中的代價函數如下圖所示:
平方誤差函數的使用很好地衡量了預測值與真實值之間的擬合程度,但是它不適合用在logistic回歸問題上。因為表達式的差異,sigmoid假設函數若使用平方誤差作為代價函數,會使得代價函數非凸,而以線性表達式作為假設函數的線性回歸問題使用平方誤差得到的代價函數則是一個凸函數。
非凸函數與凸函數的圖像如下圖所示:
從圖中可見,若代價函數非凸,使用如梯度下降優化算法優化參數的過程中不能保證能優化到全局最優,很可能停留在局部最優就不動了,而凸函數則可以優化到全局最優。所以對于logistic回歸,需要重新找一個代價函數,使之是凸函數,這樣才能使用梯度下降法求得最優參數。
2.logistic回歸的代價函數
以單樣本數據為例,找到的代價函數如下圖所示:
我們可以分開看,當y=1時,代價函數如下圖所示曲線,從這個曲線可以看出,若預測結果h(x)也為1,那么代價為0,若h(x)趨于0,則代價會非常大。
類似的,當y=0時:
若預測結果h(x)也為0,那么代價為0,若h(x)趨于1,則代價會非常大。可以證明,該代價函數是凸函數,證明可以參考深度之眼的相關課程。
但是這種分段形式的假設函數依然不方便,所以就有了下面這種緊湊的形式:
可以分別把y=0/1代入,得到的結果與分段的形式是一致的。
剛剛都是單個樣本的討論,推廣到一般數據集,則變成如下形式:
接下來要做的就是去找到合適的參數值,然后當給定新的輸入時,可以預測出相應的輸出,如下圖所示:
四、梯度下降法求參數
從梯度下降的定義去更新參數,對代價函數求導之后更新如下:
我們觀察求導后的結果,這個式子與線性回歸模型很相似,但是不同之處在于假設函數h(x)的表達式不同,線性回歸和邏輯回歸的假設函數分別為如下所示:
所以他們的代價函數也是完全不同的表達式。
除了梯度下降優化算法之外,還有一些高級的優化參數的算法,如下所示:
如共軛梯度、BFGS、L-BFGS等,它們的優點是無需手動選擇學習率,更加智能,而且速度會比梯度下降更快;相應的缺點就是算法會更復雜。
五、多分類問題
1.介紹
多分類問題舉幾個例子:
數據集的差異:(以二分類與三分類為例)
2.“一對多”算法解決多分類問題
借用二元分類的思想,以一個三分類問題為例,可以分成三個二分類問題,每個二分類問題選一個類別作為正類,其余兩類全部作為負類,如下圖所示:
這樣可以擬合出三個假設函數,此時如果有新的輸入,則分別送入三個分類器分類,計算得它是每個類別的概率,取概率值最大的那個類別作為它的輸出,這也是最可信的、效果最好的預測。
總結
以上是生活随笔為你收集整理的吴恩达《机器学习》学习笔记五——逻辑回归的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 吴恩达《机器学习》学习笔记二——单变量线
- 下一篇: duilib环境配置以及简单入门介绍