【李宏毅機器學習筆記】11、 Semi-supervised

【李宏毅機器學習筆記】1、迴歸問題(Regression)

【李宏毅機器學習筆記】2、error產生自哪裏?

【李宏毅機器學習筆記】3、gradient descent

【李宏毅機器學習筆記】4、Classification

【李宏毅機器學習筆記】5、Logistic Regression

【李宏毅機器學習筆記】6、簡短介紹Deep Learning

【李宏毅機器學習筆記】7、反向傳播(Backpropagation)

【李宏毅機器學習筆記】8、Tips for Training DNN

【李宏毅機器學習筆記】9、Convolutional Neural Network(CNN)

【李宏毅機器學習筆記】11、 Semi-supervised

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

【李宏毅深度強化學習】視頻地址:https://www.bilibili.com/video/av10590361?p=22

課件地址:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17_2.html

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

 在supervised learning中,每一個樣本 x^r ,都有對應的label y^r\hat 。

而Semi-supervised learning,則不僅包含x^r 、y^r\hat,還包含了沒label的data x^u 。

  • 通常做Semi-supervised learning,沒label的data會遠多於有label的data 。

Semi-supervised learning 有 Transductive learning和Inductive learning 兩種方法。

  • 在Transductive learning中,沒label的datatesting data裏面(個人覺得testing data是指validation data那個意思)
  • 在Inductive learning中,沒label的data沒在testing data裏面(個人覺得testing data是指validation data那個意思)

爲什麼是Semi-supervised learning?

  • 獲取有label的data成本太高。也可以說不缺data,但缺有label的data。
  • 人類也在做Semi-supervised learning

Semi-supervised Learning for Generative Model

Supervised Generative Model

 這個是Supervised Generative Model(具體內容可看第4篇筆記

Semi-supervised Generative Model

 在剛纔已經有label的data的基礎上,再加上如上圖的綠色的沒label的data 。

此時,由於這些沒label的data會影響,所以最後分界線也跟着變了

具體公式怎麼做,如下。

  1. 初始化參數,這些參數可以用有label的data估測而來。
  2. 根據已有的參數,估測unlabel data屬於哪一類的概率,比如屬於class 1的概率等。
  3. 按照圖中所示公式,更新模型 
  4. 重複2、3步

上圖的step 1就對應EM算法的E,step 2就對應EM算法的M 。

第4篇筆記知道 ,Generative Model 就是根據label data生成一個能最大化Likelihood()的model。

而現在加了unlabel data,的公式就變成上圖所示的那樣。

 

Low-density Separation

Low-density Separation,就是說兩個類之間,如果存在一個density比較小(data比較少)的地方,那麼這兩個類的分界線應該就在這裏。

Self-training

  1.  通過label data 算出model(隨便什麼方法計算都可以)
  2. 用這個model去給unlabeled data打標籤(這個叫Pseudo-label),然後抽一些(怎麼抽隨便你)放到label data裏。

重複1、2步。

注意:方法不能用於regression的問題上。

剛纔有說過要給unlabel data 打標籤,這裏打的標籤要是hard label,體現了Low-density Separation這個方法的“非黑即白”的特點。 什麼是hard label,如上圖。

把 unlabel data 丟到 network 裏,輸出這個unlabel data屬於class 1的機率是0.7,屬於class 2的機率是0.3。

  • 用hard label就是直接將這個data的target設爲class 1 。
  • 用soft label,則仍然是把這個data的target設爲,和網絡的輸出是一樣的。所以後面這個data丟給網絡訓練是沒起作用的。

Self-training有一個進階版,就是Entropy-based Regularization。

Entropy-based Regularization

在這個方法中,network的不是直接輸出 x 屬於什麼class。而是輸出一個分佈,這個分佈是 x 屬於所有class的概率。

  • 這個分佈,越能明確看出 x 屬於某一class就越好。
  • 如果這個分佈是 x 屬於所有class的機率都差不多,那就是不好的。

這裏用entropy 來衡量這件事情。同時把這項entropy 加到原來(只有label data)的Loss Function上,所以希望這一項越小越好。

  • 第一個分佈,x 屬於class 1的概率是1,符合剛纔說的比較好的情形,能明確看出x屬於某一類,此時 = 0 。
  • 第三個分佈,x 屬於每一類的概率都差不多,約等於1/5,符合剛纔說的不好的情形,此時  =  。

 

 

未完待續。。。

發佈了26 篇原創文章 · 獲贊 38 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章