机器学习入门系列三(关键词:逻辑回归,正则化)
機器學習入門系列三(關鍵詞:邏輯回歸,正則化)
目錄(?)[+]
一、邏輯回歸
1.邏輯回歸
什么是邏輯回歸問題,通俗地講就是監督下的分類問題。通過前面的學習,我們已經掌握如何解決線性(非線性)回歸的問題。那面對分類問題我們是否也可以用線性回歸呢?簡單起見,我們先討論二元分類,首先讓我們來看一個例子,腫瘤的大小與是否是惡性的關系,其中紅色的×表示腫瘤大小,對應的y軸表示是否為惡性。
我們對數據進行線性回歸,得到了一條很完美的直線。我們可以規定,當擬合出來的y值大于0.5時,為惡性1;當y值小于0.5時,為良性0。這一切看起來似乎很合理,當我們增加一個數據,即有一個腫瘤非常大,顯然它是惡性的,但是再用線性回歸時,我們可以發現為了去更好地擬合,直線的斜率變低,0.5不再是惡性與良性的分界線。除了這個問題之外,我們知道y的可取值應該是[0,1],而采用線性回歸我們發現y的可取值是[?∞,+∞]。這一系列的問題就促使我們希望尋求一個新的方法來解決分類問題。
2.假設表示
在線性回歸問題中,我們定義了
hθ(x)=θTx(1) 在分類問題中,我們改變該函數,增加一個作用函數,即 hθ(x)=g(θTx)(2) 其中g(z)為sigmoid函數 g(z)=11+e?z(3)那么把式(3)代入式(2),得 hθ(x)=11+e?θTx(4) 為什么要使用sigmoid函數?有一系列的數學原因,感興趣的可以搜索廣義線性模型,在這里就不闡述原因了。我們來直觀地感受一下sigmoid函數,當z→?∞時,g→0;當z→+∞時,g→1。
下面我們對hθ(x)輸出的結果做一個解釋。由于它的取值范圍,我們可以把它理解為概率。若hθ(x)=0.7,在二元分類(本例)中即表示腫瘤在輸入變量x下為惡性(y=1)的概率為70%。由于是二元分類,y取值不是0就是1,因此腫瘤為良性(y=0)的概率為1?70%=30%。
由于sigmoid函數的性質,且hθ(x)∈(0,1),我們認為當hθ(x)≥0.5時,我們把數據x預測為類1即y=1;當hθ(x)<0.5時,我們把數據x預測為類0即y=0。因此當θTx≥0時,預測為類1;當θTx<0時,預測為類0。
3.決策邊界
既然是分類問題,那么對于二分類,hθ(x)一定可以做出一個決策邊界,當數據集在某一側時預測為類1,在另一側時預測為類0。為了更直觀地理解,我們來看一個這樣一個例子,訓練集分為兩類,其中紅叉表示一類,藍圈表示另一類。
對于
注:這里有人可能會有疑問,假如我們規定紅叉為類0,藍圈為類1,如果我們還是認為θTx≥0即取得直線上方的點為為類1,θTx<0即取得直線下方的點為類0,那豈不是會分錯?學完本系列,我將給出答案,這也是我曾經學習ML時的困惑。
4.代價函數
在線性回歸問題中,我們是這樣定義代價函數的
為了方便說明我們令 J(θ)=1m∑i=1mCost(hθ(x(i)),y)(7) 其中 Cost(hθ(x(i)),y)=12(hθ(x(i))?y(i))2(8) 現在我們該選擇一個Cost(hθ(x(i)),y),使得它是凸函數。函數的選擇方法和選擇原因涉及到比較復雜的數學原理,例如最大熵原理,感興趣的可以上網自行搜索,在這里就不詳細介紹了。總之我們找到了這樣的一個完美凸函數(只有全局最小值)。
Cost(hθ(x),y)={?log(hθ(x)),?log(1?hθ(x)),if?y=1if?y=0(9) 讓我們來直觀地感受一下。
我們可以看到,當預測的為hθ(x)=1且實際的類別也是y=1時,代價函數取值為0;而當預測的為hθ(x)=0且實際的類別是0,意味著分類完全錯誤時,代價函數是無窮大,這個錯誤無法容忍。由于sigmoid函數的作用,hθ(x)∈(0,1),因此不會出現代價函數無意義的情況。這是y=1的情況,當y=0時,正好相反,我們可以自行畫出圖像,在這里就不進行解釋了。
為了能用梯度下降法或其他方法尋找最優θ,我們需要改變一下Cost(hθ(x),y)的形式,使之更方便計算,并代入到代價函數中即 J(θ)=?1m∑i=1m[y(i)log(hθ(x(i)))+(1?y(i))log(1?hθ(x(i)))](10) 下面要做的就是用梯度下降法最小化代價函數,重復對所有的θj同時進行更新,方法同線性回歸一樣。
θj=θj?α?θjJ(θ)(11) 其中 ?θjJ(θ)=1m∑i=1m(hθ(x(i))?y(i))x(i)j(12) 感興趣的可以自行推導上式(12),涉及偏導數最基本的知識。這么看起來邏輯回歸代價函數的偏導數和線性回歸代價函數的偏導數一致,其實不然,因為在線性回歸中的hθ(x)為式(1),而邏輯回歸中的為式(2),邏輯回歸比線性回歸多了一個sigmoid函數,這點切記!
5.其他優化方法
除了梯度下降法,還有共軛梯度法、BFGS、L-BFGS等等,這幾種方法收斂速度快,不用選擇步長α,但是非常復雜,很難理解。不過在matlab的庫中存在這幾種方法,我們可以通過函數fminunc自行調用,不過前提是計算好代價函數和梯度。在這里就不詳細介紹了。
6.多元分類
讓我們舉一個例子更直觀地進行描述。假如我們有數據集x,并且分為三類:1,2,3。訓練時我們可以這樣做,先把注意力集中在類1,于是當前的任務是把類別1與類別2、3進行分類;然后再把注意力集中在類2,于是當前的任務是把類別2與類別1、3進行分類;最后把注意力集中在類3,于是當前的任務是把類別3與類別1、2進行分類。這樣就把多元分類問題轉化為二元分類問題,各個擊破。現在我們得到了三個分類器,三組θ。若給定一個未知類別的數據,通過計算hθj(x),對于第一個分類器(j=1),我們得到的是未知類別是類1的概率;對于第二個分類器(j=2),我們得到的是未知類別是類2的概率;對于第三個分類器(j=3),我們得到的是未知類別是類3的概率。比較這三個概率,哪個概率最大,當然位置數據就屬于這個類別。
注:回到前文所示的那個問題。假如我們規定紅叉為類0,藍圈為類1,如果我們還是認為θTx≥0即取得直線上方的點為類1,θTx<0即取得直線下方的點為類0,那豈不是會分錯?其實不然,當我們規定的類別相反時,分類器給出的θ也正好相反,因為是最小化代價函數,如果分類徹底分反,代價函數則取得極大值。而且最關鍵一點,對于二維來說,θTx≥0不代表一定是取得直線上方的點。因此當θ取反時,θTx亦取反,于是當θTx≥0時,取得的是類別1,而且是黑色的決策邊界下方,符合。所以訓練集類別的設定絲毫不會對結果產生影響,無論怎樣對訓練集設定類1還是類0,當θTx時,一定選擇的是類1,一定符合訓練集即是訓練集標注的類別1。
二、正則化
首先我們來了解一下什么是欠擬合和過擬合。欠擬合,顧名思義,擬合的所用的參數過少,導致無法準確擬合訓練數據,準確度比較低。而過擬合意味著所用的參數太多導致雖然可以非常準確地擬合訓練集,但是無法進行泛化(generalization),即無法掌握訓練集的規律。下圖左1為欠擬合,右1為過擬合,中間的擬合是我們所需要的。
線性回歸和邏輯回歸等問題中,如果問題比較復雜,并且特征(參數)較多,我們很難去選擇一個很好的參數數量去防止欠擬合和過擬合,這時就需要對我們的代價函數進行正則化(regularization),即在后面增加一個才”懲罰項”,當參數的值較大時代價函數較大,這樣訓練出來的模型會盡可能地使參數變小,即模型較為簡單,避免出現過擬合。增加的一項為:
對于線性回歸,我們修改它的代價函數如下:
因此對于權值θ的更新也要進行相應的改變,同樣對于θ0我們不進行正則化。
???????????θ0=θ0?α1m∑i=1m(hθ(x(i))?y(i))x(i)0θj=θj?α(1m∑i=1m(hθ(x(i))?y(i))x(i)1+λmθj)(y=1,2,3,?)(15) 線性回歸中的正規方程,我們進行這樣的改變: θ=(XTX+λ?????????011?1?????????(n+1)×(n+1))?1XTy(16) 注:正規方程中進行正則化之后,經過嚴格的數學證明可以得知矩陣一定可逆!
對于邏輯回歸,我們修改它的代價函數如下:
總結
以上是生活随笔為你收集整理的机器学习入门系列三(关键词:逻辑回归,正则化)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习中有监督学习——回归
- 下一篇: 机器学习入门系列一(关键词:单变量线性回