新聞中心

EEPW首頁 > 設計应用 > 瑞彩祥云

瑞彩祥云

作者:鲁 冰時間:2019-09-25來源:電子産品世界收藏

  魯?冰?(《電子産品世界》編輯)

本文引用地址:/article/201909/405225.htm

  (人工智能)在M级的便宜的小器件上能不能落地?它需要什么资源,性能又怎么样?不久前,Arm中国携手恩智浦半导体在全国进行了巡回讲演。Arm中国高级市场经理Eric Yang分享了的基礎知識,分析認爲邊緣可以通過在MCU這樣的小芯片上實現,並推介了Arm的軟件中間件NN——可以有效地對接算法和具體芯片,最後列舉出了的應用案例。

  1 邊緣AI潜力巨大

  AI有沒有前途?

  前兩年AI非常火,AI公司支付的薪水很高。不過,2019年上半年以來,很多AI公司活得並不是很好。AI到底有沒有機會?還需不需要關注?

  如果借鑒曆史,大約在5億年前是單細胞生物,之後生物學上出現了寒武紀大爆發,産生了大量的新生物,其中帶智能的生物慢慢進化出來。

  現在從嵌入式或者産業角度來看,有點類似于寒武紀的前夕。如果從身邊去觀察,會發現無論是生活還是工作環境安裝了很多傳感器,而且傳感器有越來越多的趨勢。Arm的孫正義先生認爲,現在還是百億級、千億級傳感器的量,到2025年會有約1萬億的設備連上傳感器,相當于2025年時到了寒武紀大爆發時期。

  不過,那麽多傳感器相連,如果都靠傳統的計算方式,即完全是靠你的算法或控制去實現一些功能/性能的時候,是有很大的瓶頸的。所以大量傳感器可能會采用AI技術,一部分AI在雲端,更多的是在嵌入式端。

  2 AI中遇到的概念

  AI、機器學習(ML)、深度學習(DL),這些概念到底什麽關系?

  AI是用機器來模擬人的思維習慣,讓機器來達到人的決策的能力。要實現這一功能,就需要讓機器做學習,這主要是通過概率論、統計論之類的方法,讓機器找到算法,以實現機器能夠學習這樣的功能(如圖1)。

微信截图_20191010094300.png

  實現機器學習裏面有種方法叫深度學習。深度學習相當于你准備大量的數據,然後放到那個模型裏邊去,讓它學會“感知+判斷+思維”的能力。在深度學習下面,會有我們經常聽到的算法,諸如、RNN等。

  3

  在機器學習方面有两个方面需要去理解:训练和推断。第一是若在云端,叫训练,云端需要有巨大的数据量做训练;第二是设备端。设备端主要是做推断,即把云端训练好的模型思维方式下載到设备端,设备端再根据获得的信号得出一个推断的结果。

  訓練需要大量的數據,需要非常高的性能、大量的帶寬去實現。所以一般要在服務器、GPU、加速卡上運行。

  在設備端,因爲已經有現成的訓練模型,所以只做判斷/推斷,相對來講要考慮的地方較爲簡單,例如性能方面,中低端的性能就可實現;效率方面,包括成本效率、功耗效率;再有,因爲設備端涉及到聯網,還要有安全隱私的考慮。

  那麽,哪些功能適合放在設備端或服務器端/雲端?如圖2,分別從AI的3個典型應用——視覺、音頻以及健康管理來分析。圖2左都是大型的機器學習,在服務器上面,圖2右是設備端可以實現的應用與技術。

微信截图_20191010094323.png

  以視覺來看,首先,如果做具體物體的識別,例如,這是一條狗,這條是什麽品種的狗,或者人臉識別,這種方式基本上放在服務器端。如果做類的識別,例如是狗、車還是飛機,這種識別就可以放在設備端了。CIFAR-10就是一種常用來做的標准模型。

  例如在音頻方面,如果只是做一個關鍵字的識別,或簡單的一個命令的識別,可以放在設備端;如果是做語義的識別(例如你講一句話,讓機器知道你的意思,回答你下一句話),通常放在雲端/服務器端。

  同樣,在健康管理方面,如果讓手機、手環或智能手表做一個動作的識別,例如解釋你是在走路、跑步還是蹲下,這可在設備端實現;如果要是做具體的疾病識別,要放在服務器端實現。

  在嵌入式系統里面,做ML要考虑哪些因素?列表如表1所示。

  首先在系統層,你要考慮到效率,因爲嵌入式設備一般都會有成本的考慮,因爲量非常大,布設的端點非常多。另外是功耗的考慮,有的設備涉及到電池供電。之後還有帶寬,因爲需要跟服務器/雲去通訊。最後還需要考慮到隱私和加密。

  在AI部分,可能你要考慮到的你輸入的種類、參數、轉換的效率、你要得到結果的精度、你所選用的設備的算法,或者你要達到這樣精度要消耗的內存資源。

  在ML部分經常聽到一些算法,諸如、DNN、RNN、LSTN。這些算法對應的常用的應用場景,例如CNN適合視覺識別、圖片識別,DNN比較適合語音識別。

  表2是Arm做的不同ML算法在不同的內存資源和CPU資源情況下得到的結果。

1570671873268176.png

1570671873824242.png

  可见准确度、消耗的资源跟你的系统呈对应关系。例如分散式CNN算法可以达到95%的准确度,最小的时候可能只占了不到40 kB内存,消耗的CPU运算能力只有5.4MOps,这相当于人们常见的M0嵌入式设备就能运行起来。可见,在Arm生态系统里,从M0到M7,都可以在这些芯片上面去实现ML功能(如图3)。这颠覆了人们以前的观念——一定要有很大的GPU、服务器、手机平台等去做。

  在硬件方面,Arm推動MCU芯片合作夥伴,加外設、加功能去做具體芯片出來。同樣,在軟件方面,Arm也提供了軟件中間件,叫。

  4

  該軟件中間件的一個出發點是全球比較大的一些公司,包括國內的百度、阿裏等經常無償地提供機器學習的算法,讓免費使用,以在其服務器上得到接口。但落地時候怎麽辦?因爲不同公司會提供不同種類的算法,如果你對每種算法都去做支持,整個開發維護的工作量會非常大的,尤其對于嵌入式設備的廠家更是如此。

微信截图_20191010094445.png

  Arm在中間做了一個標准化的接口優化。上面直接去對接算法,下面去對接具體的硬件。這就把AI機器學習當做是一個以前的通訊庫,或者是API來用,就可以了。圖4是具體應用的流程。

  在Cortex-M上來實現的軟件庫,是在2018年1月發布的,是開源的,你可以看到所有源代碼,因此不會存在安全、自主可控的困惑。

  不仅如此,现在NN 还 针 对 大 核 , 例 如系列以及Mali GPU,也是开源的,于2018年年中发布。

  至此,可以運行在Arm所有CPU上。

  相比只从那些算法公司下載开源程序、把它移植到Arm CPU上去运行,分别对卷积、池化以及激活函数方面做对比,对比图如图5。可见在池化时,用CMSIS-NN,可以达到4.6倍性能的提升。

微信截图_20191010094507.png

  CMSIS-NN效率很高。恩智浦半导体做的一个在相同的硬件环境下,CMSIS-NN与的性能对比。采用的芯片分别是Cortex-M4和的 芯 片 , 在 做 C I F A R - 1 0 时 ,(注:提供的嵌入式版本的CNN模型)用约120 ms才能完成某个识别;只需要20 ms左右。

  CMSIS-NN一直在更新,基本上每個季度有優化版。

  5 用CMSIS-NN做ML的应用案例

微信截图_20191010094521.png

  第一个应用是CMSIS-NN如何与恩智浦半导体的AI平台——eIQ平台对接(如图6)。它是把算法集成好,对用户来讲,首先是找到一个事先做好的模型,选择是否也需要做压缩的算法。如果不做压缩,就把它做模型转换到Cortex-M系列里的语言里。只需要把傳感器的信号输入,恩智浦的芯片(例如:i.MX RT)就会做出一个决策。

  實際上,用芯片做成的産品已有商用化的案例。美國的Amiko公司做的哮喘治療器(如圖7)采用ML算法來做監測、統計。它的原理比較簡單,其中的傳感器可以識別幾個內容。第一,把設備從正常的狀態顛倒過來,變成放到嘴裏的狀態。其次,它可以監測到吸入的流量大小。實現方法是:在雲端做好了一個模型之後,它可以通過這模型來指導這個吸入哮喘劑是否正確,以及吸的量夠不夠。

微信截图_20191010094552.png

  本文來源于科技期刊《電子産品世界》2019年第10期第87頁,歡迎您寫論文時引用,並注明出處。



關鍵詞: 201910 Arm MCU AI CNN CMSIS-NN

評論


相關推薦

技術專區

關閉