人工智能基礎(chǔ)及應(yīng)用 課件 第5、6章 人工神經(jīng)網(wǎng)絡(luò)、典型卷積神經(jīng)網(wǎng)絡(luò)_第1頁
人工智能基礎(chǔ)及應(yīng)用 課件 第5、6章 人工神經(jīng)網(wǎng)絡(luò)、典型卷積神經(jīng)網(wǎng)絡(luò)_第2頁
人工智能基礎(chǔ)及應(yīng)用 課件 第5、6章 人工神經(jīng)網(wǎng)絡(luò)、典型卷積神經(jīng)網(wǎng)絡(luò)_第3頁
人工智能基礎(chǔ)及應(yīng)用 課件 第5、6章 人工神經(jīng)網(wǎng)絡(luò)、典型卷積神經(jīng)網(wǎng)絡(luò)_第4頁
人工智能基礎(chǔ)及應(yīng)用 課件 第5、6章 人工神經(jīng)網(wǎng)絡(luò)、典型卷積神經(jīng)網(wǎng)絡(luò)_第5頁
已閱讀5頁,還剩147頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

人工智能基礎(chǔ)及應(yīng)用第5章人工神經(jīng)網(wǎng)絡(luò)5.1人工神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程5.2感知機(jī)與神經(jīng)網(wǎng)絡(luò)5.3BP神經(jīng)網(wǎng)絡(luò)及其學(xué)習(xí)算法5.4卷積神經(jīng)網(wǎng)絡(luò)2本章學(xué)習(xí)目標(biāo)

了解人工神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程。理解感知機(jī)的工作原理和局限性。掌握BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和BP學(xué)習(xí)算法。

掌握卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和運(yùn)算過程。3第5章人工神經(jīng)網(wǎng)絡(luò)4深度學(xué)習(xí)(DeepLearning)是機(jī)器學(xué)習(xí)的一個(gè)分支,而機(jī)器學(xué)習(xí)又是實(shí)現(xiàn)人工智能的必經(jīng)路徑,故而人工智能、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)之間是依次包含的關(guān)系。人工智能的研究?jī)?nèi)容包括:機(jī)器學(xué)習(xí)、知識(shí)工程、搜索策略、推理、規(guī)劃、模式識(shí)別、組合調(diào)度問題、機(jī)器人學(xué)等。傳統(tǒng)機(jī)器學(xué)習(xí)的研究方向主要包括:人工神經(jīng)網(wǎng)絡(luò)、決策樹、隨機(jī)森林、支持向量機(jī)、貝葉斯學(xué)習(xí)、關(guān)聯(lián)規(guī)則、Boosting與Bagging集成學(xué)習(xí)算法等,而深度學(xué)習(xí)的概念正是起源于人工神經(jīng)網(wǎng)絡(luò)(ArtificialNeuralNetwork,ANN)。由于深度學(xué)習(xí)在計(jì)算機(jī)視覺、語音識(shí)別、機(jī)器翻譯、圖像處理、自然語言處理等方面獲得成功應(yīng)用,人工神經(jīng)網(wǎng)絡(luò)的研究熱度反而超過了其他傳統(tǒng)方法,在機(jī)器學(xué)習(xí)研究中占據(jù)了主流的地位。55.1人工神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程(1)1943年,第一個(gè)人工神經(jīng)元模型MP模型。MP模型沒有學(xué)習(xí)機(jī)制,是最早的人工神經(jīng)網(wǎng)絡(luò)雛形。1949年,赫布提出了赫布理論,即“突觸前神經(jīng)元向突觸后神經(jīng)元的持續(xù)重復(fù)的刺激,可以導(dǎo)致突觸傳遞效能的增加?!奔矗和挥|前給的刺激越強(qiáng),突觸后的反應(yīng)越大。受到赫布理論的啟發(fā),1957年,美國(guó)心理學(xué)家羅森布拉特(Rosenblatt)提出了感知機(jī)(Perceptron),這是第一個(gè)人工神經(jīng)網(wǎng)絡(luò)。為感知機(jī)設(shè)計(jì)了第一個(gè)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法,首次將神經(jīng)網(wǎng)絡(luò)研究從純理論探討推向工程實(shí)現(xiàn)。感知機(jī)本質(zhì)是一種僅包含輸入層和輸出層的二元線性分類器,也稱為單層神經(jīng)網(wǎng)絡(luò)。感知機(jī)的輸入層可以包含多個(gè)單元,而輸出層只有一個(gè)單元。65.1人工神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程(2)與MP模型不同的是,感知機(jī)模型可以利用學(xué)習(xí)算法自動(dòng)更新輸入的權(quán)重和閾值。此后,神經(jīng)網(wǎng)絡(luò)的研究進(jìn)入了第一次高潮。1969年,明斯基與帕普特的《感知機(jī):計(jì)算幾何導(dǎo)論》指出了感知機(jī)的局限性,使人工智能的連接主義研究流派陷入了長(zhǎng)達(dá)10多年的低谷期。1974年,哈佛大學(xué)的韋伯斯在其博士論文中提出利用反向傳播算法訓(xùn)練多層神經(jīng)網(wǎng)絡(luò),但幾乎無人了解這項(xiàng)研究成果。1980年,日本學(xué)者福島邦彥(KunihikoFukushima)提出了名為“Neocognitron”的神經(jīng)網(wǎng)絡(luò),被認(rèn)為是最早的研究卷積神經(jīng)網(wǎng)絡(luò)的工作,也是最早的深度神經(jīng)網(wǎng)絡(luò)模型之一。為此,福島邦彥獲得了2021年鮑爾科學(xué)成就獎(jiǎng),以表彰其對(duì)深度學(xué)習(xí)的巨大貢獻(xiàn),尤其是他提出的極具影響力的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)。75.1人工神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程(3)1982年,霍普菲爾德教授提出Hopfield神經(jīng)網(wǎng)絡(luò),可用于實(shí)現(xiàn)聯(lián)想記憶和優(yōu)化計(jì)算,在旅行商問題上獲得了突破。尤其是1984年又用模擬集成電路實(shí)現(xiàn)了Hopfield神經(jīng)網(wǎng)絡(luò),有力地推動(dòng)了神經(jīng)網(wǎng)絡(luò)的研究,連接主義迎來了第二次高潮。受此啟發(fā),辛頓于1984年提出了一種隨機(jī)型的Hopfield網(wǎng)絡(luò),即玻爾茲曼機(jī)。它是一種反饋神經(jīng)網(wǎng)絡(luò),借鑒了模擬退火法的思想,具有一定的“跳出局部最優(yōu)”的能力。玻爾茲曼機(jī)的特點(diǎn)是:一是包含顯層與隱層兩層結(jié)構(gòu),顯層代表輸入和輸出,隱層則被理解為數(shù)據(jù)的內(nèi)部表達(dá);二是其神經(jīng)元是布爾型的,即只能取0或1值。85.1人工神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程(4)1986年,魯梅爾哈特、辛頓和威廉姆斯重新獨(dú)立地提出了BP算法,采sigmoid函數(shù)作為激活函數(shù),可解決多層NN中參數(shù)優(yōu)化的問題,且成功解決了非線性分類問題,使得BP算法傳播甚廣。1989年,楊樂昆采用BP算法訓(xùn)練LeNet系列的CNN,并將其成功應(yīng)用于美國(guó)郵政、銀行支票上手寫數(shù)字的識(shí)別。LeNet-5模型成為現(xiàn)代CNN的基礎(chǔ)。楊樂昆被譽(yù)為“卷積神經(jīng)網(wǎng)絡(luò)之父”。但BP算法存在梯度消失、梯度爆炸等問題,且當(dāng)時(shí)算力不足,BP算法只適合于訓(xùn)練淺層神經(jīng)網(wǎng)絡(luò)。1995年,萬普尼克于提出了支持向量機(jī),SVM可通過核技巧將非線性問題轉(zhuǎn)換成線性問題,其理論基礎(chǔ)清晰、證明完備、可解釋性好,獲得了廣泛的認(rèn)同。同時(shí),統(tǒng)計(jì)機(jī)器學(xué)習(xí)專家從理論角度懷疑NN的泛化能力,使得神經(jīng)網(wǎng)絡(luò)的研究第二次陷入低谷。95.1人工神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程(5)進(jìn)入21世紀(jì),有了大數(shù)據(jù)和算力,神經(jīng)網(wǎng)絡(luò)的研究迎來了第三次高潮。2006年,辛頓教授等人首次提出了“深度信念網(wǎng)絡(luò)”(DeepBeliefNetwork),它是由多個(gè)受限玻爾茲曼機(jī)(RestrictedBoltzmannMachine)串聯(lián)堆疊而組成的一個(gè)深度網(wǎng)絡(luò)。深度信念網(wǎng)絡(luò)在分類任務(wù)上的性能超過了傳統(tǒng)經(jīng)典的淺層學(xué)習(xí)模型(如支持向量機(jī)),引起了學(xué)術(shù)圈的廣泛關(guān)注。隨著神經(jīng)網(wǎng)絡(luò)層數(shù)的不斷加深,辛頓將這種深層神經(jīng)網(wǎng)絡(luò)上的學(xué)習(xí)方法命名為“深度學(xué)習(xí)”。從此,連接主義研究學(xué)派開始大放異彩。通常,將包含多個(gè)(大于3即可)隱藏層的人工神經(jīng)網(wǎng)絡(luò)稱為深度神經(jīng)網(wǎng)絡(luò),在這樣的網(wǎng)絡(luò)上學(xué)習(xí)的過程稱為深度學(xué)習(xí)。105.1人工神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程(6)2012年,辛頓教授及其學(xué)生提出AlexNet模型,在ILSVRC比賽的圖像分類組一舉奪魁。從此深度學(xué)習(xí)在學(xué)術(shù)圈和產(chǎn)業(yè)界均得到廣泛關(guān)注。深度學(xué)習(xí)發(fā)展至今,神經(jīng)網(wǎng)絡(luò)的層數(shù)不斷加深,模型性能不斷提升,甚至在圖像分類任務(wù)上的能力已超過了人類。2010至2017年間,ImageNet圖像分類的top-5(即排名前5的分類標(biāo)簽)錯(cuò)誤率從28%降到了3%,目標(biāo)識(shí)別的平均準(zhǔn)確率從23%上升到了66%。此外,深度學(xué)習(xí)方法在自然語言處理、機(jī)器翻譯、無人駕駛、語音識(shí)別、生物信息學(xué)、醫(yī)學(xué)影像分析與金融大數(shù)據(jù)分析等方面也都有廣泛的、成熟的應(yīng)用。115.2感知機(jī)與神經(jīng)網(wǎng)絡(luò)科學(xué)家受到人腦或生物神經(jīng)元結(jié)構(gòu)和學(xué)習(xí)機(jī)制的啟發(fā),提出了人工神經(jīng)元的數(shù)學(xué)模型,又在此基礎(chǔ)上增加了學(xué)習(xí)機(jī)制,研制出了可運(yùn)行的感知機(jī),即單層人工神經(jīng)網(wǎng)絡(luò)。最后,將若干個(gè)感知機(jī)連接在一起,形成了人工神經(jīng)網(wǎng)絡(luò)。人工神經(jīng)網(wǎng)絡(luò),簡(jiǎn)稱神經(jīng)網(wǎng)絡(luò)(NeuralNetwork,NN)或類神經(jīng)網(wǎng)絡(luò),是模擬人腦或生物神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)機(jī)制而建立起來的一種運(yùn)算模型。它由大量簡(jiǎn)單的信息處理單元按照一定拓?fù)浣Y(jié)構(gòu)相互連接而組成人工網(wǎng)絡(luò)。125.2.1生物神經(jīng)元結(jié)構(gòu)生物學(xué)家早在20世紀(jì)初就發(fā)現(xiàn)了生物神經(jīng)元的結(jié)構(gòu),神經(jīng)元(Neuron)也稱為神經(jīng)細(xì)胞。圖5.1生物神經(jīng)元結(jié)構(gòu)13生物神經(jīng)元的兩種狀態(tài)興奮狀態(tài)當(dāng)傳入的神經(jīng)沖動(dòng)使細(xì)胞膜電位升高超過一個(gè)“閾值”時(shí),該細(xì)胞就會(huì)被激活,進(jìn)入興奮狀態(tài),產(chǎn)生神經(jīng)沖動(dòng),并由軸突經(jīng)過突觸輸出;抑制狀態(tài)當(dāng)傳入的神經(jīng)沖動(dòng)使細(xì)胞膜電位下降到低于一個(gè)“閾值”時(shí),該細(xì)胞就進(jìn)入抑制狀態(tài),不輸出神經(jīng)沖動(dòng)。145.2.2神經(jīng)元數(shù)學(xué)模型—MP模型人工神經(jīng)元是構(gòu)成人工神經(jīng)網(wǎng)絡(luò)的基本單位,它模擬生物神經(jīng)元的結(jié)構(gòu)和特性,可以接收一組輸入信號(hào),并產(chǎn)生輸出。1943年提出的MP模型是模仿生物神經(jīng)元結(jié)構(gòu)而建立的第一個(gè)人工神經(jīng)元數(shù)學(xué)模型。圖5.2神經(jīng)元數(shù)學(xué)模型(MP模型)+1155.2.2神經(jīng)元數(shù)學(xué)模型—MP模型

階躍函數(shù)的缺陷:不連續(xù)、不平滑,它在0點(diǎn)處的導(dǎo)數(shù)是無窮大,除了0點(diǎn)處之外,導(dǎo)數(shù)都是0,這意味著:若學(xué)習(xí)算法采用基于梯度的優(yōu)化方法,是不可行的。165.2.2神經(jīng)元數(shù)學(xué)模型—MP模型在MP模型中引入激活函數(shù)的目的是:用于模擬生物神經(jīng)元的工作機(jī)制,當(dāng)電位高于一個(gè)設(shè)定的閾值時(shí),則進(jìn)入興奮狀態(tài),輸出信號(hào);否則進(jìn)入抑制狀態(tài),不輸出信號(hào)。MP模型中的輸入和輸出數(shù)據(jù)只能是二值化數(shù)據(jù)0或1,而且網(wǎng)絡(luò)中的權(quán)重、閾值等參數(shù)都需要人為設(shè)置,無法從數(shù)據(jù)中學(xué)習(xí)得到。MP模型的激活函數(shù)是一個(gè)簡(jiǎn)單的階躍函數(shù)。MP模型只能處理一些簡(jiǎn)單的分類任務(wù),例如線性二分類問題,但無法解決線性不可分問題。175.2.3感知機(jī)由一個(gè)神經(jīng)元構(gòu)成的神經(jīng)網(wǎng)絡(luò)稱為感知機(jī),也稱為單層神經(jīng)網(wǎng)絡(luò)。1957年提出的感知機(jī)是第一個(gè)工程實(shí)現(xiàn)的人工神經(jīng)網(wǎng)絡(luò),可以運(yùn)行感知機(jī)學(xué)習(xí)算法來訓(xùn)練模型。感知機(jī)是一種簡(jiǎn)單的非線性神經(jīng)網(wǎng)絡(luò),是人工神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)。感知機(jī)只包含輸入層和輸出層,其輸入層可以包含多個(gè)單元,而輸出層只有一個(gè)單元。感知機(jī)通過采用有監(jiān)督學(xué)習(xí)來逐步增強(qiáng)模式分類的能力,達(dá)到學(xué)習(xí)的目的。18感知機(jī)與MP模型的異同點(diǎn)從本質(zhì)上說,感知機(jī)與MP模型沒有太大的區(qū)別,兩者的結(jié)構(gòu)相同,計(jì)算過程也相同,都能完成線性可分的二分類任務(wù),也都無法解決線性不可分問題。但MP模型與感知機(jī)的不同之處在于:①M(fèi)P模型沒有“學(xué)習(xí)”的機(jī)制,其權(quán)值w和偏置θ都是人為設(shè)定的;而感知機(jī)引入了“學(xué)習(xí)”的概念,權(quán)值w和偏置θ是通過學(xué)習(xí)得到的,并非人為設(shè)置的,在一定程度上模擬了人腦的“學(xué)習(xí)”功能,這也是兩者最大的區(qū)別。②兩者采用的激活函數(shù)不同,MP模型采用階躍函數(shù)作為激活函數(shù),而感知機(jī)通常采用sigmoid函數(shù)作為激活函數(shù)。191.sigmoid函數(shù)

sigmoid函數(shù),現(xiàn)在專指logistic函數(shù)。特點(diǎn):具有平滑性、連續(xù)性、單調(diào)性和漸近性,且連續(xù)可導(dǎo)。2012年前,sigmoid是最常用的非線性激活函數(shù),其輸出值為(0,1),表示概率或輸入的歸一化。圖5.3sigmoid函數(shù)圖像sigmoid函數(shù)的優(yōu)點(diǎn):平滑、易于求導(dǎo),其導(dǎo)數(shù)可直接用函數(shù)的輸出計(jì)算,簡(jiǎn)單高效。sigmoid函數(shù)很好地解釋了神經(jīng)元在受到刺激的情況下是否被激活和向后傳遞的情景。當(dāng)取值接近0時(shí),幾乎沒有被激活;當(dāng)取值接近1時(shí),幾乎完全被激活。sigmoid

函數(shù)的求導(dǎo)公式如下:201.sigmoid函數(shù)sigmoid函數(shù)的缺點(diǎn):(1)當(dāng)輸入的絕對(duì)值大于某個(gè)閾值時(shí),會(huì)快速進(jìn)入飽和狀態(tài)(即函數(shù)值趨于1或-1,不再有顯著的變化,梯度趨于0),會(huì)出現(xiàn)梯度消失的情況,權(quán)重?zé)o法再更新,會(huì)導(dǎo)致算法收斂緩慢,甚至無法完成深層網(wǎng)絡(luò)的訓(xùn)練。因此在一些現(xiàn)代的神經(jīng)網(wǎng)絡(luò)中,sigmoid函數(shù)逐漸被ReLU激活函數(shù)取代。(2)sigmoid函數(shù)公式中有冪函數(shù),計(jì)算耗時(shí)長(zhǎng),在反向傳播誤差梯度時(shí),求導(dǎo)運(yùn)算涉及除法。(3)sigmoid函數(shù)的輸出恒大于0,非零中心化,在多層神經(jīng)網(wǎng)絡(luò)中,可能會(huì)造成后面層神經(jīng)元的輸入發(fā)生偏置偏移,導(dǎo)致梯度下降變慢。212.tanh函數(shù)tanh函數(shù)是sigmoid函數(shù)的一個(gè)變形,稱為雙曲正切函數(shù)。tanh函數(shù)的值域?yàn)?-1,1),改進(jìn)了sigmoid變化過于平緩的問題,且其輸出是零中心化的,解決了sigmoid函數(shù)的偏置偏移問題。tanh函數(shù)的數(shù)學(xué)表達(dá)式:圖5.4tanh函數(shù)圖像tanh可看作是在縱軸方向上放大到2倍并向下平移的sigmoid函數(shù)。tanh函數(shù)的導(dǎo)數(shù)公式:tanh函數(shù)的優(yōu)點(diǎn):tanh在線性區(qū)的梯度更大,能加快神經(jīng)網(wǎng)絡(luò)的收斂。tanh函數(shù)的缺點(diǎn):其兩端的梯度也趨于零,依舊存在梯度消失的問題,同時(shí),冪運(yùn)算也會(huì)導(dǎo)致計(jì)算耗時(shí)長(zhǎng)。225.2.4多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)單個(gè)人工神經(jīng)元的結(jié)構(gòu)簡(jiǎn)單,功能有限。若想完成復(fù)雜的功能,就需要將許多人工神經(jīng)元按照一定的拓?fù)浣Y(jié)構(gòu)相互連接在一起,相互傳遞信息,協(xié)調(diào)合作。組成神經(jīng)網(wǎng)絡(luò)的所有神經(jīng)元是分層排列的,一個(gè)神經(jīng)網(wǎng)絡(luò)包括輸入層、隱藏層(也稱為隱層、隱含層)和輸出層。每個(gè)網(wǎng)絡(luò)只能有一個(gè)輸入層和一個(gè)輸出層,卻可以有0個(gè)或多個(gè)隱藏層,每個(gè)隱藏層上可以有若干個(gè)神經(jīng)元。只有輸入層與輸出層的神經(jīng)元可以與外界相連,外界無法直接觸及隱藏層,故而得名“隱藏層”。235.2.4多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包含至少一個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)稱為多層神經(jīng)網(wǎng)絡(luò)。在包含神經(jīng)元個(gè)數(shù)最多的一層,神經(jīng)元的個(gè)數(shù)稱為該神經(jīng)網(wǎng)絡(luò)的寬度。除輸入層外,其他層的層數(shù)稱為神經(jīng)網(wǎng)絡(luò)的深度,即等于隱藏層個(gè)數(shù)加1(輸出層)。感知機(jī)沒有隱藏層,只有輸入層和輸出層,因此感知機(jī)的層數(shù)為1,稱為單層神經(jīng)網(wǎng)絡(luò)。人工神經(jīng)網(wǎng)絡(luò)的行為并非各個(gè)神經(jīng)元行為的簡(jiǎn)單相加,而是具有學(xué)習(xí)能力的、行為復(fù)雜的非線性系統(tǒng),既可以提取和表達(dá)樣本的高維特征,又可以完成復(fù)雜的預(yù)測(cè)任務(wù)。245.2.4多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)多層神經(jīng)網(wǎng)絡(luò)的每個(gè)隱藏層后面都有一個(gè)非線性的激活函數(shù)。這里激活函數(shù)的作用比感知機(jī)中作為激活函數(shù)的階躍函數(shù)的作用要大得多,因?yàn)榧せ詈瘮?shù)是對(duì)所有輸入信號(hào)的線性組合結(jié)果進(jìn)行非線性變換,而且多層神經(jīng)網(wǎng)絡(luò)就有多個(gè)激活函數(shù)。激活函數(shù)最主要的作用是向模型中加入非線性元素,用以解決非線性問題。一般在同一個(gè)網(wǎng)絡(luò)中使用同一種激活函數(shù)。255.2.4多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)根據(jù)神經(jīng)元之間的連接范圍,可以將多層人工神經(jīng)網(wǎng)絡(luò)分為全連接神經(jīng)網(wǎng)絡(luò)和部分連接神經(jīng)網(wǎng)絡(luò)。若每個(gè)神經(jīng)元與其相鄰層的所有神經(jīng)元都相連,這種結(jié)構(gòu)的網(wǎng)絡(luò)稱為全連接神經(jīng)網(wǎng)絡(luò)。若每個(gè)神經(jīng)元只與相鄰層上的部分神經(jīng)元相連,則是部分連接神經(jīng)網(wǎng)絡(luò)。圖5.5多層前饋全連接神經(jīng)網(wǎng)絡(luò)265.2.4多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)根據(jù)網(wǎng)絡(luò)層之間的連接方式,又可以將多層人工神經(jīng)網(wǎng)絡(luò)分為前饋神經(jīng)網(wǎng)絡(luò)和反饋神經(jīng)網(wǎng)絡(luò)。1.前饋神經(jīng)網(wǎng)絡(luò)前饋神經(jīng)網(wǎng)絡(luò)(FeedforwardNeuralNetwork)是一種多層神經(jīng)網(wǎng)絡(luò),其中每個(gè)神經(jīng)元只與其相鄰層上的神經(jīng)元相連,接收前一層的輸出,并輸出給下一層,即第i層神經(jīng)元以第i-1層神經(jīng)元的輸出作為輸入,第i層神經(jīng)元的輸出作為第i+1層神經(jīng)元的輸入。同層的神經(jīng)元之間沒有連接。整個(gè)網(wǎng)絡(luò)中的信息是單向傳遞的,即只能按一個(gè)方向從輸入層到輸出層的方向傳播,沒有反向的信息傳播,可以用一個(gè)有向無環(huán)圖表示。275.2.4多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)若前饋神經(jīng)網(wǎng)絡(luò)采用全連接方式,則稱為前饋全連接神經(jīng)網(wǎng)絡(luò)。前饋神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn):網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,易于實(shí)現(xiàn)。前饋全連接神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)是:當(dāng)網(wǎng)絡(luò)很深時(shí),參數(shù)量巨大,計(jì)算量大,訓(xùn)練耗時(shí)。前饋神經(jīng)網(wǎng)絡(luò)包括:BP神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)。前饋NN285.2.4多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)2.反饋神經(jīng)網(wǎng)絡(luò)反饋神經(jīng)網(wǎng)絡(luò)(FeedbackNeuralNetwork)是一種反饋動(dòng)力學(xué)系統(tǒng)。在這種網(wǎng)絡(luò)中,有些神經(jīng)元不但可以接收其前一層上神經(jīng)元的信息,還可以接收來自于其后面層上神經(jīng)元的信息。神經(jīng)元的連接可以形成有向循環(huán)。反饋神經(jīng)網(wǎng)絡(luò)中的信息既可以單向傳遞,也可以雙向傳遞,且神經(jīng)元具有記憶功能,在不同時(shí)刻具有不同的狀態(tài),能建立網(wǎng)絡(luò)的內(nèi)部狀態(tài),可展現(xiàn)動(dòng)態(tài)的時(shí)間特性。反饋NN295.3BP神經(jīng)網(wǎng)絡(luò)及其學(xué)習(xí)算法多層前饋神經(jīng)網(wǎng)絡(luò)的表達(dá)能力比單層感知機(jī)要強(qiáng)得多。要訓(xùn)練多層前饋神經(jīng)網(wǎng)絡(luò),單層感知機(jī)的學(xué)習(xí)算法是遠(yuǎn)遠(yuǎn)不夠的,需要更強(qiáng)大的學(xué)習(xí)算法。1974年Werbos提出了BP算法;1986年辛頓等人又重新獨(dú)立地提出了BP算法。迄今為止,最成功的多層神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法就是反向傳播(Back-Propagation,BP)算法。

BP算法能解決對(duì)參數(shù)逐一求偏導(dǎo)、計(jì)算效率低下的問題。目前,學(xué)術(shù)界和產(chǎn)業(yè)界依然在用BP算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)。305.3.1BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)由于前饋神經(jīng)網(wǎng)絡(luò)大多采用反向傳播學(xué)習(xí)算法來進(jìn)行訓(xùn)練模型,故被稱為BP神經(jīng)網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò)。每個(gè)節(jié)點(diǎn)就是一個(gè)神經(jīng)元,神經(jīng)元之間帶有箭頭的連線表示信息傳遞的方向。此BP神經(jīng)網(wǎng)絡(luò)的深度為m-1信息傳遞方向誤差傳遞方向315.3.1BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖5.7BP網(wǎng)絡(luò)中相鄰兩層的各變量之間關(guān)系

325.3.2BP學(xué)習(xí)算法

335.3.2BP學(xué)習(xí)算法

BP學(xué)習(xí)算法的目的:使得目標(biāo)函數(shù)(即損失函數(shù))E達(dá)到極小值。損失函數(shù)的值越小,表示神經(jīng)網(wǎng)的預(yù)測(cè)結(jié)果越接近真實(shí)值。345.3.2BP學(xué)習(xí)算法

第5步:采用公式(5.11)計(jì)算出的修正值,依次更新所有權(quán)重和偏置;第6步:轉(zhuǎn)向第2步。35BP算法的具體執(zhí)行過程假設(shè)輸入樣本為(x1=0.05,x2=0.1),期望輸出值為(y1=0.03,y2=0.05)。正向傳播(1)由輸入層向隱藏層傳播信息。隱藏層中第一個(gè)神經(jīng)元h1的輸出為:圖5.8BP神經(jīng)網(wǎng)絡(luò)示例隱藏層中第一個(gè)神經(jīng)元h2的輸出為:(2)由隱藏層向輸出層傳播信息。輸出層中兩個(gè)神經(jīng)元的輸出分別為:

362.反向傳播反向?qū)W習(xí)的目的:利用梯度下降法更新網(wǎng)絡(luò)中的參數(shù),使得損失函數(shù)達(dá)到極小值。反向?qū)W習(xí)的過程:誤差信息從輸出層經(jīng)過隱藏層傳向輸入層,逐層使權(quán)值沿?fù)p失函數(shù)的負(fù)梯度方向更新。

更新誤差的過程是一個(gè)始于輸出層向輸入層傳播的遞歸過程,故稱為反向傳播學(xué)習(xí)算法。37BP算法中反向傳播階段的具體執(zhí)行過程(1)

(1)計(jì)算總誤差

38BP算法中反向傳播階段的具體執(zhí)行過程(2)②計(jì)算偏置項(xiàng)的修正量。

39BP算法中反向傳播階段的具體執(zhí)行過程(3)

這4項(xiàng)在第(2)步的權(quán)值更新中均已有計(jì)算值。

第2項(xiàng):第3項(xiàng):

405.3.2BP學(xué)習(xí)算法第1個(gè)訓(xùn)練樣本(x1=0.05,x2=0.1),目標(biāo)輸出為[0.03,0.05],實(shí)際輸出為[0.694,0.718],總誤差為0.444;完成第1輪參數(shù)更新;繼續(xù)將第1個(gè)訓(xùn)練樣本(x1=0.05,x2=0.1)輸入到已更新參數(shù)的神經(jīng)網(wǎng)絡(luò)中,進(jìn)行第二次訓(xùn)練,得到實(shí)際輸出為[0.667,0.693],總誤差為0.44356;可見,總誤差在逐漸減小,隨著迭代次數(shù)的增加,輸出值會(huì)越來越接近目標(biāo)值,直到總誤差小于設(shè)定的閾值,再輸入下一個(gè)訓(xùn)練樣本,繼續(xù)訓(xùn)練,直到輸入所有訓(xùn)練樣本訓(xùn)練完畢為止。41BP神經(jīng)網(wǎng)絡(luò)及學(xué)習(xí)算法的局限性(1)BP學(xué)習(xí)算法是有監(jiān)督學(xué)習(xí),需要大量帶標(biāo)簽的訓(xùn)練數(shù)據(jù)。(2)BP神經(jīng)網(wǎng)絡(luò)中的參數(shù)量大,收斂速度慢,需要較長(zhǎng)的訓(xùn)練時(shí)間,學(xué)習(xí)效率低。(3)BP學(xué)習(xí)算法采用梯度下降法更新學(xué)習(xí)參數(shù),容易陷入局部極值,從而找不到全局最優(yōu)解。(4)尚無理論指導(dǎo)如何選擇網(wǎng)絡(luò)隱藏層的層數(shù)和神經(jīng)元的個(gè)數(shù),一般是根據(jù)經(jīng)驗(yàn)或通過反復(fù)實(shí)驗(yàn)確定。因此,網(wǎng)絡(luò)往往存在很大的冗余性,在一定程度上也增加了網(wǎng)絡(luò)學(xué)習(xí)的負(fù)擔(dān)。425.4卷積神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetwork,CNN)是一種特殊的多層前饋神經(jīng)網(wǎng)絡(luò),常用于監(jiān)督學(xué)習(xí)。早期的BP神經(jīng)網(wǎng)絡(luò)是全連接的,需要學(xué)習(xí)的參數(shù)量巨大,網(wǎng)絡(luò)訓(xùn)練時(shí)間較長(zhǎng)??茖W(xué)家發(fā)現(xiàn):生物神經(jīng)元有感受野(ReceptiveField)機(jī)制,研究人員受此啟發(fā),提出了卷積神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)模仿了感受野的機(jī)制,采用卷積運(yùn)算,使得人工神經(jīng)元只連接其周圍一定范圍內(nèi)的神經(jīng)元,連接數(shù)量減少了,權(quán)重(參數(shù))量也減少了。卷積神經(jīng)網(wǎng)絡(luò)最早用來完成圖像處理任務(wù),特別是在圖像分類、目標(biāo)檢測(cè)和語義分割等任務(wù)上不斷取得突破性進(jìn)展。5.4卷積神經(jīng)網(wǎng)絡(luò)對(duì)卷積神經(jīng)網(wǎng)絡(luò)的研究最早可以追溯到1979年,日本學(xué)者福島邦彥(KunihikoFukushima)提出了命名為“neocognitron”的神經(jīng)網(wǎng)絡(luò),它是一個(gè)具有深層結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),也是最早被提出的深度學(xué)習(xí)算法之一。1989年,楊樂昆(YannLeCun)等人在《BackpropagationAppliedtoHandwrittenZipCode》一文中第一次使用“convoluation”和“kernel”術(shù)語。提出采用隨機(jī)梯度下降法訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,并首次使用了“卷積神經(jīng)網(wǎng)絡(luò)”一詞,因此,楊樂昆被譽(yù)為“卷積神經(jīng)網(wǎng)絡(luò)之父”。43445.4.1卷積神經(jīng)網(wǎng)絡(luò)的整體結(jié)構(gòu)一個(gè)CNN可以包含多個(gè)網(wǎng)絡(luò)層,每層網(wǎng)絡(luò)由多個(gè)獨(dú)立的神經(jīng)元組成。CNN中的網(wǎng)絡(luò)層主要分為3種類型:卷積層、池化層和全連接層。通常,每個(gè)卷積層與最后一個(gè)全連接層之后都會(huì)采用激活函數(shù)。與多層前饋神經(jīng)網(wǎng)絡(luò)一樣,CNN也可以像搭積木一樣,通過疊加多個(gè)網(wǎng)絡(luò)層來組裝。多層前饋神經(jīng)網(wǎng)絡(luò)可以看成是由“全連接層+ReLU層”組合拼裝而成的,而CNN可以看成是由“卷積層+ReLU層+池化層”(有時(shí)也省略池化層)組合拼裝而成的。CNN具有3個(gè)重要特性:權(quán)重共享、局部感知和亞采樣。在卷積神經(jīng)網(wǎng)絡(luò)中,輸入層輸入的數(shù)據(jù)是訓(xùn)練樣本或測(cè)試樣本,其他網(wǎng)絡(luò)層輸入/輸出的數(shù)據(jù)均稱為特征圖(FeatureMap)。455.4.1卷積神經(jīng)網(wǎng)絡(luò)的整體結(jié)構(gòu)卷積神經(jīng)網(wǎng)絡(luò)不需要額外的特征工程,可以直接從圖像中自動(dòng)提取視覺特征,稱為學(xué)習(xí)式特征;不用像傳統(tǒng)圖像處理技術(shù)那樣提取手工式特征(如HOG、SIFT特征等)。CNN可識(shí)別具有極端可變性的模式,如手寫體字符,且具有一定程度的扭曲、平移、旋轉(zhuǎn)、縮放不變性,從而可以保留圖像的空間特性,在圖像處理方面具有顯著優(yōu)勢(shì)。與幾乎所有其他的神經(jīng)網(wǎng)絡(luò)一樣,CNN也采用反向傳播算法訓(xùn)練模型。CNN通常包括1個(gè)輸入層多個(gè)“卷積層+ReLU層+池化層”組合塊,也可能是

【n個(gè)“卷積層+ReLU層”+1個(gè)池化層】的組合多個(gè)連續(xù)的全連接層(中間不加激活函數(shù))1個(gè)采用softmax函數(shù)的輸出層。卷積神經(jīng)網(wǎng)絡(luò)的整體結(jié)構(gòu)46(卷積層+ReLU+

池化層)的組合多次出現(xiàn):用于提取特征

多個(gè)全連接或特殊的CNN結(jié)構(gòu)作為輸出層:用作分類器/檢測(cè)器/分割器475.4.1卷積神經(jīng)網(wǎng)絡(luò)的整體結(jié)構(gòu)(1)輸入層?;叶葓D:W×H矩陣,其中W為寬度,H為高度,圖像深度為1;彩色圖:W×H×3像素矩陣,“3”表示R、G、B三個(gè)顏色通道,即圖像深度。(2)卷積層。卷積操作就是點(diǎn)積運(yùn)算。卷積層的功能:用卷積操作對(duì)輸入的原始數(shù)據(jù)/特征圖提取特征,輸出卷積運(yùn)算后產(chǎn)生的特征圖。卷積層是CNN的核心部分,一個(gè)卷積層可以包含若干個(gè)卷積核(Kernel),一個(gè)卷積核就是一個(gè)二維的、高度和寬度相同的權(quán)重矩陣,記為ConvF×F,F(xiàn)<<W。F×F的區(qū)域就是卷積核的感受野,卷積核與輸入的圖像或特征圖只有F×F大小的局部連接;在全連接神經(jīng)網(wǎng)絡(luò)中,隱藏層的神經(jīng)元的感受視野是輸入圖像或特征圖的全部大小,進(jìn)行的是全局連接。48(2)卷積層對(duì)灰色圖像作卷積操作,用一個(gè)卷積核即可,因?yàn)橐粡埢疑珗D像只有一個(gè)顏色通道;對(duì)彩色圖像作卷積操作,則同時(shí)需要有3個(gè)大小相同的卷積核,分別對(duì)彩色圖像的R、G、B三個(gè)通道進(jìn)行卷積運(yùn)算,那么這個(gè)由若干個(gè)大?。⊿ize,也稱為尺寸)相同的卷積核堆疊而成的卷積核組就稱為一個(gè)濾波器,記為ConvF×F×D,其中D為該濾波器中包含的卷積核的個(gè)數(shù),稱為濾波器的深度(Depth),也稱為濾波器的通道數(shù),記為#channel。濾波器的深度取決于輸入的圖像或特征圖的深度。對(duì)于灰度圖像,一個(gè)卷積核可以看作是深度為1的濾波器。49(2)卷積層一個(gè)卷積層中可以包含多個(gè)濾波器,而濾波器的個(gè)數(shù)是人為設(shè)定的,一個(gè)濾波器就是一個(gè)神經(jīng)元。通常,同層上的多個(gè)濾波器的大小、深度都相同,也是人為設(shè)定的,即超參數(shù);只是權(quán)重和偏置不同,需要訓(xùn)練得到,即學(xué)習(xí)參數(shù)。每個(gè)濾波器,即神經(jīng)元,只對(duì)輸入圖像或特征圖的部分區(qū)域進(jìn)行卷積運(yùn)算,負(fù)責(zé)提取圖像或特征圖中的局部特征。靠近輸入層的卷積層提取的特征往往是局部的,越靠近輸出層,卷積層提取的特征越是全局化的。一個(gè)濾波器只關(guān)注一個(gè)特征,不同的濾波器用于提取不同的特征,如邊緣、輪廓、紋理、顏色等。每個(gè)濾波器只產(chǎn)生一層特征圖,故有多少個(gè)濾波器,就會(huì)產(chǎn)生多少層特征圖。一個(gè)神經(jīng)網(wǎng)絡(luò)中的所有神經(jīng)元,就是構(gòu)成了整張圖像的特征提取器的集合。505.4.1卷積神經(jīng)網(wǎng)絡(luò)的整體結(jié)構(gòu)(3)池化層。池化層也稱為下采樣層、子采樣、亞采樣。池化層的作用:選擇具有代表性的特征,去除不重要的或冗余的特征,用以降低特征維數(shù),從而減少參數(shù)量和計(jì)算開銷。(4)全連接層。全連接層通常置于CNN尾部,它與傳統(tǒng)的全連接神經(jīng)網(wǎng)絡(luò)的連接方式相同,都是相鄰兩層上的所有神經(jīng)元兩兩相連,每個(gè)連接都有權(quán)重。兩個(gè)相鄰全連接層之間只進(jìn)行線性轉(zhuǎn)換,不用激活函數(shù)。全連接層的作用主要是對(duì)卷積層和池化層提取的局部特征進(jìn)行重新組合,得到全局信息,以減少特征信息的丟失。全連接的操作方式先將經(jīng)過卷積、激活函數(shù)、池化的多層特征向量抻直成一個(gè)一維的向量;再采用全連接的方式將上述一維向量與輸出層連接。51525.4.1卷積神經(jīng)網(wǎng)絡(luò)的整體結(jié)構(gòu)(5)輸出層。輸出層用于輸出結(jié)果,實(shí)際上就是最后一個(gè)全連接層之后的激活函數(shù)層。根據(jù)回歸或分類問題的需要選擇不同激活函數(shù),以獲得最終想要的結(jié)果。例如,二分類任務(wù)可以選擇sigmoid作為激活函數(shù),若是多分類任務(wù),可以選擇softmax作為激活函數(shù)。CNN的結(jié)構(gòu)比傳統(tǒng)多層全連接神經(jīng)網(wǎng)絡(luò)具有以下兩個(gè)方面優(yōu)勢(shì)。(1)連接方式不同,CNN的局部連接可大大減少參數(shù)量和計(jì)算量。(2)對(duì)輸入圖像處理的方式不同,CNN保留了圖像固有的空間特征。535.4.2卷積運(yùn)算卷積是泛函分析中一種重要的運(yùn)算。圖像處理中的卷積是二維的。1.灰色圖像上的卷積運(yùn)算灰度圖像:W×H的像素矩陣,是單通道圖像。其中每個(gè)像素的取值范圍為[0,255],表示像素的強(qiáng)度。圖像處理的底層就是對(duì)圖像像素點(diǎn)進(jìn)行操作。卷積運(yùn)算是對(duì)像素矩陣與卷積核矩陣重疊部分作內(nèi)積的操作,即計(jì)算兩個(gè)重疊矩陣中對(duì)應(yīng)元素的乘積之和。在圖像上作卷積操作是用同一個(gè)卷積核在圖像上從左到右、從上到下,按某個(gè)固定的步長(zhǎng)進(jìn)行“Z”字形滑動(dòng),遍歷圖像的每一個(gè)局部位置,并將每個(gè)位置的內(nèi)積運(yùn)算結(jié)果保存到輸出特征圖的相應(yīng)位置。步長(zhǎng)是指卷積核窗口在像素矩陣上滑動(dòng)的位置間隔,以像素為計(jì)數(shù)單位。54灰度圖上單個(gè)卷積核的卷積運(yùn)算示例在下列灰度圖像上,假設(shè)給定4×4的像素矩陣,卷積核大小為2×2,滑動(dòng)步長(zhǎng)為2。圖5.12灰度圖像的卷積運(yùn)算示例555.4.2卷積運(yùn)算2.RGB圖像上的卷積運(yùn)算輸入的彩色圖像通常表示為W×H×3的像素矩陣,其中“深度”

也稱為通道。彩色圖像可以看作3個(gè)二維像素矩陣,每個(gè)像素矩陣存放所有像素的一種顏色值,像素取值范圍為[0~255]。RGB圖上2個(gè)濾波器的卷積運(yùn)算過程粉色矩陣是兩個(gè)濾波器/神經(jīng)元:(w0,w1)濾波器的步長(zhǎng)設(shè)為2輸入RGB圖像RGB第1個(gè)濾波器,即第1個(gè)神經(jīng)元第2個(gè)濾波器,即第2個(gè)神經(jīng)元第1個(gè)濾波器的輸出第2個(gè)濾波器的輸出濾波器的偏差56575.4.2卷積運(yùn)算CNN的每個(gè)卷積層中都可以使用多個(gè)濾波器(其個(gè)數(shù)由人為設(shè)定)。在每個(gè)卷積層上,一個(gè)濾波器只能輸出一個(gè)通道數(shù)為1的特征圖;若有K個(gè)濾波器,則輸出一個(gè)通道數(shù)為K的特征圖。針對(duì)輸入的RGB圖像,第一個(gè)卷積層的所有濾波器的深度必須是3,因?yàn)轭伾ǖ罏?。在其后的卷積層上,濾波器的深度取決于前一層輸出的特征圖的通道數(shù)。一個(gè)濾波器提取一種局部特征,多個(gè)濾波器可以提取多種不同的局部特征。585.4.2卷積運(yùn)算3.圖像填充(padding)每做一次卷積運(yùn)算,輸出的特征圖的尺寸都會(huì)減少若干個(gè)像素,經(jīng)過若干個(gè)卷積層后,特征圖尺寸會(huì)變得非常小。另外,在卷積核移動(dòng)的過程中,圖像邊緣的像素參與卷積運(yùn)算的次數(shù)遠(yuǎn)少于圖像內(nèi)部的像素,這是因?yàn)檫吘壣系南袼赜肋h(yuǎn)不會(huì)位于卷積核的中心,而卷積核也不能擴(kuò)展到圖像邊緣區(qū)域以外,因此會(huì)導(dǎo)致圖像邊緣的大部分信息丟失。若想盡可能多地保留原始輸入圖像的信息,可以在卷積操作之前,在原圖像的周圍填充p圈固定的常數(shù),例如,填充常數(shù)0,這種操作稱為填充(padding)。595.4.2卷積運(yùn)算填充的主要目的是調(diào)整輸入數(shù)據(jù)的大小,使得輸出數(shù)據(jù)的形狀保持與輸入數(shù)據(jù)一致。需要根據(jù)具體情況來確定超參數(shù)p的值。在實(shí)踐中,當(dāng)設(shè)置padding=valid時(shí),表示不填充0值,當(dāng)padding=same時(shí),表示自動(dòng)計(jì)算p值來填補(bǔ)0值,使得卷積運(yùn)算前、后的特征圖的尺寸相同。采用填充技術(shù)有以下兩個(gè)作用:①CNN的深度不再受卷積核大小的限制,CNN可以不斷地堆疊卷積層。若不作填充,當(dāng)前一層輸出的特征圖的尺寸比卷積核還小時(shí),就無法再進(jìn)行卷積操作,也就無法再增加卷積層了。②可以充分利用圖像的邊界信息,避免遺漏圖像邊界附近的重要信息。605.4.2卷積運(yùn)算4.卷積運(yùn)算后特征圖尺寸的計(jì)算公式填充的p值和步長(zhǎng)s的值都會(huì)影響卷積輸出特征圖的大小。設(shè)當(dāng)前卷積層中濾波器的個(gè)數(shù)為K,輸入特征圖的尺寸為H×W×D(D為通道數(shù)),卷積核的尺寸為F×F,填充為

p,步長(zhǎng)為

s,則執(zhí)行卷積運(yùn)算后,輸出特征圖的尺寸H′×W′×D′的計(jì)算公式為:其中,主要超參數(shù)包括:每個(gè)卷積層中濾波器的個(gè)數(shù)K、卷積核或?yàn)V波器的大小F、步長(zhǎng)s、填充p。當(dāng)前卷積層中學(xué)習(xí)參數(shù)的個(gè)數(shù)為(F×F×D+1)×K。61卷積運(yùn)算示例圖5.15兩個(gè)卷積層的運(yùn)算過程625.4.2卷積運(yùn)算5.轉(zhuǎn)置卷積卷積操作可看作是下采樣。對(duì)于某些特定任務(wù),需要將圖像恢復(fù)到原來的尺寸,這個(gè)將圖像由小尺寸轉(zhuǎn)換為大尺寸的操作稱為上采樣。傳統(tǒng)的上采樣方法有:最近鄰插值法、線性插值法和雙線性插值法等。然而,這些上采樣方法都是基于人們已有的先驗(yàn)經(jīng)驗(yàn)設(shè)計(jì)的。但在很多應(yīng)用場(chǎng)景中,人們并不具有正確的先驗(yàn)知識(shí),因此上采樣的效果不理想。我們希望神經(jīng)網(wǎng)絡(luò)能夠自動(dòng)學(xué)習(xí)如何更好地進(jìn)行上采樣,轉(zhuǎn)置卷積就是一種自動(dòng)上采樣的方法。轉(zhuǎn)置卷積又稱為反卷積或逆卷積。63轉(zhuǎn)置卷積的示例圖5.16F=3,s=1,p=2轉(zhuǎn)置卷積的運(yùn)算過程645.轉(zhuǎn)置卷積確定p值的公式為p=F-1。卷積是用一個(gè)小窗口看大世界,而轉(zhuǎn)置卷積是用一個(gè)大窗口的一部分去看小世界,即卷積核比原輸入圖像尺寸大。需要注意的是:卷積操作和轉(zhuǎn)置卷積并不是互逆的兩個(gè)操作。一個(gè)特征圖A經(jīng)過卷積操作后,得到特征圖B,而B再經(jīng)過轉(zhuǎn)置卷積操作后,并不能恢復(fù)到A中原始的元素值,只是保留了原始的形狀,即大小相同而已。所以,轉(zhuǎn)置卷積雖然又叫逆卷積,但事實(shí)上,它不是原來卷積操作的逆運(yùn)算。655.4.2卷積運(yùn)算6.卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的特點(diǎn)(1)局部連接。人類對(duì)外界的認(rèn)知一般是從局部到全局,先感知局部,再逐步認(rèn)知全局。卷積即局部感受野。CNN模仿了人類的認(rèn)識(shí)模式:一個(gè)神經(jīng)元只與特征圖局部區(qū)域中的元素相連。每個(gè)卷積層的輸入特征圖或卷積核的大小是不同的,卷積核大小的不同意味著感受野范圍的不同。隨著網(wǎng)絡(luò)的加深,神經(jīng)元的感受野范圍逐層擴(kuò)大,所提取圖像特征的全局化程度越來越高,直到全連接層,全連接層中每個(gè)神經(jīng)元的感受野覆蓋了前一網(wǎng)絡(luò)層的全部輸出,得到的就是全局特征。665.4.2卷積運(yùn)算CNN是:在卷積層,先用感受野小的卷積提取圖像的局部特征;在全連接層,再用全連接將所有特征重新組合在一起,提取全局特征。局部連接實(shí)際上減少了神經(jīng)元之間的連接數(shù),也就減少了參數(shù)量,起到了降低計(jì)算量的作用。675.4.2卷積運(yùn)算(2)權(quán)值共享。權(quán)值共享是指卷積核在滑過整個(gè)圖像時(shí),其參數(shù)是固定不變的。計(jì)算同一個(gè)通道的特征圖的不同窗口時(shí),卷積核中的權(quán)值是共享的,這樣可以極大地減少參數(shù)量。需要指出的是:同一卷積核只是針對(duì)同一通道的特征圖共享權(quán)值,不同濾波器在同一通道上的卷積核不共享權(quán)值,不同通道上的卷積核也不共享權(quán)值。一個(gè)濾波器的多個(gè)卷積核共享同一個(gè)偏置值。在CNN的隱藏層中,共享卷積核的參數(shù)可以減少學(xué)習(xí)參數(shù)的數(shù)量,降低處理高維數(shù)據(jù)的計(jì)算壓力。例如:AlexNet的參數(shù)有1億,采用共享權(quán)值后,減至6000萬。可見,卷積神經(jīng)網(wǎng)絡(luò)的兩個(gè)特點(diǎn)(局部連接和權(quán)值共享),都是減少學(xué)習(xí)參數(shù)量的方法。68卷積神經(jīng)網(wǎng)絡(luò)的局限性①訓(xùn)練網(wǎng)絡(luò)模型時(shí),不僅需要大量的訓(xùn)練樣本,還需要高性能算力,例如需要使用GPU,還需要花大量的時(shí)間調(diào)試超參數(shù);②所提取特征的物理含義不明確,即不知道每個(gè)卷積層提取到的特征表示什么含義,神經(jīng)網(wǎng)絡(luò)本身就是一種難以解釋的“黑箱模型”;③深度神經(jīng)網(wǎng)絡(luò)缺乏完備的數(shù)學(xué)理論證明,這也是深度學(xué)習(xí)一直面臨的問題,目前仍無法解決。695.4.3激活函數(shù)在多層CNN中,第i個(gè)卷積層的輸出與第i+1個(gè)卷積層的輸入之間有一個(gè)函數(shù)映射,即激活函數(shù)。激活函數(shù)是NN中的重要組成部分,它是對(duì)網(wǎng)絡(luò)層輸出的線性組合結(jié)果做非線性映射。若激活函數(shù)是線性函數(shù),則無論神經(jīng)網(wǎng)絡(luò)有多少層,整個(gè)網(wǎng)絡(luò)的功能等價(jià)于感知機(jī),網(wǎng)絡(luò)的逼近能力十分有限。激活函數(shù)的作用就是給網(wǎng)絡(luò)模型提供非線性的建模能力。在現(xiàn)代CNN中,每個(gè)卷積層后面都有非線性激活函數(shù),目的是向模型中加入非線性元素,以解決非線性問題。一般在同一個(gè)網(wǎng)絡(luò)中使用同一種激活函數(shù)。早期,CNN的隱藏層大多采用sigmoid函數(shù)作為激活函數(shù),自從2012年起,幾乎所有的CNN均采用ReLU系列函數(shù)做激活函數(shù)了。705.4.3激活函數(shù)1.ReLU函數(shù)ReLU是修正線性單元的簡(jiǎn)稱,是最常用的激活函數(shù)。AlexNet模型采用的激活函數(shù)是ReLU,從此ReLU成為深度神經(jīng)網(wǎng)絡(luò)模型中應(yīng)用最廣泛的激活函數(shù)。ReLU是一個(gè)簡(jiǎn)單的分段線性函數(shù),但從整體看,ReLU是一個(gè)非線性函數(shù):ReLU函數(shù)是分段可導(dǎo)的,并人為規(guī)定在0處的梯度為0,其導(dǎo)數(shù)形式如下:71ReLU函數(shù)的優(yōu)點(diǎn)(1)計(jì)算簡(jiǎn)單且快,求梯度簡(jiǎn)單,收斂速度比sigmoid與tanh函數(shù)快得多,ReLU僅需要做簡(jiǎn)單的閾值運(yùn)算。(2)S型函數(shù)在x趨近于正負(fù)無窮時(shí),函數(shù)的導(dǎo)數(shù)趨近于零,而ReLU的導(dǎo)數(shù)為0或常數(shù),在一定程度上緩解了梯度消失的問題。(3)ReLU具有生物上的可解釋性,有研究表明:人腦中同一時(shí)刻大概只有1%~4%的神經(jīng)元處于激活狀態(tài),同時(shí)只響應(yīng)小部分輸入信號(hào),屏蔽了大部分信號(hào)。sigmoid函數(shù)和tanh函數(shù)會(huì)導(dǎo)致形成一個(gè)稠密的神經(jīng)網(wǎng)絡(luò);而ReLU函數(shù)在x<0的負(fù)半?yún)^(qū)的導(dǎo)數(shù)為0,當(dāng)神經(jīng)元激活函數(shù)的值進(jìn)入負(fù)半?yún)^(qū)時(shí),該神經(jīng)元不會(huì)被訓(xùn)練,使得網(wǎng)絡(luò)具有稀疏性??梢?,ReLU只有大約50%的神經(jīng)元保持處于激活狀態(tài),引入了稀疏激活性,使神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí)會(huì)有更好的表現(xiàn)。72ReLU函數(shù)的缺點(diǎn)(1)ReLU函數(shù)的輸出是非零中心化的,使得后一層神經(jīng)網(wǎng)絡(luò)的偏置偏移,影響梯度下降的速度。(2)采用ReLU函數(shù),神經(jīng)元在訓(xùn)練時(shí)比較容易“死亡”,即在某次不恰當(dāng)?shù)馗聟?shù)后,所有輸入都無法激活某個(gè)神經(jīng)元,則該神經(jīng)元的梯度固定為0,導(dǎo)致無法更新參數(shù),而且在之后的訓(xùn)練中,此神經(jīng)元再也不會(huì)被激活,這種現(xiàn)象稱為“神經(jīng)元死亡”問題。在實(shí)際使用中,為了避免上述情況,提出了若干ReLU的變種,如LeakyReLU函數(shù)等。735.4.3激活函數(shù)2.LeakyReLU函數(shù)LeakyReLU稱為帶泄露的ReLU,簡(jiǎn)記為L(zhǎng)ReLU,它在ReLU梯度為0的區(qū)域保留了一個(gè)很小的梯度,以維持參數(shù)更新。LReLU函數(shù)的數(shù)學(xué)表達(dá)式:其中,α∈(0,1)是一個(gè)很小的常數(shù),如0.01,當(dāng)α<1時(shí),LReLU也可以寫作:LReLU函數(shù)的導(dǎo)數(shù)形式為:LReLU函數(shù)的導(dǎo)數(shù)總是不為零,解決了一部分神經(jīng)元死亡的問題。但在實(shí)際使用的過程中,LReLU函數(shù)并非總是優(yōu)于ReLU函數(shù)。745.4.4池化運(yùn)算池化是一種非線性下采樣,池化層也稱為下采樣層。最常見的池化運(yùn)算采用大小為2×2、步長(zhǎng)為2的滑動(dòng)窗口操作,有時(shí)窗口尺寸為3,更大的窗口尺寸比較罕見。實(shí)際上,池化也是一個(gè)特殊的卷積運(yùn)算,它與普通卷積的區(qū)別有以下兩點(diǎn):①池化卷積核的步長(zhǎng)等于卷積核的大小,即s=F,稱為不重疊的池化;②池化卷積核的權(quán)重不是通過學(xué)習(xí)獲得的,而是允許人為選擇進(jìn)行下采樣的方式,所以,池化核的權(quán)重不是學(xué)習(xí)參數(shù)。兩種常用的池化運(yùn)算最大池化(MaxPooling),它取滑窗內(nèi)所有元素中的最大值;平均池化(AveragePooling),它取滑窗內(nèi)所有元素的平均值。755.4.4池化運(yùn)算圖5.19兩種池化運(yùn)算平均池化操作可以較好地保留圖像的背景信息,但是圖像中的物體邊緣會(huì)被鈍化。最大池化操作可以更清晰地保留圖像的紋理信息,在提取目標(biāo)輪廓等特征時(shí)會(huì)更有效。

765.4.4池化運(yùn)算池化層夾在連續(xù)的“卷積層+ReLU”組合塊中間,其作用如下。(1)保持尺度不變性。池化操作是對(duì)特征圖中的元素進(jìn)行選擇,保留圖像的重要特征,去掉一些冗余的信息,保留下來的信息具有尺度不變性的特征,可以很好地表達(dá)圖像的特征。(2)降低特征維度。池化操作分別獨(dú)立作用于特征圖的每個(gè)通道上,降低所有特征圖層的寬度和高度,但不改變圖像的深度(通道數(shù))。可以起到降低特征維度、防止過擬合的作用,同時(shí)可以減少參數(shù)量和計(jì)算開銷。775.5本章小結(jié)1.感知機(jī)與神經(jīng)網(wǎng)絡(luò)神經(jīng)元的數(shù)學(xué)模型—MP模型包括線性組合和非線性激活函數(shù)兩部分。感知機(jī)的結(jié)構(gòu)與MP模型相同,但有以下兩點(diǎn)不同之處:①采用的激活函數(shù)不同,MP模型采用階躍函數(shù),感知機(jī)采用sigmoid函數(shù);②MP模型的參數(shù)都是人為設(shè)定的,沒有“學(xué)習(xí)”的機(jī)制;而感知機(jī)中引入了“學(xué)習(xí)”的概念,參數(shù)都是通過學(xué)習(xí)得到的。感知機(jī)是單層人工神經(jīng)網(wǎng)絡(luò),不含隱藏層;而多層人工神經(jīng)網(wǎng)絡(luò)包含至少一個(gè)隱藏層。根據(jù)神經(jīng)元之間的連接范圍,多層人工神經(jīng)網(wǎng)絡(luò)分為全連接神經(jīng)網(wǎng)絡(luò)和部分連接神經(jīng)網(wǎng)絡(luò)。根據(jù)網(wǎng)絡(luò)層之間的連接方式,多層人工神經(jīng)網(wǎng)絡(luò)分為前饋神經(jīng)網(wǎng)絡(luò)和反饋神經(jīng)網(wǎng)絡(luò)。785.5本章小結(jié)2.BP神經(jīng)網(wǎng)絡(luò)及其學(xué)習(xí)算法BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),由于前饋神經(jīng)網(wǎng)絡(luò)大多采用反向傳播學(xué)習(xí)算法進(jìn)行訓(xùn)練模型,故被稱為BP神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)是指利用訓(xùn)練數(shù)據(jù)集不斷地修改神經(jīng)網(wǎng)絡(luò)的所有連接權(quán)值和偏置值,使神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出盡可能逼近真實(shí)值(GroundTruth)??梢?,BP學(xué)習(xí)算法是一種有監(jiān)督學(xué)習(xí)。

BP學(xué)習(xí)算法包括正向傳播和反向傳播兩個(gè)階段。795.5

本章小結(jié)3.卷積神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)是一種特殊的多層前饋神經(jīng)網(wǎng)絡(luò),常用于監(jiān)督學(xué)習(xí)。卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括一個(gè)輸入層、多個(gè)“卷積層+ReLU層+池化層(池化層有時(shí)可以省略)”組合塊、多個(gè)連續(xù)的全連接層(中間不加激活函數(shù))、一個(gè)采用softmax函數(shù)的輸出層。卷積運(yùn)算前后特征圖尺寸的變化可通過公式計(jì)算。卷積神經(jīng)網(wǎng)絡(luò)具有局部連接和權(quán)值共享的特點(diǎn)。每個(gè)卷積層可以有多個(gè)濾波器,一個(gè)濾波器就是一個(gè)神經(jīng)元,一個(gè)濾波器可以包含多個(gè)卷積核,一個(gè)濾波器內(nèi)的多個(gè)卷積核共用一個(gè)偏置值。池化層的作用是保持尺度不變性和降低特征維度。激活函數(shù)必須是非線性的,目的是大幅度提升深度神經(jīng)網(wǎng)絡(luò)的表達(dá)能力,用以逼近任何函數(shù),提供非線性的建模能力。每個(gè)卷積層后面都有一個(gè)激活函數(shù)。80人工智能基礎(chǔ)及應(yīng)用第6章典型卷積神經(jīng)網(wǎng)絡(luò)826.1LeNet

6.2AlexNet

6.3VGG

6.4GoogLeNet/Inception

6.5ResNet6.6DenseNet本章學(xué)習(xí)目標(biāo)

掌握LeNet-5模型的結(jié)構(gòu)及特點(diǎn)。

掌握AlexNet模型的結(jié)構(gòu)及特點(diǎn)。了解VGGNet、GoogLeNet、ResNet、DenseNet的

結(jié)構(gòu)及特點(diǎn)。836.1LeNet846.1.1LeNet模型的發(fā)展歷程1987—1988年,楊樂昆在辛頓教授的實(shí)驗(yàn)室做博士后,開始研究CNN。構(gòu)建了Net-1、Net-2、Net-3、Net-4、Net-5五種不同結(jié)構(gòu)的模型。當(dāng)時(shí)還沒有MNIST數(shù)據(jù)集,他用鼠標(biāo)畫了一些數(shù)字,用數(shù)據(jù)增強(qiáng)技術(shù)擴(kuò)充了數(shù)據(jù)量,形成480張大小為16×16二值圖像。然后用這個(gè)數(shù)據(jù)集訓(xùn)練和測(cè)試5種模型識(shí)別手寫體數(shù)字的效果,其中Net-5是局部連接且共享參數(shù)的網(wǎng)絡(luò),即第一代卷積神經(jīng)網(wǎng)絡(luò),包含1個(gè)輸入層、2個(gè)卷積層和1個(gè)輸出層。1988年10月,楊樂昆加入AT&T貝爾實(shí)驗(yàn)室,那里的USPS數(shù)據(jù)集包括5000個(gè)訓(xùn)練樣本。他用三個(gè)月擴(kuò)大了模型規(guī)模,訓(xùn)練了一個(gè)CNN,其效果比AT&T實(shí)驗(yàn)室或外部人員嘗試過的所有方法都好。6.1.1LeNet模型的發(fā)展歷程851989年,楊樂昆及同事合作發(fā)表了論文《反向傳播在手寫郵政編碼中的應(yīng)用》,第一次使用了“卷積”(convoluation)和“核”(kernel)的術(shù)語。且明確說明:本文設(shè)計(jì)的網(wǎng)絡(luò)是在Net-5的基礎(chǔ)上增加了1個(gè)全連接層,采用了帶有步長(zhǎng)移動(dòng)的卷積運(yùn)算,但沒有單獨(dú)的池化層,每個(gè)卷積直接進(jìn)行下采樣。這樣設(shè)計(jì)的原因是因?yàn)楫?dāng)時(shí)的計(jì)算機(jī)無法承擔(dān)每個(gè)點(diǎn)都有一個(gè)卷積的計(jì)算量。采用BP學(xué)習(xí)算法和隨機(jī)梯度下降(stochasticgradientdescent)法訓(xùn)練模型。這就是第一個(gè)版本的卷積神經(jīng)網(wǎng)絡(luò)。1990年,楊樂昆等人在NIPS上又發(fā)表了《利用反向傳播網(wǎng)絡(luò)完成手寫數(shù)字識(shí)別》。該文中構(gòu)建的CNN包含1個(gè)輸入層、2個(gè)卷積層、2個(gè)平均池化層和1個(gè)輸出層。這就是第二個(gè)版本的卷積神經(jīng)網(wǎng)絡(luò),即LeNet-1。6.1.1LeNet模型的發(fā)展歷程86后來,楊樂昆等人又在LeNet-1的基礎(chǔ)上分別增加了1個(gè)全連接層和2個(gè)全連接層,形成了LeNet-4和LeNet-5。當(dāng)時(shí)這項(xiàng)技術(shù)僅在AT&T內(nèi)部應(yīng)用,幾乎沒有在外部使用。直到1995年,被AT&T的一支產(chǎn)品團(tuán)隊(duì)將LeNet模型嵌入到能讀取支票的ATM機(jī)等設(shè)備中,用于識(shí)別銀行支票上的手寫體數(shù)字,隨后被部署到美國(guó)的一家大型銀行1。基于這個(gè)成功的商業(yè)應(yīng)用案例。1998年,楊樂昆等人發(fā)表了《應(yīng)用于文檔識(shí)別的基于梯度學(xué)習(xí)》,該文給出了著名的LeNet-5模型的結(jié)構(gòu)圖,使得LeNet-5模型廣為人知,即現(xiàn)在引為經(jīng)典的LeNet卷積神經(jīng)網(wǎng)絡(luò)。6.1.2

LeNet-5模型的結(jié)構(gòu)87LeNet-5采用MNIST數(shù)據(jù)集,其中共有70000張28×28的灰度圖像。為了使圖像邊緣的筆畫出現(xiàn)在卷積核感受野的中心,將原圖像填充兩圈零值像素,使之成為大小為

32×32的灰度圖像。LeNet-5模型的學(xué)習(xí)目標(biāo):從給定的32×32灰度圖像中識(shí)別出手寫體數(shù)字的類別。LeNet-5的網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示,包括1個(gè)輸入層、2個(gè)卷積層、2個(gè)池化層、2個(gè)全連接層和1個(gè)輸出層。MNIST數(shù)據(jù)集88美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所,NationalInstituteofStandardsandTechnology,簡(jiǎn)稱NISTMNIST數(shù)據(jù)集(MixedNationalInstituteofStandardsandTechnologydatabase)是從NIST的兩個(gè)手寫數(shù)字?jǐn)?shù)據(jù)集:SpecialDatabase3和SpecialDatabase1中分別取出部分圖像,并經(jīng)過一些圖像處理后得到的。MNIST數(shù)據(jù)集共有70000張已標(biāo)注的手寫體數(shù)字圖像,所有圖像都是28×28的灰度圖像,每張圖像只包含一個(gè)手寫數(shù)字(0~9),共10個(gè)類別。訓(xùn)練集包括60000張圖像,其中30000張來自NIST的SpecialDatabase3,30000張來自NIST的SpecialDatabase1。測(cè)試集包括10000張圖像,其中5000張來自NIST的SpecialDatabase3,5000張來自NIST的SpecialDatabase1。89MNIST數(shù)據(jù)集—示例將28*28

的圖像填充為32*32,即pad=2。將32×32×1灰度圖像輸入到LeNet-5,識(shí)別0-9。

C1卷積層:輸入32×32×1的灰度圖采用6個(gè)5×5卷積核(深度為1的濾波器),步長(zhǎng)為1輸出:28×28×6【(32-5)/1+1=28】。參數(shù)量:(5×5+1偏置)*6=156連接數(shù):(5×5+1)×28×28×6=122304

S2池化層:輸入28×28×6的特征圖采用大小為2×2、步長(zhǎng)為2的不重疊的滑動(dòng)窗口做平均池化輸出:14×14×6【(28-2)/2+1=14】。參數(shù)量:

(1+1偏置)×6=12個(gè)參數(shù)(平均池化)連接數(shù):(2×2+1個(gè)偏置)×14×14×6=5880LeNet-5的結(jié)構(gòu)

C3卷積層:輸入14×14×6(即S2的輸出);輸出:10×10×16【14-5+1=10】C3層采用16個(gè)5*5的濾波器,C3的每個(gè)濾波器與S2中的多個(gè)(不是所有)特征圖相連,即S2與C3不是全連接。這16個(gè)濾波器的深度各不相同,有6個(gè)深度為3,9個(gè)深度為4,1個(gè)深度為6,連接的方式如下表所示。參數(shù)量:C3層該層有(5x5x3+1)x6+(5x5x4+1)x9+(5x5x6+1)x1=1516個(gè)訓(xùn)練參數(shù)連接數(shù):共有1516x10x10=151600

S4池化層:輸入10x10x16特征圖采用大小為2x2、步長(zhǎng)為2的不重疊的滑動(dòng)窗口做平均池化輸出5x5x16。參數(shù)量:(1+1)*16=32連接數(shù):(2x2+1個(gè)偏置)x5x5x16=2000。連接的方式與S2層類似,如下圖所示。

C5卷積操層,也是全連接層(但不寫作F5):輸入5

×5×16采用120個(gè)

5×5×16的濾波器;輸出:1

×1×120,即120個(gè)分量的1維向量。每個(gè)濾波器都與S4層的16個(gè)圖層全部相連,所以是全連接。參數(shù)量:(5×5

×16+1)x120=48120連接數(shù):同參數(shù)量,即48120。F6全連接層:輸入1

×1×120。包含84個(gè)1×1×120的神經(jīng)元輸出:1×1×84,形成一個(gè)7x12的比特圖(可識(shí)別ASCII集中的字符)該層的參數(shù)量和連接數(shù)都是(120+1)x84=10164.

輸出層(全連接層):輸入1×1×84共有10個(gè)節(jié)點(diǎn),即10個(gè)(1×1×84)的濾波器,分別代表數(shù)字0到9,若節(jié)點(diǎn)i的輸出值為0,則所輸入的字符被網(wǎng)絡(luò)識(shí)別為數(shù)字i。采用徑向基函數(shù)(RBF)作為激活函數(shù)。

此值不是概率,選擇最小值所對(duì)應(yīng)的類別參數(shù)量和連接數(shù)均為(84+1)×10=850可見,yi越接近于0,則表明yi的輸入越接近數(shù)字i的比特圖編碼{wij,j=0…83},當(dāng)前輸入的字符應(yīng)該被識(shí)別為數(shù)字i。在現(xiàn)在的深度學(xué)習(xí)框架中,通常采用

softmax函數(shù)取代RBF函數(shù),用以輸出分類的概率。LeNet-5模型中共有60,850個(gè)訓(xùn)練參數(shù),340,918個(gè)連接。6.2AlexNet952011年,ILSVRC比賽中圖像分類的最好成績(jī):top-5錯(cuò)誤率為25.8%。2012年AlexNet奪得圖像分類任務(wù)的冠軍,top-5錯(cuò)誤率為15.3%,比同年第二名的26.2%低了近10個(gè)百分點(diǎn)KrizhevskyA,SutskeverI,HintonG.ImageNetclassificationwithdeepconvolutionalneuralnetworks[C]//AdvancesinNeuralInformationProcessingSystens,2012:1097-1105.ImageNet數(shù)據(jù)集96ImageNet是一個(gè)用于視覺對(duì)象識(shí)別研究的大型圖像數(shù)據(jù)庫,是由斯坦福大學(xué)李飛飛教授帶領(lǐng)其研究團(tuán)隊(duì)于2007年起開始構(gòu)建的。他們從互聯(lián)網(wǎng)上下載圖片,手工分類、注釋了超過1400萬張圖像,并且在至少一百萬張圖像中提供了對(duì)象的邊界框。其中包括大約22000個(gè)類別,如“氣球”、“草莓”等。ILSVRC是國(guó)際上視覺領(lǐng)域最具權(quán)威的學(xué)術(shù)競(jìng)賽之一,代表了圖像領(lǐng)域的最高水平,始于2010年,2017年舉辦了最后一屆。圖像分類比賽使用ImageNet數(shù)據(jù)集的一個(gè)子集,總共包括1000類圖像。ImageNet圖像分類比賽以top-5錯(cuò)誤率作為評(píng)價(jià)指標(biāo),即為每幅圖像預(yù)測(cè)5個(gè)標(biāo)簽類別,只要其中一個(gè)標(biāo)簽與人工標(biāo)注的類別相同,則視為預(yù)測(cè)正確,否則視為預(yù)測(cè)錯(cuò)誤。ImageNet圖像分類大賽歷年的top-5錯(cuò)誤率97ZFNet-8XRCENEC-UIUC15.36.2.1AlexNet模型的結(jié)構(gòu)AlexNet與LeNet-5在網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)上的差別并不大,但GPU的出現(xiàn)和ImageNet龐大數(shù)據(jù)量的助力,促使AlexNet表現(xiàn)出了卓越的性能。AlexNet是一個(gè)8層的深度神經(jīng)網(wǎng)絡(luò)。池化層和局部響應(yīng)歸一化層(LocalResponseNormalization,LRN)不計(jì)入層數(shù)。前5層為卷積層,后3層為全連接層,最后一個(gè)全連接層也是輸出層。分別在第一、二、五層這3個(gè)卷積層后面增加了最大池化層。受當(dāng)時(shí)GPU算力的限制,整個(gè)網(wǎng)絡(luò)模型被一分為二,分別在兩塊顯存為3GB的NVIDIAGTX580GPU上實(shí)現(xiàn)了快速卷積運(yùn)算,兩個(gè)GPU只在某些特定的網(wǎng)絡(luò)層(C3、F6和F7)上通信。986.2.1AlexNet模型的結(jié)構(gòu)99

C1層:輸入224×224×3的彩色圖96個(gè)11×11×3、s=4的濾波器分為2組,無填充(即p=0)分別在兩個(gè)獨(dú)立的GPU上進(jìn)行卷積運(yùn)算,輸出2組:55×55×48然后,采用ReLU作為激活函數(shù),又進(jìn)行局部響應(yīng)歸一化操作,輸出2組:55×55×48。執(zhí)行重疊的最大池化(3×3,s=2)操作,得到2組:27×27×48

C2層:輸入2組27×27×48的特征圖256個(gè)5×5×48、s=1的濾波器分為2組,有填充(p=2)分別在兩個(gè)獨(dú)立的GPU上進(jìn)行卷積運(yùn)算,輸出2組:

27×27×128然后,采用ReLU作為激活函數(shù),又進(jìn)行局部響應(yīng)歸一化操作,輸出2組:27×27×128。執(zhí)行重疊的最大池化(3×3,s=2)操作,得到2組:13×13×128AlexNet模型的結(jié)構(gòu)(1)

C4層:輸入2組13×13×192的特征圖384個(gè)3×3×192、s=1的濾波器分為2組,有填充(p=1)分別在兩個(gè)獨(dú)立的GPU上進(jìn)行卷積運(yùn)算,輸出2組:

13×13×192然后,采用ReLU作為激活函數(shù),輸出2組:13×13×192AlexNet模型的結(jié)構(gòu)(2)

C3層:輸入2組13×13×192的特征圖C2層輸出的兩組13×13×128特征圖(共計(jì)256層特征)共同參與每個(gè)GPU上的卷積運(yùn)算,故C3層上濾波器的深度為256.384個(gè)3×3×256、s=1的濾波器分為2組,有填充(p=1)分別在兩個(gè)獨(dú)立的GPU上進(jìn)行卷積運(yùn)算,輸出2組:13×13×192然后,采用ReLU作為激活函數(shù),輸出2組:13×13×192

F6是第1個(gè)全連接層:輸入2組6×6×128的特征圖C5層輸出2組6×6×128的特征圖,共同參與F6層每個(gè)GPU上的全連接操作,故F6層上濾波器的深度為256。4096個(gè)6×6×256、s=1的濾波器分為2組,無填充分別在兩個(gè)獨(dú)立的GPU上進(jìn)行卷積運(yùn)算,輸出2組:

1×1×2048然后,采用ReLU作為激活函數(shù),輸出2組:1×1×2048,共計(jì)4096個(gè)神經(jīng)元。再以0.5的概率對(duì)這4096個(gè)神經(jīng)元采用隨機(jī)失活(dropout)技術(shù),目的是使某些神經(jīng)元不參與訓(xùn)練,以避免發(fā)生過擬合。AlexNet模型的結(jié)構(gòu)(3)

C5層:輸入2組13×13×192的特征圖256個(gè)3×3×192、s=1的濾波器分為2組,有填充(即p=1)分別在兩個(gè)獨(dú)立的GPU上進(jìn)行卷積運(yùn)算,輸出2組:13×13×128然后,采用ReLU作為激活函數(shù),輸出2組:

13×13×128執(zhí)行重疊的最大池化(3×3,s=2)操作,得到2組:6×6×128

F7是第2個(gè)全連接層:輸入2組1×1×2048的特征圖F7層包含4096個(gè)1×1神經(jīng)元F6層的4096個(gè)神經(jīng)元與F7層的4096個(gè)神經(jīng)元進(jìn)行全連接。F7層采用ReLU作為激活函數(shù),仍以0.5的概率對(duì)F7層的4096個(gè)神經(jīng)元采用dropout技術(shù),輸出4096個(gè)數(shù)值。AlexNet模型的結(jié)構(gòu)(4)輸出層是第3個(gè)全連接層:輸入4096個(gè)數(shù)值

包含1000個(gè)神經(jīng)元,分別對(duì)應(yīng)于1000個(gè)圖像類別。

F7層的4096個(gè)神經(jīng)元與輸出層的1000個(gè)神經(jīng)元進(jìn)行全連接。

輸出層采用softmax函數(shù)作為激活函數(shù),輸出1000個(gè)在[0,1]的數(shù)值,分別表示屬于所對(duì)應(yīng)類別的概率。輸入圖像被歸入最大概率值所對(duì)應(yīng)的類別。AlexNet模型中共計(jì)60965128個(gè)參數(shù),約是LeNet-5模型參數(shù)量(60850個(gè))的1000倍。6.2.2AlexNet模型的創(chuàng)新性(1)采用ReLU函數(shù)作激活函數(shù),可提高網(wǎng)絡(luò)的收斂速度。(2)采用重疊池化,可提高精度,防止過擬合。(3)訓(xùn)練網(wǎng)絡(luò)時(shí)采用dropout技術(shù),用以減少過擬合。(4)采用LRN技術(shù),可防止過擬合,增強(qiáng)模型的泛化能力。(5)在兩個(gè)GPU上同時(shí)訓(xùn)練,提高訓(xùn)練速度。(6)利用數(shù)據(jù)增強(qiáng),擴(kuò)充數(shù)據(jù)集,以減少過擬合,提升泛化能力。另外,AlexNet的成功還首次證明了機(jī)器學(xué)習(xí)的特征可以取代手工設(shè)計(jì)的特征,研究者們無需花費(fèi)大量精力和時(shí)間去設(shè)計(jì)各種特征。AlexNet標(biāo)志著從淺層網(wǎng)絡(luò)跨越到深層網(wǎng)絡(luò)的里程碑。104

3.VGG

105牛津大學(xué)的視覺幾何組(VisualGeometryGroup,VGG)2014年ILSVRC競(jìng)賽圖像分類任務(wù)的亞軍,Top5錯(cuò)誤率為7.32%2014年ILSVRC競(jìng)賽目標(biāo)定位任務(wù)的冠軍6.3.1VGG

模型的結(jié)構(gòu)VGGNet模型在LeNet-5和AlexNet模型結(jié)構(gòu)的基礎(chǔ)上引入了“模塊化”的設(shè)計(jì)思想:將若干個(gè)相同的網(wǎng)絡(luò)層組合成一個(gè)模塊,再用模塊組裝成完整的網(wǎng)絡(luò),而不再是以“層”為單元組裝網(wǎng)絡(luò)。VGGNet模型的研究人員給出了5種不同的VGGNet配置,如表6.1所示,分別用A~E來表示。106107模型E就是著名的VGG-19網(wǎng)絡(luò)。模型D則是廣為人知的VGG-16。這里的層數(shù)是指卷積層與全連接層的層數(shù)之和,不包括池化層。

VGG的五種配置

五種VGGNet模型配置的共同點(diǎn)輸入ImageNet數(shù)據(jù)集中的RGB圖像樣本,每張圖像的尺寸被裁剪為224×224,并對(duì)圖像進(jìn)行了零均值化的預(yù)處理操作,即圖像中每個(gè)像素均減去所有像素的均值。由5個(gè)卷積模塊和1個(gè)全連接模塊組成,每個(gè)卷積模塊由1~4個(gè)卷積層構(gòu)成,全連接模塊由3個(gè)全連接層構(gòu)成。幾乎所有卷積核都是大小為3×3、步長(zhǎng)為1,只有模型C用了3個(gè)1×1的卷積核,其目的是為了增加非線性表達(dá)能力和減少模型的參數(shù)量。做卷積運(yùn)算時(shí),采用“相同填充”(即padding=same)方式,保證卷積運(yùn)算前、后的特征圖的大小相同,即輸入特征圖與輸出特征圖的尺寸相同。在每個(gè)卷積層后面都采用ReLU作為激活函數(shù)。五種VGGNet模型配置的共同點(diǎn)5.每個(gè)卷積模塊的最后一層之后都會(huì)有一個(gè)最大池化層,用以縮小特征圖的尺寸。池化層均采用大小為2×2、步長(zhǎng)為2的不重疊方式,使得特征圖的寬和高是原來的一半。6.特征圖的尺寸在卷積模塊內(nèi)不是變的,但每經(jīng)過一次池化,特征圖的高度和寬度減少一半,為了彌補(bǔ)特征量的減少,其通道數(shù)增加一倍,分別為64、128、512。7.全連接模塊的前兩層均包含4096個(gè)神經(jīng)元,使用ReLU作激活函數(shù),且使用Dropout技術(shù),用以防止過擬合;第三個(gè)全連接層是輸出層,包含1000個(gè)神經(jīng)元,采用Softmax作為激活函數(shù),輸出1000個(gè)[0,1]區(qū)間的概率值,分別對(duì)應(yīng)于1000個(gè)圖像類別。VGG-19網(wǎng)絡(luò)的19層是指卷積層與全連接層的層數(shù)之和,不包括池化層。模型D則是廣為人知的VGG-16。VGG-16和VGG-19并沒有本質(zhì)上的區(qū)別,只是網(wǎng)絡(luò)深度不同,前者有16層(13層卷積、3層全連接),后者有19層(16層卷積、3層全連接)。VGG-166.3.2VGGNet模型的優(yōu)勢(shì)人們的直觀感受是:卷積核的感受野越大,看到的圖像信息就越多,獲得的特征就越豐富,則模型的效果就越好,但參數(shù)量和計(jì)算量也越大。如何平衡卷積核感受野大小與參數(shù)量/計(jì)算量大小之間的關(guān)系呢?值得慶幸的是:VGGNet研究人員發(fā)現(xiàn):兩個(gè)級(jí)聯(lián)的3×3卷積核的感受野相當(dāng)于一個(gè)5×5卷積核的感受野,三個(gè)級(jí)聯(lián)的3×3卷積核的感受野相當(dāng)于一個(gè)7×7卷積核的感受野。111選擇3×3卷積核的兩個(gè)好處VGGNet選擇了3×3的卷積核,這樣做有以下兩個(gè)好處。(1)若干個(gè)小尺寸卷積核的參數(shù)量要遠(yuǎn)遠(yuǎn)小于一個(gè)相同感受野的大尺寸卷積核的參數(shù)量。例如,為方便計(jì)算,假設(shè)每個(gè)卷積層的輸入特征圖與輸出特征圖的通道數(shù)相同,均為C,則三個(gè)級(jí)聯(lián)的3×3卷積核的參數(shù)量為(3×3×C×C)×3個(gè),而一個(gè)7×7卷積核中的參數(shù)量為(7×7×C×C)個(gè),顯然,前者的參數(shù)量只是后者的55.6%。(2)每

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論