不求甚解的深度學習教程(1)-邏輯迴歸基本概念以及代價函數

將來是人工智能的時代!算法

提到深度學習,邏輯迴歸是最經典的一個例子,也是不少教材的入門算法(好比吳恩達的深度學習)。鑑於本人零基礎學習人工智能的痛苦經歷,因此用通俗的語言把邏輯迴歸講清楚。深度學習自己核心知識是數學知識,涉及到線性代數、機率論,微積分等。體會到不少讀者都是像我同樣,已經把這些知識早就還給老師了,因此我會逐步完善這個系列,用盡可能通俗的語言來把深度學習的知識分享整理一遍。機器學習

什麼是「邏輯」?什麼是「迴歸」?

邏輯迴歸,英文名logistics regression,雖然帶了「邏輯」二字,可是和邏輯沒有任何關係,它是一種對樣本進行分類的方式。好比是不是垃圾郵件、是否患某種疾病,是解決二分類問題的一個方式,因此結果要麼是0,要麼是1。想一下,咱們學計算機時那個課程是主要和0、1打交道?固然是邏輯運算那一塊!因此這麼理解邏輯。函數

那爲何又叫「迴歸」呢?剛纔舉的例子裏明明是個分類問題,爲何取名「迴歸」呢(迴歸在咱們中國人思惟定式裏,就是香港迴歸、澳門迴歸)?查看維基百科的解釋:學習

迴歸分析是創建因變量 Y {\displaystyle Y} Y(或稱依變量,反因變量)與自變量 X {\displaystyle X} X(或稱獨變量,解釋變量)之間關係的模型

  看圖,用人話解釋一下,就是知道了不少點(藍色)的X座標和Y座標,找到一條線來最大可能的符合這些點的趨勢,也就是咱們初中學的線性方程。人工智能

 因此,什麼是邏輯迴歸呢?就是經過提供的一些數據,找到一個函數,來匹配這些數據的分類關係。spa

這和咱們曾經學習數據的思惟方式不同,過去咱們數學一直學習y=f(x)=ax+b之類,如y=x+1,很明顯a=1,b=2,經過此求解x或者y的值。如今反過來來了,知道不少x和y的值(如圖上的點),來求解a、b的值。人工智能、機器學習的大部分算法都是在尋找一個最優的a、b等參數的值。blog

如何找到a、b兩個參數的值?先找一個預測的函數

剛纔咱們提到,邏輯迴歸的最終分類結果只有0和1兩個結果,因此對應上文提到的全部的採樣點x,全部的y值只能有0或者1兩個結果。因此剛纔的座標系曲線應該是以下圖深度學習

 

那如何把以前f(x)=ax+b對應到上面這個圖上呢(最終取值是0或者1)?還好數學家們幫咱們找到了一個函數,名叫Sigmoid函數,機器學習里名字叫激活函數。爲何叫激活函數,咱們之後再解釋。數學

這個函數形狀如它的名字「S」,正好符合上面0~1的曲線。把t換成原來的ax+b,就獲得下面的公式io

 因此接下來咱們就圍繞這個公式作研究,怎麼找到a、b的值。

預測的函數和真實函數的差距

有一點必定要注意:當前這個p(x)函數是咱們推測、假定的函數,是極度接近真實數據的函數。可是他和理想中的函數有有必定差距的,也就是偏差。因此換句話說,和真實結果作下下對比,咱們把偏差計算出來,找到偏差最小的時候,是否是就找到一個最接近真實函數的預測函數,從而就找到a、b的理論值了

因此咱們先看看偏差函數怎麼定義

hθ(x):用參數θ和x預測出來的y值;這是一個新的符號,必定要注意。
y:原訓練樣本中的y值,也就是標準答案;

雖然這個函數英文名cost一看就明白,專業名詞叫損失函數,可是不少人一看就頭大,爲何用這個函數。。。這個得問數學老師,反正經過這個函數,咱們能正好完美的算出真實值和預測值的差。詳細解釋,利用高中數學知識

1. 當y=1的時候,Cost(h(x), y) = -log(h(x))。h(x)的值域0~1,-log(h(x))的曲線圖,以下

字很小,可是很重要^_^

h(x)的值趨近於1的時候,代價函數的值越小趨近於0,也就是說預測的值h(x)和訓練集結果y=1越接近,預測錯誤的代價愈來愈接近於0,分類結果爲1的機率爲1
當h(x)的值趨近於0的時候,代價函數的值無窮大,也就說預測的值h(x)和訓練集結果y=1越相反,預測錯誤的代價愈來愈趨於無窮大,分類結果爲1的機率爲0

2. 當y=0的時候, Cost(h(x), y) = -log(1-h(x))。h(x)的值域0~1,-log(1-h(x))的曲線圖,以下

 

 

 【字很小,可是很重要^_^

h(x)的值趨近於1的時候,代價函數的值趨於無窮大,也就是說預測的值h(x)和訓練集結果y=0越相反,預測錯誤的代價愈來愈趨於無窮大,分類結果爲0的機率爲1-h(x)等於0
當h(x)的值趨近於0的時候,代價函數的值越小趨近於0,也就說預測的值h(x)和訓練集結果y=0越接近,預測錯誤的代價愈來愈接近於0,分類結果爲0的機率爲1-h(x)等於1

爲了統一表示,能夠把Cost(h(x), y)表達成統一的式子,根據前面J(θ)的定義,擴展到全部m個樣本,J(θ)等於

 

 

特別說明:
1. 當y=1的時候,第二項(1-y)log(1-h(x))等於0
2. 當y=0的時候,ylog(h(x))等於0
3. m指的是如今有m個點的y值須要與預測值進行比較

因此,咱們是否是找到這個函數的最小值就找到a、b的值了?接下來一篇文章咱們會講如何經過高中學的導數知識來求解這個最小值。

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

上文都是本身在學習過程當中的一些總結,後續歡迎加qq羣595560901交流

相關文章
相關標籤/搜索