国产午夜精品一区二区,色综合久久精品亚洲国产,国产精品亚洲lv粉色,少妇伦子伦精品无码STYLES

當前位置:首頁 > 最新資訊 > 行業資訊

終于有人把“嵌入式人工智能”講明白了

嵌入式AI,就是在嵌入式的環境下做AI。算法模型還是原來原來那些算法模型,不過畢竟是在嵌入式環境下,時代變了,總要有一些東西作出改變。首先,我們來回答為什么要有嵌入式AI。

01 為什么需要嵌入式AI

現在AI發展最大的問題是什么?通過圖靈測試?上SOTA?我覺得是落地問題。這幾年AI大新聞一個接一個,無論是學術界還是工業界,誰都覺得AI現在是風口。不過質疑的聲音也漸漸走強,不斷地有人在問這是不是一個泡沫,甚至已經有人開始預測泡沫什么時候破裂。

為什么同樣是AI,意見會如此兩極化?

開始我也很不理解,問了一些朋友,也看了一些資料,漸漸也就清楚了一點:說到底就是落地問題。AI相關的頂會每年好幾次,每次都能出來一些值得津津樂道的東西,有時還有意外的突破讓人發出“噢還能這樣玩”的感嘆。公道地說,從研究的角度看,AI這幾年一直在進步,而且進步還不小,大家都在期待奇點早點來臨。

不過,從應用的角度再想一想,事情就沒這么樂觀了。不少AI產品確實讓我們眼前一亮,但那已經是好幾年前的事情了,不是說這幾年啥事沒干,主要都在優化,早幾年Siri說個話都磕磕巴巴,現在吵個架基本不成問題。不過有什么以前沒有的新功能呢?想半天想不出來。一邊高歌猛進,一邊安靜如雞,這就是問題。

許多人都說,AI下一個落地的場景就是下一個風口。我當然猜不準下一個落地的場景究竟是什么,但我知道可選項之一就是嵌入式AI。以前一說嵌入式就是單片機,以至于許多同學以為這倆詞就是一回事。

以前嵌入式系統大體的流程是這樣:輸入傳感器信號,用編寫的程序進行處理,然后輸出控制信號,為什么學嵌入式感覺都是在學單片機編程,道理就在這。

不過,現在是智能時代了,嵌入式系統也進化成了“智能嵌入式系統”。有什么不同呢?

這里引用《AI嵌入式系統》的一個觀點:傳統的嵌入式系統主要用于控制,而智能嵌入式系統則提升了感知、交互和決策這三方面的智能化水平,分別叫智能感知、智能交互和智能決策。書里清楚解釋了這三個名詞,這里我想借這個問題說一下為什么嵌入式AI會是下一個落地的場景之一。

02 智能的作用

大家最想問的應該是多了“智能”會有什么不同,關鍵就在于編程。

過去嵌入式系統要干點什么肯定都得編程。編程也不是上來就寫代碼,首先得分析數據,提煉需求,最后才是編程實現。這幾個環節都要投入時間,尤其是現在嵌入式部署的環境愈來愈復雜,問題也愈來愈多,而按照傳統的方式,這些問題都必須在編程時一一加以考慮,把規則一條條寫上,系統才能具備處理能力。

手寫規則費時費力,而且還容易“掛一漏萬”。有沒有更好的辦法解決呢?有,就是加入AI。AI不需要人工寫規則,而是可以通過數據“自學”。對于一些抽象的、不太好人工描述的規則,AI同樣可以通過學習來具備相應的能力。這就是智能。

嵌入式加上了AI,人工成本大大降低,想象空間大大延伸,這其中可能就孕育了下一個殺手級的AI應用。

03 嵌入式的特殊局限

現在,我們又有了個新問題:為什么要從AI中單獨切出一塊,叫嵌入式AI?

前面已經說過,嵌入式AI的模型算法都是原來那套,從理論層面并沒有太多的不同,問題就出在嵌入式本身。

嵌入式設備和通用計算機的計算環境大相徑庭,平時給我們感受最深的就是存儲容量小。《AI嵌入式系統》給出一組對比數據:常見的深度神經網絡模型使用單精度浮點數存儲參數對應的存儲量在20MB至560MB之間,相比之下,傳統低成本的嵌入式系統RAM存儲容量最高也只有16MB。

另一個同樣捉襟見肘的是算力。這個就不說了,嵌入式設備在算力方面什么時候都只是弟弟。還有一個容易被大家忽視但同樣存在局限性的是能耗。要知道深度學習模型都是電老虎,每次模型跑訓練,顯卡的風扇都是要發出即將起飛的聲音,哪怕只是要模型跑起來,同樣也是一件費電的事情。而嵌入式設備在許多情況下是有耗能限制的。

總而言之,也許我們很容易找到一個嵌入式應用場景需要AI,也確實已經有現成的模型足以滿足要求,本來馬上就是一拍即合的事,不過,嵌入式本身的種種限制,想要簡單硬套AI的現有成果,只能長使英雄淚滿襟。

04 AI的應對方法

方法不是沒有,有兩條路。一條是提升嵌入式設備的硬件條件,不過這也變相限制了應用場景,另一條就是AI自己做出優化,減少對空間、算力和能耗的需求。現在大家選擇了第二條路,將問題帶回到了AI這一邊,于是有了嵌入式AI。

這部分內容許多,這里我做一點簡單介紹,方便大家了解嵌入式AI都研究哪些方面。AI要適應嵌入式環境,就要進行字面意義上的“削足適履”,在大幅減少資源需求的同時,盡量保證性能不至于明顯下降,在嵌入式AI里面,叫做優化,譬如說矩陣乘法優化。

過去我在介紹機器學習的知識體系時說過,矩陣運算是機器學習的骨骼。機器學習不是一種模型,而是一堆模型,而這些模型都大量使用了矩陣運算,主要是矩陣乘法。假如矩陣乘法的運算量能夠降下來,模型整體的運算量也就能夠降下來。

道理好懂,可是天下真有這種空手套白狼的好事嗎?

科學家還真給研究出來了。這要從Strassen矩陣相乘算法說起,該算法于1969年提出,是第一款算法復雜度低于O(N3)的矩陣乘法。

簡單來說,就是這款算法能夠降低矩陣乘法的運算量,譬如說2×2矩陣相乘,常規算法進行8次乘法運算,而采用本算法只需要進行7次,矩陣乘法的運算量減少12.5%,不過不是沒成本的,加法運算從4次提升至18次。

就這樣看起感覺沒什么,但一旦矩陣上了規模,譬如說128×128的矩陣運算,使用該算法能夠降低約一半的矩陣乘法運算,優化效果就十分可觀了。類似的算法還有Winograd算法,同樣能夠在大尺寸矩陣運算中將乘法運算降低50%。

上面這類算法稱為快速矩陣乘法,另一種方案則是采用了犧牲精度提升速度的思想,允許矩陣乘法結果存在一定誤差,這類算法稱為近似矩陣乘法,譬如基于數據統計相關性的近似矩陣乘法,以及基于數據協方差低秩分解近似的快速乘法。

類似的從算子層面進行優化的還有對卷積運算的優化。卷積運算的作用不必多說了,現在用深度神經網絡做圖像處理就離不開卷積運算,優化的方向和矩陣乘法很類似,也是從快速卷積算法和近似卷積算法兩個方面展開研究,譬如說一維循環卷積頻域快速算法和基于卷積核低秩分解的二維快速卷積。

05 怎樣開發嵌入式AI

既然要應用落地,那么除了理論研究,當然還要有開發工具。不過嵌入式的平臺許多,開發環境各不相同,這里我就就著《AI嵌入式系統》對Arm平臺上的機器學習工具做一點介紹。

Arm本身就不說了,早個十年學嵌入式這可能還算是個新詞,現在智能手機人手一臺,里面裝的就是Arm的處理器。不過,按照處理器劃分,Arm平臺大致可分為Cortex-A、Cortex-M和Cortex-R三大系列。

我們手機里裝的就是Cortex-A系列,據說算力超過NASA當年搞登月時使用的超級計算機,硬件條件相對寬裕,開發資源也很豐富,深度學習的兩大框架Pytorch和Tensorflow都推出了針對Cortex-A的版本。Arm也推出了ACL(Arm Compute Libray)等庫來支持Arm平臺的高性能數據運算。

Cortex-M和Cortex-R系列我們聽得較少,因為這倆主要是面向工業應用,Cortex-M主打低成本低能耗應用場景,而Cortex-R則可以用于對實時性有更高要求的任務。相比Cortex-A,這倆個系列的算力就非常有限了。Arm專門推出了CMSIS軟件架構來方便Cortex-M系列的應用開發。

CMSIS與機器學習關系較密切的庫有兩個,一個是CMSIS-DSP庫,里面提供了基本數學運算操作如矩陣運算、部分機器學習算法如SVM、以及FIR濾波、計算KL距離、DCT轉換、PID控制和排序等功能函數。CMSIS-DSP使用的是C語言,不過可以導入使用Python的Scikit-Learn庫訓練得到的模型。

另一個是CMSIS-NN庫,看名字便可知道這是一個用于構建神經網絡的庫,同樣也可以導入訓練好的模型。

猜你喜歡