吳恩達深度學習筆記(6)——邏輯迴歸(Logistic Regression)

邏輯迴歸(Logistic Regression)

吳恩達深度學習筆記(6)——邏輯迴歸(Logistic Regression)

在這節課中,我們會重溫邏輯迴歸學習算法,該算法適用於二分類問題,本節將主要介紹邏輯迴歸的Hypothesis Function(假設函數)。

對於二元分類問題來講,給定一個輸入特徵向量X,它可能對應一張圖片,你想識別這張圖片識別看它是否是一隻貓或者不是一隻貓的圖片,你想要一個算法能夠輸出預測,你只能稱之為y^(也就是預測值),也就是你對實際值 y 的估計。更正式地來說,你想讓 y^ 表示 y 等於1的一種可能性或者是機會,前提條件是給定了輸入特徵X。換句話來說,如果X是我們在上個視頻看到的圖片,你想讓 y ^來告訴你這是一隻貓的圖片的機率有多大。在之前的視頻中所說的,X是一個n_x維的向量(相當於有n_x個特徵的特徵向量)。我們用w來表示邏輯迴歸的參數,這也是一個n_x維向量(因為w實際上是特徵權重,維度與特徵向量相同),參數裡面還有b,這是一個實數(表示偏差)。所以給出輸入x以及參數w和b之後,我們怎樣產生輸出預測值y^,一件你可以嘗試卻不知可不可行的事是讓y^=(w^T) x+b。

吳恩達深度學習筆記(6)——邏輯迴歸(Logistic Regression)

這時候我們得到的是一個關於輸入x的線性函數,實際上這是你在做線性迴歸時所用到的,但是這對於二元分類問題來講不是一個非常好的算法,因為你想讓y^表示實際值y等於1的機率的話,y ^應該在0到1之間。這是一個需要解決的問題,因為(w^T)x+b可能比1要大得多,或者甚至為一個負值。對於你想要的在0和1之間的概率來說它是沒有意義的,因此在邏輯迴歸中,我們的輸出應該是^y等於由上面得到的線性函數式子作為自變量的sigmoid函數中,公式如上圖最下面output所示,將線性函數轉換為非線性函數(線性變成非線性函數,治這個手法要記得!也是一個重點的概念)。

Sigmoid函數

下圖是sigmoid函數的圖像,如果我把水平軸作為z軸,那麼關於z的sigmoid函數是這樣的,它是平滑地從0走向1,讓我在這裡標記縱軸,這是0,曲線與縱軸相交的截距是0.5,這就是關於z的sigmoid函數的圖像。我們通常都使用z來表示(w^T) x+b的值

吳恩達深度學習筆記(6)——邏輯迴歸(Logistic Regression)

關於sigmoid函數的公式是這樣的,σ(z)=1/(1+e^(-z) ),在這裡z是一個實數,這裡要說明一些要注意的事情,重點!仔細看了!

如果z非常大那麼e^(-z)將會接近於0,關於z的sigmoid函數將會近似等於1除以1加上某個非常接近於0的項,因為e 的指數如果是個絕對值很大的負數的話,這項將會接近於0,所以如果z很大的話那麼關於z的sigmoid函數會非常接近1。

相反地,如果z非常小或者說是一個絕對值很大的負數,那麼關於e^(-z)這項會變成一個很大的數,你可以認為這是1除以1加上一個非常非常大的數,所以這個就接近於0。實際上你看到當z變成一個絕對值很大的負數,關於z的sigmoid函數就會非常接近於0,

因此當你實現邏輯迴歸時,你的工作就是去讓機器學習參數w以及b這樣才使得y^成為對y=1這一情況的概率的一個很好的估計。

吳恩達深度學習筆記(6)——邏輯迴歸(Logistic Regression)

在繼續進行下一步之前,介紹一種符號慣例,可以讓參數w和參數b分開。在符號上要注意的一點是當我們對神經網絡進行編程時經常會讓參數w和參數b分開,在這裡參數b對應的是一種偏置。在之前的機器學習課程裡,你可能已經見過處理這個問題時的其他符號表示。比如在某些例子裡,你定義一個額外的特徵稱之為x_0,並且使它等於1,那麼現在X就是一個n_x加1維的變量,然後你定義y^=σ(θ^T x)的sigmoid函數。在這個備選的符號慣例裡,你有一個參數向量θ_0,θ_1,θ_2,...,θ_(n_x ),這樣θ_0就充當了b,這是一個實數,而剩下的θ_1 直到θ_(n_x )充當了w,結果就是當你實現你的神經網絡時,有一個比較簡單的方法是保持b和w分開。但是在這節課裡我們不會使用任何這類符號慣例,所以不用去擔心。

現在你已經知道邏輯迴歸模型是什麼樣子了,下一步要做的是訓練參數w和參數b,你需要定義一個代價函數(代價函數這個是一個重要的概念。),讓我們在明天中午的文章裡對其進行解釋。


分享到:


相關文章: