《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 人工智能 > 解決方案 > 卷積神經(jīng)網(wǎng)絡(luò)簡介:什么是機(jī)器學(xué)習(xí),?——第一部分

卷積神經(jīng)網(wǎng)絡(luò)簡介:什么是機(jī)器學(xué)習(xí),?——第一部分

2023-04-17
作者:Ole Dreessen,現(xiàn)場應(yīng)用工程師
來源:ADI
關(guān)鍵詞: MAX78000 AI 控制技術(shù) CNN

  摘要

  隨著人工智能(AI)技術(shù)的快速發(fā)展,,AI可以越來越多地支持以前無法實(shí)現(xiàn)或者難以實(shí)現(xiàn)的應(yīng)用,。本系列文章基于此解釋了卷積神經(jīng)網(wǎng)絡(luò)(CNN)及其對人工智能和機(jī)器學(xué)習(xí)的意義,。CNN是一種能夠從復(fù)雜數(shù)據(jù)中提取特征的強(qiáng)大工具,,例如識別音頻信號或圖像信號中的復(fù)雜模式就是其應(yīng)用之一。本文討論了CNN相對于經(jīng)典線性規(guī)劃的優(yōu)勢,,后續(xù)文章《訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò):什么是機(jī)器學(xué)習(xí),?——第二部分》將討論如何訓(xùn)練CNN模型,系列文章的第三部分將討論一個特定用例,,并使用專門的AI微控制器對模型進(jìn)行測試,。

  什么是卷積神經(jīng)網(wǎng)絡(luò)?

  神經(jīng)網(wǎng)絡(luò)是一種由神經(jīng)元組成的系統(tǒng)或結(jié)構(gòu),,它使AI能夠更好地理解數(shù)據(jù),,進(jìn)而解決復(fù)雜問題。雖然神經(jīng)網(wǎng)絡(luò)有許多種類型,,但本系列文章將只關(guān)注卷積神經(jīng)網(wǎng)絡(luò)(CNN),,其主要應(yīng)用領(lǐng)域是對輸入數(shù)據(jù)的模式識別和對象分類。CNN是一種用于深度學(xué)習(xí)的人工神經(jīng)網(wǎng)絡(luò),。這種網(wǎng)絡(luò)由輸入層,、若干卷積層和輸出層組成。卷積層是最重要的部分,,它們使用一組獨(dú)特的權(quán)重和濾波器,,使得網(wǎng)絡(luò)可以從輸入數(shù)據(jù)中提取特征。數(shù)據(jù)可以是許多不同的形式,,如圖像,、音頻和文本。這種提取特征的過程使CNN能夠識別數(shù)據(jù)中的模式從而讓工程師能夠創(chuàng)建更有效和高效的應(yīng)用。為了更好地理解CNN,,我們首先將討論經(jīng)典的線性規(guī)劃,。

  經(jīng)典控制技術(shù)中的線性規(guī)劃

  控制技術(shù)的任務(wù)是借助傳感器讀取數(shù)據(jù)并進(jìn)行處理,然后根據(jù)規(guī)則做出響應(yīng),,最后顯示或發(fā)送結(jié)果,。例如,溫度調(diào)節(jié)器每秒鐘測量一次溫度,,通過微控制器單元(MCU)讀取溫度傳感器的數(shù)據(jù),。該數(shù)值用于閉環(huán)控制系統(tǒng)的輸入,并與設(shè)定的溫度進(jìn)行比較,。這就是一個借助MCU執(zhí)行線性規(guī)劃的例子,,這種技術(shù)通過比較預(yù)編程值和實(shí)際值來給出明確的結(jié)論。相比之下,, AI系統(tǒng)通常依據(jù)概率論來發(fā)揮作用,。

  復(fù)雜模式和信號處理

  許多應(yīng)用所使用的輸入數(shù)據(jù)必須首先由模式識別系統(tǒng)加以判別。模式識別可以應(yīng)用于不同的數(shù)據(jù)結(jié)構(gòu),。本文討論的例子限定為一維或二維的數(shù)據(jù)結(jié)構(gòu),,比如音頻信號、心電圖(ECG),、光電容積脈搏波(PPG),、一維的振動數(shù)據(jù)或波形、熱圖像,、二維的瀑布圖數(shù)據(jù),。

  在上述模式識別中,將應(yīng)用通過MCU的代碼來實(shí)現(xiàn)是極其困難的,。一個例子是識別圖像中的具體對象(例如貓):這種情況下無法區(qū)分要分析的圖像是很早攝錄的,,還是剛剛由從相機(jī)讀取的。分析軟件基于一些特定的規(guī)則來判斷圖片中是否有貓:比如說貓必須有典型的尖耳朵,、三角形的鼻子和胡須,。如果可以在圖像中識別出這些特征,軟件便可以報告在圖像中發(fā)現(xiàn)了貓,。但是這存在一些問題:如果圖像只顯示了貓的背面,,模式識別系統(tǒng)會怎么辦?如果貓沒有胡須或者在事故中失去了腿,,會發(fā)生什么,?盡管這些異常情況不太可能出現(xiàn),但模式識別的代碼將不得不考慮所有可能的異常情況,,從而增加大量額外的規(guī)則,。即使在這個簡單的例子中,,軟件設(shè)置的規(guī)則也會變得非常復(fù)雜。

  機(jī)器學(xué)習(xí)如何取代經(jīng)典規(guī)則

  AI背后的核心思想是在小范圍內(nèi)模仿人類進(jìn)行學(xué)習(xí),。它不依賴于制定大量的if-then規(guī)則,,而是建立一個通用的模式識別的機(jī)器模型。這兩種方法的關(guān)鍵區(qū)別在于,,與一套復(fù)雜的規(guī)則相比,,AI不會提供明確的結(jié)果。AI不會明確報告“我在圖像中識別出了一只貓”,,而是提供類似這樣的結(jié)論:“圖像中有一只貓的概率為97.5%,,它也可能是豹子(2.1%)或老虎(0.4%)?!边@意味著在模式識別的過程結(jié)束時,,應(yīng)用的開發(fā)人員必須通過決策閾值做出決定。

  另一個區(qū)別是AI并不依賴固定的規(guī)則,,而是要經(jīng)過訓(xùn)練,。訓(xùn)練過程需要將大量貓的圖像展示給神經(jīng)網(wǎng)絡(luò)以供其學(xué)習(xí)。最終,,神經(jīng)網(wǎng)絡(luò)將能夠獨(dú)立識別圖像中是否有貓,。關(guān)鍵的一點(diǎn)是,未來AI可以不局限于已知的訓(xùn)練圖像開展識別,。該神經(jīng)網(wǎng)絡(luò)需要映射到MCU中,。

  AI的模式識別內(nèi)部到底是什么?

  AI的神經(jīng)元網(wǎng)絡(luò)類似于人腦的生物神經(jīng)元網(wǎng)絡(luò),。一個神經(jīng)元有多個輸入,但只有一個輸出,?;旧希@些神經(jīng)元都是輸入的線性變換——將輸入乘以數(shù)字(權(quán)重w)并加上一個常數(shù)(偏置b),,然后通過一個固定的非線性函數(shù)產(chǎn)生輸出,,該函數(shù)也被稱為激活函數(shù)。作為網(wǎng)絡(luò)中唯一的非線性部分,,激活函數(shù)用于定義人工神經(jīng)元值的激活范圍,。神經(jīng)元的功能在數(shù)學(xué)上可以描述為

06.JPG

  其中,f 為激活函數(shù),,w為權(quán)重,,x為輸入數(shù)據(jù),b為偏置,。數(shù)據(jù)可以是單獨(dú)的標(biāo)量,、向量或矩陣,。圖1顯示了一個神經(jīng)元,它擁有三個輸入和一個激活函數(shù)ReLU,。網(wǎng)絡(luò)中的神經(jīng)元總是分層排列的,。

07.JPG

  圖1.擁有三個輸入和一個輸出的神經(jīng)元

  如上所述,CNN用于輸入數(shù)據(jù)的模式識別和對象分類,。CNN分為不同的部分:一個輸入層,、若干隱藏層和一個輸出層。圖2顯示了一個小型網(wǎng)絡(luò),,它包含一個具有三個輸入的輸入層,、一個具有五個神經(jīng)元的隱藏層和一個具有四個輸出的輸出層。所有神經(jīng)元的輸出都連接到下一層的所有輸入,。圖2所示的網(wǎng)絡(luò)不具有現(xiàn)實(shí)意義,這里僅用于演示說明,。即使對于這個小型網(wǎng)絡(luò),用于描述網(wǎng)絡(luò)的方程中也具有32個偏置和32個權(quán)重,。

  CIFAR神經(jīng)網(wǎng)絡(luò)是一種廣泛用于圖像識別的CNN,。它主要由兩種類型的層組成:卷積層和池化層,這兩種層分別使用卷積和池化兩種方法,,在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中非常有效,。卷積層使用一種被稱為卷積的數(shù)學(xué)運(yùn)算來識別像素值數(shù)組的模式,。卷積發(fā)生在隱藏層中,,如圖3所示。卷積會重復(fù)多次直至達(dá)到所需的精度水平,。如果要比較的兩個輸入值(本例是輸入圖像和濾波器)相似,,那么卷積運(yùn)算的輸出值總會特別高,。濾波器有時也被稱為卷積核。然后,,結(jié)果被傳遞到池化層提取特征生成一個特征圖,,表征輸入數(shù)據(jù)的重要特征,稱為池化,。池化層的運(yùn)行需要依賴另一個濾波器,稱為池化濾波器,。訓(xùn)練后,,在網(wǎng)絡(luò)運(yùn)行的狀態(tài)下,特征圖與輸入數(shù)據(jù)進(jìn)行比較,。由于特征圖保留了特定的特征,,所以只有當(dāng)內(nèi)容相似時,,神經(jīng)元的輸出才會被觸發(fā),。通過組合使用卷積和池化,,CIFAR網(wǎng)絡(luò)可用于高精度地識別和分類圖像中的各種對象,。

08.JPG

  圖2.一個小型神經(jīng)網(wǎng)絡(luò)

  CIFAR-10是一個特定數(shù)據(jù)集,通常用于訓(xùn)練CIFAR神經(jīng)網(wǎng)絡(luò),。它由60000幅32×32彩色圖像組成,分為10個類別,。這些圖像是從各種來源收集的,例如網(wǎng)頁,、新聞和個人圖像集,。每個類別包含6000幅圖像,,平均分配在訓(xùn)練集,、測試集和驗(yàn)證集中,使其成為測試計算機(jī)視覺和其他機(jī)器學(xué)習(xí)模型的理想圖像集,。

  卷積神經(jīng)網(wǎng)絡(luò)和其他類型網(wǎng)絡(luò)的主要區(qū)別在于處理數(shù)據(jù)的方式,。卷積神經(jīng)網(wǎng)絡(luò)通過濾波依次檢查輸入數(shù)據(jù)的屬性。卷積層的數(shù)量越多,,可以識別的細(xì)節(jié)就越精細(xì),。在第一次卷積之后,該過程從簡單的對象屬性(如邊或點(diǎn))開始進(jìn)行第二次卷積以識別詳細(xì)的結(jié)構(gòu),,如角、圓,、矩形等,。在第三次卷積之后,,特征就可以表示某些復(fù)雜的模式,它們與圖像中對象的某些部分相似,,并且對于給定對象來說通常是唯一的。在我們最初的例子中,,這些特征就是貓的胡須或耳朵,。特征圖的可視化(如圖4所示)對于應(yīng)用本身而言并不是必需的,,但它有助于幫助理解卷積,。

  即使是像CIFAR這樣的小型網(wǎng)絡(luò),,每層也有數(shù)百個神經(jīng)元,,并且有許多串行連接的層。隨著網(wǎng)絡(luò)的復(fù)雜度和規(guī)模的增加,,所需的權(quán)重和偏置數(shù)量也迅速增長。圖3所示的CIFAR-10示例已經(jīng)有20萬個參數(shù),,每個參數(shù)在訓(xùn)練過程中都需要一組確定的值。特征圖可以由池化層進(jìn)一步處理,,以減少需要訓(xùn)練的參數(shù)數(shù)量并保留重要信息,。

09.JPG

  圖4.CNN的特征圖

  如上所述,在CNN中的每次卷積之后,,通常會發(fā)生池化,在一些文獻(xiàn)中也常被稱為子采樣,。它有助于減少數(shù)據(jù)的維度。圖4中的特征圖里面的很多區(qū)域包含很少甚至不含有意義的信息,。這是因?yàn)閷ο笾皇菆D像的一小部分,并不構(gòu)成整幅圖像,。圖像的其余部分未在特征圖中使用,因此與分類無關(guān),。在池化層中,池化類型(最大值池化或均值池化)和池化窗口矩陣的大小均被指定,。在池化過程中,窗口矩陣逐步在輸入數(shù)據(jù)上移動,。例如,,最大值池化會選取窗口中的最大數(shù)據(jù)值而丟棄其它所有的值,。這樣,,數(shù)據(jù)量不斷減少,,最終形成各個對象類別的唯一屬性,。

10.JPG

  圖3.用CIFAR-10數(shù)據(jù)集訓(xùn)練的CIFAR網(wǎng)絡(luò)模型

  卷積和池化的結(jié)果是大量的二維矩陣。為了實(shí)現(xiàn)我們真正的目標(biāo)即分類,我們需要將二維數(shù)據(jù)轉(zhuǎn)換成一個很長的一維向量,。轉(zhuǎn)換是在所謂的壓平層中完成的,隨后是一個或兩個全連接層,。全連接層的神經(jīng)元類似于圖2所示的結(jié)構(gòu)。神經(jīng)網(wǎng)絡(luò)最后一層的輸出要與需要區(qū)分的類別的數(shù)量一致,。此外,在最后一層中,,數(shù)據(jù)還被歸一化以產(chǎn)生一個概率分布(97.5%的貓,,2.1%的豹,0.4%的虎,,等等),。

  這就是神經(jīng)網(wǎng)絡(luò)建模的全過程。然而,,卷積核與濾波器的權(quán)重和內(nèi)容仍然未知,,必須通過網(wǎng)絡(luò)訓(xùn)練來確定使模型能夠工作。這將在后續(xù)文章《訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò):什么是機(jī)器學(xué)習(xí),?——第二部分》中說明,。第三部分將解釋我們上文討論過的神經(jīng)網(wǎng)絡(luò)(例如識別貓)的硬件實(shí)現(xiàn),我們將使用ADI公司開發(fā)的帶硬件CNN加速器的MAX78000人工智能微控制器來演示,。

------------------------------------

  1.通常使用sigmoid,、tanh或ReLU函數(shù)。

  2.ReLU:修正線性單元,。對于該函數(shù),,輸入值為負(fù)時,輸出為零,;輸入值大于零時,,輸出值為輸入值。



更多精彩內(nèi)容歡迎點(diǎn)擊==>>電子技術(shù)應(yīng)用-AET<<

mmexport1621241704608.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。