终极算法【3】——符号学派
理性主義者認為,感官會欺騙人,而邏輯推理是通往知識的唯一可靠的道路。經驗主義者認為所有的推理都是不可靠的,知識必須來源于觀察及實驗。
理性主義與經驗主義是哲學家最熱衷討論的問題。柏拉圖是早期的理性主義者,而亞里士多德是早期的經驗主義者。關于這個問題的辯論,真正開始于啟蒙運動時期,每方有三位偉大的思想家:笛卡爾、斯賓諾莎、萊布尼茨是理性主義的代表,洛克、貝克萊、休謨則是經驗主義的代表。
大衛.休謨是最偉大的經驗主義者,以及有史以來最偉大、以英語為母語的哲學家。為了得出符合邏輯的論斷,休謨借用了洛克開創的經驗主義思想,并提出一個問題:在概括我們見過的東西以及沒見過的東西時,怎樣才能做到合理?
機器學習本質上是一種煉金術,在魔法石的輔助下把數據變成知識。對于符號學者來說,魔法石就是知識。
在我們生活中,常常需要做出各種選擇。有沒有什么辦法可以從過去的經歷中掌握規律,然后信心滿滿地運用到未來的事情中?如果沒有,那么機器學習不就是一個沒有希望的事業了嗎?就此而言,所有學科甚至所有人類的知識,不就隨時可能會被推翻嗎?
這種情況不是大數據能解決的問題。你可以像卡薩諾瓦那樣放蕩,有無數個可以約會數千次的女人,但你的主數據庫還是不知道這個女人會說什么。正如你所知的那樣,她的回答由一些你不知道或者無法知道的原因決定。
也許這不是什么大問題?有了足夠的數據,大多數事件不就變得“微不足道”了嗎?不是的。為什么記憶不能當作通用學習算法,我們現在可以用更量化的方式來解釋這個問題。假設現在有一個數據庫,含有1萬億條記錄,每條記錄有1000個布爾字段。每個問題可能的答案有兩個,兩個問題就是2乘以2,三個問題就是2的三次方,以此類推。結果就是:無論有多少數據,你基本上什么也看不到。你要決定的新事件已經存在于數據庫中,而數據庫非常大,這件事發生的概率低到可以忽略,所以如果不進行一般化,對你就不會有任何幫助。
休謨提出爆炸性問題之后的250年,大衛.沃爾伯特賦予了這個問題優雅的數學形式。他的研究結果被人們稱為“天下沒有免費的午餐”定理,規定“怎樣才算是好的學習算法”。這個規定要求很低:沒有哪個學習算法可以比得上隨意猜測。
雖然如此,別馬上就對機器學習或終極算法失望。我們不關心所有可能存在的世界,而只關心我們生存的這個世界。如果我們對這個世界有所了解,然后把了解的知識輸入我們的學習算法,那么現在和隨機猜測相比,學習算法就可以發揮優勢了。
同時,“天下沒有免費的午餐”這個實際的結論表明,不靠知識進行學習,這樣的事不存在。只有數字也不夠,從零開始只會讓你一無所獲。機器學習就像知識泵,我們可以用它來從數據中提取大量的知識,但首先我們得先對泵進行預設。
數學家認為機器學習這個問題是一個不適定問題:這個問題沒有唯一解。湯姆.米切爾是典型的符號學者,稱機器學習體現“無偏見學習的無用性”。亞里士多德曾經說過,在知識領域,沒有什么東西不是首先憑借感覺來形成的。萊布尼茨又加了一句,“除了知識本身”。
計算機在給它編程之前,就是一張白紙;在用計算機做事之前,這個積極的過程需寫入記憶。我們的目標是找到最簡單的、我們能編寫的程序,這樣寫好的程序就可以無限制地通過閱讀數據來自行編程,直到該程序掌握所有能掌握的知識。
在機器學習中,概念性的例子成為正面例子,而與概念例子相反的則是負面例子。首先做有條件的假設,如果這樣無法解釋數據,再放松假設的條件,這就是典型的機器學習。這個過程通常由算法自行進行,不需要你的幫助。首先,算法會嘗試所有單一因素,然后嘗試所有兩個因素的組合,之后就是所有三個因素的組合等。但現在我遇到一個問題:合取概念太多,沒有足夠的時間對其逐個嘗試。
雖然合取概念的用途有很多,但并不能讓你走很遠。正如魯德亞德.吉卜林說的那樣,問題在于“編部落歌謠的方法有很多種,而每種方法都是正確的”。真正的概念是分離的。
我們可以像學習這條規則那樣來同時學習多套規則,利用我們之前見過的算法來學習合取概念。我們學習每個規則之后,會排除該規則包含的正面例子,因此下一個規則會盡可能多地包含剩下的正面例子,以此來推,直到所有的例子都被包含在內。
規則集在很大程度上比合取概念要有力得多。如果你給我某個概念的完整例子,我只能將每個例子變成一個規則。這個規則規定了每個例子的所有屬性,而這些規則的集合就是該概念的定義。規則集的力量是一把雙刃劍。從正面看,你知道自己總能找到和數據完美匹配的規則。但你還沒來得及開始覺得走運,就意識到自己很可能會找到一個毫無意義的規則。無用規則集的一個例子就是,只包含了你看到的正面例子,除此之外,沒有其他的例子。這個規則集看起來100%準確,但那只是假象:它會預測每個新例子都是負面例子,然后把每個正面例子弄錯。
每當算法在數據中找到現實世界中不存在的模型時,我們說它與數據過于擬合。過擬合問題是機器學習中的中心問題。在所有主題中,關于過擬合問題的論文最多。
學習算法特別容易過擬合,因為它們擁有從數據中發現模型、近乎無限制的能力。人類發現一個模型所用的時間,計算機可以找到數百萬個。過擬合問題因為嘈雜的聲音被嚴重夸大。在機器學習中,這些噪聲僅僅意味著數據中的誤差,或者你無法預測的偶然事件。
當你有過多假設,而沒有足夠的數據將這些假設區分開來時,過擬合問題就發生了。壞消息是,即便對最簡單的合取概念算法來說,假設的數量也會隨著屬性的增多而呈指數級增長。因此,概念的數量就是屬性數量的指數函數的一個指數函數!也許我們該放棄,不要把時間浪費在這樣沒有希望的問題上。
幸運的是,在學習過程中,會發生一些事,把其中一個指數消除,只剩下一個“普通的”單一指數難解性問題。當然,真正的算法不會只是從袋子里隨機去除一個定義。這個算法會嘗試所有定義,而且這些定義也不是隨機選擇的。算法嘗試的定義越多,越有可能偶然得到能夠和所有例子匹配的定義。
學習就是你擁有的數據的數量和你所做假設數量之間的較量。
更多的數據會呈指數級地減少能夠成立的假設數量,但如果一開始就做很多假設,最后可能還會留下一些無法成立的假設。
在利用學習算法過去看不到的數據對其進行證實之前,不要相信任何東西。如果學習算法假設的模型對新數據來說也適用,你就可以很有信心地說那些模型是正確的,否則你知道學習算法過擬合了。對于機器學習來說,對不可見數據的測試是必不可少的,因為這是判斷學習算法是否過擬合的唯一方法。
當然,知道何時過擬合這一點還不夠,需要第一時間避免過擬合。這就意味著不再對數據進行完全擬合,即便我們能做到。有一個方法就是運用統計顯著性檢驗來確保我們看到的模型真實可靠。另一個流行的方法就是選擇更加簡單的假設,“分而治之”算法會含蓄地選擇更簡單的規則,因為它在一出現只有正面例子的情況時,就會停止添加條件;在一出現包含所有正面例子的情況是,就會停止添加規則。
更深層的問題是,多數學習算法開始時掌握的東西很少,即使轉再多“把手”,也沒法讓這些算法到達終點。沒有成年人大腦中所存儲知識的指導,這些算法很容易誤入歧途。主算法應該能以大量的知識作為啟動,然后對數據做出新概括時,用到這些知識。通常,我們以越多的規則和事實作為開頭,也就有越多的機會運用“逆向演繹”歸納新的規則。
逆向演繹的一個局限性在于,它涉及很密集的計算,因此很難擴展到海量數據集中。因為這些原因,符號學家選擇的算法是決策樹歸納。
符號學派的核心理念就是,所有和智力相關的工作都可以歸結為對符號的操縱。符號機器學習者和許多其他計算機科學家、心理學家、哲學家一樣,都相信符號操縱的力量。心理學家大衛.馬爾稱,每個信息處理系統應該經過三個不同水平的研究:該系統解決所解決問題的基本屬性,用來解決問題的算法和表示方法,以及這些算法和表示方法如何實現。
符號主義機器學習是人工智能知識工程學派的一個分支。20世紀70年代,所謂的基于知識的系統取得卓越成績,而到了80年代,它們迅速傳播,后來卻消失了。它們消失的主要原因是人人逃避的知識習得瓶頸:從專家身上提取知識,然后將其編碼成為規則,這樣做難度太大、太費力、易出故障,會引起很多問題。
符號主義是通往終極算法的最短路程。它不要求我們弄明白進化論和大腦的工作原理,而且也避免了貝葉斯主義的數學復雜性。逆向演繹也有一些嚴重的缺點。可行的歸納法數量廣泛,除非我們和最初知識保持親密關系,否則很容易在空間中迷失。
聯結學派對符號學派尤其不滿。根據他們的觀點,你能通過邏輯規則來定義的概念僅僅是冰山一角,其實表面之下還有很多東西是形式推理無法看到的。
參考文獻:
????終極算法. [美] Pedro Domingos 著. 黃芳萍 譯
總結
以上是生活随笔為你收集整理的终极算法【3】——符号学派的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eslint 设置全局 变量
- 下一篇: Ubuntu下安装SSH服务