1. 程式人生 > >有監督學習和無監督學習的簡單理解

有監督學習和無監督學習的簡單理解

文章轉載自:http://blog.sina.com.cn/s/blog_4d7c97a00102w958.html

有監督學習和無監督學習的區別是什麼?

       這個問題可以回答得很簡單:是否有監督(supervised),就看輸入資料是否有標籤(label)。輸入資料有標籤,則為有監督學習,沒標籤則為無監督學習。
       首先看什麼是學習(learning)?一個成語就可概括:舉一反三。此處以高考為例,高考的題目在上考場前我們未必做過,但在高中三年我們做過很多很多題目,懂解題方法,因此考場上面對陌生問題也可以算出答案。機器學習的思路也類似:我們能不能利用一些訓練資料(已經做過的題),使機器能夠利用它們(解題方法)分析未知資料(高考的題目)?
        最簡單也最普遍的一類機器學習演算法就是分類(classification)。對於分類,輸入的訓練資料有特徵(feature),有標籤(label)。所謂的學習,其本質就是找到特徵和標籤間的關係(mapping)。這樣當有特徵而無標籤的未知資料輸入時,我們就可以通過已有的關係得到未知資料標籤。
        在上述的分類過程中,如果所有訓練資料都有標籤,則為有監督學習(supervised learning)。如果資料沒有標籤,顯然就是無監督學習(unsupervised learning)了,也即聚類(clustering)。
        (但有監督學習並非全是分類,還有迴歸(regression),此處不細說。(哇擦,貴圈太亂,逼著我用了這麼多括號))
        目前分類演算法的效果普遍還是不錯的(研究者們每天都在outperform其他人……),相對來講,聚類演算法就有些慘不忍睹了。(聚類:這不是我的錯嚶嚶嚶嚶└(T_T;)┘)確實,無監督學習本身的特點使其難以得到如分類一樣近乎完美的結果。這也正如我們在高中做題,答案(標籤)是非常重要的,假設兩個完全相同的人進入高中,一個正常學習,另一人做的所有題目都沒有答案,那麼想必第一個人高考會發揮更好,第二個人會發瘋。
        這時各位可能要問,既然分類如此之好,聚類如此之不靠譜(分類<( ̄︶ ̄)/,聚類└(T_T;)┘),那為何我們還可以容忍聚類的存在?因為在實際應用中,標籤的獲取常常需要極大的人工工作量,有時甚至非常困難。例如在自然語言處理(NLP)中,Penn Chinese Treebank在2年裡只完成了4000句話的標籤……
有監督學習和無監督學習的簡單理解


       這時有人可能會想,難道有監督學習和無監督學習就是非黑即白的關係嗎?有沒有灰呢?Good idea。灰是存在的。二者的中間帶就是半監督學習(semi-supervised learning)。對於半監督學習,其訓練資料的一部分是有標籤的,另一部分沒有標籤,而沒標籤資料的數量常常極大於有標籤資料數量(這也是符合現實情況的)。隱藏在半監督學習下的基本規律在於:資料的分佈必然不是完全隨機的,通過一些有標籤資料的區域性特徵,以及更多沒標籤資料的整體分佈,就可以得到可以接受甚至是非常好的分類結果。(此處大量忽略細節( ̄ε ̄;))

因此,learning家族的整體構造是這樣的:
有監督學習(分類,迴歸)

半監督學習(分類,迴歸),transductive learning(不懂怎麼翻譯,直推式學習?)(分類,迴歸)

半監督聚類(有標籤資料的標籤不是確定的,類似於:肯定不是xxx,很可能是yyy)

無監督學習(聚類)