Machine Learning - Andrew Ng on Coursera (Week 3)
本篇文章將分享Coursera上Andrew Ng的Machine Learning第三周的課程,主要內容有如下,詳細內容可以參考文末附件:
- 分類問題及模型表示
- 邏輯回歸模型
- 多類別的分類問題
- 解決過擬合問題
分類問題及模型表示
首先Andrew給出了幾個例子來解釋什么是分類問題,包括垃圾郵件的識別、在線交易的欺詐判別以及腫瘤是良性還惡性。從線性回歸對連續值的預測轉為了對離散值的預測。在只有兩類的分類問題中,用0和1來表示否與是。在此情況下,便不宜用線性回歸函數來分類,而需要選擇另外的[Math Processing Error]來解決此類問題,并且滿足[Math Processing Error],于是選擇了Sigmod函數,又稱為Logistic函數。Sigmoid函數是一個在生物學中常見的S型的函數,在信息科學中,由于其單增以及反函數單增等性質,Sigmoid函數常被用作閾值函數,將變量映射到0,1之間,還被廣泛應用于神經網絡的激活函數中。因此,邏輯回歸模型假設如下:
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
而[Math Processing Error]的輸出結果,則表示在給定[Math Processing Error]和[Math Processing Error]條件下,[Math Processing Error]的概率,即:
[Math Processing Error]
在使用時我們可以認為:
- 如果[Math Processing Error],則[Math Processing Error]。
- 如果[Math Processing Error],則[Math Processing Error]。
接下來引入了決策邊界(Decision Boundary)的概念,如下圖中紫色的斜線所示,這條線的表示實際上就是[Math Processing Error]的表達式,因此它是假設公式[Math Processing Error]的屬性,而非數據集的屬性。
對于不同的假設公式,當變量的數量、階次不一樣時(如雙變量二次方程可以表示橢圓,更高階的方程則可以表示更多非線性的決策邊界),可以表示出不同的決策邊界,以更好地將數據集分類并預測新數據的分類結果。
邏輯回歸模型
在定義了邏輯回歸模型的[Math Processing Error]之后,要求[Math Processing Error]還需要定義代價函數。回顧線性回歸的代價函數,并將其變形寫成更一般的形式,對于不同的問題只需要替換其中的[Math Processing Error]即可,如下所示:
[Math Processing Error]
[Math Processing Error]
線性回歸中,代價函數是凸函數,否則無法使用梯度下降的方式進行求解。好在邏輯回歸的代價函數有著良好的性質,在無論[Math Processing Error]等于1還是0,都是單調的凸函數(函數圖像可參見文末附件中相應部分),其代價函數[Math Processing Error]如下所示:
在將此代價函數代入[Math Processing Error]的時候有個小技巧,可以將兩個條件表達式轉化成一個表達式:
[Math Processing Error]
對上式就可采用梯度下降法擬合參數[Math Processing Error]了,迭代更新參數的方法同線性回歸一樣,不過需要注意的是在線性回歸中[Math Processing Error],而邏輯回歸中[Math Processing Error]。
此外,還提到了幾種梯度下降的優化算法,分別補充了一篇相關的文章,如果感興趣可以做一個簡單了解:
- Conjugate Descent
- BFGS
- L-BFGS
本課程中不要求理解優化算法的原理,也無需自己編寫這些算法的代碼,除非是數值計算方面的專家或者愛好者。一般直接調用現有的庫就可以了,高效且方便。這些算法不需要選擇具體的[Math Processing Error]值,可以讓算法更快收斂。接下來用Octave的fminunc命令實現了代價函數的優化求解過程。
多類別的分類問題
當對象類別多于兩個時,如郵件標識、醫學診斷、天氣等等,原有的雙類分類問題就變成多類別的分類問題,如下圖所示:
此時可以采用一對多(one-vs-all)的分類方法,即對每一類訓練一個分類器,將該類與其他所有類別分開。然后再用這些分類器判定新到數據屬于各類的概率,取其最大者,如下圖所示:
解決過擬合問題
首先以三個線性回歸的例子、三個邏輯回歸的例子分別說明了什么是欠擬合(High bias)、過擬合(High variance)和剛剛好(Just right fitting...恕我也不知道怎么翻譯貼切了)。以及解決過擬合的兩種方法:
然后引入了正則化(Regularization)的概念,即通過引入懲罰權重降低高次項對擬合結果的影響,簡化假設公式,從而避免過擬合的現象。正則化代價函數如下所示:
[Math Processing Error]
分別是線性回歸和邏輯回歸為例,講解了權重[Math Processing Error]在更新參數時的策略。
對于線性回歸,在使用Normalization方法求解時,如果樣本的數量小于特征的數量時,[Math Processing Error]是不可逆的(奇異矩陣)或者退化的(Degenerated);如果[Math Processing Error],[Math Processing Error]則該矩陣是可逆的(非奇異矩陣),可以用該方法求解。
[Math Processing Error]
附本次分享演示文檔:ML-Coursera-Week3
到本課程的最后,Andrew說如果你掌握了到目前為止所學的課程,那么恭喜你,已經比硅谷中大部分的工程師牛逼了,可以用機器學習做產品賺大錢了。不管你們信不信,反正我是信了~
總結
以上是生活随笔為你收集整理的Machine Learning - Andrew Ng on Coursera (Week 3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Machine Learning - A
- 下一篇: Machine Learning - A