




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
人工智能基礎及應用第5章人工神經網絡5.1人工神經網絡的發展歷程5.2感知機與神經網絡5.3BP神經網絡及其學習算法5.4卷積神經網絡2本章學習目標
了解人工神經網絡的發展歷程。理解感知機的工作原理和局限性。掌握BP神經網絡的結構和BP學習算法。
掌握卷積神經網絡的結構和運算過程。3第5章人工神經網絡4深度學習(DeepLearning)是機器學習的一個分支,而機器學習又是實現人工智能的必經路徑,故而人工智能、機器學習和深度學習之間是依次包含的關系。人工智能的研究內容包括:機器學習、知識工程、搜索策略、推理、規劃、模式識別、組合調度問題、機器人學等。傳統機器學習的研究方向主要包括:人工神經網絡、決策樹、隨機森林、支持向量機、貝葉斯學習、關聯規則、Boosting與Bagging集成學習算法等,而深度學習的概念正是起源于人工神經網絡(ArtificialNeuralNetwork,ANN)。由于深度學習在計算機視覺、語音識別、機器翻譯、圖像處理、自然語言處理等方面獲得成功應用,人工神經網絡的研究熱度反而超過了其他傳統方法,在機器學習研究中占據了主流的地位。55.1人工神經網絡的發展歷程(1)1943年,第一個人工神經元模型MP模型。MP模型沒有學習機制,是最早的人工神經網絡雛形。1949年,赫布提出了赫布理論,即“突觸前神經元向突觸后神經元的持續重復的刺激,可以導致突觸傳遞效能的增加。”即:突觸前給的刺激越強,突觸后的反應越大。受到赫布理論的啟發,1957年,美國心理學家羅森布拉特(Rosenblatt)提出了感知機(Perceptron),這是第一個人工神經網絡。為感知機設計了第一個神經網絡學習算法,首次將神經網絡研究從純理論探討推向工程實現。感知機本質是一種僅包含輸入層和輸出層的二元線性分類器,也稱為單層神經網絡。感知機的輸入層可以包含多個單元,而輸出層只有一個單元。65.1人工神經網絡的發展歷程(2)與MP模型不同的是,感知機模型可以利用學習算法自動更新輸入的權重和閾值。此后,神經網絡的研究進入了第一次高潮。1969年,明斯基與帕普特的《感知機:計算幾何導論》指出了感知機的局限性,使人工智能的連接主義研究流派陷入了長達10多年的低谷期。1974年,哈佛大學的韋伯斯在其博士論文中提出利用反向傳播算法訓練多層神經網絡,但幾乎無人了解這項研究成果。1980年,日本學者福島邦彥(KunihikoFukushima)提出了名為“Neocognitron”的神經網絡,被認為是最早的研究卷積神經網絡的工作,也是最早的深度神經網絡模型之一。為此,福島邦彥獲得了2021年鮑爾科學成就獎,以表彰其對深度學習的巨大貢獻,尤其是他提出的極具影響力的卷積神經網絡架構。75.1人工神經網絡的發展歷程(3)1982年,霍普菲爾德教授提出Hopfield神經網絡,可用于實現聯想記憶和優化計算,在旅行商問題上獲得了突破。尤其是1984年又用模擬集成電路實現了Hopfield神經網絡,有力地推動了神經網絡的研究,連接主義迎來了第二次高潮。受此啟發,辛頓于1984年提出了一種隨機型的Hopfield網絡,即玻爾茲曼機。它是一種反饋神經網絡,借鑒了模擬退火法的思想,具有一定的“跳出局部最優”的能力。玻爾茲曼機的特點是:一是包含顯層與隱層兩層結構,顯層代表輸入和輸出,隱層則被理解為數據的內部表達;二是其神經元是布爾型的,即只能取0或1值。85.1人工神經網絡的發展歷程(4)1986年,魯梅爾哈特、辛頓和威廉姆斯重新獨立地提出了BP算法,采sigmoid函數作為激活函數,可解決多層NN中參數優化的問題,且成功解決了非線性分類問題,使得BP算法傳播甚廣。1989年,楊樂昆采用BP算法訓練LeNet系列的CNN,并將其成功應用于美國郵政、銀行支票上手寫數字的識別。LeNet-5模型成為現代CNN的基礎。楊樂昆被譽為“卷積神經網絡之父”。但BP算法存在梯度消失、梯度爆炸等問題,且當時算力不足,BP算法只適合于訓練淺層神經網絡。1995年,萬普尼克于提出了支持向量機,SVM可通過核技巧將非線性問題轉換成線性問題,其理論基礎清晰、證明完備、可解釋性好,獲得了廣泛的認同。同時,統計機器學習專家從理論角度懷疑NN的泛化能力,使得神經網絡的研究第二次陷入低谷。95.1人工神經網絡的發展歷程(5)進入21世紀,有了大數據和算力,神經網絡的研究迎來了第三次高潮。2006年,辛頓教授等人首次提出了“深度信念網絡”(DeepBeliefNetwork),它是由多個受限玻爾茲曼機(RestrictedBoltzmannMachine)串聯堆疊而組成的一個深度網絡。深度信念網絡在分類任務上的性能超過了傳統經典的淺層學習模型(如支持向量機),引起了學術圈的廣泛關注。隨著神經網絡層數的不斷加深,辛頓將這種深層神經網絡上的學習方法命名為“深度學習”。從此,連接主義研究學派開始大放異彩。通常,將包含多個(大于3即可)隱藏層的人工神經網絡稱為深度神經網絡,在這樣的網絡上學習的過程稱為深度學習。105.1人工神經網絡的發展歷程(6)2012年,辛頓教授及其學生提出AlexNet模型,在ILSVRC比賽的圖像分類組一舉奪魁。從此深度學習在學術圈和產業界均得到廣泛關注。深度學習發展至今,神經網絡的層數不斷加深,模型性能不斷提升,甚至在圖像分類任務上的能力已超過了人類。2010至2017年間,ImageNet圖像分類的top-5(即排名前5的分類標簽)錯誤率從28%降到了3%,目標識別的平均準確率從23%上升到了66%。此外,深度學習方法在自然語言處理、機器翻譯、無人駕駛、語音識別、生物信息學、醫學影像分析與金融大數據分析等方面也都有廣泛的、成熟的應用。115.2感知機與神經網絡科學家受到人腦或生物神經元結構和學習機制的啟發,提出了人工神經元的數學模型,又在此基礎上增加了學習機制,研制出了可運行的感知機,即單層人工神經網絡。最后,將若干個感知機連接在一起,形成了人工神經網絡。人工神經網絡,簡稱神經網絡(NeuralNetwork,NN)或類神經網絡,是模擬人腦或生物神經網絡的學習機制而建立起來的一種運算模型。它由大量簡單的信息處理單元按照一定拓撲結構相互連接而組成人工網絡。125.2.1生物神經元結構生物學家早在20世紀初就發現了生物神經元的結構,神經元(Neuron)也稱為神經細胞。圖5.1生物神經元結構13生物神經元的兩種狀態興奮狀態當傳入的神經沖動使細胞膜電位升高超過一個“閾值”時,該細胞就會被激活,進入興奮狀態,產生神經沖動,并由軸突經過突觸輸出;抑制狀態當傳入的神經沖動使細胞膜電位下降到低于一個“閾值”時,該細胞就進入抑制狀態,不輸出神經沖動。145.2.2神經元數學模型—MP模型人工神經元是構成人工神經網絡的基本單位,它模擬生物神經元的結構和特性,可以接收一組輸入信號,并產生輸出。1943年提出的MP模型是模仿生物神經元結構而建立的第一個人工神經元數學模型。圖5.2神經元數學模型(MP模型)+1155.2.2神經元數學模型—MP模型
階躍函數的缺陷:不連續、不平滑,它在0點處的導數是無窮大,除了0點處之外,導數都是0,這意味著:若學習算法采用基于梯度的優化方法,是不可行的。165.2.2神經元數學模型—MP模型在MP模型中引入激活函數的目的是:用于模擬生物神經元的工作機制,當電位高于一個設定的閾值時,則進入興奮狀態,輸出信號;否則進入抑制狀態,不輸出信號。MP模型中的輸入和輸出數據只能是二值化數據0或1,而且網絡中的權重、閾值等參數都需要人為設置,無法從數據中學習得到。MP模型的激活函數是一個簡單的階躍函數。MP模型只能處理一些簡單的分類任務,例如線性二分類問題,但無法解決線性不可分問題。175.2.3感知機由一個神經元構成的神經網絡稱為感知機,也稱為單層神經網絡。1957年提出的感知機是第一個工程實現的人工神經網絡,可以運行感知機學習算法來訓練模型。感知機是一種簡單的非線性神經網絡,是人工神經網絡的基礎。感知機只包含輸入層和輸出層,其輸入層可以包含多個單元,而輸出層只有一個單元。感知機通過采用有監督學習來逐步增強模式分類的能力,達到學習的目的。18感知機與MP模型的異同點從本質上說,感知機與MP模型沒有太大的區別,兩者的結構相同,計算過程也相同,都能完成線性可分的二分類任務,也都無法解決線性不可分問題。但MP模型與感知機的不同之處在于:①MP模型沒有“學習”的機制,其權值w和偏置θ都是人為設定的;而感知機引入了“學習”的概念,權值w和偏置θ是通過學習得到的,并非人為設置的,在一定程度上模擬了人腦的“學習”功能,這也是兩者最大的區別。②兩者采用的激活函數不同,MP模型采用階躍函數作為激活函數,而感知機通常采用sigmoid函數作為激活函數。191.sigmoid函數
sigmoid函數,現在專指logistic函數。特點:具有平滑性、連續性、單調性和漸近性,且連續可導。2012年前,sigmoid是最常用的非線性激活函數,其輸出值為(0,1),表示概率或輸入的歸一化。圖5.3sigmoid函數圖像sigmoid函數的優點:平滑、易于求導,其導數可直接用函數的輸出計算,簡單高效。sigmoid函數很好地解釋了神經元在受到刺激的情況下是否被激活和向后傳遞的情景。當取值接近0時,幾乎沒有被激活;當取值接近1時,幾乎完全被激活。sigmoid
函數的求導公式如下:201.sigmoid函數sigmoid函數的缺點:(1)當輸入的絕對值大于某個閾值時,會快速進入飽和狀態(即函數值趨于1或-1,不再有顯著的變化,梯度趨于0),會出現梯度消失的情況,權重無法再更新,會導致算法收斂緩慢,甚至無法完成深層網絡的訓練。因此在一些現代的神經網絡中,sigmoid函數逐漸被ReLU激活函數取代。(2)sigmoid函數公式中有冪函數,計算耗時長,在反向傳播誤差梯度時,求導運算涉及除法。(3)sigmoid函數的輸出恒大于0,非零中心化,在多層神經網絡中,可能會造成后面層神經元的輸入發生偏置偏移,導致梯度下降變慢。212.tanh函數tanh函數是sigmoid函數的一個變形,稱為雙曲正切函數。tanh函數的值域為(-1,1),改進了sigmoid變化過于平緩的問題,且其輸出是零中心化的,解決了sigmoid函數的偏置偏移問題。tanh函數的數學表達式:圖5.4tanh函數圖像tanh可看作是在縱軸方向上放大到2倍并向下平移的sigmoid函數。tanh函數的導數公式:tanh函數的優點:tanh在線性區的梯度更大,能加快神經網絡的收斂。tanh函數的缺點:其兩端的梯度也趨于零,依舊存在梯度消失的問題,同時,冪運算也會導致計算耗時長。225.2.4多層神經網絡結構單個人工神經元的結構簡單,功能有限。若想完成復雜的功能,就需要將許多人工神經元按照一定的拓撲結構相互連接在一起,相互傳遞信息,協調合作。組成神經網絡的所有神經元是分層排列的,一個神經網絡包括輸入層、隱藏層(也稱為隱層、隱含層)和輸出層。每個網絡只能有一個輸入層和一個輸出層,卻可以有0個或多個隱藏層,每個隱藏層上可以有若干個神經元。只有輸入層與輸出層的神經元可以與外界相連,外界無法直接觸及隱藏層,故而得名“隱藏層”。235.2.4多層神經網絡結構包含至少一個隱藏層的神經網絡稱為多層神經網絡。在包含神經元個數最多的一層,神經元的個數稱為該神經網絡的寬度。除輸入層外,其他層的層數稱為神經網絡的深度,即等于隱藏層個數加1(輸出層)。感知機沒有隱藏層,只有輸入層和輸出層,因此感知機的層數為1,稱為單層神經網絡。人工神經網絡的行為并非各個神經元行為的簡單相加,而是具有學習能力的、行為復雜的非線性系統,既可以提取和表達樣本的高維特征,又可以完成復雜的預測任務。245.2.4多層神經網絡結構多層神經網絡的每個隱藏層后面都有一個非線性的激活函數。這里激活函數的作用比感知機中作為激活函數的階躍函數的作用要大得多,因為激活函數是對所有輸入信號的線性組合結果進行非線性變換,而且多層神經網絡就有多個激活函數。激活函數最主要的作用是向模型中加入非線性元素,用以解決非線性問題。一般在同一個網絡中使用同一種激活函數。255.2.4多層神經網絡結構根據神經元之間的連接范圍,可以將多層人工神經網絡分為全連接神經網絡和部分連接神經網絡。若每個神經元與其相鄰層的所有神經元都相連,這種結構的網絡稱為全連接神經網絡。若每個神經元只與相鄰層上的部分神經元相連,則是部分連接神經網絡。圖5.5多層前饋全連接神經網絡265.2.4多層神經網絡結構根據網絡層之間的連接方式,又可以將多層人工神經網絡分為前饋神經網絡和反饋神經網絡。1.前饋神經網絡前饋神經網絡(FeedforwardNeuralNetwork)是一種多層神經網絡,其中每個神經元只與其相鄰層上的神經元相連,接收前一層的輸出,并輸出給下一層,即第i層神經元以第i-1層神經元的輸出作為輸入,第i層神經元的輸出作為第i+1層神經元的輸入。同層的神經元之間沒有連接。整個網絡中的信息是單向傳遞的,即只能按一個方向從輸入層到輸出層的方向傳播,沒有反向的信息傳播,可以用一個有向無環圖表示。275.2.4多層神經網絡結構若前饋神經網絡采用全連接方式,則稱為前饋全連接神經網絡。前饋神經網絡的優點:網絡結構簡單,易于實現。前饋全連接神經網絡的缺點是:當網絡很深時,參數量巨大,計算量大,訓練耗時。前饋神經網絡包括:BP神經網絡和卷積神經網絡。前饋NN285.2.4多層神經網絡結構2.反饋神經網絡反饋神經網絡(FeedbackNeuralNetwork)是一種反饋動力學系統。在這種網絡中,有些神經元不但可以接收其前一層上神經元的信息,還可以接收來自于其后面層上神經元的信息。神經元的連接可以形成有向循環。反饋神經網絡中的信息既可以單向傳遞,也可以雙向傳遞,且神經元具有記憶功能,在不同時刻具有不同的狀態,能建立網絡的內部狀態,可展現動態的時間特性。反饋NN295.3BP神經網絡及其學習算法多層前饋神經網絡的表達能力比單層感知機要強得多。要訓練多層前饋神經網絡,單層感知機的學習算法是遠遠不夠的,需要更強大的學習算法。1974年Werbos提出了BP算法;1986年辛頓等人又重新獨立地提出了BP算法。迄今為止,最成功的多層神經網絡學習算法就是反向傳播(Back-Propagation,BP)算法。
BP算法能解決對參數逐一求偏導、計算效率低下的問題。目前,學術界和產業界依然在用BP算法訓練神經網絡。305.3.1BP神經網絡的結構由于前饋神經網絡大多采用反向傳播學習算法來進行訓練模型,故被稱為BP神經網絡。BP神經網絡是一種多層前饋神經網絡。每個節點就是一個神經元,神經元之間帶有箭頭的連線表示信息傳遞的方向。此BP神經網絡的深度為m-1信息傳遞方向誤差傳遞方向315.3.1BP神經網絡的結構圖5.7BP網絡中相鄰兩層的各變量之間關系
325.3.2BP學習算法
335.3.2BP學習算法
BP學習算法的目的:使得目標函數(即損失函數)E達到極小值。損失函數的值越小,表示神經網的預測結果越接近真實值。345.3.2BP學習算法
第5步:采用公式(5.11)計算出的修正值,依次更新所有權重和偏置;第6步:轉向第2步。35BP算法的具體執行過程假設輸入樣本為(x1=0.05,x2=0.1),期望輸出值為(y1=0.03,y2=0.05)。正向傳播(1)由輸入層向隱藏層傳播信息。隱藏層中第一個神經元h1的輸出為:圖5.8BP神經網絡示例隱藏層中第一個神經元h2的輸出為:(2)由隱藏層向輸出層傳播信息。輸出層中兩個神經元的輸出分別為:
362.反向傳播反向學習的目的:利用梯度下降法更新網絡中的參數,使得損失函數達到極小值。反向學習的過程:誤差信息從輸出層經過隱藏層傳向輸入層,逐層使權值沿損失函數的負梯度方向更新。
更新誤差的過程是一個始于輸出層向輸入層傳播的遞歸過程,故稱為反向傳播學習算法。37BP算法中反向傳播階段的具體執行過程(1)
(1)計算總誤差
38BP算法中反向傳播階段的具體執行過程(2)②計算偏置項的修正量。
39BP算法中反向傳播階段的具體執行過程(3)
這4項在第(2)步的權值更新中均已有計算值。
第2項:第3項:
405.3.2BP學習算法第1個訓練樣本(x1=0.05,x2=0.1),目標輸出為[0.03,0.05],實際輸出為[0.694,0.718],總誤差為0.444;完成第1輪參數更新;繼續將第1個訓練樣本(x1=0.05,x2=0.1)輸入到已更新參數的神經網絡中,進行第二次訓練,得到實際輸出為[0.667,0.693],總誤差為0.44356;可見,總誤差在逐漸減小,隨著迭代次數的增加,輸出值會越來越接近目標值,直到總誤差小于設定的閾值,再輸入下一個訓練樣本,繼續訓練,直到輸入所有訓練樣本訓練完畢為止。41BP神經網絡及學習算法的局限性(1)BP學習算法是有監督學習,需要大量帶標簽的訓練數據。(2)BP神經網絡中的參數量大,收斂速度慢,需要較長的訓練時間,學習效率低。(3)BP學習算法采用梯度下降法更新學習參數,容易陷入局部極值,從而找不到全局最優解。(4)尚無理論指導如何選擇網絡隱藏層的層數和神經元的個數,一般是根據經驗或通過反復實驗確定。因此,網絡往往存在很大的冗余性,在一定程度上也增加了網絡學習的負擔。425.4卷積神經網絡卷積神經網絡(ConvolutionalNeuralNetwork,CNN)是一種特殊的多層前饋神經網絡,常用于監督學習。早期的BP神經網絡是全連接的,需要學習的參數量巨大,網絡訓練時間較長。科學家發現:生物神經元有感受野(ReceptiveField)機制,研究人員受此啟發,提出了卷積神經網絡。卷積神經網絡模仿了感受野的機制,采用卷積運算,使得人工神經元只連接其周圍一定范圍內的神經元,連接數量減少了,權重(參數)量也減少了。卷積神經網絡最早用來完成圖像處理任務,特別是在圖像分類、目標檢測和語義分割等任務上不斷取得突破性進展。5.4卷積神經網絡對卷積神經網絡的研究最早可以追溯到1979年,日本學者福島邦彥(KunihikoFukushima)提出了命名為“neocognitron”的神經網絡,它是一個具有深層結構的神經網絡,也是最早被提出的深度學習算法之一。1989年,楊樂昆(YannLeCun)等人在《BackpropagationAppliedtoHandwrittenZipCode》一文中第一次使用“convoluation”和“kernel”術語。提出采用隨機梯度下降法訓練神經網絡模型,并首次使用了“卷積神經網絡”一詞,因此,楊樂昆被譽為“卷積神經網絡之父”。43445.4.1卷積神經網絡的整體結構一個CNN可以包含多個網絡層,每層網絡由多個獨立的神經元組成。CNN中的網絡層主要分為3種類型:卷積層、池化層和全連接層。通常,每個卷積層與最后一個全連接層之后都會采用激活函數。與多層前饋神經網絡一樣,CNN也可以像搭積木一樣,通過疊加多個網絡層來組裝。多層前饋神經網絡可以看成是由“全連接層+ReLU層”組合拼裝而成的,而CNN可以看成是由“卷積層+ReLU層+池化層”(有時也省略池化層)組合拼裝而成的。CNN具有3個重要特性:權重共享、局部感知和亞采樣。在卷積神經網絡中,輸入層輸入的數據是訓練樣本或測試樣本,其他網絡層輸入/輸出的數據均稱為特征圖(FeatureMap)。455.4.1卷積神經網絡的整體結構卷積神經網絡不需要額外的特征工程,可以直接從圖像中自動提取視覺特征,稱為學習式特征;不用像傳統圖像處理技術那樣提取手工式特征(如HOG、SIFT特征等)。CNN可識別具有極端可變性的模式,如手寫體字符,且具有一定程度的扭曲、平移、旋轉、縮放不變性,從而可以保留圖像的空間特性,在圖像處理方面具有顯著優勢。與幾乎所有其他的神經網絡一樣,CNN也采用反向傳播算法訓練模型。CNN通常包括1個輸入層多個“卷積層+ReLU層+池化層”組合塊,也可能是
【n個“卷積層+ReLU層”+1個池化層】的組合多個連續的全連接層(中間不加激活函數)1個采用softmax函數的輸出層。卷積神經網絡的整體結構46(卷積層+ReLU+
池化層)的組合多次出現:用于提取特征
多個全連接或特殊的CNN結構作為輸出層:用作分類器/檢測器/分割器475.4.1卷積神經網絡的整體結構(1)輸入層。灰度圖:W×H矩陣,其中W為寬度,H為高度,圖像深度為1;彩色圖:W×H×3像素矩陣,“3”表示R、G、B三個顏色通道,即圖像深度。(2)卷積層。卷積操作就是點積運算。卷積層的功能:用卷積操作對輸入的原始數據/特征圖提取特征,輸出卷積運算后產生的特征圖。卷積層是CNN的核心部分,一個卷積層可以包含若干個卷積核(Kernel),一個卷積核就是一個二維的、高度和寬度相同的權重矩陣,記為ConvF×F,F<<W。F×F的區域就是卷積核的感受野,卷積核與輸入的圖像或特征圖只有F×F大小的局部連接;在全連接神經網絡中,隱藏層的神經元的感受視野是輸入圖像或特征圖的全部大小,進行的是全局連接。48(2)卷積層對灰色圖像作卷積操作,用一個卷積核即可,因為一張灰色圖像只有一個顏色通道;對彩色圖像作卷積操作,則同時需要有3個大小相同的卷積核,分別對彩色圖像的R、G、B三個通道進行卷積運算,那么這個由若干個大小(Size,也稱為尺寸)相同的卷積核堆疊而成的卷積核組就稱為一個濾波器,記為ConvF×F×D,其中D為該濾波器中包含的卷積核的個數,稱為濾波器的深度(Depth),也稱為濾波器的通道數,記為#channel。濾波器的深度取決于輸入的圖像或特征圖的深度。對于灰度圖像,一個卷積核可以看作是深度為1的濾波器。49(2)卷積層一個卷積層中可以包含多個濾波器,而濾波器的個數是人為設定的,一個濾波器就是一個神經元。通常,同層上的多個濾波器的大小、深度都相同,也是人為設定的,即超參數;只是權重和偏置不同,需要訓練得到,即學習參數。每個濾波器,即神經元,只對輸入圖像或特征圖的部分區域進行卷積運算,負責提取圖像或特征圖中的局部特征。靠近輸入層的卷積層提取的特征往往是局部的,越靠近輸出層,卷積層提取的特征越是全局化的。一個濾波器只關注一個特征,不同的濾波器用于提取不同的特征,如邊緣、輪廓、紋理、顏色等。每個濾波器只產生一層特征圖,故有多少個濾波器,就會產生多少層特征圖。一個神經網絡中的所有神經元,就是構成了整張圖像的特征提取器的集合。505.4.1卷積神經網絡的整體結構(3)池化層。池化層也稱為下采樣層、子采樣、亞采樣。池化層的作用:選擇具有代表性的特征,去除不重要的或冗余的特征,用以降低特征維數,從而減少參數量和計算開銷。(4)全連接層。全連接層通常置于CNN尾部,它與傳統的全連接神經網絡的連接方式相同,都是相鄰兩層上的所有神經元兩兩相連,每個連接都有權重。兩個相鄰全連接層之間只進行線性轉換,不用激活函數。全連接層的作用主要是對卷積層和池化層提取的局部特征進行重新組合,得到全局信息,以減少特征信息的丟失。全連接的操作方式先將經過卷積、激活函數、池化的多層特征向量抻直成一個一維的向量;再采用全連接的方式將上述一維向量與輸出層連接。51525.4.1卷積神經網絡的整體結構(5)輸出層。輸出層用于輸出結果,實際上就是最后一個全連接層之后的激活函數層。根據回歸或分類問題的需要選擇不同激活函數,以獲得最終想要的結果。例如,二分類任務可以選擇sigmoid作為激活函數,若是多分類任務,可以選擇softmax作為激活函數。CNN的結構比傳統多層全連接神經網絡具有以下兩個方面優勢。(1)連接方式不同,CNN的局部連接可大大減少參數量和計算量。(2)對輸入圖像處理的方式不同,CNN保留了圖像固有的空間特征。535.4.2卷積運算卷積是泛函分析中一種重要的運算。圖像處理中的卷積是二維的。1.灰色圖像上的卷積運算灰度圖像:W×H的像素矩陣,是單通道圖像。其中每個像素的取值范圍為[0,255],表示像素的強度。圖像處理的底層就是對圖像像素點進行操作。卷積運算是對像素矩陣與卷積核矩陣重疊部分作內積的操作,即計算兩個重疊矩陣中對應元素的乘積之和。在圖像上作卷積操作是用同一個卷積核在圖像上從左到右、從上到下,按某個固定的步長進行“Z”字形滑動,遍歷圖像的每一個局部位置,并將每個位置的內積運算結果保存到輸出特征圖的相應位置。步長是指卷積核窗口在像素矩陣上滑動的位置間隔,以像素為計數單位。54灰度圖上單個卷積核的卷積運算示例在下列灰度圖像上,假設給定4×4的像素矩陣,卷積核大小為2×2,滑動步長為2。圖5.12灰度圖像的卷積運算示例555.4.2卷積運算2.RGB圖像上的卷積運算輸入的彩色圖像通常表示為W×H×3的像素矩陣,其中“深度”
也稱為通道。彩色圖像可以看作3個二維像素矩陣,每個像素矩陣存放所有像素的一種顏色值,像素取值范圍為[0~255]。RGB圖上2個濾波器的卷積運算過程粉色矩陣是兩個濾波器/神經元:(w0,w1)濾波器的步長設為2輸入RGB圖像RGB第1個濾波器,即第1個神經元第2個濾波器,即第2個神經元第1個濾波器的輸出第2個濾波器的輸出濾波器的偏差56575.4.2卷積運算CNN的每個卷積層中都可以使用多個濾波器(其個數由人為設定)。在每個卷積層上,一個濾波器只能輸出一個通道數為1的特征圖;若有K個濾波器,則輸出一個通道數為K的特征圖。針對輸入的RGB圖像,第一個卷積層的所有濾波器的深度必須是3,因為顏色通道為3。在其后的卷積層上,濾波器的深度取決于前一層輸出的特征圖的通道數。一個濾波器提取一種局部特征,多個濾波器可以提取多種不同的局部特征。585.4.2卷積運算3.圖像填充(padding)每做一次卷積運算,輸出的特征圖的尺寸都會減少若干個像素,經過若干個卷積層后,特征圖尺寸會變得非常小。另外,在卷積核移動的過程中,圖像邊緣的像素參與卷積運算的次數遠少于圖像內部的像素,這是因為邊緣上的像素永遠不會位于卷積核的中心,而卷積核也不能擴展到圖像邊緣區域以外,因此會導致圖像邊緣的大部分信息丟失。若想盡可能多地保留原始輸入圖像的信息,可以在卷積操作之前,在原圖像的周圍填充p圈固定的常數,例如,填充常數0,這種操作稱為填充(padding)。595.4.2卷積運算填充的主要目的是調整輸入數據的大小,使得輸出數據的形狀保持與輸入數據一致。需要根據具體情況來確定超參數p的值。在實踐中,當設置padding=valid時,表示不填充0值,當padding=same時,表示自動計算p值來填補0值,使得卷積運算前、后的特征圖的尺寸相同。采用填充技術有以下兩個作用:①CNN的深度不再受卷積核大小的限制,CNN可以不斷地堆疊卷積層。若不作填充,當前一層輸出的特征圖的尺寸比卷積核還小時,就無法再進行卷積操作,也就無法再增加卷積層了。②可以充分利用圖像的邊界信息,避免遺漏圖像邊界附近的重要信息。605.4.2卷積運算4.卷積運算后特征圖尺寸的計算公式填充的p值和步長s的值都會影響卷積輸出特征圖的大小。設當前卷積層中濾波器的個數為K,輸入特征圖的尺寸為H×W×D(D為通道數),卷積核的尺寸為F×F,填充為
p,步長為
s,則執行卷積運算后,輸出特征圖的尺寸H′×W′×D′的計算公式為:其中,主要超參數包括:每個卷積層中濾波器的個數K、卷積核或濾波器的大小F、步長s、填充p。當前卷積層中學習參數的個數為(F×F×D+1)×K。61卷積運算示例圖5.15兩個卷積層的運算過程625.4.2卷積運算5.轉置卷積卷積操作可看作是下采樣。對于某些特定任務,需要將圖像恢復到原來的尺寸,這個將圖像由小尺寸轉換為大尺寸的操作稱為上采樣。傳統的上采樣方法有:最近鄰插值法、線性插值法和雙線性插值法等。然而,這些上采樣方法都是基于人們已有的先驗經驗設計的。但在很多應用場景中,人們并不具有正確的先驗知識,因此上采樣的效果不理想。我們希望神經網絡能夠自動學習如何更好地進行上采樣,轉置卷積就是一種自動上采樣的方法。轉置卷積又稱為反卷積或逆卷積。63轉置卷積的示例圖5.16F=3,s=1,p=2轉置卷積的運算過程645.轉置卷積確定p值的公式為p=F-1。卷積是用一個小窗口看大世界,而轉置卷積是用一個大窗口的一部分去看小世界,即卷積核比原輸入圖像尺寸大。需要注意的是:卷積操作和轉置卷積并不是互逆的兩個操作。一個特征圖A經過卷積操作后,得到特征圖B,而B再經過轉置卷積操作后,并不能恢復到A中原始的元素值,只是保留了原始的形狀,即大小相同而已。所以,轉置卷積雖然又叫逆卷積,但事實上,它不是原來卷積操作的逆運算。655.4.2卷積運算6.卷積神經網絡結構的特點(1)局部連接。人類對外界的認知一般是從局部到全局,先感知局部,再逐步認知全局。卷積即局部感受野。CNN模仿了人類的認識模式:一個神經元只與特征圖局部區域中的元素相連。每個卷積層的輸入特征圖或卷積核的大小是不同的,卷積核大小的不同意味著感受野范圍的不同。隨著網絡的加深,神經元的感受野范圍逐層擴大,所提取圖像特征的全局化程度越來越高,直到全連接層,全連接層中每個神經元的感受野覆蓋了前一網絡層的全部輸出,得到的就是全局特征。665.4.2卷積運算CNN是:在卷積層,先用感受野小的卷積提取圖像的局部特征;在全連接層,再用全連接將所有特征重新組合在一起,提取全局特征。局部連接實際上減少了神經元之間的連接數,也就減少了參數量,起到了降低計算量的作用。675.4.2卷積運算(2)權值共享。權值共享是指卷積核在滑過整個圖像時,其參數是固定不變的。計算同一個通道的特征圖的不同窗口時,卷積核中的權值是共享的,這樣可以極大地減少參數量。需要指出的是:同一卷積核只是針對同一通道的特征圖共享權值,不同濾波器在同一通道上的卷積核不共享權值,不同通道上的卷積核也不共享權值。一個濾波器的多個卷積核共享同一個偏置值。在CNN的隱藏層中,共享卷積核的參數可以減少學習參數的數量,降低處理高維數據的計算壓力。例如:AlexNet的參數有1億,采用共享權值后,減至6000萬。可見,卷積神經網絡的兩個特點(局部連接和權值共享),都是減少學習參數量的方法。68卷積神經網絡的局限性①訓練網絡模型時,不僅需要大量的訓練樣本,還需要高性能算力,例如需要使用GPU,還需要花大量的時間調試超參數;②所提取特征的物理含義不明確,即不知道每個卷積層提取到的特征表示什么含義,神經網絡本身就是一種難以解釋的“黑箱模型”;③深度神經網絡缺乏完備的數學理論證明,這也是深度學習一直面臨的問題,目前仍無法解決。695.4.3激活函數在多層CNN中,第i個卷積層的輸出與第i+1個卷積層的輸入之間有一個函數映射,即激活函數。激活函數是NN中的重要組成部分,它是對網絡層輸出的線性組合結果做非線性映射。若激活函數是線性函數,則無論神經網絡有多少層,整個網絡的功能等價于感知機,網絡的逼近能力十分有限。激活函數的作用就是給網絡模型提供非線性的建模能力。在現代CNN中,每個卷積層后面都有非線性激活函數,目的是向模型中加入非線性元素,以解決非線性問題。一般在同一個網絡中使用同一種激活函數。早期,CNN的隱藏層大多采用sigmoid函數作為激活函數,自從2012年起,幾乎所有的CNN均采用ReLU系列函數做激活函數了。705.4.3激活函數1.ReLU函數ReLU是修正線性單元的簡稱,是最常用的激活函數。AlexNet模型采用的激活函數是ReLU,從此ReLU成為深度神經網絡模型中應用最廣泛的激活函數。ReLU是一個簡單的分段線性函數,但從整體看,ReLU是一個非線性函數:ReLU函數是分段可導的,并人為規定在0處的梯度為0,其導數形式如下:71ReLU函數的優點(1)計算簡單且快,求梯度簡單,收斂速度比sigmoid與tanh函數快得多,ReLU僅需要做簡單的閾值運算。(2)S型函數在x趨近于正負無窮時,函數的導數趨近于零,而ReLU的導數為0或常數,在一定程度上緩解了梯度消失的問題。(3)ReLU具有生物上的可解釋性,有研究表明:人腦中同一時刻大概只有1%~4%的神經元處于激活狀態,同時只響應小部分輸入信號,屏蔽了大部分信號。sigmoid函數和tanh函數會導致形成一個稠密的神經網絡;而ReLU函數在x<0的負半區的導數為0,當神經元激活函數的值進入負半區時,該神經元不會被訓練,使得網絡具有稀疏性。可見,ReLU只有大約50%的神經元保持處于激活狀態,引入了稀疏激活性,使神經網絡在訓練時會有更好的表現。72ReLU函數的缺點(1)ReLU函數的輸出是非零中心化的,使得后一層神經網絡的偏置偏移,影響梯度下降的速度。(2)采用ReLU函數,神經元在訓練時比較容易“死亡”,即在某次不恰當地更新參數后,所有輸入都無法激活某個神經元,則該神經元的梯度固定為0,導致無法更新參數,而且在之后的訓練中,此神經元再也不會被激活,這種現象稱為“神經元死亡”問題。在實際使用中,為了避免上述情況,提出了若干ReLU的變種,如LeakyReLU函數等。735.4.3激活函數2.LeakyReLU函數LeakyReLU稱為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鐵嶺市高校畢業生“三支一扶”計劃招募考試模擬試題(含答案)
- 2025年防城港市國資委招聘考試筆試試題(含答案)
- 2025年大學英語四級考試試卷及答案的解析技巧
- 汽修廠ECU刷新操作審批登記制度
- 汽修廠公司級印章使用范圍明細制度
- 汽修廠服務器運行狀態監控制度
- 重慶涪陵圖書館招聘試題帶答案分析2024年
- 上海金山區圖書館招聘試題帶答案分析2024年
- 江西新余圖書館招聘試題帶答案分析2024年
- 貴州黔東南圖書館招聘試題帶答案分析2024年
- 20濕性愈合功能性敷料的種類與敷料選擇
- 2025-2030中國氧化鋅行業發展現狀及發展趨勢與投資風險分析
- 燃氣報警器行業發展分析及投資戰略研究報告2025-2028版
- 2025年中國扭蛋行業市場全景分析及前景機遇研判報告
- 2025至2030中國現金處理中心行業發展趨勢分析與未來投資戰略咨詢研究報告
- 小學音標題目及答案
- 期末模擬卷譯林版八年級英語下學期
- 2025年湖北省中考英語真題試卷
- 沈陽市重點中學2025屆英語七下期末監測模擬試題含答案
- 智能印章使用管理制度
- 消防高溫防暑講評課件
評論
0/150
提交評論