Logistic Regression - Week_3_part1

Classification and Representation

 Classification   

嘗試進行分類問題的時候,我們有兩種方法去進行分類,第一種是運用linear regression 把所有的預測值大於0.5當成1,小於0.5當成0,但這種方法在分類的時候運作得不是很好,因為其實分類不是線性函數。第二種方法是二元分類法,y在這邊只有0和1兩個值,這邊我們稱呼0為negative class,1為positive class。

--------------------------------------------------------------------------------------------------------------------------
Hypothesis and Representation   

假如我們忽略掉y是個離散的值,我們運用舊的線性回歸算法持續的處理問題分類問題,我們知道y ∈ {0, 1},會發現有hθ(x)大於1或者小於0的狀況,故這樣是不合理的,這樣的價值函數就不會是最小值,就達不成我們要做的線性回歸。為了修復這問題,我們修改了假設hθ(x),讓0 ≤  hθ(x) ≤1,我們稱之為sigmoid function 或者 logistic function,下面為他的數學函式及圖。


The function g(z)

根據上述圖形所歸納出來的性質如下:




這邊 hθ(x)代表y=1的機率,而y=1和y=0的機率是互補的,可以寫成下列的函式:


--------------------------------------------------------------------------------------------------------------------------

Decision Boundary

hθ(x) ≥ 0.5 代表該y值等於1的機率大於50%,這邊我們相當於令y=1, hθ(x) < 0.5代表該y值等於1的機率小於50%,這邊我們相當於令 y = 0。


根據hypotheis and representation小節裡面的函式以及上述的假設,我們可以歸納出下列的性質:


而且decision boundary是由hypothesis的性質來決定,不是由數據的特性來決定,故只要theta確定後,其decision boundary就跟著被確定。

--------------------------------------------------------------------------------------------------------------------------

Logistic Regression Model

Cost Function
因為logistic regression會讓價值函數(cost function)變得波浪狀,且會出現許多局部的最小值,也是說價值函數不是凸狀的函數。所以我們使用在linear regression上的價值函數,不能同樣運用在logistic regression上面。


故在這邊我們使用新表示方法來表示價值函數:



--------------------------------------------------------------------------------------------------------------------------

Simplified Cost Function and Gradient Descent

但後來價值函數使用這樣分離的函數有點不是很方便,所以想要使用一個數學函式即能表達我們的價值函數,故簡化成下面此種函數:



下面是用向量化後的公式,方便用矩陣表達:


梯度下降法函數原始的定義如下:


梯度下降法函數經解開微分項之後:


梯度下降函數經向量化後的數學式:


--------------------------------------------------------------------------------------------------------------------------

Advanced Optimization


此小節主要講解,要找尋最佳theta值,除了梯度下降法之外,還有很多更複雜但更快速的方式,且不需要給定其alpha learning rate,例如:Conjugate gradient、BFGS、L-BFGS,這些複雜的方法在此課程不去探討,有想要用這些方法的人可以去網路上找其他資源。在此課程中,你可以使用octave的裡面的library去完成你需要的方式,如果你是用其他語言也可以找找他們的library,千萬不要自己去發明輪子,除非你是數值計算的專家,不然這些事情家給這些專家即可,我們只要使用這些工具去達成我們目的即可。


--------------------------------------------------------------------------------------------------------------------------

Multiclass Classification 

Multiclass Classification: One-vs-all


一般我們在處理二元分類法時,就是把其預測值y對應到0和1兩個值,y={0,1},當我們要處理更多元的分類時,我們就把y對應到更多值,y = {0,1....n},我們用hypothesis去預測某個分類時的機率有多大,基本的想法是跟二元分類問題時一樣的,就是把我們要預測的視為一個class,把不要預測的剩下的視成另一個class,這樣問題就變成二元分類問題了。下面是其數學表達式:

下面是個三個class分類問題的示意圖:

hθ

留言

這個網誌中的熱門文章

在jupyter notebook中同時使用pyhton2和python3

Recommender Systems - Week_9_part2

Machine Learning System Design - Week_6_ part2