人工智能的三次浪潮

人工智能的三次浪潮

2018年年初,招聘季正如火如荼地進行,而“數據科學家”和“算法工程師”絕對算得上熱門職業。

“人工智能”“機器學習”“深度學習”“建模”“卷積神經網絡”等關鍵詞,不僅僅是人們茶餘飯後的談資,而且更會像“數據結構”“排序”和“鏈表”一樣,成為軟件工程師的必備技能。

人工智能技術正在對社會結構、職場、教育等帶來革命性的變化。 未來幾年是人工智能技術全面普及化的時期,也是該技術的相關人才最為稀缺的時期。所以,我們希望能夠通過這本書,幫助對人工智能和機器學習感興趣的朋友更加深入地瞭解這個領域的基本技能,幫助已經有計算機技術基礎的同行們,成為駕馭人工智能和機器學習的高手。

我先簡單介紹一下我瞭解的人工智能和機器學習的背景和歷史,解釋為什麼現在是學習機器學習算法的大好時機。

■ 我與人工智能

我的本科專業是人工智能。當年我上大學時,清華大學的計算機系每個年級有6個班,入學的時候就把每個班的專業分好。我們三班的專業是人工智能。所以在本科的時候,我就接觸到許多當時人工智能領域的前沿技術。我的人工智能入門課的導師是可親可敬的林堯瑞教授,也是《人工智能導論》的作者。這門課被我們戲謔為“猴子摘香蕉”,因為最開始的問題就是一隻智能的猴子,如何自己組合積木去拿到天花板上掛著的香蕉。

當時清華大學的本科是5年制,正要開始改革,有少部分學生可以在四年級的時候開始接觸研究生的一些活動,6年可以拿到碩士學位。我有幸被選為這幾個學生之一,在本科四年級的時候,我進入了清華大學的人工智能實驗室,師從張鈸老師,做一些簡單的研究。 從張老師和高年級的同學們那裡,我學到人工智能領域不少當時國際先進的知識。

剛剛進入斯坦福的時候,去聽一個小型的午餐講座(Brown Bag),也就是一二十個人吧。那位同學講到一半,教室門突然被打開,大鬍子的約翰·麥卡錫(John McCarthy)教授走了進來,大聲地問:“聽說這裡有不要錢的午飯?” 然後他走到房間的前面,抓了兩個三明治,大搖大擺地走出去了。主持講座的老師愣了一下,說:“歡迎大家來到斯坦福——世界上最著名的科學家會走進你們的教室來搶你們食物的地方!”

或許你不知道,“人工智能”(Artificial Intelligence)這個詞,就來自約翰·麥卡錫。

因為本科是人工智能專業,所以我對人工智能一直比較感興趣,在斯坦福又去學了一次人工智能課CS140。當時教這個課的是尼爾斯·尼爾森 (Nils Nilsson)教授。他是另外一位人工智能的學科創始人和世界級專家,寫作了被廣泛引用的經典之作——《對人工智能的探索》(

The Quest for Artificial Intelligence)。尼爾森教授的課非常有趣,我還跟他做了一個小的項目,規劃一個掃地機器人的路徑。至今,我還保留了這門課的筆記。

說實話,我年輕的時候每天做作業、做課題,沒有意識到,能和這些頂級科學家同堂是多麼幸運的事,也未必知道自己正在見證某個技術領域的世界前沿。最頂尖的技術,開始都是隻有小眾才能理解和欣賞的。

然而,我的博士論文並沒有專攻人工智能,反而做的是大數據方向,做了最早的數據倉庫和數據挖掘工作。現在看來,我這幾次和人工智能以及人工智能大咖的偶遇,剛好和人工智能的三次浪潮有關。第一次人工智能的浪潮就是約翰·麥卡錫那一代人。他們從20世紀50年代開始,打下了計算機學科和人工智能的理論基礎。 第二次是我在清華大學期間,研究者們看到了一些人工智能應用的可能性,比如機械手、機器人、專家系統。最近,基於大數據、機器學習的人工智能再次興起,可以稱為人工智能的第三次浪潮 。

■ 人工智能的三次浪潮

我來簡單定義和解釋一下本書用到的概念。

人工智能泛指讓機器具有人的智力的技術。這項技術的目的是使機器像人一樣感知、思考、做事、解決問題 。人工智能是一個寬泛的技術領域,包括自然語言理解、計算機視覺、機器人、邏輯和規劃等,它可以被看作計算機專業的子領域,除了和計算機相關,它還和心理學、認知科學、社會學等有不少交叉。

機器學習指計算機通過觀察環境,與環境交互,在吸取信息中學習、自我更新和進步。 大家都瞭解計算機程序是怎麼回事,一個程序是計算機可以執行的一系列的指令,比如打印一張圖。那麼機器學習跟我們熟知的程序的本質區別是什麼呢?你可以想象,某個程序是機器寫的,而不是一個程序員寫的。那麼機器怎麼知道如何寫這個程序呢?這個機器就是從大量的數據當中學到的。

簡單地說,大多數機器學習算法可以分成訓練(training)測試(testing)兩個步驟,這兩個步驟可以重疊進行。訓練,一般需要訓練數據,就是告訴機器前人的經驗,比如什麼是貓、什麼是狗、看到什麼該停車。訓練學習的結果,可以認為是機器寫的程序或者存儲的數據,叫

模型(model)。總體上來說,訓練包括有監督(supervised learning)無監督(unsupervised learning)兩類。有監督好比有老師告訴你正確答案;無監督僅靠觀察自學,機器自己在數據裡找模式和特徵。深度學習(deep learning)是機器學習的一種方法,它基於神經元網絡,適用於音頻、視頻、語言理解等多個方面。

我們先來短暫地回顧一下人工智能的三次浪潮。它們有什麼特點?又有什麼不同?它們又是怎樣互相聯繫,如何在前一次的基礎之上建立的?

第一次人工智能浪潮大約在20世紀50年代。1956年,在達特茅斯的人工智能研討會上,約翰·麥卡錫正式提出“人工智能”這個概念,被公認是現代人工智能學科的起始。麥卡錫與麻省理工學院的馬文·明斯基(Marvin Minsky)被譽為“人工智能之父”。

在計算機被髮明的早期,許多計算機科學家們就認真地思考和討論這個人類發明出來的機器,和人類有什麼根本區別。圖靈機和圖靈測試,就是這個思考的一個最典型結果。最初的那批思考人工智能的專家,從思想和理論上走得非常前沿,內行的專家很早就看到了計算機的潛力。我們現在所問的這些問題,他們其實都問過了。比如,什麼叫“推理”(reasoning), 機器如何推理;什麼叫“懂得”(understanding),機器如何懂得;什麼叫知識(knowledge),機器如何獲取和表達知識;什麼時候,我們無法分辨出機器和人。這個階段產生了許多基礎理論,不僅是人工智能的基礎理論,也是計算機專業的基石。

從技術上來說,第一次人工智能的大發展,主要是基於邏輯的。1958年麥卡錫提出了邏輯語言 LISP。從20世紀50年代到20世紀80年代,研究者們證明了計算機可以玩遊戲,可以進行一定程度上的自然語言理解。 在實驗室裡,機器人可以進行邏輯判斷、搭積木;機器老鼠可以針對不同的路徑和障礙做出決定;小車可以在有限的環境下自己駕駛。研究者們發明了神經網絡,可以做簡單的語言理解和物體識別。

然而,在人工智能的前二三十年裡,它雖然是一個碩果累累的科研領域,人們實際生活中的用處卻幾乎沒有。20世紀80年代初,人工智能因為缺乏應用而進入“冬季”。到80年代末和90年代初,在我剛入大學的那段時間裡,人工智能科學家們決定另闢蹊徑,從解決大的普適智能問題,轉向解決某些領域的單一問題。“專家系統”這個概念被提了出來,它讓這些研究成果找到了第一個可能的商業出路。

計算機技術經過了30年左右的發展,數據存儲和應用有了一定的基礎。研究者們看到人工智能和數據結合的可能性,而結合得最好的應用就是“專家系統”。如果我們能把某一個行業的數據,比如說關於心臟病的所有數據,都告訴一個機器,再給它一些邏輯,那這個機器豈不是就成了“心臟病專家”,如果我們要看病,是否就可以問它?

看病、預報天氣等各行各業的專家系統,聽起來非常有希望、有意義,也確實有實際的應用場景,所以當時學術界對人工智能又掀起了一陣熱潮。然而,比較有意思的是,當我們想要用這些專家系統來做一些聰明的診斷的時候,我們發現遇到的問題並不是如何診斷,而是大部分的數據在當時還不是數字化的。病人的診斷歷史還停留在看不懂的醫生手寫處方上。有些信息就算是已經開始數字化,也都是在一些表格裡面,或者是在一些不互相連接的機器裡面,拿不到,用不了。

於是,我們這一批想去做自動診斷的人,反而去做了一些基礎的工作。這個基礎的工作用一句話說,就是把世界上所有的信息數字化。

在一批人致力於把世界上每一本書、每一張圖、每一個處方都變成電子版的時候,互聯網的廣泛應用,又把這些信息相互聯接了起來,成了真正的大數據。同時,摩爾定律(Moore’s law)預測的計算性能增加一直在起作用。隨著計算能力的指數增長,那些只能在實驗室裡或有限場景下實現的應用,離現實生活越來越近了。1997年,“深藍”打敗當時的世界象棋冠軍Garry Kasparov,和2017年AlphaGo圍棋打敗李世石一樣,被公認是一個里程碑 。其實,隨著計算能力的提高,在這些單一的、有確定目標的事情上機器打敗人,都只是個時間問題。

第三次的人工智能浪潮就是基於另外兩個技術領域的大發展,一個是巨大的計算能力,一個是海量的數據。巨大的計算能力來自於硬件、分佈式系統、雲計算技術的發展。最近,專門為神經網絡製作的硬件系統(neural-network-based computing)又一次推動了人工智能軟硬件結合的大進步。海量的數據來源於前幾十年的數據積累和互聯網技術的發展。比如,2001年上市的GPS系統,帶來前所未有的大量出行數據;智能手機帶來了前所未有的人們生活習性的數據,等等。計算能力和數據的結合,促進、催化了機器學習算法的飛躍成長。

這次的人工智能浪潮起始於近10年。技術的飛躍發展,帶來了應用前所未有的可能性。最近這次人工智能浪潮和前兩次最基本的不同是它的普遍應用和對普通人生活的影響。也就是說,人工智能離開了學術實驗室,真正走進大眾的視野。

■ 人工智能全面逼近人類能力?

為什麼這次人工智能浪潮如此兇猛?人工智能真的全面逼近了人類的能力嗎?人工智能技術現在發展到什麼階段?我們先來看3個簡單的事實。

首先,歷史上第一次,計算機在很多複雜任務的執行上超過人類或者即將超過人類,比如圖像識別、視頻理解、機器翻譯、汽車駕駛、下圍棋,等等。這些都是人們容易理解的,一直由人類完成的任務。所以,人工智能取代人類的話題開始出現在各種頭條。

其實,在單一技術方面,許多計算相關的技術早已超過人類的能力,而且被廣泛應用,比如導航、搜索、搜圖、股票交易。不少人已經習慣於用語音給簡單指令操作。但是,這些相對單純的技術主要是“完成一個任務”,計算機沒有過多地涉獵人的感知、思考、複雜判斷,甚至於情感。

然而,近幾年來機器完成的任務,從複雜性和形式越來越逼近人類。比如,基於機器學習的自動駕駛技術已經趨於成熟,這項技術不僅會對人們的出行方式有革命性的影響,而且會影響到城市建設、個人消費、生活方式。人們也許再也不需要擁有汽車,再也不需要會開車。大家對這類新技術的快速到來既興奮又恐懼,一方面享受技術帶來的便利,另一方面又對太快的變化有些手足無措。

另外,計算機的自學習能力不斷增強。現代機器學習算法,尤其深度學習類機器學習算法的發展,使機器的行為不再是相對可預測的“程序”或者“邏輯”,而更像“黑盒思考”,有了近乎人類的難以解釋的思考能力。

然而,仔細看來,雖然在不少特殊領域中,人工智能有了突飛猛進的發展,但是距離人工智能的鼻祖們在第一次浪潮時研究的通用智能(general purpose intelligence)其實還相差非常遠。這是第二個事實。機器還是被放在特定情況下完成特定任務,只不過任務更復雜了。機器還是缺少一些最基本的人的智能,比如常識。人工智能仍然無法理解哪怕是簡單的情感,比如害怕。對兩三歲的孩子來說非常簡單的幫忙、合作,機器都是做不到的。好比有人開玩笑說:“它們還是不會炒雞蛋。”

第三個事實,是這次人工智能和機器學習的應用場景非常寬廣。近幾年人工智能和機器學習應用的大發展,這個曾經是學術研究領域的概念一時間進入大眾視野,成為和未來相關的必談話題。計算機視覺、深度學習、機器人技術、自然語言理解,都被提到應用層。算法類的應用走出學術界,深入社會的各個角落, 滲入人們生活的方方面面。大家熟知的有人臉識別、自動駕駛、醫療診斷、機器助手、智慧城市、新媒體、遊戲、教育等,還有並不常被談論的比如農業生產的自動化、老人和兒童的護理、危險情景的操作、交通調度,等等。我們很難想象社會的哪一個方面,不會被這次浪潮所波及。

向前看十年,人工智能和機器學習的大發展,在於這些技術的普及和應用。大批的新應用將會被開發,人工智能基礎設施會迅速完善,原有的傳統軟件和應用需要被遷移使用新的算法。所以,現在是成為一個人工智能和機器學習專家的良機。

■ 這本書是如何寫成的

無論海內海外,媒體行業一直都走在人工智能應用的最前沿,因為媒體往往接觸上千萬甚至上億的用戶;有千變萬化的用戶每天離不開的內容,比如新聞、體育、電影;有豐富多彩的內容與用戶的結合場景;還有豐厚的有創意的商機。

Hulu是一家國際領先的視頻媒體公司,提供優質電影、電視劇點播和直播節目。Hulu技術架構最為先進的一點是人工智能和機器學習算法的廣泛應用,用在個性化內容推薦、搜索、視頻內容理解、視頻傳輸和播放、 廣告預測和定向、安全檢測、決策支持,甚至視頻編輯和客服系統。機器學習算法的背後是專門打造的大規模數據處理系統。“算法無處不在”是Hulu當今和未來技術架構的定位。 可以說,Hulu是未來的互聯網技術公司,全面“算法化”的一家帶頭公司。

為了支持各類的人工智能算法應用,Hulu在北京的創新實驗室集合了大批人工智能和機器學習的頂尖人才。Hulu的數據科學家、算法工程師和軟件工程師都工作在同一個團隊,每天解決用戶的實際問題,積累了大量實用的經驗。Hulu 北京的學習氣氛也相當濃厚。除了定期的機器學習專題研討和大數據及機器學習公開課,Hulu也在內部開設了深度學習課程。

2017年年底,人民郵電出版社的俞彬編輯問我能否寫一本關於人工智能和機器學習算法實操的書。目前市場上有關人工智能的書可以分為兩類,一類是非常系統的教科書,還有一類是關於人工智能和人類未來的社科類圖書。我們能否寫一本實操類的書,介紹一個真正的計算機從業人員需要掌握的技能呢?

抱著試一試的心理,我讓公司裡的同事自願報名參加這個集體項目。一共有15位資深研究員和算法工程師參與了這本書的內容創作,這是個成功的合作案例。我們先學習了一下現有的相關書籍,然後頭腦風暴了一番,覺得我們可以做一個問答集,以比較有趣的問答形式,集中當前算法工程師和研究員感興趣的話題,用問答引出這個行業的基本概念。

在互聯網行業,敏捷開發都是以最快的速度,做一個“最小化產品”,讓用戶的反饋來帶領產品的方向。我們寫這本書也是如此。為了讓大家能夠落筆寫出沒有錯誤、通俗易懂的問答,為了收集讀者的反饋,也為了不把寫一本大部頭書列為第一天的目標,我們先在Hulu的微信公眾號上,以每週發兩個問答的形式,從2017年11月到2018年3月期間,一共發出了30篇“機器學習問答”系列文章。這些文章受到了業界好評,也收到各種問題和反饋,成了我們這本書的核心內容。

關於書的章節組織,我們也進行過仔細的討論。人工智能和機器學習算法範圍很大,我們的理念是要涵蓋該領域最基本的內容,介紹基本概念,同時,跟上算法發展的最新步伐。所以本書介紹了傳統機器學習算法,比如邏輯迴歸、決策樹等,同時花了比較大的篇幅介紹近幾年流行的最新算法,包括各種神經網絡(深度學習)、強化學習、集成學習等,還會涉獵學術界正在討論中的新領域和新算法。同時,本書強調了實現一個企業裡真正實用的算法系統所需要的技能,比如採樣、特徵工程、模型評估。因為機器學習算法往往需要比較深的背景知識,所以在每個問題和解答之前,會對該領域做簡單的背景介紹。每個問答有不同的難度,以供讀者自我衡量。

在核心的機器學習算法問答內容之外,我們增加了兩個部分,一是“機器學習算法工程師的自我修養”,介紹業界典型的算法工程師的工作內容和要求。這些實例可以幫助廣大的讀者瞭解掌握機器學習技能以後的工作和去向。二是“人工智能熱門應用”,相信不少讀者都聽說過這些應用的故事,比如無人駕駛車、AlphaGo等。我們希望從內行人的角度,解釋一下這些超級應用背後的原理是什麼。當你讀完本書,掌握了機器學習技能以後,你也可以在幕後操作這些熱門的智能應用了。

本書信息量很大,涉獵人工智能和機器學習的各個子領域。每個公司、每個業務、每個職位,不一定會用到全部的技能。所以關於閱讀這本書,我有以下幾個建議。

(1)順讀法:從頭至尾閱讀。如果你能讀懂全部內容,所有的題目都會解答,歡迎你到Hulu來申請工作吧!

(2)由簡至難法: 每道題的旁邊都標明瞭難度。一星最簡單,五星最難。在本書中,還提供了一個題目的列表。一顆星的題目,主要是介紹基本概念,或者是為什麼要做某一件事,比如 “什麼是ROC曲線?”“為什麼需要對數值類型的特徵做歸一化?”。如果你是機器學習的入門學習者,可以從背景知識和簡單的題目出發,循序漸進。

(3)目標工作法:不是所有的公司、所有的職位都需要懂得各類算法。如果你目前的工作或者想去的工作在某個領域,它們可能會用到某幾類算法。如果你對某個新的領域很感興趣,比如循環神經網絡,那你可以專攻這些章節。不過無論用哪類算法,特徵工程、模型評估等基本技能都是很重要的。

(4)互聯網閱讀法:一本書很難把廣泛的領域講得面面俱到,尤其是題目和解答,可以舉一反三有很多花樣。所以,我們在很多章節後都有總結和擴展。對某個領域感興趣的朋友們,可以以這本書為起點,深入到擴展閱讀,成為這一方面的專家。

(5)老闆讀書法:如果你是一個技術管理者,你需要解決的問題是算法可能對你現有的技術體系有什麼幫助,和怎麼找到合適的人,幫你做出智能的產品。建議你可以粗略地瀏覽一下本書,瞭解機器學習的各個技術領域,找到合適的解決方案。然後,你就可以用本書作面試寶典了。

這本書出版的目的,是讓更多的人練習和掌握機器學習相關的知識,幫助計算機行業人員瞭解算法工程師需要的實際技能,幫助軟件工程師成為出色的數據科學家,幫助公司的管理者瞭解人工智能系統需要的人才和技能,幫助所有對人工智能和機器學習感興趣的朋友們走在技術和時代的前沿。

人工智能和機器學習的算法還在日新月異地發展中,這本書也會不斷更新,不斷地出新版本。希望得到讀者朋友們的悉心指正,讓我們一起跟上這個技術領域的進步步伐。

本書摘自《百面機器學習:算法工程師帶你去面試》

END


分享到:


相關文章: