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