跳到主要內容

大演算:機器學習的終極演算法將如何改變我們的未來,創造新紀元的文明 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上來了,有興趣的可以一起來討論。


留言

這個網誌中的熱門文章

GLOOMY BEAR 暴力熊

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

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

因為最近的日劇:求婚大作戰,才聽到這首歌的。 桑田佳祐的"明日晴れるかな"。 歌詞的內容跟劇情還蠻貼切,求婚大作戰就劇情而言不是頂好的,但題材相當有趣,令人反省的地方也頗多。 很多時候很多事,如果再來一次,我們會怎麼選擇怎麼做? 這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 生命轉瞬即逝 每個人都在心中默默祈禱 明天是晴天嗎 在那遙遠的天空下 這些是有趣的文章: 釋日劇《求婚大作戰》中的「哈利路亞」 劇情解釋

不服從的領導學:不聽話的員工,反而有機會成為將才

這本書,清楚介紹了 計畫 - 行動 - 成果 的思考方式,尤其是「校準」的觀念。 也詳細指出了 領導 、 管理 與 指導 間的不同。 非常好的一本管理/領導者要看的書。強推。 執行的方法創造出奇蹟,執行的方法才是我們應該敬佩的地方。 在戰爭中,「事情不會像上好油的機器那樣運轉順暢;事實上,機器從開始運轉就會產生阻力,需要領導者極大的意志力才能克服。」在戰爭裡,「所有事情都很簡單,但連最簡單的事都很困難......在戰爭中展開行動,就像在阻力重重的介質裡移動。」 克勞塞維茨想將這樣的戰爭實況形成一種觀念,他找到「摩擦」這個詞。 摩擦就是一切「不確定性、錯誤、意外、技術上的困難、無法預見的事物及其對決策造成的影響、士氣與行動」的總合。 摩擦的存在,恰恰說明了為什麼軍隊需要軍官、企業需要主管的存在。也因此,預測與處理摩擦,就成了管理的核心工作。 一個由不同的個人組成的組績,不論紀律多麼嚴明,想要追求共同的目標,都會像在開車時踩煞車一樣,一定會造成摩擦。 我們只能取得部分資訊,又只能交給處在高壓狀態下的人、進行有瑕疵的處理。 我們之所以會遇到摩擦,是因為人類認知上的限制;我們對現在所知有限、而未來根本就不可知。 線性思維有兩個特徵:一是按照比例,也就是投入多少就產出多少;二是相加特性,亦即整體是各部分相加的總和。但非線性系統卻完全不是這樣,克勞塞維茨在當時就很清楚戰爭是非線性系統,只是無法形成具體概念,只能借用摩擦、偶發事件、不可預測性等概念來說明。 管理的課題:如何對付有資訊的有限、如何相互傳遞我們確實擁有的資訊,以及我們最終應該如何行動。 克勞塞維茨用兩種落差來描述摩擦的影響。一是我們試圖在不可預測的外部環境採取行動,但我們一直沒意識到這點,因而產生了「預期成果」與「實際成果」之間的落差。二是內部的摩擦,導致組織的「計畫」與「行動」之間出現落差。這種落差來自資訊在取得、傳輸和處理的過程中,涉及許多獨立自主的媒介。三是是行動與實際成果之間的落差(或是”計畫跟預期成果之間的落差”)。 實際採取的行動和應該採取的行動,是不同的。會出現這種狀況,可能是錯誤的行動計畫造成的,或是 我們雖然策畫了正確行動,但執行者沒有照計畫去做。 計畫不完美,是因為我們缺乏「知識」。我們可能沒蒐集到足夠的資訊,或是對資訊的詮釋有...