1
本文作者: 高婓 | 2016-08-24 19:44 |
本文聯(lián)合編譯:Blake, 高斐
Pedro Domingos是華盛頓大學計算機科學與工程學教授,也是國際機器學習協(xié)會的聯(lián)合創(chuàng)始人之一。他曾在IST Lisbon獲得電子工程和計算科學的碩士學位,在加州大學Irvine分校獲得信息與計算科學博士學位。而后在IST作為助理教授工作了兩年,于1999年加入華盛頓大學。他還是SIGKDD創(chuàng)新獎獲得者(數據科學領域中最高獎項),也是AAAI Fellow之一。雷鋒網注:本文是Pedro Domingos在Google所作的機器學習演講內容整理。
讓我們首先從一個簡單的問題開始,知識到底是從哪里來的?以前已知的三個來源有:
1. 進化——來自于你的DNA
2. 經驗——來自于你的神經
3.文化——這些知識來自于與他人交流,讀書學習等
我們日常生活中幾乎每件事都是來自于這三個方面的知識,最近出現了第四個來源,那就是計算機?,F在有越來越多的知識是來自于計算機(這些知識也是被計算機發(fā)現的)。
計算機來源的出現對于前三個來說是非常大的改變,進化天然就存在于地球上。經驗是將我們與動物以及蟲類分類開的原因,文化則是使得我們之所以為人的根本。
這四種中每一種與前者的差別都是數量級的差異,后者也能發(fā)現更多的知識。計算機比之前三種要快幾個數量級,且能與其他幾種實現共存。
Yann Lecun——Facebook AI研究組主任
未來世界上大多數知識都將被機器提取,且將留存在機器中。
所以,機器學習不但對于計算機科學家來說是一個大的改變,對于普通人來說也是他們需要理解的一件事。
1. 填補現有知識的空白
和科學家工作的方式很像,觀察——做出假設——通過理論來進行解釋——成功(或失敗,嘗試新的)等
2.大腦仿真
世界上最偉大的學習機器就是人的大腦,因此讓我們對它進行逆向工程。
3.模擬進化過程
進化過程,從某種角度來說甚至比人類的大腦更偉大(因為它造就了你的大腦,你的軀體,還有其他地球上的一切生命),所以來說這個過程值得好好弄清楚并且使用計算機來進行運算。
4.系統(tǒng)地減少不確定性
你學到的知識不一定正確,當從數據中獲得什么東西時,你對它卻不能完全確定。所以使用概率來量化這個不確定性,當你看到更多的證據時,不同的假設的概率能夠進一步完善。還可以使用貝葉斯理論來進行這個工作。
5.注意新舊知識之間的相似性
通過類比來進行推理,在心理學上有證據說人類經常這樣做。當你面臨一個情境時,你在以往的經驗中尋找相似的情境,然后將這兩者連接起來。
符號主義——邏輯學、哲學——逆向演繹
相信填補現有知識的空白的
聯(lián)結主義——神經科學——反向傳播
希望從大腦運行方式得到啟發(fā)
進化主義——進化生物學——遺傳編碼
遺傳算法
貝葉斯派——統(tǒng)計學——概率推理
行為類推主義——心理學——機器內核(支持向量機)
Tom Mitchell、Steve Muggleton、Ross Quinlan
Tom Mitchell、Steve Muggleton、Ross Quinlan等認為學習是一個逆向演繹的過程,推理是從通用規(guī)則推導至特定事實,歸納剛好相反,從特定事實總結出通用準則。我們可以由減法和加法的相反關系來推倒出推理的原理。
蘇格拉底是人類+人類是凡人= 蘇格拉底是凡人
(但是計算機現在還不能理解自然語言)
其實是那臺機器,圖中的機器是一名完整的、自動的生物學家,它也是從分子生物學中的DNA、蛋白質、RNA開始學習的。使用逆向演繹來進行假設,設計實驗來測試這些假設是否成立(在沒有人類的幫助下)。然后它給出結果,提煉假設(或者提出新的假設)。
Geoff Hinton、Yann Lecun、Yoshua Bengio
神經元是一種非常有趣的細胞,看起來像樹一樣。神經元是具有長突觸(軸突)的細胞,它由細胞體和細胞突起構成。在長的軸突上套有一層鞘,組成神經纖維,它的末端的細小分支叫做神經末梢。細胞突起是由細胞體延伸出來的細長部分,又可分為樹突和軸突。每個神經元可以有一或多個樹突,可以接受刺激并將興奮傳入細胞體。每個神經元只有一個軸突,可以把興奮從胞體傳送到另一個神經元或其他組織,如肌肉或腺體。神經元之間是互相連接的,這樣形成了一個大的神經網絡。人類所學會的知識幾乎都存在神經元之間的突觸中,整個學習過程基本上是出現在一個神經元幫助另一個神經元發(fā)射信號的過程。
人工神經元的工作過程:將輸入加權組合,
例如:每個輸入都是像素,每個都進行加權組合,當其超過閾值時會得到輸出為1的結果,否則得到的就是0的結果。
再如輸入是貓,當所有的加權組合起來超過了閾值,神經元就能識別出來:這是只貓。
問題一:你如何訓練這些神經元的網絡?
神經網絡擁有一大堆神經元,需要通過一層一層計算才能得到輸出。
問題二:如果運算中出現錯誤了怎么辦?如何在整個大型、紊亂的神經網絡中進行調整,來得出正確的答案?
當出現錯誤,神經元本應該發(fā)射信號時,實際上卻不會。出現問題的神經元可能是整個網絡中的任一一個,但是想要找出它來卻十分困難。這就是反向傳播能解決的問題,當人們在20世紀60年代設想出神經網絡時,他們并沒有想到這個反向傳播的方法,它最終是在19世紀80年代由David Rumelhart等人提出的。
反向傳播的基本理念是十分直觀的,舉例來說,理想輸出應該是1,但是實際輸出確是0.2,需要將其增大。
問題三:怎樣調整權重才能讓其增大?
通過后續(xù)的神經元向前序神經元進行反饋,一層一層向后直到得到的值接近真實值,這就是反向傳播算法(也是深度學習的核心所在)。
近期以來深度學習被用于各種領域中,證券市場預測、搜索、廣告、視頻識別、語義識別等。不過對于大眾來說,最有名的應該是Google推出的能識別貓的神經網絡——在當時,它是有史以來最大型的神經網絡(可能超過10億參數)。
進化理論認為反向傳播只是在模型中調整權重而已,而沒有整個弄明白大腦的真正來源是什么。所以要搞清楚整個進化過程是如何進行的,然后在計算機上模擬同樣的過程。
遺傳算法(Genetic Algorithm)是模擬達爾文生物進化論的自然選擇和遺傳學機理的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優(yōu)解的方法。遺傳算法是從代表問題可能潛在的解集的一個種群(population)開始的,而一個種群則由經過基因(gene)編碼的一定數目的個體(individual)組成。每個個體實際上是染色體(chromosome)帶有特征的實體。染色體作為遺傳物質的主要載體,即多個基因的集合,其內部表現(即基因型)是某種基因組合,它決定了個體的形狀的外部表現,如黑頭發(fā)的特征是由染色體中控制這一特征的某種基因組合決定的。因此,在一開始需要實現從表現型到基因型的映射即編碼工作。不同的人是通過他們的基因進行區(qū)分的,但是與人類不同,計算機的構成單元只是比特符(0和1)。遺傳算法(Genetic Algorithm)是一類借鑒生物界的進化規(guī)律(適者生存,優(yōu)勝劣汰遺傳機制)演化而來的隨機化搜索方法。它是由美國的J.Holland教授1975年首先提出,其主要特點是直接對結構對象進行操作,不存在求導和函數連續(xù)性的限定;具有內在的隱并行性和更好的全局尋優(yōu)能力;采用概率化的尋優(yōu)方法,能自動獲取和指導優(yōu)化的搜索空間,自適應地調整搜索方向,不需要確定的規(guī)則。遺傳算法的這些性質,已被人們廣泛地應用于組合優(yōu)化、機器學習、信號處理、自適應控制和人工生命等領域。它是現代有關智能計算中的關鍵技術。
遺傳操作是模擬生物基因遺傳的做法。在遺傳算法中,通過編碼組成初始群體后,遺傳操作的任務就是對群體的個體按照它們對環(huán)境適應度(適應度評估)施加一定的操作,從而實現優(yōu)勝劣汰的進化過程。
由于仿照基因編碼的工作很復雜,我們往往進行簡化,如二進制編碼,初代種群產生之后,按照適者生存和優(yōu)勝劣汰的原理,逐代(generation)演化產生出越來越好的近似解,在每一代,根據問題域中個體的適應度(fitness)大小選擇(selection)個體,并借助于自然遺傳學的遺傳算子(genetic operators)進行組合交叉(crossover)和變異(mutation),產生出代表新的解集的種群。這個過程將導致種群像自然進化一樣的后生代種群比前代更加適應于環(huán)境,末代種群中的最優(yōu)個體經過解碼(decoding),可以作為問題近似最優(yōu)解。
當下,遺傳算法專家已經不滿足于在電腦上進行模擬了,他們將自己的技術也帶到了真實世界中——機器人技術。他們最開始用的是普通的機器人模式,當他們訓練到足夠好時,通過3D打印技術將整個機器人打印出來,打印出來的機器人真的能夠進行爬行走動等動作。(hod lipson實驗室)雖然這些機器人現在還不夠好,但是相比它們剛起步的時候,已經發(fā)展的相當迅速了。
貝葉斯一直以來都是小眾領域,其中Judea pearl是圖靈獎獲得者。
貝葉斯定理是概率論中的一個定理,它跟隨機變量的條件概率以及邊緣概率分布有關。在有些關于概率的解說中,貝葉斯定理能夠告知我們如何利用新證據修改已有的看法。
其中P(A|B)是在B發(fā)生的情況下A發(fā)生的可能性。
在貝葉斯定理中,每個名詞都有約定俗成的名稱:
P(A|B)是已知B發(fā)生后A的條件概率,也由于得自B的取值而被稱作A的后驗概率。
P(B|A)是已知A發(fā)生后B的條件概率,也由于得自A的取值而被稱作B的后驗概率。
P(A)是A的先驗概率或(或邊緣概率)。之所以稱為"先驗"是因為它不考慮任何B方面的因素。
P(B)是B的先驗概率或邊緣概率。
后驗概率 = (相似度*先驗概率)/標準化常量
也就是說,后驗概率與先驗概率和相似度的乘積成正比。
另外,比例P(B|A)/P(B)也有時被稱作標準相似度(standardised likelihood),貝葉斯定理可表述為:
后驗概率 = 標準相似度*先驗概率
貝葉斯學習機制已經被應用于許多領域。例如,自動駕駛車輛的“大腦”中就配有貝葉斯學習機制。因而,在某種程度上,貝葉斯定理在幫助駕駛車輛或者幫助車輛學習如何駕駛方面起到重大作用。
不過,大概人人都熟悉的一項貝葉斯學習機制應用為垃圾郵件過濾器。首個垃圾郵件過濾器是由David Heckerman及其同事共同設計的。他們僅僅運用一個非常建議的貝葉斯學習機,即初級(naive)貝葉斯分類器。下面是該分類器的工作原理:其基于的假設為——一封郵件是垃圾郵件或一封郵件不是垃圾郵件,當然這種假設是在我們檢測郵件內容之前提出的。其中蘊含的先驗概率為:當你判斷一封郵件為垃圾郵件的先驗概率為90%,99%,99.999%時,你的假設即為正確的。證明這一假設正確與否的證據在于郵件的真實內容。例如,當郵件內容含有“萬艾可”一詞,這封郵件將在極大程度上被判定為垃圾郵件;當郵件內容含有大寫全拼“FREE”一詞,這封郵件將在極大程度上被判定為垃圾郵件;當“FREE”一詞后面出現四個感嘆號,這封郵件將在極大程度上被判定為垃圾郵件。當郵件署名出現你最好朋友的名字,這將降低這封郵件被判定為垃圾郵件的概率。因而,初級貝葉斯分類器就包含了這些“證據”。在一天結束時,該分類器將計算出一封郵件為垃圾郵件或非垃圾郵件的概率,基于計算得出的概率,分類器決定是否將該郵件過濾掉或將其發(fā)送給用戶。垃圾郵件過濾器使我們能夠有效管理自己的郵箱。
當下,各種不同的算法被應用于垃圾郵件過濾器。但是,貝葉斯學習機制是首個應用于垃圾過濾的算法,并在其他眾多垃圾郵件過濾過濾器中得到應用。
最后,正如我提到的,行為類比主義者所持的基本觀點為:我們所做的一切,所學習的一切,都是通過類比法推理得出的。所謂的類比推理法,即觀察我們需要作出決定的新情景和我們已經熟悉的情景之間的相似度。早期行為類比主義的先驅之一為Peter Hart。他證實了,有些事物是與最佳臨近算法相連的,這種算法是首個基于相似度的算法,稍后將對此詳細講解。Vladimir Vapnik發(fā)明了支持向量機,內核機,成為當時運用最廣,最成功的基于相似度學習機。這些都是最原始的類比推理形式。人們,例如Douglas Hofstadter,也致力于研究許多復雜高端的學習機。Douglas Hofstadter不僅是著名的量化研究科學家和計算機科學家,也是“哥德爾,埃舍爾,巴赫”一書的作者。其最著名的書有500頁,書中的觀點是一切智能都只是類比。他強烈主張類比是主算法。
內核機
下面是一個用于理解這一觀點的一個謎題。假設給出兩個國家,由于所給出的是積極的例子和消極的例子,我賦予它們富有想象力的名字“Posistan”和“Negaland”。在圖中,我將不給出兩個國家的邊界線,只給出兩個國家的主要城市的位置。Posistan的主要城市用加號標出,Positiveville為首都,Negaland的主要城市也用同樣的方式標出。所給出的問題是:倘若我給出主要的城市,你能告訴我邊界線的位置嗎?當然,你并不能給出確定的答案,因為這些城市并不能決定邊界線的位置。但是,這也是機器學習的問題所在。我們得學會概括。
最佳鄰近算法能夠為這一問題提供簡單的答案。即如果地圖上的一點臨近某一個積極地城市或任何一個消極城市,那么我們可以假定這一個點位于Posistan。該假設將產生如下效果,即將地圖劃分為這個城市的鄰近城市,如此一來,Posistan將成為這些積極城市鄰近區(qū)域的聯(lián)合國家。一個城市的鄰近城市由那些離其最近的點構成。因而,便可得到一條鋸齒狀的邊界線。盡管最佳鄰近算法是如此簡單,但是在學習階段,這種算法甚至于不能起到任何作用,這一點是令人驚奇的。這個問題中所涉及的一些推理過程不是理想化的,其中之一便是,所得出得這條邊界線可能不是最正確的,因為真正的邊界線可能更為平滑。第二,倘若你仔細觀察這幅地圖,你可能舍棄一些城市,但是這一舉動不會對最終結果產生太大影響。倘若舍棄這個城市,它將并入其他兩個城市,最終的邊界線不會發(fā)生變化。唯一需要保留的是那些界定邊界線的城市,即所謂的“支持向量”,通常,這些向量存在于超空間內。因此,通常情況下,可以舍棄大量的城市,而不會對最終結果產生任何影響。不過,在大數據集中,舍棄大量數據將對最終輸出值產生影響。支持向量機,或簡稱為內核機,將解決這一問題。存在一種學習程序,能夠舍棄對界定邊界線來講沒有必要的例子,保留必要的例子,如此一來,能夠得到一條平滑的邊界線。在確定邊界線的過程中,支持向量機將使得邊界線與其最鄰近的城市之間的距離達到最大。這邊是支持向量機的工作原理。
在深度學習盛行之前,支持向量機可能是應用最強健地學習算法。人們從20世紀50年代便開始運用這種基于類比的學習算法,因此這種學習算法基本上適用于地球上的一切事物。我們都體驗過這種學習算法的應用實例,盡管可能沒有意識到應用到了基于類比的學習算法。這便是推薦系統(tǒng)。例如,我想弄清楚推薦給你什么類型的電影比較合適,當然民俗電影已經有20年的歷史了,也是一種非常簡單的電影形式。我將不用電影的類別進行推薦,因為人們的興趣復雜多變,這在很大程度上將是一個難題。我將采用一種“協(xié)同過濾”方法,即找到一些品味興趣與你相似的五個人,這意味著你和他們一樣給某部電影五個星,給另一部電影一個星。倘若他們對一部你沒有看過的電影五顆星,我便可以通過類比推理法假定,你也會喜歡那部電影,這樣我便可以向你推薦這部電影。這種運用類比推理的“協(xié)同過濾”方法取得了極好的成效。事實上,Netflix四分之三的業(yè)務得益于這種推薦系統(tǒng)。亞馬遜也運用了這種推薦系統(tǒng),這種系統(tǒng)為其業(yè)務的發(fā)展帶來了三分之一的成效。這些時間以來,人們運用各種學習算法來實現這一推薦系統(tǒng),但是最佳鄰近算法是最早應用于研究這一系統(tǒng)的學習算法,也是最優(yōu)的算法之一。
再返回來,我們之前講到機器學習的五大流派,我們發(fā)現每個流派都存在各自能夠更好解決的一個問題。每一個流派都有一種特定的主算法,這種算法可以解決出現的問題。例如,只有象征主義者能夠解決的問題是學習那些可以用不同形式組構的知識,他們用逆向推理的方法學習這些知識。聯(lián)結主義者運用反向傳播算法來解決信用分配問題。進化論者解決學習結構問題。聯(lián)結主義者僅從一個固定的結構開始,進而調整權重值。進化論者知道如何運用遺傳程序提出一種學習結構。貝葉斯學習機制均是研究不確定的事物,他們知道如何就處理所有不確定的事物,他們參考大量數據便可以知道如何提高假說發(fā)生的概率。他們使用概率推理法,這種方法在算法上是非常有效的,能夠將貝葉斯原理應用于超大的假說集中。最終,行為類比主義者運用事物之間的相似度進行推理。他們能夠從一兩個例子中概括推理。當時最好的類比算法當屬核心機。但是,我想指出的是,因為每一個出現的問題都是真式且重要的,沒有一種單一算法能夠解決這些問題。我們真正需要的是一種能夠同時解決這五個問題的單一算法。這樣的話, 我們便需要一種機器學習大統(tǒng)一理論。事實上,我們已經朝向這個目標做出了很多努力,并取得了一定成就,但是我們仍然任重道遠。
下面我將給大家呈現我們當前所處的研究狀態(tài)。我們擁有五種算法或五種類型的學習方法,關鍵在于如何將其統(tǒng)一起來。看起來,這是一個難題,甚至有人聲稱,這是一個難以實現的目標。這一目標之所以看似難以企及是因為這五種算法之間看起來是不同的。但是,仔細觀察,這五種算法之間還是存在想通之處,它們都由三個相同成分構成,即表征,評估,優(yōu)化。
我們將分析每一個成分具體指代什么,以實現五種算法的統(tǒng)一。表征指學習者如何表示正在學習的知識,模型和編程。學習者將用于編寫算法的編程語言不是Java,或c++,或類似的任何語言,而應當是一介邏輯語言。因此,我們的首要任務是統(tǒng)一這些表征方法。最自然的做法是運用象征主義者的表征方法,這里我們運用的是一階邏輯的變體形式,而貝葉斯用到的表征方法是圖像模型。這些表征方法已經得到極其普遍的運用。倘若能夠將這兩種表征方法相結合,我們可以用來表達任何一種事物。例如,任何一種計算機編程都可以運用一階邏輯來表達。任何用于處理不確定事物或權衡證據的方法都可以用圖像模型來表征?,F在我們確實已經實現將這兩種表征方法結合在一起的目標。事實上,我們已經發(fā)展形成各種形式的概率邏輯。應用最廣泛的是Markov 邏輯網絡,該網絡實際上是邏輯網絡和Markov網絡的結合體。該網絡是一種非常簡單的模型,由公式和一階邏輯開始,然后賦予每一個規(guī)則于權重值。
接下來,任何一種學習算法的組成成分是評估。評估是一個分數函數,這個函數會顯示一個候選模型的性能優(yōu)劣。例如,該候選模型是否與數據,與我的目的一致。事實上,每一種學習問題在于能否找到實現評估函數值最大化的編程。一個比較明顯的候選模型是貝葉斯使用的后驗概率。通常來講,評估不應當成為算法的一部分,評估結果應當由用戶提供,用戶來決定學習者應當優(yōu)化的內容。
最后一個組成成分是優(yōu)化,即找到實現函數值最大化的模型。因而,這里便有遺傳編程與反向傳播算法的自然結合,即去發(fā)現我們能夠運用遺傳編程的公式。在一階邏輯中,每一個公式是一個樹,我們可以穿越這些樹,應用遺傳過程來提出能夠更好的公式。我擁有一個涉及到許多不同公式,事實,和不同步驟的推理鏈,所有的公式,事實,和不同的步驟都被賦予一定的權重值,我可以運用反向傳播算法來學習這些權重。我們在這一塊兒做出很多努力,但是還未成功。但是,有些人認為實現將五種算法統(tǒng)一為一種單一算法這一目標,僅僅是時間問題。我卻不是特別樂觀。我個人認為,即使我們成功地實現這五種范式的統(tǒng)一,在此過程中仍會出現一些主要思想的丟失,還可能存在我們尚未擁有的想法,沒有了這些想法,我們將不能擁有一種真正意義上的全面的學習機制。
我將針對主算法的未來影響稍作討論,以此結束我們今天的演講。在這里我提出四個術語,第一個術語為家庭機器人。我們都希望擁有一臺家庭機器人能夠為我們做飯,鋪床,等等便利服務,但是,為何至今我們都沒能實現這一目標?首先,要實現這一目標不能離開機器學習,現今還沒有任何一種程序能夠使得機器人做任何其想要做的一切事物。其次,我們現有的學習算法還有待優(yōu)化。因為家庭機器人在一天的工作任務中將會遇到所有這五種問題,這將要求其能夠解決所有的問題。因此,在主算法發(fā)展過程中,我們還需多做努力。
第二個術語為網絡大腦。每一個人, 包括谷歌在內,都試圖將網絡轉變?yōu)橐粋€知識庫。我希望問問題并得到答案,而非查詢關鍵字再返回到網頁。但是,這便要求網絡中所有的知識都要以計算機能夠推理的方式表征出來,例如,一階邏輯。另一方面,網絡中到處充斥著沖突,噪音,差異,其他等等因素,因此我需要應用概率來解決這一問題。因而,需要統(tǒng)一這五種學習算法,以便能夠從網絡中提取知識。
第三個術語為癌癥治療。關于人體健康,治療癌癥可能是最重要的??墒牵瑸槭裁次覀冞€未找到治療癌癥的有效方法?問題在于癌癥不是一種單一的疾病,每個人的癌癥病癥都是不同的。事實上,病人病情發(fā)展過程中,同一種癌癥都會發(fā)生變異,因此,一種藥物是不太可能治愈所有的癌癥。癌癥的一種真正治療方法,或至少越來越多的癌癥研究者認為,將依靠一種學習算法項目,這種項目能夠包含病人的基因組信息,病史,腫瘤細胞的變異,以此來預測使用哪一種藥物能夠殺死這種腫瘤細胞,而不會對病人的正常細胞產生危害,或者使用一系列藥物,或多種藥物聯(lián)合治療,或者針對某一病人設計特定的藥物。在某種程度上,這與向人們推薦書目或電影的推薦系統(tǒng)相似,只不過,這里需要推薦一種藥物。當然,這里涉及的問題比如何推薦一種藥物,書目,電影更為復雜,你要理解細胞的工作原理,基因與及細胞形成的蛋白質是如何交互作用的。好的消息是,我們擁有大量的數據來實現這一目標,如微陣列,序列等等。但是,基于我們現有的學習算法,我們還無法實現這一目標,而,擁有主算法,這一目標將得以實現。
第四個術語為360度推薦系統(tǒng)。就推薦系統(tǒng)而言,作為一名消費者,我希望能夠有一種關于我自己的一個完備的360度推薦模型,這種模型能夠學習我產生的所有數據,這一模型比任何小型模型都更了解我,因而能夠為我提供更好地推薦服務,不僅能夠推薦一些細枝末節(jié)的事物,也能夠為我推薦工作,房子,專業(yè)等。擁有這樣一個推薦系統(tǒng),好比擁有一個生命中的摯友,能夠為你生活中的每一步提供寶貴意見。為了達到這一目標,我們不僅僅需要不斷增長的數據,還需要強大的算法來學習人類這一豐富多彩的模型。
PS : 本文由雷鋒網編譯,未經許可拒絕轉載!
via Pedro Domingos
雷峰網原創(chuàng)文章,未經授權禁止轉載。詳情見轉載須知。