監督學習與無監督學習

從14年10月份接觸機器學習到現在已經接近5年了,機器學習的入門課程就是看Andrew Ng的機器學習視頻,當時由於是小白,看的也是模棱兩可,前端時間又系統的學習了一遍,收穫很多,在這裏記錄一下聽課筆記吧,方便以後查閱。

監督學習

用一個例子介紹什麼是監督學習。假如說你想預測房價。

eg:前陣子,一個學生從波特蘭俄勒岡州的研究所收集了一些房價的數據。你把這些數據畫出來,看起來是這個樣子:橫軸表示房子的面積,單位是平方英尺,縱軸表示房價,單位是千美元。那基於這組數據,假如你有一個朋友,他有一套750平方英尺房子,現在他希望把房子賣掉,他想知道這房子能賣多少錢。

那麼關於這個問題,機器學習算法將會怎麼幫助你呢?
在這裏插入圖片描述

我們應用學習算法,可以在這組數據中畫一條直線,或者換句話說,擬合一條直線,根據這條線我們可以推測出,這套房子可能賣多少錢,當然這不是唯一的算法。可能還有更好的,比如我們不用直線擬合這些數據,用二次方程去擬合可能效果會更好。兩個方案中有一個能讓你朋友的房子出售得更合理。這些都是學習算法裏面很好的例子。

可以看出,監督學習指的就是我們給學習算法一個數據集。這個數據集由“正確答案”組成。在房價的例子中,我們給了一系列房子的數據,我們給定數據集中每個樣本的正確價格,即它們實際的售價然後運用學習算法,算出更多的正確答案。比如你朋友那個新房子的價格。用術語來講,這叫做迴歸問題。我們試着推測出一個連續值的結果,即房子的價格。

一般房子的價格會記到美分,所以房價實際上是一系列離散的值,但是我們通常又把房價看成實數,看成是標量,所以又把它看成一個連續的數值。

迴歸這個詞的意思是,我們在試着推測出這一系列連續值屬性。

另外一個監督學習的例子。假設說你想通過查看病歷來推測乳腺癌良性與否,假如有人檢測出乳腺腫瘤,惡性腫瘤有害並且十分危險,而良性的腫瘤危害就沒那麼大,所以人們顯然會很在意這個問題。
在這裏插入圖片描述

讓我們來看一組數據:這個數據集中,橫軸表示腫瘤的大小,縱軸上,我標出1和0表示是或者不是惡性腫瘤。我們之前見過的腫瘤,如果是惡性則記爲1,不是惡性,或者說良性記爲0。

我有5個良性腫瘤樣本,在1的位置有5個惡性腫瘤樣本。現在我們有一個朋友很不幸檢查出乳腺腫瘤。假設說她的腫瘤大概這麼大,那麼機器學習的問題就在於,你能否估算出腫瘤是惡性的或是良性的概率。用術語來講,這是一個分類問題。

分類指的是,我們試着推測出離散的輸出值:0或1良性或惡性,而事實上在分類問題中,輸出可能不止兩個值。比如說可能有三種乳腺癌,所以你希望預測離散輸出0、1、2、3。0 代表良性,1 表示第1類乳腺癌,2表示第2類癌症,3表示第3類,但這也是分類問題。

因爲這幾個離散的輸出分別對應良性,第一類第二類或者第三類癌症,在分類問題中我們可以用另一種方式繪製這些數據點。

現在我用不同的符號來表示這些數據。既然我們把腫瘤的尺寸看做區分惡性或良性的特徵,那麼我可以這麼畫,我用不同的符號來表示良性和惡性腫瘤。或者說是負樣本和正樣本現在我們不全部畫X,良性的腫瘤改成用 O 表示,惡性的繼續用 X 表示。來預測腫瘤的惡性與否。

在其它一些機器學習問題中,可能會遇到不止一種特徵。舉個例子,我們不僅知道腫瘤的尺寸,還知道對應患者的年齡。在其他機器學習問題中,我們通常有更多的特徵,我朋友研究這個問題時,通常採用這些特徵,比如腫塊密度,腫瘤細胞尺寸的一致性和形狀的一致性等等,還有一些其他的特徵。這就是我們即將學到最有趣的學習算法之一。

那種算法不僅能處理2種3種或5種特徵,即使有無限多種特徵都可以處理。
在這裏插入圖片描述

上圖中,我列舉了總共5種不同的特徵,座標軸上的兩種和右邊的3種,但是在一些學習問題中,你希望不只用3種或5種特徵。相反,你想用無限多種特徵,好讓你的算法可以利用大量的特徵,或者說線索來做推測。那你怎麼處理無限多個特徵,甚至怎麼存儲這些特徵都存在問題,你電腦的內存肯定不夠用。我們以後會講一個算法,叫支持向量機,裏面有一個巧妙的數學技巧,能讓計算機處理無限多個特徵。想象一下,我沒有寫下這兩種和右邊的三種特徵,而是在一個無限長的列表裏面,一直寫一直寫不停的寫,寫下無限多個特徵,事實上,我們能用算法來處理它們。

上面主要介紹了監督學習。其基本思想是,數據集中的每個樣本都有相應的“正確答案”。再根據這些樣本作出預測,就像房子和腫瘤的例子中做的那樣。我們還介紹了迴歸問題,即通過迴歸來推出一個連續的輸出,之後我們介紹了分類問題,其目標是推出一組離散的結果。

現在來個小測驗:假設你經營着一家公司,你想開發學習算法來處理這兩個問題:

你有一大批同樣的貨物,想象一下,你有上千件一模一樣的貨物等待出售,這時你想預測接下來的三個月能賣多少件?
你有許多客戶,這時你想寫一個軟件來檢驗每一個用戶的賬戶。對於每一個賬戶,你要判斷它們是否曾經被盜過?
那這兩個問題,它們屬於分類問題、還是迴歸問題?

問題一是一個迴歸問題,因爲你知道,如果我有數千件貨物,我會把它看成一個實數,一個連續的值。因此賣出的物品數,也是一個連續的值。

問題二是一個分類問題,因爲我會把預測的值,用 0 來表示賬戶未被盜,用 1 表示賬戶曾經被盜過。所以我們根據賬號是否被盜過,把它們定爲0 或 1,然後用算法推測一個賬號是 0 還是 1,因爲只有少數的離散值,所以我把它歸爲分類問題。

無監督學習

在這裏插入圖片描述在這裏插入圖片描述
前面介紹了監督學習。回想當時的數據集,如圖表所示,這個數據集中每條數據都已經標明是陰性或陽性,即是良性或惡性腫瘤。所以,對於監督學習裏的每條數據,我們已經清楚地知道,訓練集對應的正確答案,是良性或惡性了。

在無監督學習中,我們已知的數據。看上去有點不一樣,不同於監督學習的數據的樣子,即無監督學習中沒有任何的標籤或者是有相同的標籤或者就是沒標籤。所以我們已知數據集,卻不知如何處理,也未告知每個數據點是什麼。別的都不知道,就是一個數據集。你能從數據中找到某種結構嗎?針對數據集,無監督學習就能判斷出數據有兩個不同的聚集簇。這是一個,那是另一個,二者不同。是的,無監督學習算法可能會把這些數據分成兩個不同的簇。所以叫做聚類算法。事實證明,它能被用在很多地方。

聚類應用的一個例子就是在谷歌新聞中。如果你以前從來沒見過它,你可以到這個URL網址news.google.com去看看。谷歌新聞每天都在,收集非常多,非常多的網絡的新聞內容。它再將這些新聞分組,組成有關聯的新聞。所以谷歌新聞做的就是搜索非常多的新聞事件,自動地把它們聚類到一起。所以,這些新聞事件全是同一主題的,所以顯示到一起。
事實證明,聚類算法和無監督學習算法同樣還用在很多其它的問題上。
在這裏插入圖片描述
其中就有基因學的理解應用。一個DNA微觀數據的例子。基本思想是輸入一組不同個體,對其中的每個個體,你要分析出它們是否有一個特定的基因。技術上,你要分析多少特定基因已經表達。所以這些顏色,紅,綠,灰等等顏色,這些顏色展示了相應的程度,即不同的個體是否有着一個特定的基因。你能做的就是運行一個聚類算法,把個體聚類到不同的類或不同類型的組(人)……

所以這個就是無監督學習,因爲我們沒有提前告知算法一些信息,比如,這是第一類的人,那些是第二類的人,還有第三類,等等。我們只是說,是的,這是有一堆數據。我不知道數據裏面有什麼。我不知道誰是什麼類型。我甚至不知道人們有哪些不同的類型,這些類型又是什麼。但你能自動地找到數據中的結構嗎?就是說你要自動地聚類那些個體到各個類,我沒法提前知道哪些是哪些。因爲我們沒有給算法正確答案來回應數據集中的數據,所以這就是無監督學習。

無監督學習或聚集有着大量的應用。它用於組織大型計算機集羣。我有些朋友在大數據中心工作,那裏有大型的計算機集羣,他們想解決什麼樣的機器易於協同地工作,如果你能夠讓那些機器協同工作,你就能讓你的數據中心工作得更高效。第二種應用就是社交網絡的分析。所以已知你朋友的信息,比如你經常發email的,或是你Facebook的朋友、谷歌+圈子的朋友,我們能否自動地給出朋友的分組呢?即每組裏的人們彼此都熟識,認識組裏的所有人?還有市場分割。許多公司有大型的數據庫,存儲消費者信息。所以,你能檢索這些顧客數據集,自動地發現市場分類,並自動地把顧客劃分到不同的細分市場中,你才能自動並更有效地銷售或不同的細分市場一起進行銷售。這也是無監督學習,因爲我們擁有所有的顧客數據,但我們沒有提前知道是什麼的細分市場,以及分別有哪些我們數據集中的顧客。我們不知道誰是在一號細分市場,誰在二號市場,等等。那我們就必須讓算法從數據中發現這一切。最後,無監督學習也可用於天文數據分析,這些聚類算法給出了令人驚訝、有趣、有用的理論,解釋了星系是如何誕生的。這些都是聚類的例子,聚類只是無監督學習中的一種。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章