摘要: 當你和女朋友在路邊手拉手一起約會的時候,你可曾想,你們之間早已碰撞出了一種神秘的智慧–深度學習。戀愛容易,相處不易,不斷磨合,打造你們的默契,最終才能決定你們是否在一起。深度學習也一樣,輸入各種不同的參數,進行訓練擬合,最后輸出擬合結果。 戀愛又不易,且學且珍惜!
導言: 目前人工智能非常火爆,而深度學習則是引領這一火爆現場的“火箭”。于是,有關“深度學習”的論文、書籍和網絡博客汗牛充棟,但大多數這類文章都具備“高不成低不就”的特征。對于高手來說,自然是沒有問題,他們本身已經具備非常“深度”的學習能力,如果他們想學習有關深度學習的技術,直接找來最新的研究論文閱讀就好了。但是,對于低手(初學者)而言,就沒有那么容易了,因為他們基礎相對薄弱,通常看不太懂。
于是,我們推出深度學習的入門系列。在這個系列文章中,我們力圖用最為通俗易懂、圖文并茂的方式,帶你入門深度學習。我們都知道,高手從來都是自學出來的。所以,這個深度學習的入門系列,能帶給你的是“從入門到精通”,還是“從入門到放棄”,一切都取決你個人的認知。成就你自己的,永遠都是你自己,是吧?
好了,言歸正傳,下面開始我們的正題。
1. 什么是學習?
說到深度學習,我們首先需要知道,什么是學習。
著名學者赫伯特·西蒙教授(Herbert Simon,1975年圖靈獎獲得者、1978年諾貝爾經濟學獎獲得者)曾對“學習”給了一個定義:“如果一個系統,能夠通過執行某個過程,就此改進了它的性能,那么這個過程就是學習”。
大牛就是大牛,永遠都是那么言簡意賅,一針見血。從西蒙教授的觀點可以看出,學習的核心目的,就是改善性能。
其實對于人而言,這個定義也是適用的。比如,我們現在正在學習“深度學習”的知識,其本質目的就是為了“提升”自己在機器學習上的認知水平。如果我們僅僅是低層次的重復性學習,而沒有達到認知升級的目的,那么即使表面看起來非常勤奮,其實我們也僅僅是個“偽學習者”, 因為我們沒有改善性能。
2. 什么是機器學習?
遵循西蒙教授的觀點,對于計算機系統而言,通過運用數據及某種特定的方法(比如統計的方法或推理的方法),來提升機器系統的性能,就是機器學習。
英雄所見略同。卡內基梅隆大學的Tom Mitchell教授,在他的名作《機器學習》一書中,也給出了更為具體(其實也很抽象)的定義:
對于某類任務(Task,簡稱T)和某項性能評價準則(Performance,簡稱P),如果一個計算機程序在T上,以P作為性能的度量,隨著很多經驗(Experience,簡稱E)不斷自我完善,那么我們稱這個計算機程序在從經驗E中學習了。
比如說,對于學習圍棋的程序AlphaGo,它可以通過和自己下棋獲取經驗,那么它的任務T就是“參與圍棋對弈”;它的性能P就是用“贏得比賽的百分比”來度量。“類似地,學生的任務T就是“上課看書寫作業”;它的性能P就是用“期末成績”來度量”
因此,Mitchell教授認為,對于一個學習問題,我們需要明確三個特征:任務的類型,衡量任務性能提升的標準以及獲取經驗的來源。
3. 學習的4個象限
在前面的文章中,我們已提到,一般說來,人類的知識在兩個維度上可分成四類。即從可統計與否上來看,可分為:是可統計的和不可統計的。從能否推理上看,可分為可推理的和不可推理的。
在橫向方向上,對于可推理的,我們都可以通過機器學習的方法,最終可以完成這個推理。傳統的機器學習方法,就是試圖找到可舉一反三的方法,向可推理但不可統計的象限進發(象限Ⅱ)。目前看來,這個象限的研究工作(即基于推理的機器學習)陷入了不溫不火的境地,能不能峰回路轉,還有待時間的檢驗。
而在縱向上,對于可統計的、但不可推理的(即象限Ⅲ),可通過神經網絡這種特定的機器學習方法,以期望達到性能提升的目的。目前,基于深度學習的棋類博弈(阿爾法狗)、計算機視覺(貓狗識別)、自動駕駛等等,其實都是在這個象限做出了了不起的成就。
從圖可知,深度學習屬于統計學習的范疇。用李航博士的話來說,統計機器學習的對象,其實就是數據。這是因為,對于計算機系統而言,所有的“經驗”都是以數據的形式存在的。作為學習的對象,數據的類型是多樣的,可以是各種數字、文字、圖像、音頻、視頻,也可以是它們的各種組合。
統計機器學習,就是從數據出發,提取數據的特征(由誰來提取,是個大是大非問題,下面將給予介紹),抽象出數據的模型,發現數據中的知識,最后又回到數據的分析與預測當中去。
4. 機器學習的方法論
這里稍早說明的一點的是,在深度學習中,經常有“end-to-end(端到端)”學習的提法,與之相對應的傳統機器學習是“Divide and Conquer(分而治之)”。這些都是什么意思呢?
“end-to-end”(端到端)說的是,輸入的是原始數據(始端),然后輸出的直接就是最終目標(末端),中間過程不可知,因此也難以知。比如說,基于深度學習的圖像識別系統,輸入端是圖片的像素數據,而輸出端直接就是或貓或狗的判定。這個端到端就是:像素-->判定。
再比如說,“end-to-end”的自動駕駛系統,輸入的是前置攝像頭的視頻信號(其實也就是像素),而輸出的直接就是控制車輛行駛指令(方向盤的旋轉角度)。這個端到端就是:像素-->指令。
就此,有人批評深度學習就是一個黑箱(Black Box)系統,其性能很好,卻不知道為何而好,也就是說,缺乏解釋性。其實,這是由于深度學習所處的知識象限決定的。從圖1可以看出,深度學習,在本質上,屬于可統計不可推理的范疇。“可統計”是很容易理解的,就是說,對于同類數據,它具有一定的統計規律,這是一切統計學習的基本假設。那“不可推理”又是什么概念?其實就是“剪不斷、理還亂”的非線性狀態了。
在哲學上講,這種非線性狀態,是具備了整體性的“復雜系統”,屬于復雜性科學范疇。復雜性科學認為,構成復雜系統的各個要素,自成體系,但阡陌縱橫,其內部結構難以分割。簡單來說,對于復雜系統,1+1≠2,也就是說,一個簡單系統,加上另外一個簡單系統,其效果絕不是兩個系統的簡單累加效應,而可能是大于部分之和。因此,我們必須從整體上認識這樣的復雜系統。于是,在認知上,就有了從一個系統或狀態(end)直接整體變遷到另外一個系統或狀態(end)的形態。這就是深度學習背后的方法論。
與之對應的是“Divide and Conquer(分而治之)”,其理念正好相反,在哲學它屬于“還原主義(reductionism,或稱還原論)”。在這種方法論中,有一種“追本溯源”的蘊意包含其內,即一個系統(或理論)無論多復雜,都可以分解、分解、再分解,直到能夠還原到邏輯原點。
在意象上,還原主義就是“1+1=2”,也就是說,一個復雜的系統,都可以由簡單的系統簡單疊加而成(可以理解為線性系統),如果各個簡單系統的問題解決了,那么整體的問題也就得以解決。比如說,很多的經典力學問題,不論形式有多復雜,通過不斷的分解和還原,最后都可以通過牛頓的三大定律得以解決。
經典機器學習(位于第Ⅱ象限),在哲學上,在某種程度上,就可歸屬于還原主義。傳統的機器學習方式,通常是用人類的先驗知識,把原始數據預處理成各種特征(feature),然后對特征進行分類。
然而,這種分類的效果,高度取決于特征選取的好壞。傳統的機器學習專家們,把大部分時間都花在如何尋找更加合適的特征上。因此,早期的機器學習專家們非常苦逼,故此,傳統的機器學習,其實可以有個更合適的稱呼——特征工程(feature engineering)。
但這種苦逼,也是有好處的。這是因為,這些特征是由人找出來的,自然也就為人所能理解,性能好壞,機器學習專家們可以“冷暖自知”,靈活調整。
5. 什么是深度學習
再后來,機器學習的專家們發現,可以讓神經網絡自己學習如何抓取數據的特征,這種學習的方式,效果更佳。于是興起了特征表示學習(feature representation learning)的風潮。這種學習方式,對數據的擬合也更加的靈活好用。于是,人們終于從自尋“特征”的苦逼生活中解脫出來。
但這種解脫也付出了代價,那就是機器自己學習出來的特征,它們存在于機器空間,完全超越了人類理解的范疇,對人而言,這就是一個黑盒世界。為了讓神經網絡的學習性能,表現得更好一些,人們只能依據經驗,不斷地嘗試性地進行大量重復的網絡參數調整,同樣是“苦不堪言”。于是,“人工智能”領域就有這樣的調侃:“有多少人工,就有多少智能”。
因此,你可以看到,在這個世界上,存在著一個“麻煩守恒定律”:麻煩不會減少,只會轉移。
再后來,網絡進一步加深,出現了多層次的“表示學習”,它把學習的性能提升到另一個高度。這種學習的層次多了,其實也就是套路“深了”。于是,人們就給它取了個特別的名稱——Deep Learning(深度學習)。
深度學習的學習對象同樣是數據。與傳統機器學習所不同的是,它需要大量的數據,也就是“大數據(Big Data)”。
有一個觀點,在工業界一度很流行,那就是在大數據條件下,簡單的學習模型會比復雜模型更加有效。而簡單的模型,最后會趨向于無模型,也就是無理論。例如,早在2008年,美國 《連線》(Wired)雜志主編克里斯﹒安德森(Chris Anderson)就曾發出“理論的終結(The End of Theory)”的驚人斷言:“海量數據已經讓科學方法成為過去時(The Data Deluge Makes the Scientific Method Obsolete)”。
但地平線機器人創始人(前百度深度學習研究院副院長)余凱先生認為,深度學習的驚人進展,是時候促使我們要重新思考這個觀點了。也就是說,他認為“大數據+復雜模型”或許能更好地提升學習系統的性能。
6. “戀愛”中的深度學習
法國科技哲學家伯納德﹒斯蒂格勒(Bernard Stiegler)認為,人們以自己的技術和各種物化的工具,作為自己“額外”的器官,不斷的成就自己。按照這個觀點,其實,在很多場景下,計算機都是人類思維的一種物化形式。換句話說,計算機的思維(比如說各種電子算法),都能找到人類生活實踐的影子。
比如說,現在火熱的深度學習,與人們的戀愛過程也有相通之處。在知乎上,就有人(jacky yang)以戀愛為例來說明深度學習的思想,倒也非常傳神。我們知道,男女戀愛大致可分為三個階段:
第一階段初戀期,相當于深度學習的輸入層。妹子吸引你,肯定是有很多因素,比如說臉蛋、身高、身材、性格、學歷等等,這些都是輸入層的參數。對不同喜好的人,他們對輸出結果的期望是不同的,自然他們對這些參數設置的權重也是不一樣的。比如,有些人是奔著結婚去的,那么他們對妹子的性格可能給予更高的權重。否則,臉蛋的權重可能會更高。
第二階段熱戀期,對應于深度學習的隱藏層。在這個期間,戀愛雙方都要經歷各種歷練和磨合。清朝湖南湘潭人張燦寫了一首七絕:
書畫琴棋詩酒花,當年件件不離他。
而今七事都更變,柴米油鹽醬醋茶。
這首詩說的就是,在過日子的洗禮中,各種生活瑣事的變遷。戀愛是過日子的一部分,其實也是如此,也需要雙方不斷磨合。這種磨合中的權重取舍平衡,就相等于深度學習中隱藏層的參數調整,它們需要不斷地訓練和修正!戀愛雙方相處,磨合是非常重要的。要怎么磨合呢?光說“520(我愛你)”,是廉價的。這就給我們程序猿(媛)提個醒,愛她(他),就要多陪陪她(他)。陪陪她(他),就增加了參數調整的機會。參數調整得好,輸出的結果才能是你想要的。
第三階段穩定期,自然相當于深度學習的輸出層。輸出結果是否合適,是否達到預期,高度取決于“隱藏層”的參數 “磨合”得怎么樣。
7. 小結
在本小節,我們回顧了“機器學習”的核心要素,那就是通過對數據運用,依據統計或推理的方法,讓計算機系統的性能得到提升。而深度學習,則是把由人工選取對象特征,變更為通過神經網絡自己選取特征,為了提升學習的性能,神經網絡的表示學習的層次較多(較深)。
以上僅僅給出機器學習和深度學習的概念性描述,在下一個小結中,我們將給出機器學習的形式化表示,傳統機器學習和深度學習的不同之處在哪里,以及到底什么是神經網絡等。
8. 請你思考
- 在大數據時代,你是贊同科技編輯出生的克里斯﹒安德森的觀點呢(僅需簡單模型甚至無模型),還是更認可工業界大神余凱先生的觀點呢(還是需要復雜模型)?為什么?
- 你認為用“戀愛”的例子比擬“深度學習”貼切嗎?為什么?
- 為什么非要用“深度”學習,“淺度”不行嗎?