2017年臺大系統晶片中心第二次研發季報 AI on Chip 人工智慧晶片論壇

臺大SOC中心

 

Alphago 擊敗人類世界棋王,宣告人工智慧(AI)的時代正式來臨。近年來人工智慧應用範圍不斷擴張,將成為無所不在的重要技術,例如自動駕駛、語音助理、家用機器人等。當人工智慧高度發展,背後的運算也愈發龐大與複雜,因此硬體開發也需要新技術、更好的效能,讓人工智慧得以發揮最大潛力。

台大系統晶片中心6月14日舉辦的 AI on Chip論壇介紹人工智慧應用的晶片研究,如自駕車、物聯網、深度學習處理器的晶片架構如何設計等。主題涵蓋深度學習辨識圖片的技術、物聯網如何收集資料(data)提供深度學習系統發展、深度學習運算架構的設計、提升效率的晶片設計、人工智慧在實際自駕車上的運用等。

前半場由業界發展切入,由雲科大蘇慶龍教授談台灣進入智能車先進駕駛輔助系統(ADAS)的利基,與Renesas M2系統單晶片 (SoC)在自駕車上的應用、安謀(ARM)國際台灣分公司蘇崇智技術支援經理說明新的DynamIQ big.LITTLE中央處理器(CPU)系統,配備多個不同架構、時脈的核心,可以讓運算更有效率。

後半場則聚焦在台大的相關技術與理論,台大資工系施吉昇教授說明物聯網提昇終端設備(edge device)資料判別的精確度,有助於人工智慧發展;台大電子所簡韶逸教授除解釋深度學習在電腦視覺、影像處理的應用外,提出現今趨勢是稍低運算量,但更高精確度的小規模網絡。最後由台大電子所楊家驤教授說明深度學習的處理器架構與晶片設計,解釋如何節省運算步驟,降低深度學習應用時所需的能量。

  1. Renesas在智慧車應用/蘇慶龍 雲科大

雲科大教授蘇慶龍認為,人工智慧發展「不能只看技術,需要與業界接軌、和業界合作。」因此蘇慶龍從人工智慧在自駕車的應用談起。

蘇慶龍說明,汽車是高產值的產業,自駕車銷量在未來將不斷提高。汽車安全不可或缺,所以先進駕駛輔助系統(ADAS)雖然進入門檻高,但也有可觀利潤。又因為汽車產業需要高度客製化,需要小規模、靈活、反應快,所以蘇慶龍認為很適合台灣廠商投入設計相關系統。

為了達到真正的「自駕車」,在產業上需從先進駕駛輔助系統,發展自動煞車、半自動駕駛等技術開始,開發這些技術,都需要硬體與晶片系統配合。

雲科大的研發的測試車使用Renesas SoC系統,特色是單一系統晶片可以執行多功能,2個ARM cortex核心一次可以處理8個鏡頭的資訊,也配備影像系統與毫米波雷達,能運算碰撞距離,車輛前後左右的情況都可以掌握,系統已在國道上實際測試。

此外尚有循環錄影、盲區來車警示(BSD),側邊、倒車影像顯影,記憶卡槽,LED聲音顯示,汽機車偵測等功能。且系統開機時間只需三秒,倒車時即時顯示影像只需0.5秒,反應速度快。目前已經有1項產品進入量產階段,3項通過原廠測試。

不過,替汽車原廠開發安全產品的流程其實相當複雜,在事前需要瞭解汽車硬體規格、工廠模具規格等,設計才有相容性,而真正通過安全測試上路後,還有事後的保固、維修等,都需要軟硬體系統與各種技術的人力。另外每次測試後的檢討與分析也很重要,因此也要設計相應的後台分析介面。

未來為了保持競爭力,蘇慶龍認為要和車廠緊密結合,配合各車種給予高度彈性化的設計,並掌握自己的核心技術–自駕車控制器。基本需具備Sensor DSP技術、Sensor Fusion和GPGPU則是關鍵、必要技術。也需要開發適合自駕車的深度學習與影像特徵擷取系統。

  1. DynamIQ與人工智慧/蘇崇智

    安謀(ARM)國際台灣分公司

「只要有運算,就需要晶片。」安謀國際台灣分公司技術支援經理蘇崇智點出人工智慧技術與硬體密不可分的關係。

無論是圖片辨識、居家安全、語音辨識等,都需要中央處理器CPU處理,其中又以行動裝置(mobile)應用為新的主流,意味著小小的核心還需要提供高效能與夠長的續航力。

ARM新的 DynamIQ big.LITTLE架構,推出的新CPU叢集架構(cluster),打破過去一個cluster配置四核心架構,同一個cluster可以配置了超過四個核心。第一代架構的四個核,都只能運作同樣的頻率與電壓,一旦頻率與電壓條件改變,就需要切換cluster,從「小核cluster」跳到「大核cluster」,或是從「大核cluster」跳到「小核cluster」,增加反應時間。這次DynamIQ big.LITTLE架構改進後,以記憶體共享等方式,讓同一個cluster內核心能夠以不同的頻率與電壓運作,使每個核都能夠保持自己的頻率與電壓,而同一個cluster中也可以由大核及小核混合組成,在反應時間和使用上更彈性。

蘇崇智經理補充,NEON tech是ARM系統和AI最相關的技術,NEON結合了64 bits和128 bits的單指令多資料指令集(SIMD),讓多媒體訊號處理更有效率。例如使用ARM v8.2的128bit NEON指令集,在矩陣運算上可以達到12倍的加速。

  1. 人工智慧與物聯網/施吉昇 台大資工系

從業界經驗可以觀察到,人工智慧技術發展的高速運算,需要硬體配合,因此需提升硬體效能與相容性。台大資工系教授施吉昇則從另一端說明,資料(data)對人工智慧發展的重要性。

Machine learning cannot do anything without data 施吉昇解釋,機器學習(machine learning) 是發展人工智慧的重要途徑,而機器學習需要的大量data,都必須透過「物聯網」(Internet of things, IoT)收集,因此物聯網系統可說是機器學習與人工智慧的重要基礎。

但是,若物聯網裝置僅純粹收集資料,而不提供其他對裝置使用者有效益的服務,可能會造成使用者排斥物聯網系統。施吉昇說,除收集資料外,物聯網還可以運用手機、手錶、汽車等終端(邊界)設備(edge device) ,回饋使用者局部智能(local intelligence)的即時反應,讓使用者更「有感」,而不會排斥物聯網裝置。例如的美國芝加哥的城市感測器專案(Array of Things,AoT),運用物聯網裝置可以偵測附近地區人流、車流,以控制紅綠燈秒數,讓市民的生活更方便。

所以,物聯網的終端設備除了收集資料,也要能使用複雜度低的辨識模型,提供即時反應,才能提升使用者的使用經驗。施吉昇舉例,要偵測汽車,一般方法是把各種汽車外型的模型教給電腦,但實際運用效果卻不好–因為在不同地區的辨認精準度有待提升。所以model也需要用在地數據(local data)最佳化。

另外,影像感測器(image sensor)和人眼還有很大距離,導致辨識效果不彰,所以施吉昇說明融合不同鏡頭,達到正確的對焦效果,克服夜間曝光不足的狀況,處理雜訊,都需要終端設備獲得其他裝置的資訊,重新訓練(retraining)後,辨識度才能提高。

  1. 深度學習在電腦視覺及影像處理應用

    /簡韶逸 台大電子所

台大電子所教授簡韶逸解釋,深度學習好比人類的神經網路,學習的層次(layer)更多、更深,搭配更快的圖形處理器(graphics processing unit,GPU)速度,簡韶逸認為發展深度學習可以說是「水到渠成」。現今趨勢則是更分散的深度學習系統,用在地的運算,減少雲端運算的成本,也減少資料傳輸的頻寬,為使用者提供準確及高反應速度的服務。

深度學習技術的好處是,只要有夠大量的data,就可以訓練(train)出中間的參數,現今的深度學習在某些工作上已具備接近人類的能力,如圖片識別的應用。在實作上,目前已有許多化簡計算的方法被提出,此外,深度學習的基本運算對於各種應用是一致的,這也有利硬體架構設計。

在現今的影像處理及電腦視覺的領域之中,一大部的領域都已被深度學習所「攻佔」。原理上,傳統圖片辨識,需要以人工給予「特徵值」(Hand-crafted Feature Extractor),再搭配分類器(Classifier)以達到辨識效果;深度學習從特徵值開始就用「學」的,分類參數也可以自己學出來,隨著深度學習的層次增加,錯誤率已經比人類還低,運算時間有時也可能比傳統方法快。

簡韶逸舉YOLO(you only look once)即時物件辨認系統為例,只要經過足夠資料的訓練,YOLO就能夠辨識出來,且其速度甚至超越傳統的方法。Facebook的Deep face的人臉辨識能力也跟人類幾乎相同。深度學習技術還可以做到物件追蹤(object tracking):可以在不同視角、攝影機內找出並追蹤同一個人或物件。在影像處理方面,VDSR (Very Deep Super-resolution)的技術可以高倍率放大影像,而能達到比傳統方法好上許多的效果。而近年以深度學習為核心的Semantic Segmentation技術,更可以做到像素層級的物件辨識,也是未來自駕車的重要技術。

最後簡韶逸總結,現今的趨勢其實是發展稍低運算量,較高正確度的網絡,不會只在server端出現,在各端點裝置也可以應用深度學習。例如手機、機器人,都可以搭載較輕量的處理器,以減少傳輸用的頻寬—分散式的深度學習系統應是未來可以發展之方向。

  1. 深度學習處理器電路設計技巧/楊家驤

     台大電子所

關於深度學習於行動裝置上之應用,台大電子所教授楊家驤介紹化簡計算運算的幾種方法,以降低深度學習應用時所需的計算能量,並與硬體設計結合可用於設計深度學習計算核心。

卷積神經網絡(Convolutional Neural Network,CNN)廣泛用於深度學習並且需要大量運算。楊家驤說,CNN 就是進行大量的乘加運算。例如目前具代表性的CNN需要高達數十億次的乘加運算,而儲存權重所需要的記憶體可達上百MB。因此高效率CNN運算的重點在於「化簡」乘加運算,例如減少運算乘加運算所需的次數與能量。

楊家驤提到,乘加運算的精簡化主要可以用兩個主要步驟達成,一是透過將權重消除為零、減少所需的乘加運算,二是降低所需乘法器的位元數,來減少所需的能量消耗與提升計算速度。將權重消除為零可透過幾個技巧來達成,首先是削剪(pruning),將權重較小的值設為零,並搭配網路的重新訓練來減少所需乘加運算;而量化(quantization)則是將資料以較少位元表示,用於降低乘法器位元數;為了減低對於外部記憶體存取的頻寬要求,可利用經過池化(pooling)後資料需有稀疏性的特性,藉由壓縮演算法,例如Hoffman coding,來降低傳輸資料量。

此外,為減少資料移動的能量,應儘量重覆使用已經載入晶片的資料,並且將較頻繁移動的資料置於靠近計算單元的記憶體上。由於不同網路層可經過量化後使用不同位元表示,乘加器可設計支援不同位元的乘加運算,搭配電壓與頻率調整(voltage and frequency scaling),降低能量消耗。至於權重消除為零的乘加運算,除了可省略不算以降低能耗外,可進一步經過編碼,例如CSC (compressed sparse column ),直接跳過權重為零的乘加運算,提升計算速度。

最後,與會者與演講教師也針對人工智慧的應用層面討論。例如人工智慧要實際運用,需投入許多能量,須從提升準確率、改善感應器敏感度等方面著手。

另外,也有與會者提問神經網路除錯較為困難,只能不斷丟資料,造成神經網路很難除錯等問題。要解決這點,需要避免資料的過適現象(overfitting)、或是發展可解釋(explainable)的神經網路,讓神經網路除了能演算答案,還能反過來教使用者「如何得到答案」。

與會貴賓合影