機器學習技術研究報告-2016年10月

機器學習技術跟蹤研究報告-2016年10月

歡迎引用,註明來源:【https://my.oschina.net/u/2306127/bloghtml

一、機器學習概述

2016年是機器學習的元年。git

  • 以AlphaGo打敗李世石爲標誌,機器學習的能力取得史無前例的突破,也讓你們看到了這一技術的強大潛力。
  • 多種應用的探索(如自動駕駛)等獲得資本的青睞,多個初創企業被高估值收購,工程化應用研究開始加速。
  • 神經網絡基礎軟件(如Caffe/Tensorflow/CNTK等)都開放了源代碼,對機器學習的研究和普遍使用起到了極大的推進做用。
  • Amazon等建設和開放了大規模機器學習的雲計算平臺,大大提高了機器學習的研究和使用的便捷度,下降了使用的門檻。

除此以外,腦科學、基因工程、新型材料、3D打印、智能製造、機器人、雲計算與大數據、神經網絡芯片等相關技術也獲得了快速發展,對機器學習的研究和應用起到了推波助瀾的做用。github

二、機器智能是否會超過人?

機器智能是否會超過人?這是2016年普遍爭論的一個話題。算法

人類創造並不屬於人類

在不少科幻大片中,咱們都看到過不少人機大戰的驚心動魄的場景。但從原理上說,機器學習是基於網絡拓撲的機率論的,所以很難出現創新性的奇思妙想,而這偏偏是推進技術進步的關鍵因素;至少從目前來看,機器畢竟是人建造的,算法也是人來開發的,要想得到超越總體人類尤爲是部分天才的大腦仍是一件至關遙遠的事情。服務器

不過,事情也沒有那麼樂觀。網絡

天然界的生物會發生基因突變,機器學習出現突變也不是沒有可能,所以機器產生出內生的智能也是徹底可能的,就像物種的演變同樣。架構

儘管機器沒法超越那些頂尖聰明的天才,但超越大多數普通人仍是徹底可能的。併發

機器的優點

由於機器具備幾個自然的優點,是人所不能達到的:持續、共享、協同、重複、記憶。框架

  • 機器學習系統能夠24小時連續工做,而人是不可能作到的;
  • 機器之間能夠聯網,共享數據、知識和學習成果,而人必需要從新學習;
  • 機器遵循相應的協議就能夠造成協同的集羣,人羣的合做要複雜得多;
  • 重複性的工做能夠反覆作、不犯錯,而人很難作到這一點,換一我的作結果又會有很大的區別;
  • 機器學習的知識能夠被記憶、複製和轉移,而人學習的知識會隨着年齡而衰減,年輕人又須要從頭開始進行學習,而機器能夠一直進行積累。

觀點

  • 對於工具來講,只講功能,不談道德。
  • 有的人使用機器,有的人被機器使用。
  • 防止機器智能被濫用,並不是沒有意義。

歡迎引用,註明來源:【https://my.oschina.net/u/2306127/blogiphone

三、機器學習大事件

A、AlphaGo打敗韓國棋手李世石

AlphaGo打敗韓國棋手李世石,從而排名世界圍棋第二名位置。AlphaGo【 https://deepmind.com/research/alphago/ 】是由Google收購的英國人工智能團隊DeepMind【 https://deepmind.com/ 】取得的成果。DeepMind日前還公佈了WaveNet語音合成引擎的成果。IBM、微軟、谷歌、科大訊飛等在多年前作過語音識別和合成的軟件,但採用的傳統引擎方法。如今百度和谷歌採用新的機器學習方法,在不到三年的時間內就超過了之前數十年研究的水平。

B、IBM提出「認知計算」概念

大數據已經成爲熱門的技術,IBM提出「認知計算」概念,並將其Watson系統用於醫療領域。大數據面臨的問題,能夠歸結爲計算問題(包括基礎設施、性能、容量、算法等)、分析和認知(包括處理邏輯、分類、模式識別等)、決策和反饋(包括判別、使用和結果的輸出、應用)三個階段。使用傳統數理邏輯和統計方法進行大數據的分析和知識提取已經遇到瓶頸,機器學習將有可能成爲大數據認知的核心支撐,能夠爲大量數據的自動化處理和高階利用提供幫助,惟有藉助機器學習方法,才能讓基於大數據的業務智能真正落地。目前神經網絡在語音和圖像的識別和合成方面已經取得了很是好的成果,谷歌甚至教會計算機進行音樂創做。

C、自動駕駛風頭(風投)十足

自動駕駛在特斯拉、谷歌、百度的引領下【 http://auto.sina.com.cn/news/hy/2016-03-25/detail-ifxqswxk9617597.shtml 】,熱度持續上升,已經成爲全球人才爭奪的新戰場。儘管Tesla出過幾回嚴重事故,但人們的熱情始終不減,相關軟硬件和研發的投入持續快速增長。2016年百度也拿到加州自動駕駛車測試許可。除了這些巨頭以外,2016年已有數個面向自動駕駛、人工智能的創新企業出現,並得到投資人的青睞,如中國的HorizonRobot、馭勢科技等。 傳統的大型汽車企業如寶馬、豐田、大衆也都緊鑼密鼓地啓動了自動駕駛的相關研究。

D、機器人產業鏈已經浮現

將來學家凱文.凱利預言的十二個趨勢【http://mt.sohu.com/20160712/n458801153.shtml】中,人工智能佔據很重要的位置,並在演講中將其列爲將來二十年中的顛覆性技術之一。機器學習系統是機器人的大腦,讓機器具備自主學習、行動的能力,而再也不是簡單的機械。2016年,日本豐田公司收購了在機器人競賽中屢次獲勝、目前最爲先進的人形、四足機器人Atlas的團隊-Boston Dynamics,並在硅谷設立了研發中心。目前,日本的各種機器人產業已逐步造成完整的鏈條。

E、智能產業搶籌已經開始

由Tesla創始人Musk和其餘幾位人工智能專家成立的OpenAI非盈利人工智能研究組織【 https://openai.com 】在2016年獲得快速的發展,數億美圓資金已經到位,2016年10月份舉行了一場非正式會議,開放了OpenAI Gym算法評測框架【 https://github.com/openai/gym 】。2016年,Tesla與Mobileye正式分手(Mobileye是以色列的一家企業,其核心產品是基於單目視覺的自動駕駛系統,Tesla的自動駕駛功能一直採用該方案),目前Mobileye也推出了本身的後裝型輔助駕駛系統。Primsense是最先作視覺識別芯片的廠家(位於以色列),用於微軟的Kinnect體感遊戲設備之中,2013年被蘋果公司收購,所創建的OpenNI開源軟件和社區也隨之關閉。OpenCV【 https://github.com/opencv 】是計算機視覺使用最廣的庫,最初由Intel開發,Itseez公司是主要維護者。2016年Intel收購了Itseez公司以及計算視覺芯片公司Movidius。

F、計算硬件將迎來大變革

NVidia扛起了機器學習硬件的大旗。因爲神經網絡運算須要消耗大量的算力,不少人使用GPU進行加速,而NVidia在這方面作了大量的工做,不只在原來Cuda計算庫的基礎上推出了專用的神經網絡算法庫,在2016年接連發布了機器學習平臺DGX一、自動駕駛平臺Drive PX二、高性能計算平臺M40及其相關的軟件支持庫【http://www.nvidia.cn/object/drive-px-cn.html】。之後,GPU再也不僅僅是視覺輸出,也將成爲視覺輸入的重要設備。

四、機器學習幾個概念

機器學習是一個普遍的概念。從人工智能先驅馬文.明斯克(1927)在1959創立第一我的工智能實驗室開始,致2016年1月逝世爲止,已有57年曆史。期間經歷屢次火爆和沉寂,積累了大量的研究資料和經驗,也衍生出了不少新的概念。

A、人工智能、機器學習與深度學習

人工智能通常泛指用人工方法教會機器去「聰明」地作事情。可是,如今不少人更認爲這是「機器智能」,由於機器的思路和執行是按照如今的計算機控制系統的,與人的大腦思考方式有很大的區別。機器學習的方法也已經出現多年,文獻材料已經汗牛充棟,並在不少數據分析和決策支持系統中使用,如最小緊鄰、決策樹、主成分分析、蒙地卡羅模擬等等方法。深度學習是一種基於神經網絡的機器學習方法。因爲2016年AlphaGo的勝出,基於神經網絡的深度學習方法【 http://baike.baidu.com/view/9964678.htm 】幾乎成爲機器學習的代名詞。

B、機器學習主要過程

機器學習過程通常分爲是三個階段:訓練階段,將訓練樣本輸入訓練器,以產生出學習到的成果參數,所產生的誤差爲學習算法自己的偏差;評估階段,將評估樣本輸入,比較與預期結果的差別,所產生的誤差爲與實際的誤差;應用階段,將模型帶入實際數據進行預測操做。一旦模型訓練經過,後續就能夠大規模使用。訓練階段消耗的計算資源比較多,通常用具備GPU支持的高性能計算機進行,而應用階段的計算量就會大大減小,普通計算機甚至平板、手機均可以使用。

C、深度學習方法分類

在深度學習方法中,能夠分爲監督學習和無監督學習兩個大類,2016年穀歌又提出了Expander-基於圖論(Graph)的機器學習方法( http://www.javashuo.com/article/p-eaqaopwq-gh.html )。監督學習須要對數據預先進行人工標記,再經過學習算法解算出相應的神經網絡參數。非監督學習不須要實現進行訓練數據的標記,主要用於分類和對象識別,沒法學到具備「語義」的先驗知識。

D、神經網絡原理和侷限

基於神經網絡的深度學習方法主要模擬大腦的運做機制,由感知器、響應函數、輸出端組成,原理上是比較簡單的。可是,選擇的網絡層數、響應函數的類型對結果影響很大,樣本數據的類型、質量、完備性也都會大幅度影響訓練的結果,所以不一樣訓練集數據和模型出來的結果會有很大的差別。不一樣應用領域的數據和特徵確定是不一樣的,所以深度學習的結果並不是如咱們想象的那樣能夠放之四海而皆準,從而實現通用的機器學習方法,而是須要像人同樣不斷地「精細學習」領域知識;隨着層數和數據的加多,學習結果的準確率會趨於穩定(好比90%),而並不是如預期的那樣會一直提升(好比不斷接近100%),所以到必定程度後再向上提高就變得很是困難。這是目前困擾深度學習的兩個亟待突破的問題。

五、機器學習開源軟件

5.1 軟件清單

因爲神經網絡在2016年取得的突出成果,傳統的機器學習研究幾乎所有轉向到了基於神經網絡的深度學習領域。爲了加速相關的研究和應用過程,多個開源軟件項目發展了起來(參見:《15款開源機器學習軟件》- http://www.javashuo.com/article/p-udbszcrp-ex.html ),其中包括:Caffe、CNTK、Deeplearning4J、DMTK、H2O、Mahout、MLlib、NuPic、OpenNN、OpenCyc、Oryx二、PredictionIO、SystemML、Tensorflow、Torch。OpenAI也開源了算法評測框架Gym( https://github.com/openai/gym )。

5.2 Keras

對於深度學習的入門者來講,Keras是一個很好的框架,【Keras+Jupyter+Docker黃金組合】上手快,資源多【參見《Keras教程》- https://my.oschina.net/u/2306127/blog?catalog=3744998&temp=1476188997288 】。Keras不提供深度學習計算引擎,但對深度學習的運行流程作了一個抽象接口封裝,能夠經過Python快速調用。目前,Keras支持Theano和Tensorflow做爲神經網絡計算引擎,使用時須要安裝這兩個軟件之一。

5.3 Spark

MLlib是基於Spark分佈式計算平臺的機器學習模塊,包含大量機器學習算法。但目前MLlib沒有神經網絡的算法,可使用Deeplearning4J來在Spark上進行深度學習計算。目前,Cafffe和Tensorflow也均可以在Spark上運行,但多節點的協同參數同步還須要額外的開發來進行管理。

5.4 Facebook

FaceBook在2016年進一步開源了三個基於深度學習的圖像處理軟件( https://github.com/facebookresearch ),包括:DeepMask、SharpMask、MutiPathNet。DeepMask( https://github.com/facebookresearch/deepmask )主要實現圖像提取,將目標對象從背景中分離出來,這是圖像識別的很關鍵的初始步驟;SharpMask用於圖像精確分割,從而提取出目標對象;MultiPathNet對提取出的掩碼進行識別和分類。

5.5 Google

Google在2016年除了AlphaGo(電腦圍棋,閉源)以外,還公佈了WaveNet(語音合成)的成果,結果已經接近真人語音。此外,還公開了Expander(基於圖論)的機器學習方法,將DayDream(圖像合成)和Cartographer(基於SLAM的機器視覺)兩款軟件開源。

5.6 百度

百度在2016年開放了Paddle機器學習軟件( https://github.com/baidu/Paddle ),能夠支持大規模的分佈式機器學習,不過部署起來步驟較多,我尚未親自試過。

5.7 訓練樣本數據集

機器學習研究要用到大量訓練數據,目前已經開源的數據包括:MNIST(手寫字符識別,http://yann.lecun.com/exdb/mnist/ ), ImageNet(著名的機器學習研究標準數據集,http://image-net.org/download-imageurls ),自動駕駛(https://github.com/udacity/self-driving-carhttps://github.com/commaai/research )。

六、機器學習芯片

因爲神經網絡計算須要消耗大量的算力,隨着機器學習尤爲是基於神經網絡的深度學習的快速發展,對計算硬件也提出了新的要求。目前,深度學習計算平臺主要有四大流派:CPU、GPU、FPGA和DSP,目前仍是以CPU+GPU爲主。

NVidia是目前深度學習的首選平臺,除了GPU硬件以外,在Cuda的基礎上提供了神經網絡計算的SDK和自動駕駛SDK,大大簡化和加速了深度學習的研究進程。2016年,NVidia基於最新的Pascal GPU芯片,發佈了機器學習平臺DGX一、自動駕駛平臺Drive PX二、高性能計算平臺M40及其相關的軟件支持庫。但其最大的弱勢是功耗高、成本高,主要適應科研須要,暫時難以大規模部署到消費級產品中。

Intel推出了衆覈計算平臺Phi系列芯片( http://news.mydrivers.com/1/246/246652.htm )知足高併發的機器學習須要,2015年收購了ARM芯片方案商Altera,將FPGA能力與ARM結合起來,2016年推出了X86+FPGA的融合芯片( http://www.extremetech.com/extreme/184828-intel-unveils-new-xeon-chip-with-integrated-fpga-touts-20x-performance-boost ),據稱能夠提高高達20倍的計算性能。2016年進一步收購了深度學習芯片公司 Nervana Systems( http://www.nervanasys.com/ ) ,以及移動和嵌入式機器學習公司 Movidius,維護OpenCV的機器視覺公司Itseez。Intel幾乎涵蓋了全部的技術路線,可謂全面開花。

Wave Computing(http://wavecomp.com/)號稱要建立出比GPU更快但功耗比FPGA還低的計算機系統。採用所謂Dataflow Processing Unit (DPU) 的架構,這與Nervana有相似之處。

ARM正在向服務器發展,已有廠商製作了多達1024核的服務器系統,中國的飛騰芯片(國防科大研製)也已經投入使用,因爲其低功耗的特性,將來也有但願在機器學習領域嶄露頭角。

谷歌正在開發TPU(Tensor Processing Unit,張量處理單元),TPU爲了更好的用TensorFlow(TF)來實現機器學習功能而特地優化了ASIC,下降了計算精度以減小完成每一個操做所須要的晶體管數量。目前爲止Google尚未提供性能測試數據,但Google聲稱這些優化有助於提升芯片每秒鐘處理的操做數量。

2016年3月,中國科學院計算技術研究所發佈了全球首個可以「深度學習」的「神經網絡」處理器芯片,名爲「寒武紀」(架構解析: http://www.leiphone.com/news/201605/93lRxoUpxCLaT5Zd.html )。IBM 在2014年研發出脈衝神經網絡芯片TrueNorth,走的是「類腦計算」路線。

面向深度學習的硬件和軟件系統正在快速發展,必將開啓一個新的時代,智能社會已經透出曙光。

歡迎引用,註明來源:【https://my.oschina.net/u/2306127/blog

相關文章
相關標籤/搜索