iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 14
1
AI & Machine Learning

機器學習你也可以 - 文組帶你手把手實做機器學習聖經系列 第 14

線性模型 - 分類(2) 邏輯回歸 Logistic Regression

  • 分享至 

  • xImage
  •  

上一篇以無機率的方式介紹怎麼做一個簡單的分類,而我們現在介紹一些有機率想法在裡面的方式。

前一篇我們給一筆資料 x 他就告訴我是+1或是-1,進而告訴你預測是哪一個類別。而現在我們要做的是,我們也是拿到一筆資料 x,我們告訴你它屬於哪一個類別的機率是多少!

首先先介紹兩個函數

  • sigmoid function

    它可以把一個任意的實數值變成0~1之間的值,當我們只有兩個類別的時候,一個類別機率就是用這個function表得,令一個類別就剩下的機率。

  • softmax function

    分母是所有類別都要累加起來的意思,用式子這個來表達資料是第k個類別的機率

接著我們以二元分類為例來解釋。我們這邊要用的手法就如同之前的Regression,設計一個error function然後最小化。首先我們要定義error function,一般來說,error function會是 -log likelihood,就像之前提過的機率再探curve fitting裡面描述的。

所以這邊我先寫下likelihood

因此我們的error function可以寫成

這個error function被稱作cross entropy error

我們試著把這個error function對 w 微分

推導上面這個微分我們會用到對sigmoid的微分,簡單的chain rule可以得到

由於sigmoid function並非線性函數,因此這次我們不能直接令他是 0 去求 w,我們要利用迭代的方式去最佳化 w,這邊我們採用牛頓法來做這件事情,所謂牛頓法就是利用一二階微分去迭代求解,也就是一次又一次的利用泰勒展開去逼近最佳解。所以我們這邊的把遞迴式寫成

裡面那個 H 指的是E(w)的海森矩陣,也就是二次微分的矩陣。而那個三角形就是梯度,也就是一次微分。
把各項整理完之後可以得到


  • R 是一個對角矩陣,第n格
    有了這幾項之後,我們就可以開始更新我的 w ,起始的 w 可以得到一組梯度與海森,利用他算出新的 w ,再計算一組新的梯度與海森,以此類推,直到 w 收斂。

而在大於兩個類別的情況,也是類似的推導,明天將跟大家介紹在三個類別的情況下,可以怎麼實作這個演算法!


上一篇
線性模型 - 分類(1) PLA
下一篇
線性模型 - 動手做做看 Logistic Regression篇
系列文
機器學習你也可以 - 文組帶你手把手實做機器學習聖經30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言