目錄
一、代價函數
二、梯度下降
三、進階優化(Advanced Optimization)
四、多類别分類(Multiclass Classification)
在分類問題中,如果我們有一組訓練集,那麼如何根據這個訓練集來選擇合适的參數θ呢?
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYTMfhHLlN3XnxCM38FdsYkRGZkRG9lcvx2bjxCMy8VZ6l2csEUeiVjTpxUNTVXW1c3TyVTQClGVF5UMR9Fd4VGdsATNfd3bkFGazxSUhxGatJGbwhFT1Y0Mk9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLmdjNxcjZ3MTZzIzNjRDMiBTYkRzNhJWZkNWNhdzYwAzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
在回歸問題中我們使用到了代價函數來衡量假設函數與資料集的拟合程度,使用梯度下降算法來找到代價函數的局部最小值進而得到合适的參數θ,而在分類問題中,我們同樣使用代價函數和梯度下降算法。
一、代價函數
對于線性回歸模型,我們定義的代價函數J(θ)為:
但是對于邏輯回歸模型,我們不能使用上面的代價函數,否則會造成代價函數圖像變成下圖左方的形式,我們稱之為非凸函數(non-convex function):
注:國外的凸函數定義與國内的相反
這意味着我們的代價函數有多個局部最小值(如上圖左邊函數圖像),使得我們的梯度下降算法很難收斂到全局最小值。是以為了優化我們的代價函數變成上圖右邊的凸函數形式,我們重新定義代價函數為:
1、當y=1的時候,Cost(hθ(x),y)=−log(hθ(x)),我們得到Cost(hθ(x),y)與hθ(x)的關系圖像為:
- 當hθ(x) -> 1時,代價函數趨向于0(代價函數越小代表選取的參數θ越好);
- 當hθ(x) -> 0時,代價函數趨向于無窮大。
2、當y=0的時候,Cost(hθ(x),y)=−log(1−hθ(x)),我們得到Cost(hθ(x),y)與hθ(x)的關系圖像為:
- 當hθ(x) -> 1時,代價函數趨向于無窮大;
- 當hθ(x) -> 0時,代價函數趨向于0。
為了簡化書寫,我們還可以将Cost(hθ(x),y)寫成更加簡略的形式:
注:y等于0或1
進而得到簡化的代價函數J(θ):
二、梯度下降
和線性回歸中梯度下降算法一樣,邏輯回歸中的梯度下降算法也是要找出讓代價函數J(θ)取得最小值的參數θ:
将代價函數的偏導代進公式裡可以得到:
可以看到形式基本和我們之前線上性回歸裡面用到的梯度下降算法幾乎一模一樣,但這裡要注意的是,式子裡面的假設函數h(x)變了!!
推導過程:
其中:
三、進階優化(Advanced Optimization)
除了普通的優化算法梯度下降以外,還有一些更加進階的優化算法,比如說共轭梯度算法(Conjugate Gradient)、局部優化算法(Broyden fletcher goldfarb shann,BFGS)和有限記憶體局部優化算法(LBFGS)。這三種算法有許多特點,如:
- 無需手動選擇學習率α
- 收斂速度比梯度下降更快
- 但比梯度下降算法更加複雜
四、多類别分類(Multiclass Classification)
上面我們使用的例子是兩個輸出的分類,而當輸出有多個的時候,我們會先将多類别問題變成多個二類别問題,然後分别使用二類别的方法求解。下面是一個三類别分類的例子,将例子變成三個二類别問題後再用二類别的方法求解即可,如下圖右方所示: