訓練卷積神經網絡:什么是機器學習?——第二部分
作者:Ole Dreessen,現場應用工程師
摘要本文是系列文章的第二部分,重點介紹卷積神經網絡(CNN)的特性和應用。CNN主要用于模式識別和對象分類。在第一部分文章《卷積神經網絡簡介:什么是機器學習?——第一部分》中,我們比較了在微控制器中運行經典線性規劃程序與運行CNN的區別,并展示了CNN的優勢。我們還探討了CIFAR網絡,該網絡可以對圖像中的貓、房子或自行車等對象進行分類,還可以執行簡單的語音識別。本文重點解釋如何訓練這些神經網絡以解決實際問題。
(資料圖片)
神經網絡的訓練過程本系列文章的第一部分討論的CIFAR網絡由不同層的神經元組成。如圖1所示,32 × 32像素的圖像數據被呈現給網絡并通過網絡層傳遞。CNN處理過程的第一步就是提取待區分對象的特性和結構,這需要借助濾波器矩陣實現。設計人員對CIFAR網絡進行建模后,由于最初無法確定這些濾波器矩陣,因此這個階段的網絡無法檢測模式和對象。
為此,首先需要確定濾波器矩陣的所有參數,以最大限度地提高檢測對象的精度或最大限度地減少損失函數。這個過程就稱為神經網絡訓練。本系列文章的第一部分所描述的常見應用在開發和測試期間只需對網絡進行一次訓練就可以使用,無需再調整參數。如果系統對熟悉的對象進行分類,則無需額外訓練;當系統需要對全新的對象進行分類時,才需要額外進行訓練。
進行網絡訓練需要使用訓練數據集,并使用類似的一組測試數據集來測試網絡的精度。例如CIFAR-10網絡數據集為十個對象類的圖像集合:飛機、汽車、鳥、貓、鹿、狗、青蛙、馬、輪船和卡車。我們必須在訓練CNN之前對這些圖像進行命名,這也是人工智能應用開發過程中最為復雜的部分。本文討論的訓練過程采用反向傳播的原理,即向網絡連續展示大量圖像,并且每次都同時傳送一個目標值。本例的目標值為圖像中相關的對象類。在每次顯示圖像時,濾波器矩陣都會被優化,這樣對象類的目標值就會和實際值相匹配。完成此過程的網絡就能夠檢測出訓練期間從未看到過的圖像中的對象。
圖1.CIFAR CNN架構。
圖2.由前向傳播和反向傳播組成的訓練循環。
過擬合和欠擬合在神經網絡的建模過程中經常會出現的問題是:神經網絡應該有多少層,或者是神經網絡的濾波器矩陣應該有多大?;卮疬@個問題并非易事,因此討論網絡的過擬合和欠擬合至關重要。過擬合由模型過于復雜以及參數過多而導致。我們可以通過比較訓練數據集和測試數據集的損失來確定預測模型與訓練數據集的擬合程度。如果訓練期間損失較低并且在向網絡呈現從未顯示過的測試數據時損失過度增加,這就強烈表明網絡已經記住了訓練數據而不是在實施模式識別。此類情況主要發生在網絡的參數存儲空間過大或者網絡的卷積層過多的時候。這種情況下應當縮小網絡規模。
損失函數和訓練算法學習分兩個步驟進行。第一步,向網絡展示圖像,然后由神經元網絡處理這些圖像生成一個輸出矢量。輸出矢量的最大值表示檢測到的對象類,例如示例中的“狗”,該值不一定是正確的。這一步稱為前向傳播。
目標值與輸出時產生的實際值之間的差值稱為損失,相關函數則稱為損失函數。網絡的所有要素和參數均包含在損失函數中。神經網絡的學習過程旨在以最小化損失函數的方式定義這些參數。這種最小化可通過反向傳播的過程實現。在反向傳播的過程中,輸出產生的偏置(損失 = 目標值-實際值)通過網絡的各層反饋,直至達到網絡的起始層。
因此,前向傳播和反向傳播在訓練過程中產生了一個可以逐步確定濾波器矩陣參數的循環。這種循環過程會不斷重復,直至損失值降至一定程度以下。
優化算法、梯度和梯度下降法為說明訓練過程,圖3顯示了一個包含x和y兩個參數的損失函數的示例,這里z軸對應于損失。如果我們仔細查看該損失函數的三維函數圖,我們就會發現這個函數有一個全局最小值和一個局部最小值。
目前,有大量數值優化算法可用于確定權重和偏置。其中,梯度下降法最為簡單。梯度下降法的理念是使用梯度算子在逐步訓練的過程中找到一條通向全局最小值的路徑,該路徑的起點從損失函數中隨機選擇。梯度算子是一個數學運算符,它會在損失函數的每個點生成一個梯度矢量。該矢量的方向指向函數值變化最大的方向,幅度對應于函數值的變化程度。在圖3的函數中,右下角(紅色箭頭處)由于表面平坦,因此梯度矢量的幅度較小。而接近峰值時的情況則完全不同。此處矢量(綠色箭頭)的方向急劇向下,并且由于此處高低差明顯,梯度矢量的幅度也較大。
圖3.使用梯度下降法確定到最小值的不同路徑。
因此我們可以利用梯度下降法從任意選定的起點開始以迭代的方式尋找下降至山谷的最陡峭路徑。這意味著優化算法會在起點計算梯度,并沿最陡峭的下降方向前進一小步。之后算法會重新計算該點的梯度,繼續尋找創建一條從起點到山谷的路徑。這種方法的問題在于起點并非是提前定義的,而是隨機選擇的。在我們的三維地圖中,某些細心的讀者會將起點置于函數圖左側的某個位置,以確保路徑的終點為全局最小值(如藍色路徑所示)。其他兩個路徑(黃色和橙色)要么非常長,要么終點位于局部最小值。但是,算法必須對成千上萬個參數進行優化,顯然起點的選擇不可能每次都碰巧正確。在具體實踐中,這種方法用處不大。因為所選擇的起點可能會導致路徑(即訓練時間)較長,或者目標點并不位于全局最小值,導致網絡的精度下降。
因此,為避免上述問題,過去幾年已開發出大量可作為替代的優化算法。一些替代的方法包括隨機梯度下降法、動量法、AdaGrad方法、RMSProp方法、Adam方法等。鑒于每種算法都有其特定的優缺點,實踐中具體使用的算法將由網絡開發人員決定。
訓練數據在訓練過程中,我們會向網絡提供標有正確對象類的圖像,如汽車、輪船等。本例使用了已有的CIFAR-10數據集。當然,在具體實踐中,人工智能可能會用于識別貓、狗和汽車之外的領域。這可能需要開發新應用,例如檢測制造過程中螺釘的質量必須使用能夠區分好壞螺釘的訓練數據對網絡進行訓練。創建此類數據集極其耗時費力,往往是開發人工智能應用過程中成本最高的一步。編譯完成的數據集分為訓練數據集和測試數據集。訓練數據集用于訓練,而測試數據則用于在開發過程的最后檢查訓練好的網絡的功能。
結論本系列文章的第一部分《人工智能簡介:什么是機器學習?——第一部分》介紹了神經網絡并對其設計和功能進行了詳細探討。本文則定義了函數所需的所有權重和偏置,因此現在可以假定網絡能夠正常運行。在后續第三部分的文章中,我們將通過硬件運行神經網絡以測試其識別貓的能力。這里我們將使用ADI公司開發的帶硬件CNN加速器的MAX78000人工智能微控制器來進行演示。
關于ADI公司Analog Devices, Inc. (NASDAQ: ADI)是全球領先的半導體公司,致力于在現實世界與數字世界之間架起橋梁,以實現智能邊緣領域的突破性創新。ADI提供結合模擬、數字和軟件技術的解決方案,推動數字化工廠、汽車和數字醫療等領域的持續發展,應對氣候變化挑戰,并建立人與世界萬物的可靠互聯。ADI公司2022財年收入超過120億美元,全球員工2.4萬余人。攜手全球12.5萬家客戶,ADI助力創新者不斷超越一切可能。更多信息,請訪問www.analog.com/cn。
關于作者Ole Dreessen是ADI公司的現場應用工程師,于2014年加入ADI公司,此前曾在Avnet Memec和Macnica任職,負責支持通信產品和高性能微處理器。Ole在微控制器和安全方面擁有廣泛的專業知識,擁有豐富的會議主講經驗。在業余時間,他是混沌計算機俱樂部的活躍成員,主要研究逆向工程和嵌入式安全等概念。
關鍵詞:
您可能也感興趣:
為您推薦
機票里面包含保險嗎?飛機保險有必要買嗎?
遼寧擴大緩繳社保費政策實施范圍 補繳期間免收滯納金
近十年財險業務快速發展 財產保險業風險保障水平不提升
排行
最近更新
- 訓練卷積神經網絡:什么是機器學習?——第二部分
- 最新消息:氮化鎵 (GaN) 帶來電源管理變革的 3 大原因
- 當前看點!高通推出先進物聯網解決方案,賦能全新行業應用并助...
- TDK 推出用于高速電機應用場景的抗雜散磁場 ASIL C 級霍...
- 歐暇·地中海酒店 以特色產品成就品牌發展
- 怎么預防甲流?甲流一定要吃奧司他韋嗎?
- 甲型流感癥狀有哪些?甲型流感一般幾天能好?
- 入秋后掉頭發特別嚴重是怎么回事?掉頭發要怎么治?
- 今日快訊:又有高校請師生免費吃魚!網友:微笑中透露著眼紅
- 風濕病最佳治療方法是什么?類風濕能徹底治愈嗎?
- 母乳期減肥方法有哪些?哺乳期怎么吃可以減肥?
- 脆滑肉是哪個地方的菜?比較脆的菜有哪些?
- 燕麥三杯骨是什么地方的菜?燕麥菜怎么做好吃?
- 歐暇·地中海 以多元收益模式獲得高質量發展
- 如何治療青春痘疤痕?痤瘡引起的疤痕疙瘩怎么治療?
- 如何去雞皮疙瘩?雞皮膚會自己消失嗎?
- 腳外翻矯正方法有哪些?扁平足能矯正過來嗎?
- 你們平時熱身嗎?都有做哪些熱身動作?
- 世界熱點!深蹲前怎么熱身,鍛煉完后怎么拉伸?
- 體能訓練(一):運動前如何正確的熱身?
- 每日簡訊:有什么熱身的好方法?
- 當前觀點:健身前為什么要熱身?
- 什么是梨子減肥法?減肥最快效果最好的方法有哪些?
- 天天動態:高盛將VS工具功能擴展到加密貨幣等領域
- 小心!雞蛋生吃,嚴重可致命!挑選時需注意→
- 血友病傳男不傳女?血友病患者不能做手術?一起關注“玻璃人”
- 重醫附二院·寬仁好醫生丨40歲后長高10厘米是好事嗎?小心是...
- 【環球時快訊】7月1日起,這些品種將列入麻醉和精神藥品目錄
- 【全球新視野】重慶醫專結核病防治志愿者宣講團:微光成炬 ...
- 認準差異化賽道 歐暇·地中海酒店投資人的生意經