本週主要講分類、邏輯迴歸以及正則化
分類
分類問題的幾個例子
- 判別一個郵件是/不是垃圾郵件
- 判別一個轉賬交易是/不是欺詐交易
- 判別腫瘤是惡性/良性
也就是說輸出的y的取值是 ,0一般表示negative class,1表示positive class。對於多類別則是 。
線性迴歸解決這個分類問題會有什麼問題?
如下圖所示:
如果用線性迴歸的話,會出現假如樣本點有一個離均值很遠的點的情況下,這個點導致整個判別面發生巨大的改變。這裏邊最主要的一點就是線性迴歸的 可以>1可以<0。我們希望能夠有一個方法使得 。
邏輯迴歸的hypothesis representation
如下圖所示:
我們在線性迴歸的基礎上,外邊套上一個非線性函數使得輸出在[0,1]之間。這個函數就是sigmoid 函數,或者叫logistic函數。
那麼現在這個 表達的是什麼意思呢?表達的是對一個輸入x,y等於1的概率是多少。也就是說假如y=0.1,那麼說明P(y=1)=0.1,P(y=0)=0.9。這就是邏輯迴歸。
邏輯迴歸的決策面
如下圖所示:
假如我們認定如果 的話,我們就判定 那麼,也就是要求 。
所以對於線性分類面,只要考慮 和 的情況即可:
非線性的分類面也是如此:
邏輯迴歸的cost function
不能使用線性迴歸的cost function,因爲直接使用的話,cost function 會變成非凸函數。而是使用如下的:
梯度下降
優化進階
其實出了梯度下降之外,還有很多其他進階的優化方法,這些方法比梯度下降的方法要快,但是會比較複雜。
多分類:one vs all
one vs all(rest)這種方法,其實就是對每一類i,訓練一個邏輯迴歸分類器,然後有新的輸入x,那麼找到一個i,使得 最大。
正則化
過擬合
過擬合就是因爲模型的feature太多,結果導致對訓練集上擬合的很好,但是泛化能力很弱。
過擬合的處理方法
過擬合有幾種處理方法,一種是減少feature數量,然後在模型之間選擇,另外就是正則化,正則化就是減少參數 的幅度,這樣每一個feature都會給最終的模型貢獻一點點。這個對於很多feature的情況下很有用。
Intuition
其實就是假如各個參數的大小比較小,那麼一些高次的feature貢獻的就少,這時候就能夠不要那麼過擬合。
方法就是在cost function後邊加上一個
加上正則化之後,過擬合的情況就會得到改善:
正好有一個小問題:假如 選的很大會出現什麼結果?答:underfitting,沒法擬合了。
如下圖所示:
線性迴歸的正則化
如下圖所示,其實可以看出來,L2 Regularization等價於weight decay:
如果是正規方程的方法:
可以看到,假如 是奇異的,那麼經過正則化之後,變成非奇異的:
其實思路很簡單,因爲 的特徵值一定是非負的,非零特徵值一定大於1個,那麼加上這個矩陣之後,所有特徵值都是整的了,那麼就不是奇異的了。
邏輯迴歸的正則化
同樣,加上weight decay。