如下是臺大林軒田老師講的機器學習基石第10課的學習筆記 。算法
這裏咱們的二值分類和硬性二值分類的數據是同樣的,可是目標函數是不同的。而軟性二值分類所真正須要的數據是跟目標函數同樣的機率,可是咱們收集的數據倒是分類的結果。機器學習
對於提取的特徵向量:
計算各個份量的加權分數,但咱們須要把這個分數轉化爲0-1之間的機率值。(由於咱們的目標函數是這個)
用到的轉換函數叫logistic函數函數
這樣咱們的logistic hypothesis就是:學習
而其中的的logistic function(sigmoid函數就一種)能夠爲:
優化
sigmoid型函數表示是一個s型的函數。spa
用 來近似目標函數 f(x)=P(y|x)
.net
咱們這裏也要找一個Ein來minimise一下 ,當咱們的目標是一個機率p的時候,咱們能夠用一個特殊的方式。
這個方式就是最大似然估計的方法,咱們假設目標函數爲:
code
則對於一個數據,它取各個值的機率分別爲:對象
那麼咱們能夠從數據中取出N個樣本(in sample),觀測它們的分佈,咱們想要達到的目標是咱們的目標函數可以讓取出這N個觀測的機率儘量的大,這個就是最大似然估計獲得最優化的方法。blog
用f(x)替換成
用咱們的hypothesis替換f:
讓這個可能性最大的g就是咱們要找的g
如今咱們發現這個s型的logistic函數有對稱性
因此咱們能夠用這個性質來簡化優化函數,由於p(xi)對於全部的h是同樣的,因此沒什麼關係
而後咱們用咱們的hypothesis的定義式子來替換這個h,要找likelihood的最大值,咱們把連乘經過取對數換成連加,經過帶入logistic函數最終獲得Ein最小化的形式。這個error 衡量咱們叫交叉熵錯誤(信息熵的概念)。
對這個Ein 求梯度爲0 的w的值
要想讓這個Ein的梯度小到接近0,就不斷的嘗試 啓發式搜索 、迭代優化(iterative optimization)
v 是方向 η是步頻
每一步都要用貪心的策略,找一個降低最快的方向
這個優化對象不是線性的,咱們應該使用泰勒展開的形式,把公式近似替代爲線性的形式
v的方向取梯度的反方向
η 應該和梯度的大小成比例,這樣才能最終收斂。這樣和v的分母抵消,最後造成定值學習率(fixed learning rate )
下面是logistic 迴歸算法用梯度降低法作優化