



[摘 要] 針對“類腦計算與芯片”課程學生對抽象的深度學習理論理解困難且動手能力不足的情況,設計了以工程應用為導向的類腦計算教學實驗:以BP神經網絡為例,開發了基于深度學習的數碼管數字識別實驗;并在課堂上采用工程應用型一體化教學模式:在教學中以實際應用為案例,做到理論知識與工程應用結合;在訓練單元采取“基礎訓練+項目驅動”的方式,評價方式采用過程和結果綜合考核。通過該實驗及教學模式的革新,學生加深了對深度學習原理的理解,熟悉了利用嵌入式平臺進行“云端訓練+邊緣推斷”深度學習工程應用的開發流程;提高了學習的主觀能動性和工程實踐能力。
[關鍵詞] 工程應用型;深度學習;邊緣人工智能
[基金項目] 2020—2024年國家重點研發計劃重點專項項目“非易失性存算一體憶組器件與電路研究”(2019YFB2205100);2024—2027年華中科技大學教學研究項目“類腦集成電路芯片人才培養體系構建”(2023069)
[作者簡介] 陳 琪(1986—),女,湖北漢川人,碩士,華中科技大學集成電路學院工程師,主要從事腦計算研究;邱亞琴(1964—),女,山西運城人,學士,華中科技大學集成電路學院實驗中心副主任(通信作者),主要從事電子器件應用研究。
[中圖分類號] G642.0 [文獻標識碼] A [文章編號] 1674-9324(2024)24-0128-05 [收稿日期] 2023-05-26
“類腦計算與芯片”是針對微電子專業學生開設的前沿課程,課程圍繞深度學習及其硬件實現展開,廣受學生好評。深度學習是一門理論結合實際的學科[1],目前“類腦計算與芯片”課程教學沒有相應的實驗平臺和實驗課程支撐,純課堂教學存在理論問題深、學生不好理解、學生動手能力不強的問題。以工程應用為導向,開設既能充分理解神經網絡模型和訓練算法,又關注深度學習硬件實現的實驗勢在必行,也符合高水平新工科創新人才培養的需求[2]。
一、研究背景
近年來,以“云端計算+邊緣推斷”為代表的類腦神經網絡應用受到越來越多的關注,邊緣人工智能(Edge Intelligence)極大地擴展了人工智能應用場景[3],引起工業界和學術界極大的興趣[4]。谷歌、微軟、英特爾、IBM等企業都開始涉足該領域,如輔助認知[5]、視頻分析[6]、智慧家居[7]等。然而,邊緣端設備的計算和存儲能力有限,大規模神經網絡模型通常采用的方案是在云端進行訓練,將訓練好的模型部署到邊緣端進行推斷。
嵌入式系統Arduino作為一種邊緣端常用的處理與控制器,能夠部署一定規模的神經網絡。本課程實驗從深度學習開發應用角度,設計了多個實驗實踐項目。本項目以BP神經網絡的監督學習為例,利用嵌入式平臺Arduino設計了數碼管數字識別的實驗。
教學方式上一改傳統實驗教學中以教師為中心、以課堂為依托的教學模式,探索和構建以學生為教學主體,以工程意識、實踐技能和創新設計能力培養為核心,以工程應用為導向的新型實驗教學模式。
二、實驗項目的設計
(一)實驗平臺硬件原理與設計
實驗硬件系統整體原理如圖1所示。Arduino通過USB接口與上位機通信。同時利用SRAM進行存儲。實驗采用共陰極八段數碼管,使用74HC595芯片擴展數字接口。74HC595的Q0-Q7端口分別連接到數碼管的8個陽極端,通過輸出電平的高低控制數碼管點亮與否。
(二)實驗平臺軟件原理與設計
實驗的軟件系統是整個實驗的核心部分,主要分為全連接神經網絡的結構設計、監督學習方式的網絡模型訓練測試。
1.全連接神經網絡結構設計。本實驗網絡為具有一個隱藏層的全連接神經網絡,采用誤差反向傳播算法的訓練方式,構成了BP(back propagation)神經網絡。全連接神經網絡基礎結構如圖2所示,具有7個輸入神經元,10個隱藏神經元,4個輸出神經元,層與層之間的每個神經元都有權重連接,輸入層和隱藏層都有一個偏置。
在全連接神經網絡中,輸入神經元是顯示數字時每段數碼管的電平高低,輸入是七段數碼管電平。輸出神經元采用的是數字對應的4比特的二進制編碼,0~9對應的是0000~1001。神經網絡的作用就是將數碼管的電平編碼為輸入后經過運算得到顯示數字的二進制輸出,由于輸出是sigmoid激活函數[8]歸一化后范圍為0~1的模擬值,sigmoid函數以點(0,0.5)中心對稱,大于0.5的值為“1”,小于0.5的值為“0”。因此,數碼管的電平可識別出顯示的數字。考慮結果的可視化,將二進制輸出解碼為另一個數碼管的控制電平,可直觀判斷測試是否通過。
2.基于監督學習的網絡模型訓練測試。監督學習最重要的特征是其采用的是帶標簽的數據,利用帶標簽的數據訓練來調整分類器的性能[9]。基于監督學習的神經網絡訓練目的是通過優化權重參數使損失函數最小,實驗使用mini-batch梯度下降算法優化網絡參數,相較于隨機梯度下降法(SGD)[10]容易陷入局部最優的特點,mini-batch梯度下降算法更貼近整體的梯度,計算量更小,目前大多數神經網絡的訓練都采用mini-batch梯度下降算法[11]。
對于監督學習的全連接神經網絡,收斂速度是一個重要的指標。神經網絡訓練測試原理如圖3所示。在訓練中隱藏層和輸出層激活函數均采用sigmoid函數,權重以及偏置的初始化方法是對以0為中心,標準差為(nin)-1/2的截斷正態分布中抽取樣本[12]。
3.網絡模型的導入部署。在PC機中利用TensorFlow模塊搭建全連接神經網絡模型,使用反向傳播算法對模型進行訓練。將訓練好的模型權重參數寫入Arduino工程文件,并根據Arduino芯片支持的數據類型,執行了浮點小數向定點小數的轉換,然后在Arduino工程文件中調用上述權重參數構建神經網絡的前向傳播過程,將編寫完成的Arduino工程文件寫入Arduino的SRAM中,即可利用Arduino處理器執行神經網絡的前向傳播運算,見圖4。
4.實驗結果。神經網絡超參數設置的不同對其收斂速度影響較大,實驗探究了隱藏神經元數量、輸入編碼及輸出標簽三個參數值對收斂速度的影響并進行優化。
經實測分析和優化,最終選定隱藏神經元數量為10,輸入以-1,1編碼0,1,輸出以0.4,0.6編碼0,1時,既能保證Arduino開發板算力,又能較大程度改善神經網絡的性能。此時訓練1 400次,即可達到訓練準確率為100%。
三、實驗項目的實施——工程應用導向的實驗教學模式
實驗項目的實施采用工程應用導向的新型教學模式。其核心內涵是“案例教學—目標訓練—評價”三個環節。以工程應用為案例涵蓋教學內容,充分調動學生的主觀能動性,大力提倡問題啟發式、討論式的教學方法,鼓勵學生積極思考參與。拓展多媒體視頻、網上資源等多方位教學手段,鼓勵學生通過自主學習查閱解決相關問題。實驗訓練環節改變原有“原理驗證”的模式,即只關注整個工程應用的原理,缺乏工程實踐操作流程的整體認知。現在革新為以工程應用為目標的訓練,項目驅動環節以工程項目完整的操作流程為訓練任務,鼓勵學生自行設計,培養學生的工程意識、創新意識和能力。評價環節結合過程和結果從實踐技能、自學能力、創意性、工程項目完成度評價學生的綜合能力。整個課堂始終將學生置于學習的主體地位。
(一)工程案例的確定
工程案例的選擇是否恰當是教學關鍵。要依據教學內容選擇工程應用場景,難易程度適中。案例中既要包含教學的基本知識點,又要貼近生活實際,從而激發學生的興趣,調動他們解決問題的積極性。“類腦計算與芯片”是面向大三微電子和集成電路專業學生開設的前沿探索課程。教學的主體內容是深度學習及其硬件實現。我們在設計課程實驗時,以智能駕駛為應用場景,探討深度學習相關理論如何實現車道保持、交通標志牌識別、行人避讓等功能。通過提出一系列專業問題,例如,交通標志牌識別中“深度學習哪一方面的應用能實現交通標志牌識別功能?(圖像識別)”“圖像識別對應的知識點是什么?(卷積神經網絡,監督學習)”“如何搭建卷積神經網絡模型?”“如何進行模型訓練?”“智能小車需要有哪些結構?”“智能小車實現上述功能需要哪些操作流程?”,循序漸進地引導學生思考討論求知。通過將理論問題延伸到實際工程應用,避免了單獨講授出現枯燥、難以理解的教學局面,也使具體的理論知識自然融入實際工程應用。在學生理解神經網絡原理的基礎上,簡單介紹針對具體問題的神經網絡模型的建立,如何完成訓練及在嵌入式芯片上實現功能,了解完成一個實際工程應用的全過程。
(二)實驗訓練的方式
實驗訓練環節采用“基礎訓練+項目驅動”的方式。以“數碼管數字識別”為例,基礎訓練即按照深度學習工程項目開發流程“云端訓練+邊緣推斷”方式,完成仿真環境下的數字識別訓練,理解實驗原理;后續寫入嵌入式芯片,搭建數碼管數字識別電路,完成實際應用;實驗平臺硬件包括PC機配置、Arduino開發板、74HC595芯片和數碼管,實驗軟件平臺包括TensorFlow、編程語言Python。項目驅動環節學生自主命題,結合數碼管數字識別這一功能,自行設計應用場景,鼓勵學生大膽創新、體現創意。對優秀的團隊以“大創項目”的方式,從“課內向課外延伸”,開發一個完整的工程應用項目。
(三)實驗課程評價方式
課堂的教學目標在于以學生為主體,培養其實踐技能、工程意識和創新能力。考核方式也相應地進行了改革,采用過程和結果綜合考核的方式。“評價”環節包括工程應用的完成度、訓練過程體現的熟練度、自主學習查閱的能力。工程應用的完成度體現在功能要完整,要符合現實使用情況。訓練過程體現的熟練度體現在電路接線是否規范,通信設置是否正確,程序的編寫編譯運行下載調試是否熟練掌握。自主學習查閱的能力體現在團隊能否通過溝通討論查閱資料獨立解決問題。實驗室積極創設了學習資料和協作環境,提供了學習視頻和開源電子資源,《類腦計算實驗指導手冊》編制了基礎訓練的任務和程序包。授課過程只介紹基本原理和工程應用的操作流程,訓練過程中全程自主完成,并能自學運用教師沒講過的新指令的學生自主學習能力越強。
結語
“類腦計算與芯片”課程實驗革新傳統教學模式,以工程應用為導向,完成BP神經網絡的數碼管數字識別實驗,闡述了邊緣人工智能應用開發的流程“云端訓練+邊緣推斷”;學生可充分理解原理并運用于實踐。后續總體設計了基于卷積神經網絡的交通標志牌識別,基于強化學習的車道保持等相關實驗實踐項目。這樣的實踐項目和教學方式極大地激發了學生的學習熱情,也鍛煉了學生的綜合工程實踐能力,為后續更復雜的神經網絡算法及其硬件實現的學習和工程開發應用打下堅實基礎。
參考文獻
[1]胡越,羅東陽,花奎,等.關于深度學習的綜述與討論[J].智能系統學報,2019,14(1):1-19.
[2]李德毅,馬楠.智能時代新工科:人工智能推動教育改革的實踐[J].高等工程教育研究,2017(5):8-12.
[3]ZHOU Z, CHEN X, LI E, et al. Edge intelligence: paving the last mile of artificial intelligence with edge computing[J].Proceedings of the IEEE,2019,107(8):1738-1762.
[4]莫梓嘉,高志鵬,苗東.邊緣智能:人工智能向邊緣分布式拓展的新觸角[J].數據與計算發展前沿,2020,2(4):16-27.
[5]HA K, CHEN Z, HU W, et al. Towards wearable cognitive assistance[C]//Proceedings of the 12th annual international conference on mobile systems, applications, and services,2014:68-81.
[6]ANANTHANARAYANAN G, BAHL P, PETER Bodík, et al. Real-time video analytics: the killer app for edge computing[J].Computer,2017,50(10):58-67.
[7]CAO J, XU L, ABDALLAH R, et al. EdgeOS_H: a home operating system for internet of everything[C]//2017 IEEE 37th international conference on distributed computing systems (ICDCS). IEEE,2017:1756-1764.
[8]HAN J, MORAGA C. The influence of the sigmoid function parameters on the speed of backpropagation learning[C]//International workshop on artificial neural networks. springer, berlin, heidelberg,1995:195-201.
[9]MNIH V, KAVUKCUOGLU K, SILVER D, et al. Human-level control through deep reinforcement learning[J]. Nature,2015,518(7540):529-533.
[10]BOTTOU L. Stochastic gradient descent tricks[M]//Neural Networks: Tricks of the trade. Springer, Berlin, Heidelberg,2012:421-436.
[11]MASTERS D, LUSCHI C.Revisiting small batch training for deep neural networks[EB/OL].(2018-04-20)[2023-04-15].https://arxiv.org/abs/1804.07612.
[12]LECUN Y A, BOTTOU L, ORR G B, et al. Efficient backprop[M]//Neural Networks: Tricks of the trade. Springer, Berlin, Heidelberg,2012:9.
“Engineering Applications” Oriented Brain-Inspired Computing Experimental Teaching Research: Taking BP Neural Network as an Example
CHEN Qi, HE Yu-hui, QIU Ya-qin
(School of Integrated Circuits, Huazhong University of Science and Technology, Wuhan, Hubei 430074, China)
Abstract: Aiming at promoting the students’ understanding of deep learning and their practical ability, we design “Engineering Applications” oriented Brain-inspired computing experimental course. Taking BP neural network as an example, we design an experiment of deep learning for digital tube recognition. In this teaching mode, teachers take the engineering products as examples, extract questions and highlights, and guide the students to think independently. In this way theoretical knowledge is incorporated to the engineering training. Besides,“basic training + project-driven” approaches are used in the training sections. And the evaluation method adopts a comprehensive assessment method of process and results. It is expected that via this experimental course, not only will the students’ understanding of deep learning be enhanced, but also they will be able to develop ‘cloud computing + edge inference’ style deep learning applications on embedded systems.
Key words: Engineering application type; in-depth learning; edge artificial intelligence