跳到主要內容

大演算:機器學習的終極演算法將如何改變我們的未來,創造新紀元的文明 notes

大演算:機器學習的終極演算法將如何改變我們的未來,創造新紀元的文明?


這本《大演算》,500頁的書,完整筆記就做了兩萬五千字,讓我受益匪淺的一本書,絕對是我2016 Top 10選書。

★亞馬遜AI與機器學習類暢銷榜 第1名
★亞馬遜數學與統計類暢銷榜 第1名
★亞馬遜資訊理論類暢銷榜 第1名
★CNN、《新科學人》、《經濟學人》、《柯克斯書評》等多家媒體推薦報導
★比爾.蓋茲年度選書!

如果你已瞭解了一些 machine learning的演算法原理,像是SVM / bayes / tree ...,就更能瞭解作者多明戈斯的天才,也更能享受本書帶來的知識及想法。

多明戈斯認為,如果有人可以成功整合這些演算法的優點,就能發展出「終極演算法」,便可以從大數據與人工智慧中,獲得世界上過去、現在與未來的所有知識,將創造新紀元的文明。


本書主要的思想學派共分成五個,將為每個學派開闢一個章節專門介紹。

  • 符號理論學派( Symbolists )將學習視為是一種逆向演繹法,是從哲學、心理學和邏輯思路方面取得概念。
  • 類神經網路學派( Connectionists )會進行大腦的反向工程( reverse engineer ),主要是受到神經科學和物理學的啟發,模擬人腦思考行為。
  • 演化論學派( Evolutionaries )會在電腦上模擬演化演變,澈底運用遺傳學( genetics )和演化生物學(evolutionary biology )理論。
  • 貝氏定理學派( Bayesians )相信學習是機率推理的一種形式,是根據統計學做為理論的依據。
  • 而類比推理學派( Analogizers )則是透過從相似度判斷進行推論學習,並且受到心理學和數學的最佳化影響。


當我們在認識每一種思想學派時,我們的目標是蒐集完整的機器學習拼圖,並詳加解讀每一類型演算法適合應用的地方。要注意的是,沒有一位盲人可以正確摸熟整隻大象身軀。

並非所有機器學習演算法的運作都一樣,其差異也會產生不同的影響。以亞馬遜和Netflix 的推薦系統( recommenders )為例,每家公司都試圖經由網站流程介面引導「適合你」的採購行為,試圖確認什麼是你「需要」的商品,亞馬遜系統會推薦你瀏覽以前經常光顧的貨架﹔ Netflix 系統則會帶你瀏覽商店中你尚未瀏覽、陌生且看似新奇特異的部分,協助你找到最終會喜歡的影片。

有些學習器是學習知識,有的學習器是學習技能。

電腦科學歷來都是關於確定性( deterministically )的思維,但機器學習則是需要統計的思維。

事實上所有主要的學習器,包括最近鄰居演算法、決策樹、貝氏網路,一種概括的簡單貝氏演算法等,都具有以下普遍的意義:如果你給予學習器足夠數量的適當資料,學習器就可提供密切近似的任何函數(function),這是學習任何事物的一種數學說詞。唯一美中不足的,所謂「足夠的資料」可能是極為龐大。因為從有限的數據資料中學習,必然需要做出假設,因此我們可以看到,不同的學習器會做出不同的假設,這使得它們只能做好某些事情,而不適用於各種情況

這本書的核心假設:
透過一個單一、通用的機器學習演算法,可以從數據資中,推論出過去、現在和未來的所有知識。

有些事情是可以預測的,有些則無法預測,機器學習專家的首要責任,就是區分這兩類。
在一般的情況下,大多數銀行的模型都無法做出精準的預測,然而這是由於這些模型本身所具有的局限,並不是機器學習的限制。

為了使用一種技術,我們不需要精通它的內部運作原理,但我們的確需要針對這項技術,擁有一個好的概念模型。例如:我們不需要了解收音機的內部構造,只需要知道如何在收音機上找到一個廣播電臺,或是改變音量。
也許最重要的是,一旦我們也了解,一個特定的學習器是如何成其推論,那麼我們才會知道如何去看待這些資訊,要相信什麼、要反饋給製造商什麼修正意見,以及如何在下一次得到更好的結果。

貝氏定理(Bayes' theorem),就是告訴我們當你觀察到新的事證時,如何依此更新你的信念。貝氏定理學習器(Bayesian learner)是從提出一系列關於這個世界的假設開始。當學習器觀察到新的數據資料時,原本已推導出的假設就會變得更具可能性,而且這些假設不會變得不太可能,甚至是不可能的。當學習器觀察到足夠的數據資料後,一個單一假設或是少數假設就會占有重要的地位。

大演算使採用一種歸納法(induction),而圖靈機(Turing Machine,指的是寫程式的方法)採用的是演繹法(deduction)。

理論的力量在於它能簡化多少我們對世界的描述

一個相關、經常聽到的反對意見是「數據資料不能取代人類的直覺」。事實上卻是相反,因為人類的直覺不能取代數據資料。通常當你不知道事情的真相時,你會使用直覺去判斷,而且因為你往往並不知道,所以直覺是很寶貴的。但當證據都擺放在你面前時,你為什麼會否認它呢?

對於符號理論學派來說,所有的智慧可以被簡化成操縱符號,就像數學家求解方程式的過程,是透過用其他表達式來替換表達式的方法。符號理論學派明白,你不能從頭學起,你需要一些初步的知識,與數據資料相配合。符號理論學派們已經找到了如何將先前存在的知識納入學習,以及如何快速地將不同的知識進行結合,以解決新的問題。他們的主要演算法是逆向的演繹法,透過這種演算法可以找出哪些知識是欠缺的,以便能做出邏輯的演繹推論,然後使其盡可能地被通則應用。

對於類神經網路學派來說,學習就是人類大腦所做的事情,所以我們需要做的,就是對大腦進行反向工程。大腦的學習是透過調整神經元之間的連結強度,而關鍵的問題是找出哪些神經元的連接,必須對哪些錯誤負責,並依此對應地改變它們。類神經網路學派的主要演算法是倒傳遞理論演算法(Back propagation),它會比較系統的輸出與期望的輸出,然後依次改變一層又一層的神經元連結,以便使得輸出結果可以更接近於它應該呈現的。

演化論學派則認為,所有學習之母就是物競天擇。如果物競天擇可以造就我們,那麼它就可以造就任何事情,而我們所需要做的,就是在電腦上模擬它。演化論學派所解決的關鍵性問題就是學習的結構,不只是調整參數而已,就像倒傳遞理論演算法所做的,可以創建一種能夠讓這些調整進行微調的大腦。演化論學派的主要演算法是一種遺傳程式規劃(genetic programming), 就像人自然會交配與演化生物一樣;同樣地,遺傳程式規劃也會以相同的方式,繁衍與演化電腦程式系統。

貝氏定理學派最關注的課題就是不確定性。這門學派主張所有學到的知識都是不確定的,而且學習本身就是一種不確定的推理形式。那麼這個問題就變成如何處理雜訊、不完整,以及相互矛盾的資訊,而不會造成分崩離析。解決的辦法就是機率推理,而主要的演算法是貝氏定理與其衍生物。貝氏定理告訴我們如何把新證據轉化為信念,而機率推理演算法則盡可能有效地做到這一點。

對於類比推理學派而言,學習的關鍵是認識各種情況之間的相似之處,從而推斷其他情境的相似地方。如果兩位患者都有相似的症狀,也許他們患有相同的疾病,問題的關鍵是要判斷兩件事情之間是如何相似。類比推理學派的主要演算法就是支持向量機(Support Vector Machine,簡稱SVM),它可以找出哪些經驗是需要記住的,以及如何結合這些經驗,做出新的預測。

日星鑄字行 04

在機器學習領域,先入為主的觀念影響甚巨,只有排除偏見才可能進行學習。

如何從原始資料中探勘出規則定律。標準的解決方式,是假設我們知道真相的形式,而學習器的工作就是不斷地充實它。

資料探勘的意思是指「拷問數據資料,直到它供認為止。」
雜訊( noise )嚴重加劇了過度擬合的問題。雜訊在機器學習中,只是意謂著在數據資料裡的錯誤,或是你無法預測的隨機事件。
當你有太多的假設,而且沒有足夠的數據資料可以區分它們時,便會發生過度擬合。壞消息是,即使是簡單的合取學習器,假設數會隨著屬性數呈指數倍增。
學習器嘗試越多的定義,就越有可能在偶然機會下,從它們之中找到一個可以符合所有案例的定義。

科學不只是關於預測而已,它也是關於解釋和理解。但如果你的模型,最終無法對新的數據資料進行準確的預測,你便不能確定自己是否已經能真正了解或解釋這個潛在現象。對於機器學習來說,利用未曾見過的數據資料進行測試,是不可少的驗證過程,因為這是唯一可以告訴我們學習器是否產生過度擬合的現象。

在貝氏定理的核心觀念中,它只是一個簡單的規則,用於當你取得新事證時,更新你對已有假設的信念程度( degree of belief) ,如果證據與假設一致,這些假設的機率就會上升﹔如果沒有,機率就會下降。

機率並不是一個頻率,但卻是一個主觀的信念程度。因此它取決於你決定要把它設定成多少,而且所有的貝氏定理的推理,就是要讓你可以利用新的證據來更新你的先驗信念,以便獲得你的後驗信念,這也被稱為「激起對貝氏定理的興趣」( turning the Bayesian crank )。

對於最近鄰居演算法來說,分類邊界就是暗指資料點的位置與測量的距離,而唯一的成本便是查詢的時間
形成一個局部模型,而不是一個整體模型的相同概念,也適用在許多分類以外的問題上。科學家們經常使用線性迴歸預測連續變數,但大多數的現象都不是線性的問題。幸運的是,它們是局部線性的問題,因為平滑的曲線可以說是局部近似於直線。因此如果不能嘗試運用一條直線來對應分類所有的數據資料,那麼我們只能把它修正為用查詢點附近的點來進行對應分類,如此一來,你便可以擁有一個非常強大的非線性迴歸演算法。

k-means 演算法的缺點是我們需要提前確認集群的數目,但在現實世界中,總是會意外的遇到新類型的物件。一種選擇是假如這個新的物件與現有的集群差異太大,那麼就讓這個新的物件重新產生一個新的集群﹔另一種選擇是當我們繼續往下執行時,中途允許集群拆分和合併。無論哪種方式,我們可能希望演算法要包含產生較少集群的偏好,免得最後造成每一個物件都產生其自己的集群。

每一個機器學習演算法的三個組成部分:表示法、評估和最佳化。學習器的表示法會限制它可以學習的東西。如果我們想讓學習器成為一個功能非常強大的機器學習演算法,就像馬可夫邏輯網路一樣,那麼原則上學習器便可以學習任何東西。然後最佳化程式會竭盡一切力量,來最大化評估函數,不能多也不能少,而評估函數則是由我們決定的。

機器將會給予我們所要求的事情,而不是我們想要的事情。

......


這本書的內容真的很精彩,學習 Machine learning的朋友千萬不要錯過。

所有的筆記就不 po上來了,有興趣的可以一起來討論。


留言

這個網誌中的熱門文章

小褶 Life(3) 古亭景美線段

經過上周的總統大選後,想說可以好好地規劃路線,這週末再來享受我的Bike Life,沒想到天氣預報一直恐嚇著我:「週末會下雨,週末會下雨,週末會下雨......。」 哇靠,早上起來,天色是有些陰暗,查了yahoo天氣,竟然下雨機率僅20%,趕緊重新考慮騎車的路線。 這次的目標是新店溪。 想說從哪邊切入比較好,唔,從師大路那邊進古亭河濱公園看來是不錯的選擇,要是下午真的下雨,就在師大路那邊晃一下午也比較安全。 查了google map,怪怪的,不知哪邊是公園的入口處。 不管了,到那附近再說,總有路口的。 結果是......迷路了。 -___-||| 到師大路跟兒童交通博物館那邊,就是看不到古亭河濱公園的入口。 沒辦法,走確定知道的路,以前新店上班時,總是從思源街接到景美堤外便道,果然,從那邊進去就對了。 (後來從古亭河濱公園也騎到中正河濱公園,才發現,那邊只有很小一條汽車進來的道路,真的很難找。 建議從思源街沿自來水廠那邊進來比較方便。) 就目前騎的3個線段而言,沿景美溪新店溪的河濱是最好騎的了,路又寬廣又平直,要飆車也容易。 看看地圖,只到舊橋就沒了,不知什麼時候才會完工咧...... 這樣,之後還可以直接騎到動物園咧!! 這個線段有較多的網球場地,靠古亭河濱公園那邊還有羽球場地,騎車的族群跟前兩次的線段比較起來,嗯,在地居民比較多(關渡到淡水則是遊客特多),應該是方便的緣故吧,騎Dahoon折疊車的人也比較多,莫非這附近有Dahoon專賣店?! 終點出來就到景美夜市一帶。 不錯的塗鴉作品。北市很多自行車道旁的圍牆,是開放給民眾塗鴉的。 (旁邊有 borther的簽名,莫非這是傳說中塗鴉客brother先生的作品?! 但......割腕的少女 ...... 繪在自行車道的旁邊,想表達什麼咧!?) 在終點處有很大的Taipei Cycling Mark。 雖然一開始有些小迷路,但也剛好繞到了兒童交通博物館......的外面,跟小丸子的看板合照。 門票太貴了,也聽有人說其實有些不值得,所以也不打算買票進去。 >___...

明天是晴天嗎(明日晴れるかな)

因為最近的日劇:求婚大作戰,才聽到這首歌的。 桑田佳祐的"明日晴れるかな"。 歌詞的內容跟劇情還蠻貼切,求婚大作戰就劇情而言不是頂好的,但題材相當有趣,令人反省的地方也頗多。 很多時候很多事,如果再來一次,我們會怎麼選擇怎麼做? 這MV不同於日劇的片尾MV: 中文歌詞如下: 明天是晴天嗎 作詞:桑田佳祐  作曲:桑田佳祐  編曲:桑田佳祐 島健 炙熱的淚呼喚著愛 曾經閃爍的歲月 也迷失了方向 明天我依舊徘徊在街頭 沒有回頭路可走 側耳傾聽 心靈深處是什麼在私語 獨自躲在昏暗的街頭 回首當日的天空  上帝賜予我們孤獨與試煉 想哭就要放聲大哭 難道是命中注定 叫人不敢面對 日覆一日 不可思議 Oh baby No maybe 愛已走遠 情已不再 我只能佯裝嘆息 將怨恨拋給這世界 Oh baby you are maybe 憂喜交織 幸福的feeling 抱緊我 one more time 珍惜曾經的我 讓回憶刻骨銘心 往事已經隨風 人生路還漫長 只為見證夢想 誰來開啟奇跡之扉? 多想再一次觸碰你的笑顏 不知你是否發現命運的鑰匙 就握在你手中 Why baby? Oh tell me 愛恨纏綿 假裝視而不見 只為能守護在愛人身邊 Oh baby you are maybe 距離勝負僅一步之遙 站在崩潰邊緣的feeling 我想穿越 one more chance I talk to myself Oh baby No maybe 愛已走遠 情已不再 輕輕的嘆息背後 只留下深深的悔恨 Oh baby Smile baby 生命轉瞬即逝 每個人都在心中默默祈禱 明天是晴天嗎 在那遙遠的天空下 這些是有趣的文章: 釋日劇《求婚大作戰》中的「哈利路亞」 劇情解釋

GLOOMY BEAR 暴力熊

Gloomy Bear身世背景: Gloomy是一隻在路邊被遺棄的粉紅色小熊 , 被小朋友Pity發現,並將牠帶回家中收養, 並為小熊取名為Gloomy。 可惜.....Gloomy外表可愛,但因為被拋棄的緣故~卻有著一般熊的暴力性格, 長大長出爪子後就時常向主人用暴力招數打招呼, 而Pity就慘被Gloomy日日夜夜地欺負!悲慘ㄉ人生就這樣子開始囉!! 暴力熊喜好~咬主人頭, 而牠的主人,復原能力極高...打不死喔~厲害厲害! 暴力熊顏色:粉紅色,金色,銀色,紅色,藍色,黃色,還有罕見的綠色與混色。 粉紅色暴力熊性別:女 頭大身細,眼珠黑色,爪白色兼尖利,具有殺傷力,她多數用口爪殺人,殺完人後喜歡在街上徘徊。 小主人每次都被暴力熊揍得半死兼頭破血流, 但仍然不離不棄地緊緊抱住這隻血腥的寵物; Pity就算受到傷害亦要讓開心的回憶遮掩,然後繼續微笑期待小熊再次跟他一起溫習/做功課/看書;相信等待他的會是小熊的溫柔而非暴力傷害; 暴力熊和他小主人之間微妙的情感讓人感動又心酸; 這次轉輪科技所推出的暴力熊,內容包含小男孩Pity與粉紅熊Gloomy兩支一組。造形上善用Gloomy胖胖的軀體,將轉輪關節隱藏其中,全身有14處可動。可替換配件包含小男孩被打的表情,還有防止熊熊咬人的口罩以及牠嘴角流下來的血,原型制作為山口勝久。