What's Machine Learning?
卡內(nèi)基梅隆大學(xué)的 Tom Mitchell 對機(jī)器學(xué)習(xí)做出如下定義:
A computer program is said to learn from experience E with respect to some task T and some performance measure P, if it's performance on T, as measured by P, improves with experience E.
翻譯如下:
計(jì)算機(jī)程序從經(jīng)驗(yàn) E 中學(xué)習(xí)贱除,解決某一任務(wù) T 進(jìn)行某一性能度量 P旅择,通過 P 測定在 T 上的表現(xiàn)因經(jīng)驗(yàn) E 而提高翘狱。
舉例解釋一下,對于圍棋程序阿爾法狗來說答姥,經(jīng)驗(yàn) E 就是它自己與自己成千上萬次的對弈,任務(wù) T 就是與現(xiàn)實(shí)世界的圍棋高手對弈接奈,性能度量 P 就是它的勝率踢涌。
機(jī)器學(xué)習(xí)算法主要分為監(jiān)督學(xué)習(xí)(Supervised Learning)和無監(jiān)督學(xué)習(xí)(Unsupervised Learning),還有一些其他的算法序宦,比如強(qiáng)化學(xué)習(xí)(Reinforcement Learning)和推薦系統(tǒng)(Recommender Systems)睁壁。
Supervised Learning
監(jiān)督學(xué)習(xí)是指,我們給算法一個(gè)數(shù)據(jù)集,其中包含了正確答案潘明,通常叫作標(biāo)簽行剂,通過算法可以給出更多其他樣本對應(yīng)的標(biāo)簽。舉個(gè)例子钳降,比如小明想賣一套房厚宰,但不知道要賣多少錢,但他收集到了一些參考數(shù)據(jù)遂填,下圖展示了他收集到的歷史房屋售價(jià)隨房屋平米數(shù)的變化:
上圖橫坐標(biāo)為房屋的平米數(shù)铲觉,縱坐標(biāo)為房屋售價(jià)。我們可以嘗試用一次函數(shù)和二次函數(shù)分別擬合歷史數(shù)據(jù)吓坚,如下圖所示:
假設(shè)小明的房子為 750 平撵幽,通過擬合的一次函數(shù)(紫色)可以得到預(yù)測售價(jià)為 150 萬,通過二次函數(shù)(藍(lán)色)可以得到預(yù)測售價(jià)為 200 萬礁击。像這樣通過擬合數(shù)據(jù)集中一些歷史數(shù)據(jù)和標(biāo)簽盐杂,我們就得出了新數(shù)據(jù)的標(biāo)簽。值得注意的是哆窿,根據(jù)歷史房屋的售價(jià)來預(yù)測新房源的售價(jià)链烈,輸出的預(yù)測售價(jià)為連續(xù)值。像這樣需要算法輸出連續(xù)值的情況通常被稱為回歸問題(Regression Problem)挚躯。
還有另外一種情況强衡,我們舉例說明。假如小明體檢時(shí)被檢測到有腫瘤秧均,但不知道是惡性腫瘤還是良性腫瘤食侮,他又收集到了一些歷史數(shù)據(jù)并希望能夠從中找到答案,如下圖所示:
圖中橫坐標(biāo)代表腫瘤大小目胡,縱坐標(biāo) 1 為惡性腫瘤 0 為良性腫瘤锯七。能夠看出,我們很難擬合出一個(gè)函數(shù)誉己,因?yàn)闄M坐標(biāo)的一個(gè)點(diǎn)可能對應(yīng)多個(gè)值眉尸,既有良性腫瘤又有惡性腫瘤。我們嘗試將二維函數(shù)上的點(diǎn)全部映射到一維的一條直線上巨双,如下圖所示:
可以看到噪猾,良性腫瘤(藍(lán)色)和惡性腫瘤(橘黃色)有一個(gè)大致的分布,但中間還是有一些交叉的部分筑累,我們需要更多的特征(feature)來使數(shù)據(jù)區(qū)分的更好袱蜡。幸運(yùn)的是,小明又收集到了病人的年齡數(shù)據(jù)慢宗,如下圖所示:
可以看到坪蚁,加入年齡特征后奔穿,良性腫瘤和惡性腫瘤的分布已經(jīng)很明顯,我們可以畫一條直線將他們區(qū)分開敏晤,這時(shí)我們能夠判定小明的腫瘤(紫色)屬于良性腫瘤贱田。事實(shí)上,我們得到的 feature 越多嘴脾,分類效果也會越好男摧。那么,如果算法輸出的不是連續(xù)值译打,而是像 0 和 1 分別代表良性和惡性這樣的離散值耗拓,通常叫作分類問題(Classification Problem)。
Unsupervised Learning
在無監(jiān)督學(xué)習(xí)中扶平,我們獲得的數(shù)據(jù)可能沒有任何標(biāo)簽或者都具有相同的標(biāo)簽帆离,然后從中找到某種結(jié)構(gòu)。比如將一堆雜亂無章的數(shù)據(jù)分成不同的簇(cluster)结澄,這就是無監(jiān)督學(xué)習(xí)算法之一——聚類算法。
比如岸夯,百度新聞的相關(guān)信息會有很多來自不同網(wǎng)站的新聞鏈接麻献,而新聞主題都是密切相關(guān)的,這就是百度爬蟲在抓取大量新聞后猜扮,通過聚類算法實(shí)現(xiàn)的勉吻。
上圖展示了聚類問題的很多其他應(yīng)用:
- 基于計(jì)算機(jī)之間的通信數(shù)據(jù),優(yōu)化計(jì)算機(jī)集群物理分布旅赢。
- 基于用戶關(guān)系數(shù)據(jù)齿桃,分析社交網(wǎng)絡(luò)形成的社交圈。
- 基于消費(fèi)數(shù)據(jù)煮盼,分析消費(fèi)者所屬的細(xì)分市場短纵。
- 基于天文觀測數(shù)據(jù),了解銀河系的構(gòu)成及天文知識僵控,比如星系形成理論香到。
還有一個(gè)神奇的案例是,如果將兩段混雜著背景音樂的談話音頻(例如人們在酒會中的談話)輸入到同一個(gè)數(shù)據(jù)集中报破,聚類算法能夠?qū)⒒祀s的音頻內(nèi)容剝離悠就,輸出兩段清晰的音頻,一段為清晰的背景音樂充易,一段為清晰的談話內(nèi)容梗脾。人們喜歡將這個(gè)問題叫作雞尾酒會問題,所以這個(gè)算法就被稱為雞尾酒會問題算法(Cocktail party problem algorithm)盹靴。更神奇的是炸茧,這個(gè)算法只需一行 Octave 代碼瑞妇。
[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');