機器學習-邏輯迴歸與sigmoid

一、窮人還是富人?

舉個例子。

假如我們需要根據財富將人分成兩類:窮人和富人。財富用x表示,擁有為正,負債為負。類別用y表示,0為窮人,1為富人。

三十年前,萬元戶就算很有錢了,所以將標準定為1萬。即:擁有財富量x≥1萬的人為富人,<1萬的人為窮人。就可以得出這樣一個劃分模型:

機器學習-邏輯迴歸與sigmoid

它可以用公式:

機器學習-邏輯迴歸與sigmoid

來表示。h(x)表示擁有財富的人是富人的概率。如果取0.99為分界點,當h(x)>=0.99時,y=1,為富人,否則,y=0,為窮人。

隨著通貨膨脹,錢越來越不值錢了。萬元戶已不算啥,10萬才算有錢人。模型需要調整如下:

機器學習-邏輯迴歸與sigmoid

公式變為:

機器學習-邏輯迴歸與sigmoid

對比發現,式子中其它部分不變,只有x的係數由4變為了0.5。也就是說,如果評判標準發生了變化,只需要調整x的係數就可以得到新的滿足要求的模型。

把係數當成一個參數θ,得到通用公式如下:

機器學習-邏輯迴歸與sigmoid

問題來了,如果我們不知道評判標準,只知道幾組已知的評判結果如下:

機器學習-邏輯迴歸與sigmoid

如何推測擁有財富6萬的人是窮人還是富人?

我們已經知道了評判標準的通用模型,只是參數:

機器學習-邏輯迴歸與sigmoid

尙不確定。

不過我們可以通過上面的公式用已知評判數據反推。

如果將第一組數據x=10,y=0.99帶入,由之前的例子可知θ約等於0.5即可滿足要求。

得到評判模型公式如下:

機器學習-邏輯迴歸與sigmoid

模型曲線:

機器學習-邏輯迴歸與sigmoid

評判結果:

機器學習-邏輯迴歸與sigmoid

可以看出,除了x=10,與給定吻合,其它的相差較大。

如果我們以最小的x=-5,y=0.01帶入公式:

機器學習-邏輯迴歸與sigmoid

反推出的評判模型公式如下:

機器學習-邏輯迴歸與sigmoid

模型曲線:

機器學習-邏輯迴歸與sigmoid

原數據評判結果:

機器學習-邏輯迴歸與sigmoid

和給定結果一致。

所以,我們可以認為這個評判模型和實際模型是比較接近的。

回到最初的問題,要想知道財富量為6萬的人究竟屬於哪一類?只需將x=6帶入評判模型公式:

機器學習-邏輯迴歸與sigmoid

所以y=1,應屬於富人。

總結以上,我們根據問題的特點,創建了一個通用,但參數不確定的模型。再根據已知的數據信息,確定模型的參數。最後,用參數已定的模型預測新的未知數據。

其中,由已知信息確定模型參數的過程就叫機器學習。

問題是,為何要選擇:

機器學習-邏輯迴歸與sigmoid

這樣一個模型,它是怎麼來的?

二、萬能公式

從牛頓的F=ma對宏觀物理現象的解釋,到麥克斯韋方程組對電磁波的描述,再到愛因斯坦、霍金對大一統理論的探索。人類苦苦追求的其實就是一個萬能公式,它囊括了萬物之理,是宇宙的模型。通過它我們可以解釋一切未知的物理現象,宇宙對我們來說也再無秘密可言。

為了得到這個模型,無數的科學家觀測記錄了大量數據,從中抽象並總結了很多規律,形成了我們目前已知的定理、定律和公式。我們可以把它們看作一個個的子模型。

機器學習也是,如果能有一個描述能力很強的模型,能夠囊括我們需要解決的問題的規律。那麼我們就可以利用觀測到的數據通過訓練來確定模型的參數,然後用來預測或解釋新的數據和現象。

那到底有沒有這樣的一個模型呢?

有。

就是指數族分佈函數,如下:

機器學習-邏輯迴歸與sigmoid

其中:

  • ​ η是自然參數,包括輸入數據和模型參數 ;
  • T(y)是充分統計量;
  • ​ a(η)保證​ p(y;η)的和為1;

大多數概率分佈都可以由指數族分佈給出,包括正態分佈、多項式分佈、泊松分佈、伽馬分佈,Beta分佈,伯努利分佈等。

它就像概率分佈的一個萬能公式。

而我們現實世界中有很多現象是服從這些分佈的,比如窮人富人分類問題其實就是一個典型的伯努利分佈問題。

所以,在構造模型的時候就可以考慮這個指數族分佈函數。

三、伯努利分佈與指數分佈族函數

既然指數族分佈函數涵蓋了伯努利分佈,那伯努利分佈和指數分佈族之間的關係是怎樣的呢?

我們知道,伯努利分佈如下:

機器學習-邏輯迴歸與sigmoid

其中,y是可能的取值,只有0和1。Φ是y=1時的概率。

轉換成指數分佈族函數的樣式:

機器學習-邏輯迴歸與sigmoid

和指數分佈族函數標準式子進行對比:

機器學習-邏輯迴歸與sigmoid

可以看出,當:

機器學習-邏輯迴歸與sigmoid

時,指數分佈族函數就變成了伯努利分佈。

四、邏輯迴歸

有了指數分佈族這一利器,讓我們重新審視窮富人的分類問題。

根據財富x,進行分類,非富即窮,只有兩種選擇。是個二分類問題,服從伯努利分佈。

既然指數分佈族函數涵蓋了伯努利分佈,我們就將伯努利分佈作為描述問題的模型:

機器學習-邏輯迴歸與sigmoid

其中​包含了模型參數​和輸入x兩部分信息。設:

機器學習-邏輯迴歸與sigmoid

當​通過訓練確定後,輸入財富量x就可以得到y=0或1的概率,進而確定x對應的類別。

但如何確定:b(y)​、T(y)​、a(η)​呢?

因為問題服從伯努利分佈。設y表示劃分的類別,0-窮人,1-富人。Φ​表示富人的概率,1-Φ​表示窮人的概率,公式如下:

機器學習-邏輯迴歸與sigmoid

由伯努利分佈和指數族分佈之間的關係可知:

機器學習-邏輯迴歸與sigmoid

連同

機器學習-邏輯迴歸與sigmoid

一起帶入指數族分佈,得:

機器學習-邏輯迴歸與sigmoid

令y=1,也就是說類別為富人的概率:

機器學習-邏輯迴歸與sigmoid

所以就得到了最終的模型:

機器學習-邏輯迴歸與sigmoid

這就是最初我們選擇這個公式作為模型的由來,這個模型又叫邏輯迴歸模型。

總結:

之所以會選擇這個公式,是由我們選擇描述問題的方式決定的。我們選擇了伯努利分佈來描述我們的問題,自然而然的也就推導出了這樣一個公式。

如果選擇其它的描述方式,可能就會出來另外一個公式了。

五、sigmoid

神經網絡中用到的sigmoid函數,如下:

機器學習-邏輯迴歸與sigmoid

是不是很眼熟,和我們推導出來的邏輯迴歸模型函數有著驚人的相似:

機器學習-邏輯迴歸與sigmoid

為什麼會這樣呢?

原因是,sigmoid函數,通常位於神經網絡的輸出層,作為二分類問題的最終輸出。它本質上也是一個邏輯迴歸問題。

所以用它也就自然而然了。


分享到:


相關文章: