目錄
二、分類問題的估值 Hypothesis Representation
五、簡化的代價函數與梯度下降Simplified Cost Function & Gradient Descent
5.3 梯度下降 Advanced Optimization
7.4 正則化線性迴歸 Regularized Linear Regression
7.5 正則化邏輯迴歸 Regularized Logistc Regression
複習Andrew Ng的課程Machine Learning,總結分類、邏輯迴歸筆記一篇,涵蓋課程week3。
一、分類問題 Classification
線性迴歸可以對連續的模型進行估值(比如房價和房屋面積的關係),對於離散的模型估值(是爲1,否爲0)存在諸多問題。
- 對於分類問題,線性迴歸容易被個別訓練樣本影響
- 線性迴歸的估值或沒有明確的意義
因此,分類問題引入邏輯迴歸Logistic Regression。於是,分類的最終輸出是或。邏輯迴歸的估值必須是一個值域的函數,用做分類問題的算法
二、分類問題的估值 Hypothesis Representation
我們希望邏輯歸回的估值滿足,於是引入兩個函數
令
從而得到分類問題的估值
對於這個估值的解釋是這樣的。在給定的情況下,對的概率的估計值。
,probability that ,given ,parameterized 。
那麼,當時,;當時,。
舉個栗子,是腫瘤大小的訓練集。表示有70%的概率,該腫瘤是惡性的。
三、分類問題的決策邊界 Decision Boundary
根據前面討論的結果。
估值
如果分類邊界本身就是線性(Logistic Boundary Linear)的,即,取,boundary是,那麼得到決策邊界是,是個直線方程。
如果分類邊界本身是非線性(Logistic Boundary Non-Linear)的,即,取,boundary是,那麼得到決策邊界是。
四、分類問題的代價函數 Cost Function
這裏面涉及到一些數學知識。知道寫下這篇博客,我還沒有從數學層面上理解Andrew Ng說的Convex Convergence的意義。當然了,Andrew Ng也說了數學層面上該如何解決。我們先關注一下直覺上的Cost Function。
爲邏輯迴歸選擇一個Convex Convergence的代價函數,形式如下。
爲什麼是這種形式呢?我們直覺感受一下。也就是Andrew Ng所說的Cost Function Intuition。
當時,越接近1,越接近於0。
當時,越接近0,越接近於0。
這就達到了估值越接近真值,代價函數越接近0。這張示意圖的代碼可以到這裏下載//download.csdn.net/download/qpeity/12113456。
五、簡化的代價函數與梯度下降Simplified Cost Function & Gradient Descent
5.1 簡化代價函數
第四節裏面描述的內容是針對一個訓練樣本而言的。
注意:或對每個訓練樣本只有一個成立。上面的公式簡化爲
對於有個樣本的訓練集,給出代價函數。
也就是
5.2 梯度下降推導及結論
與線性迴歸問題一樣,我們求得代價函數關於參數各個維度的導數,推導過程如下:
- 已知式
- 對求偏導數得到
- 結合對中求內倒數部分進一步推導得到
- 將代入得到
就是步長。爲了使代價函數最小,我們要同步更新,不斷迭代直到找到局部最優解,這就是最終的結論。公式和線性迴歸中同步更新的公式形式上完全一樣,只是改變了。
5.3 梯度下降 Advanced Optimization
對於求解梯度下降,可以使用Naive的Gradient Descent。但是,這樣Naive的實現方法效率並不高,計算也不夠簡單。
Andrew Ng給出了三種Advanced Optimization的方法,這些已經超出了機器學習課程的範圍,具體怎麼實現這些算法,他本人也是剛剛搞得明白(給大神跪了Orz)。這三種Advanced Optimization就是:
- Conjugate Gradient(共軛梯度?)
- BFGS
- L-BFGS
使用這些Advanced Optimization的優點是:
- 不需要人工選擇學習率
- 比Naive的Gradient Descent更快
使用這些Advanced Optimization的缺點是:
- 算法更復雜
課程中,Andrew Ng建議,不要自己設計邏輯迴歸代價函數梯度下降的算法。這些算法異常複雜。除非你在數值計算領域特別的牛逼!!最好使用octave內置的函數庫來做這些!!怎麼來利用octave內置函數呢?我們舉個例子。
邏輯迴歸的參數,假設邏輯迴歸的代價函數是,分別求偏導數
然後用octave內置函數fminunc來求解。
六、多類別分類
將多類別分類變成二分類(One-vs-Rest):
- 將分類變成個二分類問題
- 每次分兩類:類、其餘類的合併
- 每次都形成新的僞訓練集,求出
One-vs-Rest示意圖。
此時,估值函數的形式和意義發生了一些變化。對每個分類我們訓練一個估值,用來預測的概率。當有一個新的特徵輸入時,我們用所有的做估值,取概率最大的那個作爲分類的估值。原文描如下:
- Train a logistic regression classifier for each class to predict the probability that .
- On a new input , to make a prediction, pick the class that maximized .
七、過擬合問題
7.1 What is overfitting
Overfitting: If we have too many features, the learned hypothesis may fit the training set very well(), but fail to generalize to new example(predict on new examples).
當特徵過多時就會出現過擬合問題,這裏的特徵過多指的是:
- 特徵的多項式維數過高
或者
- 特徵太多,
7.2 Addressing overfitting
Options:
1.Reduce number of feature:
- Manually select which features to keep
- Model selection algorithm(Later in course)
2.Regularization:
- Keep all the features, but reduce magnitude / values of parameters
- Works well when we have a lot of features, each of which contributes a bit to predicting y.
翻譯一下,解決過擬合問題有兩種可選的辦法:
1.減少特徵數量:
- 人工選擇要保留的特徵(減少特徵)
- 模型選擇算法(後面會講到,這裏暫不討論)
2.正則化:
- 保留所有特徵,但減小參數的量級
- 當有很多特徵時正則化性能更好,每個特徵都會在預測時體現價值
7.3 正則化後的代價函數
正則化就是想辦法讓變小,當時,就幾乎不起作用了。線性迴歸代價函數變爲如下形式。
經過正則化後的代價函數,多了一個,我們稱爲Regularization Parameter正則化參數。代價函數由兩部分組成:
- 前一部分用來適應訓練集;從1到m共m個訓練集
- 後一部分用來減小參數的量級,防止過擬合;從1到n共n個特徵。
爲什麼不限制呢?觀察,其中不隨特徵的變化而改變的值,因此不限制。
同理,邏輯迴歸的代價函數變爲如下形式。
7.4 正則化線性迴歸 Regularized Linear Regression
由於代價函數中加入了,所代價函數的導數以及梯度下降都發生了變化。由於項不會因變化對造成影響,導數和梯度下降公式分爲兩類。
導數:
梯度下降:
或者寫作
基於Normal Equation的矩陣式經過正則化以後變爲
其中,後面的那個矩陣P,跡1,1位置爲0,跡其他位置全部是1,除了跡以外其餘元素爲0的矩陣。
7.5 正則化邏輯迴歸 Regularized Logistc Regression
邏輯迴歸的梯度下降和現行迴歸的形式一樣,這個5.2節中已經推導。增加了正則化項以後,邏輯迴歸梯度下降公式在形式上和線性迴歸梯度下降也是一致的,只是的含義不同了。
導數:
梯度下降: