機器學習十大經典演算法和對人生的啟迪,上篇
在歷史文章中,介紹了深度學習的概念。與深度學習相對比,還有很多經典機器學習演算法,它們不依賴於神經網路。所謂經典,是其價值不局限解決某個問題,而是值得反覆玩味。
本期和下期文章,將介紹機器學習十大經典演算法(嚴格來說是數據挖掘十大經典演算法),和它們對人生的啟迪。
一、K近鄰(K Nearest Neighbour,KNN)
舉例:假設演算法見過很多鳥類,蜂鳥、麻雀、雞鴨鵝、喜鵲,也見過很多哺乳動物,貓狗、牛馬、虎豹。當它第一次見到燕子這個物種時,發現體形、翅膀像麻雀和喜鵲。於是,它認定,燕子屬於鳥類。
它記錄所有以往的經驗,但不試圖去歸納總結。當發生新的情況,它查找、對照記憶中k個類似的情況,投票做出判斷。
6近鄰演算法:5方1圓,所以X應該為方
K近鄰演算法的極端情況是k=1,又稱為最近鄰演算法。當它第一次看到燕子,根據體形、顏色、翅膀,它立即想到了喜鵲,判斷燕子的屬性和喜鵲相同,屬於鳥類。
K近鄰是機器學習方法中最樸素的方法,又被稱為懶惰學習方法。最近鄰演算法是最簡單的,但理論證明,在通常情況下,與其它人們挖空心思設計的演算法相比,最近鄰演算法判斷誤差不超過它們的2倍。如果用一句話評價K近鄰演算法,那就是:簡單而有底線。
缺點也很明顯,需要記憶和查找很多的經驗數據,這經常是不可行的。
人生啟迪:觀其友知其人。看看我們周邊的關係最密切的人,他們在我們心中的印象,就是我們在別人心中的印象。錯位借用一句古語,以人為鑒,可以正衣冠。
二、K均值(K means)
舉例:一個組織人太多,上司要求將組織拆分成3個小組,先隨便點了3個組長。小組的形成是這樣的:
1、3個組長按照自己的喜好瓜分組員,形成3個小組。
2、3個小組的組員投票產生新的組長,新的組長反應了組員的最大共識。
3、如果新選出的組長跟之前相比沒有變化,則形成了穩定的小組劃分。否則回到第一個步驟。
同樣以K打頭,K近鄰是有監督學習,需要打上標籤的經驗數據,任務是對具體樣本做預測。而K均值屬於聚類問題——典型的非監督學習,任務是對一堆樣本做合理分類。
更嚴格的示意如下圖所示,三個理想的組對應方、圓、三角三個分類,組長對應該類所有樣本點的中心位置(又稱均值),組員對應該類的單個樣本點,選組長的過程就是從所有樣本點,求得中心位置的過程。
人生啟迪:物以類聚,人以群分。只會抱怨或者遊走在組織的邊緣,是沒有用的。必須要有特立獨行之處,才能跳出原有的圈囿。
三、支持向量機(Support Vector Machine, SVM)
舉例:看看中國南海的九段線,是不是覺得很突兀。這不算過分,美國的夏威夷,英國宣稱主權的馬島離本土都遠得多。要說過分,請看下圖希臘和土耳其的邊境線,希臘的離島簡直要深入到土耳其的內海了,不要太欺負人啊。
這張圖告訴我們,國界的劃分,跟本土的形狀和位置沒有關係,儘管他們構成了國土面積的大部分。起到關鍵作用的是幾個最前沿離島的位置,沿著這些小島連線,就是國界線的畫法。
支持向量機演算法用來解決機器學習中的分類問題,對於海量數據,是幾乎唯一可行的最優演算法,非常有名。跟畫國界線對應,小島就是「向量」,小島「支持」著希臘的國界,把小島連接起來的做法對應這個演算法。有些思維特異的人喜歡把演算法叫做「機」(machine),比如演算法領域更為常見的狀態機(State Machine)。支持向量機名字很拗口,發明一種很土、但是大家能聽懂的名詞解釋支持向量機:關鍵點分隔演算法。
更嚴格的示意請見下圖,找到分類的綠色直線是機器學習的任務,它只跟左右兩側的兩個或者三個關鍵點相關。其它的一大堆點都是打醬油的。
人生啟迪:所謂淡泊,就是根本不去理會中間那條分界線,所謂提綱挈領,就是能識別、並抓住關鍵少數影響是非成敗的關鍵點,所謂碌碌無為,就是把精力耗在照看那些遠離分界線的大多數點上。
四、佩奇排名(Page Rank)
這個演算法好像只用來做網頁排名,所以也就不需要舉例了。
當我們在網頁上搜索一個技術名詞時,維基百科經常被排在很靠前的位置。而搜索一個新聞時,門戶網站的新聞鏈接往往又是最靠前的。谷歌、百度的搜索引擎需要把最權威、最有價值的網頁呈現在搜索結果最顯著的位置。而Page Rank的判斷依據是,網頁被其它網頁的引用(鏈接指向)次數和權重。
如果被很多網頁引用,說明這個網頁很有價值,很權威,如果被已知很權威的網頁引用,那更是以一當百。相反,我寫的這些公眾號文章,基本沒有被其它網頁引用(發現有文章被剽竊發表在門戶網站的專欄里啦,不仗義啊),所以百度的搜索結果上也就不會顯示我的文章啦。
佩奇是谷歌的創始人之一。Page Rank本意是以發明人命名,但Page本身又是網頁的意思,很多人把Page Rank理解為網頁排名演算法,歪打正著,也不算錯。
人生啟迪:個人的價值是由外界評價的,自我感覺良好、莫名的優越感沒有意義。推而廣之,個人價值由它周圍的團體界定,團體的價值由國家界定,國家的價值不是靠愛國主義者吹出來,而要在世界體系下來界定,人類的價值需要在生物圈界定,生物圈的價值需要在地球上界定,地球的價值需要在宇宙中界定。發現宇宙的來龍去脈,是判斷個人價值的最終參考點。不知道自己從何而來,如何消亡,如何順勢而為?
古人云「格物致知,修身齊家治國平天下」。修身的基礎,是對萬物的深刻理解,它們構成價值觀的基石。
五、期望最大化(Expectation-Maximization,EM)
舉例:前面介紹的K均值演算法中分成三個小組的例子中,當面臨最優分組這個複雜的問題,不知道如何決策時,EM演算法先假設3個人是合適的組長,然後讓產生的小組再去優化組長,反覆調整,直到達到最優值。
EM演算法本質是承認沒有能力一次獲得最佳結果,曲線救國、迭代求解,先假設(期望),後優化(最大化利益),如此循環。
EM 演算法逐步逼近中心位置
如果前面四種方法是「術」,EM演算法就是一種更為本質的「道」。EM的道可以衍生出更多的演算法,比如用提供深度信息的攝像機重構三維環境。
當攝像機移動時,它的位姿是未知的,需要根據視野中的圖像來確定。但當攝像機移動後,圖像中的對應點位置也發生了變化,造成無法匹配對應點。實際有效解決這個問題的演算法就是EM演算法,先假設對應點的像素位置沒有改變,然後最優化攝像機位姿改變數,再預估對應點的位置,如此反覆,這就是最近點搜索演算法(Iterative Closest Points, ICP)。
正如梯度下降法,EM演算法不能保證求得最優解。然而它們二者構成了機器學習非懶惰演算法的基石,事實上解決了很多困難而又炫酷的問題。
人生啟迪:面對複雜的環境,我們是自怨自艾、苦等萬事俱備,還是主動出擊、摸著石頭過河,這是人生的重要課題。
很多事情在去做之前,不可能完全想明白。子曰:思而不學則怠。過度思考,不敢實踐,損失的不僅是時間和機遇,還有自己的精氣神。
總結
未完待續,兩周後下篇一起總結吧。


TAG:機器學習 |