騰訊雲總監手把手教你,如何成爲AI工程師?

做者:朱建平 騰訊雲技術總監,騰訊TEG架構平臺部專家工程師html

1.關於人工智能的若干個錯誤認知

人工智能是AI工程師的事情,跟我沒有什麼關係

大數據和機器學習(AI) 是解決問題的一種途徑和手段,具備通用性,是一個基礎的技能。當前咱們工做中還有不少決策,是基於經驗和預約的規則,將來這部分決策能夠經過AI讓咱們作得更合理更好一些。算法

人工智能太厲害了,將來會取代人類

隨着人工智能的發展,特別去年穀歌的AlphaGo圍棋打敗表明人類的頂級棋手李世石,更是引爆了整個互聯網。因而,網上很多人開始了不少擔心:機器人取代人類,有些人甚至在孩子高考填志願時要求孩子填報藝術創做相似的方向,以避開將來與機器人或人工智能的競爭。
  實際上,雖然目前人工智能在語音識別,圖片識別近年來取得了突破,但人工智能還遠未完善: 數學理論尚不完備,「智能」的取得創建在大量的人工前期工做基礎上,缺少無監督學習。數據庫

2. 傳統開發 轉行AI工程師的障礙

2.1 急於求成的心態

  LR, SVM, 決策樹,DNN,CNN, AlexNet, GoogleNet, Caffee,TensorFlow, 智能駕駛,AlphaGo, 個性化推薦, 智能語音,GPU, FPGA....
  暈了沒? 沒暈再來一波。。。。
  
  這裏面的水很深,不要太急躁很快能搞懂,事實上因爲數學理論不完備,有些東西還真解釋不清楚,好比在圖像識別上ResNet 比GoogleNet識別率更高,ResNet是怎麼推導出來的?
   梳理好這些概念,結合實際應用,化整爲零逐步理解和吸取,有的放矢,不可操之過急。   編程

2.2 自底往上的學習方法,想要從基本概念學習

建議結合應用場景先動手實踐,再逐步細化。
推薦《機器學習》 周志華 清華大學出版社
安全

3.AI工程師的知識結構-機器學習的基礎知識

3.1 人工智能<--> 機器學習<---->深度學習 的關係

  這是如今你們常常混淆的概念,什麼叫作人工智能?什麼叫作機器學習?什麼叫作深度學習?人工智能是最大的範疇,只要你用計算機作了一點智能的事情均可以稱爲作了人工智能的工做。真正的人工智能應該是讓機器擁有人的智能,讓機器跟人同樣能看、能聽、能說,能用天然語言跟人進行交流。這個涉及到計算機視覺、語音識別、天然語言處理、人機交互、語音合成等等,是常規的咱們研究討論的人工智能的主要發力點,在互聯網公司有着廣闊應用場景的。服務器

  機器學習多是人工智能目前最火的領域,深度學習可能又是機器學習最火的子領域。何時須要用人工智能?直覺上來說數據越複雜,深度學習越可能起做用;數據很簡單很明確,深度學習可能就不怎麼起做用了。好比搜索領域,目前只有Google宣稱他們用深度學習double了用戶點擊率,是指他們將深度學習運用在用戶瀏覽過、搜索過的信息上,那是很是龐大很是複雜的數據。   網絡

3.2 機器學習解決問題的基本步驟

  通常應用機器學習解決實際問題分爲4個步驟:

1)定義目標問題 
  目前還沒看到有一個機器學習模型適用於解決全部問題,不一樣問題有各自適用的模型,如圖像相關問題有深度學習、推薦相關問題有專門的推薦算法、安全相關問題有異常檢測模型等。脫離具體問題去討論模型是沒有意義的。
  
2)收集數據和特徵工程
  機器學習是面向數據編程,數據是機器學習的基礎。訓練模型時,通常會把樣本數據拆成兩部分,其中大部分(約7成)數據用於訓練模型,稱其爲訓練集;另外少部分數據用於測試「模型的好壞」(也稱「泛化能力」),稱其爲測試集。架構

  同一個機器學習算法,好的數據能讓其表現更好,差的數據會讓模型毫無用處。什麼是「好的數據」?並無統必定義,從結果看,能讓模型表現良好的數據就是「好的數據」。一個可行的辦法是想象「人」在解決該問題時,會依據哪些數據和特徵作決策,而後挑選這些數據和特徵做爲機器學習模型的輸入數據,這個過程就是特徵工程。在應用機器學習時,可能須要反覆作屢次特徵工程,特徵工程是個試錯的過程。
  
3)訓練模型和評估模型效果 
  利用標註數據,訓練模型數據,而通常的步驟是:
  a. 從底層存儲讀取數據
  b. 對訓練數據進行前向計算
  c. 計算訓練偏差
  d. 反向計算梯度,更新網絡參數
  e. 重複a - d 步,直到模型收斂。
  測試模型效果,通常測試數據集遠小於訓練集,這裏主要是快速前向計算,通常合併在第一步中。
  
4)線上應用和持續優化
  模型在訓練集上性能達標,但在線上環境性能不達標,這一現象被稱爲「過擬合」。一般的緣由是用於訓練模型的數據中特徵的分佈與線上數據誤差太大,此時需提取更具表明性的數據從新訓練模型。
  模型在線上應用後,需持續跟蹤模型的性能表現,機器學習是面向數據編程,若是線上系統上的數據出現了不包含在訓練集中的新特徵,須要補充新樣本,從新訓練迭代模型以保證預測效果。
  
3.3 機器學習的相關概念
框架

模型用途:分類、迴歸、聚類

  主要區分在於output的描述是什麼性質:分類是指output是整數(即多個類別標籤);迴歸是指output是一個實數,例如預測股票的走勢,input是時間,output就是股票價格;聚類通常都是應用於非監督的狀態下,對output徹底不知道,只能對input數據自己進行統計分析,好比用戶畫像,經過數據之間的關係如關聯程度將數據分紅好幾簇。   機器學習

訓練過程: 監督、半監督和非監督

  機器學習是一個用數據訓練的過程;監督是指input的每一個數據樣本,咱們明確知道它的output(如類別標籤)是什麼;半監督是指咱們只知道input數據樣本中一小部分的output,另外大部分不知道;非監督是指全部input的數據樣本,咱們徹底不知道它們的output是什麼。   

學習模型:LR/SVM/決策樹(傳統的分類和聚類)DNN(深度神經網絡)CNN(卷積神經網絡)

經常使用CNN模型:AlexNet, GoogleNet, ResNet 

  淺層和深層,之前的機器學習方法大都是淺層,淺層學習模型是從六十年代發展到如今;深層學習模型過去不怎麼work,自2010年迄今有了很是大的突破,深層模型在大量(至少百萬級別)的有標籤的數據驅動下將input端到output端之間的映射作的更深更完善。   

開源框架&平臺:Caffee, TensorFlow(Google),Torch (Facebook)

爲何有這麼多深度學習框架,參考《Deep Learning System Design Concepts》http://mxnet.io/architecture/index.html#deep-learning-system-design-concepts

4.入門成爲AI工程師的可行路徑

  雖然從垂直領域講有語音識別,圖像視覺,個性化推薦等業務領域的AI工程師,但從其所從事的研發內容來看,從事AI研發的工程師主要分爲3類:

1)AI算法研究

  這類人大都有博士學歷,在學校中積累了較好的理論和數學基礎積累,對最新的學術成果能較快理解和吸取。這裏的理論是指好比語音處理,計算機視覺等專業知識。
AI算法研究的人主要研究內容有 樣本特徵,模型設計和優化,模型訓練。樣本特徵是指如何從給定的數據中構建樣本,定義樣本的特徵,這在個性化推薦領域中就很是重要。模型設計和優化是設計新的網絡模型,或基於已有的模型機型迭代優化,好比CNN網絡模型中AlexNet, GoogleNet v1/v2/v3, ResNet等新模型的不斷出現,另外就是好比模型剪枝,在損失5%計算精度狀況下,減小80%計算量,以實現移動終端的邊緣計算等等。模型訓練是指訓練網絡,如何防止過擬合以及快速收斂。

2)AI工程實現

  這類人主要提供將計算邏輯,硬件封裝打包起來,方便模型的訓練和預測。好比:
精通Caffee/TensorFlow等訓練框架源碼,能熟練使用並作針對性優化;
構建機器學習平臺,下降使用門檻,經過頁面操做提供樣本和模型就能啓動訓練;
經過FPGA實行硬件加速,實現更低延時和成本的模型預測;
在新模型驗證完成後,實如今線平滑的模型切換;   

3)AI應用

  側重驗證好的模型在業務上的應用,常見語音識別,圖像視覺,個性化推薦。固然這也包括更多結合業務場景的應用,好比終端網絡傳輸帶寬的預測,圖片轉碼中參數的預測等等。

5.DNN 和 CNN網絡

5.1 DNN原理

  DNN深度神經網絡是模擬人腦的神經元工做機制構建的計算處理模型。

   激活函數經常使用的有:sigmoid,ReLU等,好比 典型的sigmoid函數

   多個神經元分層組織起來構成了一個網絡,早期神經元網絡僅能作到淺層,在訓練方法和計算能力得到突破後,深層神經網絡DNN獲得了更普遍研究和應用。   

5.2 CNN原理

   簡化的計算過程:
   
   上圖展現了一次卷積計算: 一個66的圖片I 使用卷積核F進行卷積,獲得輸出圖片O。輸入圖片中在patch範圍內的元素和卷積核中對應的元素相乘,最後乘積結果相加。
   真實的計算過程:
   
   上圖是三維卷積的展現,對於第一層來講卷積核是11x11x3,在輸入立方體227x227x3上進行滑動,對應圖表 2中的k=11,N=227,D=3.卷積算法就是卷積核11x11x3和立方體227x227x3的重疊的每一個值作乘運算,再把乘的結果作累加,最後獲得一個值,數學公式爲 y = x[0]
k[0]+ x[1]k[1]+…+x[362]k[362],由於卷積核11x11x3共有363個值,因此咱們能夠當作一個1x363的矩陣乘以363x1矩陣。   

6.AI開發的典型場景


訓練採用caffee 單機框架,單機2卡K80 GPU,爲充分發揮GPU,採用了數據並行,一次一個batch 256張圖片輸入,alexnet網絡分爲前5層卷積層,後3層爲全鏈接層,主要的計算在卷積計算,咱們將其用FPGA實現,全鏈接層採用CPU實現。
海量準確的樣本也是個細緻活,須要不斷運營。

騰訊雲GPU雲客戶案例

香港理工項目
該實驗項目是基於美國氣象局提供的10年的氣象數據,包括溫度,溼度,風向,風速,降雨量,雲層厚度,雲圖,空氣渾濁度,日照等數據,對將來一段時間的天氣進行預測。在該項目中,咱們使用Google進行基於神經網絡深度學習的Tensorflow框架,用Python2.7進行開發,而且在GPU上對深度神經網絡進行訓練。

7.CPU、GPU、FPGA區別

大多數人可能有個大體的認識: 訓練用GPU, 預測用CPU 或者 FPGA

  CPU 開發門檻低,將來主要承載 高性能網絡,計算分拆出來的邏輯複雜,不適合並行計算的部分。

  GPGPU 最新的P40,P100系列,採用16nm工藝,因其Cuda開發環境比較成熟,學習成本低,靈活性高,將繼續在AI的模型訓練階段發揮關鍵做用。

  FPGA 最新的YV9P(16nm) FPGA,以前強調節能,單FPGA在數據中心的部署也是一個全新的課題,將來可能會增強 HBM2片上DDR內存容量和帶寬的增加。將來在在線模型預測方面發揮重要做用,但IP不足,開發週期長是一個瓶頸。 FPGA卡,驅動開發,IP實現致使使用門檻較高,將來會在FPGA雲上消除這些應用障礙。

8. 騰訊雲的GPU雲、FPGA雲進展

8.1 騰訊雲 Skylake CPU

  2017年2月,騰訊雲宣佈在國內率先使用英特爾下一代至強®處理器(代號Skylake),推出國內最新一代雲服務器。新一代雲服務器在計算性能、內存帶寬、網絡時延等方面擁有顯著優點,最高可提供96 vCPU,可知足企業對雲服務器高規格高配置的普遍需求,尤爲在人工智能等高性能計算領域將發揮更大價值。據介紹,目前騰訊雲官網已開放新一代雲服務器的試用申請,客戶將花費更低的購買價格,享受到更高性能計算服務。

  與過往採用至強系列處理器的雲服務器相比,內置Skylake至強®處理器的新一代雲服務器具備更高計算性能、更大內存帶寬、更強存儲I/O性能、更低網絡時延等優點,能知足遊戲行業、視頻行業、金融行業等領域的更高計算需求。具體而言,Skylake至強®處理器具有的更優特性主要包括:

Skylake至強®處理器支持AVX-512指令, 可支持更大數據寬度處理,能加速多媒體編解碼、加解密數值運算,在機器學習、科學計算和金融分析等須要頂尖的浮點運算功能的場景提供更優質的處理性能。

Skylake至強®處理器支持Omni-Path 互聯架構,有助於提供更快的數據訪問效率、更低的延時服務。

8.2 騰訊雲GPU

  騰訊雲推出基於NVIDIA最新企業級產品(M40和P40)的雲產品GPU雲服務器和GPU黑石服務器,其中,基於M40的GPU雲服務器已於2016年末正式上線。今年上半年,騰訊雲還將推出1機8卡的GPU雲服務器,單機多卡整機性能更高,能夠知足超大數據量超大規模機器學習算法需求,最大化提高計算效率。

  G2實例最多可提供 2 個 NVIDIA M40 GPU、56 個 vCPU 和 120GB 主機內存,以及雙卡 48GB 的GDDR5 顯存。GPU雲服務器擁有高達6144個加速核心、單機峯值計算能力突破14T Flops單精度浮點運算,0.4T Flops雙精度浮點運算。
  
  在視頻渲染、虛擬化桌面、深度學習等對計算能力要求極高的場景中,騰訊雲GPU雲服務器以及GPU黑石服務器都有普遍的應用前景,同時還能知足圖形數據庫、高性能數據庫、計算流體動力學、計算金融、地震分析、分子建模、基因組學、渲染等領域對基礎設施的高要求,且極具性價比。
  目前GPU雲服務器已開放官網申請,騰訊GPU雲申請

8.3 騰訊雲FPGA

  騰訊雲在年前宣佈推出國內首款高性能異構計算基礎設施「FPGA雲服務器」。已於2017年1月內測上線,以雲服務方式將大型公司才能長期支付使用的FPGA推廣到更多企業。 騰訊雲和業界廠商有良好的關係,提供了基於 Intel和Xilinx 兩家的硬件平臺和軟件開發工具,方便開發者選擇本身熟悉的開發模式,避免切換平臺。

1)硬件平臺

  騰訊雲即將發佈基於 Intel和Xilinx的單機4卡FPGA雲服務器,推出多種規格的FPGA實例供您選擇。單機多卡整機性能更高,能夠知足超大數據量超大規模機器學習算法需求。也可選擇單卡可節省計算效率,輕資產開發,下降項目研發期間的投入成本。

2) 騰訊雲官方FPGA IP

  Alexnet網絡模型預測加速(已上線)--->用於圖片鑑黃的粗篩
  Googlenetv1 網絡模型預測加速(今年上半年) ---->用於圖片鑑黃的精選
  同步開放的還有 內部使用的圖片壓縮IP。   

3)FPGA 生態建設

咱們經過IP市場,以開放合做的心態引入更多第三方成熟的AI IP進來,爲FPGA生態的發展注入新的生機。

Q&A機器學習對於模仿人的思考是怎麼作到的?

如今機器學習模仿人的思考作的比較原始。目前主要仍是提取人作某項決策時考慮的主要因素,在機器學習中咱們叫樣本特徵來告訴模型,當遇到相似特徵時應該輸出什麼。

相關閱讀:

騰訊GPU雲申請
人人均可以作深度學習應用:入門篇


此文已由做者受權騰訊雲技術社區發佈,轉載請註明文章出處,獲取更多雲計算技術乾貨,可請前往騰訊雲技術社區
歡迎你們關注騰訊雲技術社區-博客園官方主頁,咱們將持續在博客園爲你們推薦技術精品文章哦~

相關文章
相關標籤/搜索