1. 程式人生 > >吳恩達深度學習筆記(6)--邏輯迴歸(Logistic Regression)

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

邏輯迴歸(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=(wT) x+b。
在這裡插入圖片描述
這時候我們得到的是一個關於輸入x的線性函式,實際上這是你在做線性迴歸時所用到的,但是這對於二元分類問題來講不是一個非常好的演算法,因為你想讓y^表示實際值y等於1的機率的話,y 應該在0到1之間。這是一個需要解決的問題,因為(wT)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的值。
在這裡插入圖片描述

關於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這一情況的概率的一個很好的估計。

在這裡插入圖片描述

在繼續進行下一步之前,介紹一種符號慣例,可以讓引數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,你需要定義一個代價函式(代價函式這個是一個重要的概念)。