機(jī)器學(xué)習(xí) 課件 第8章 神經(jīng)網(wǎng)絡(luò)_第1頁(yè)
機(jī)器學(xué)習(xí) 課件 第8章 神經(jīng)網(wǎng)絡(luò)_第2頁(yè)
機(jī)器學(xué)習(xí) 課件 第8章 神經(jīng)網(wǎng)絡(luò)_第3頁(yè)
機(jī)器學(xué)習(xí) 課件 第8章 神經(jīng)網(wǎng)絡(luò)_第4頁(yè)
機(jī)器學(xué)習(xí) 課件 第8章 神經(jīng)網(wǎng)絡(luò)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第8章神經(jīng)網(wǎng)絡(luò)課程學(xué)習(xí)內(nèi)容8.1神經(jīng)網(wǎng)絡(luò)的概念8.2神經(jīng)網(wǎng)絡(luò)的算法原理8.3基于Python的神經(jīng)網(wǎng)絡(luò)實(shí)例8.4基于Spark的神經(jīng)網(wǎng)絡(luò)實(shí)例8.1神經(jīng)網(wǎng)絡(luò)的概念

神經(jīng)元抽象為近似為一個(gè)多輸入、單輸出的系統(tǒng),它接受多個(gè)信號(hào)后進(jìn)行處理,再向外輸出。其抽象化的模型如圖8.1神經(jīng)網(wǎng)絡(luò)的概念

8.1神經(jīng)網(wǎng)絡(luò)的概念

現(xiàn)代神經(jīng)網(wǎng)絡(luò)是由多個(gè)神經(jīng)元組成的分層網(wǎng)狀結(jié)構(gòu)的,由輸入層、隱含層和輸出層組成,如圖所示,每一個(gè)圓圈代表一個(gè)神經(jīng)元。通過(guò)復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu),神經(jīng)網(wǎng)絡(luò)可以很容易地處理非線性分類問(wèn)題。與線性分類不同,非線性分類問(wèn)題的分類邊界是非線性函數(shù)。面對(duì)非線性分類問(wèn)題,如語(yǔ)言分析、圖像識(shí)別、視頻分析、目標(biāo)檢測(cè)、文本語(yǔ)義等領(lǐng)域問(wèn)題,神經(jīng)網(wǎng)絡(luò)有天然的優(yōu)勢(shì)。8.2神經(jīng)網(wǎng)絡(luò)的算法原理8.2.1多層感知機(jī)

MLP由輸入層、隱含層和輸出層構(gòu)成。相鄰層節(jié)點(diǎn)之間由權(quán)值連接,但各層內(nèi)的節(jié)點(diǎn)之間相互獨(dú)立。理論上已經(jīng)證明,具有單隱含層的MLP就能以任意精度逼近任意的非線性函數(shù)。其結(jié)構(gòu)示意如圖所示。8.2神經(jīng)網(wǎng)絡(luò)的算法原理

BP算法的精髓是誤差梯度下降法。其核心思想是,首先將學(xué)習(xí)樣本的輸入信號(hào)(一般會(huì)進(jìn)行歸一化操作)送到輸入層,而后經(jīng)隱含層傳遞到輸出層,經(jīng)輸出層的計(jì)算后,輸出對(duì)應(yīng)的預(yù)測(cè)值。當(dāng)預(yù)測(cè)值和真實(shí)值(期望值)之間的誤差達(dá)不到預(yù)設(shè)的目標(biāo)精度要求時(shí),網(wǎng)絡(luò)會(huì)從輸出層逐層向輸入層反饋該誤差信息,并調(diào)整各層間的權(quán)值、神經(jīng)元的偏置,通過(guò)反復(fù)循環(huán)迭代逐步降低網(wǎng)絡(luò)的輸出值與樣本的期望輸出值之間的誤差,直至滿足設(shè)定的循環(huán)次數(shù)或精度要求,此時(shí)網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程結(jié)束,并獲取到優(yōu)化后的權(quán)值、偏置,以此為基礎(chǔ)提取未知樣本的信息進(jìn)行輸入,即可獲得對(duì)未知樣本的映射(預(yù)測(cè))。8.2神經(jīng)網(wǎng)絡(luò)的算法原理 MLP設(shè)計(jì)、訓(xùn)練和測(cè)試的步驟如下:(1)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的確定及相關(guān)參數(shù)的初始化。(2)將原始數(shù)據(jù)集歸一化,輸入到神經(jīng)網(wǎng)絡(luò)的輸入層。(3)計(jì)算網(wǎng)絡(luò)數(shù)據(jù)實(shí)際輸出與樣本數(shù)據(jù)期望輸出之間的誤差,并依據(jù)得到的誤差信息反向傳播到輸入層,同時(shí)調(diào)整各層之間的權(quán)值、偏置。(4)循環(huán)迭代(2)、(3)兩個(gè)過(guò)程,逐步降低計(jì)算誤差,直到誤差達(dá)到設(shè)定的目標(biāo)誤差或循環(huán)迭代次數(shù)達(dá)到設(shè)定的最大次數(shù)。(5)獲取到最優(yōu)的權(quán)值、偏置。(6)提取檢測(cè)樣本的輸入信息,借助第(5)步獲取到的最優(yōu)的權(quán)值、閾值,便可計(jì)算出測(cè)試樣本的預(yù)測(cè)輸出。8.2神經(jīng)網(wǎng)絡(luò)的算法原理8.2神經(jīng)網(wǎng)絡(luò)的算法原理8.2神經(jīng)網(wǎng)絡(luò)的算法原理8.2.2卷積神經(jīng)網(wǎng)絡(luò)CNN

卷積神經(jīng)網(wǎng)絡(luò)CNN是目前最熱門的神經(jīng)網(wǎng)絡(luò)模型之一,因其良好的特征提取能力和分類預(yù)測(cè)效果,被廣泛應(yīng)用于圖像識(shí)別、人臉識(shí)別和自然語(yǔ)言處理等領(lǐng)域。CNN的局部連接、權(quán)值共享和下采樣是區(qū)別于其他網(wǎng)絡(luò)模型的顯著特征。局部連接是指網(wǎng)絡(luò)的兩層神經(jīng)元之間是部分連接的,權(quán)值共享是指對(duì)樣本實(shí)施卷積運(yùn)算時(shí)卷積核是相同的,下采樣是對(duì)特征進(jìn)行局部總結(jié)。

CNN主要由輸入層、卷積層、池化層、全連接層和輸出層構(gòu)成,CNN的模型結(jié)構(gòu)如圖

所示。卷積層的主要功能是提取樣本特征,池化層的主要功能是對(duì)特征進(jìn)行降維,全連接層是對(duì)經(jīng)過(guò)卷積和池化操作后的特征圖進(jìn)行分類預(yù)測(cè)。8.2神經(jīng)網(wǎng)絡(luò)的算法原理CNN結(jié)構(gòu)圖8.2神經(jīng)網(wǎng)絡(luò)的算法原理1.卷積層

在卷積過(guò)程中,步長(zhǎng)(stride)和填充(padding)是影響卷積結(jié)果的兩個(gè)重要參數(shù)。步長(zhǎng)表示卷積核每次滑動(dòng)的距離大小,填充描述的是在輸入數(shù)據(jù)的基礎(chǔ)上向外圍擴(kuò)充的大小,填充能夠保證卷積前后數(shù)據(jù)的維度大小保持一致,若不進(jìn)行填充,每次卷積操作后輸出特征圖的維度都會(huì)縮小,經(jīng)過(guò)多次卷積操作后輸出特征圖的維度將小到難以進(jìn)行卷積操作。填充的使用就是為了避免在深層卷積神經(jīng)網(wǎng)絡(luò)的卷積過(guò)程中出現(xiàn)數(shù)據(jù)維度太小而無(wú)法進(jìn)行卷積的問(wèn)題。值得注意的是,一個(gè)卷積層并不是只有一個(gè)卷積核,往往有多個(gè),卷積層輸出的特征圖數(shù)量與卷積核數(shù)量相同。

8.2神經(jīng)網(wǎng)絡(luò)的算法原理8.2神經(jīng)網(wǎng)絡(luò)的算法原理

為了增加網(wǎng)絡(luò)的非線性表達(dá)能力,一般在卷積層之后會(huì)接一個(gè)激活函數(shù)。常接在卷積層之后的激活函數(shù)包括:ReLU函數(shù)、Sigmoid函數(shù)和LeakyReLU函數(shù)等。

總結(jié)卷積層的2個(gè)主要思想:

一是局部連接,通過(guò)卷積核逐塊對(duì)輸入數(shù)據(jù)的分塊相乘再求和,考慮了事物的就近相關(guān)性,克服了BPNN缺乏空間推理能力的問(wèn)題。

二是權(quán)值共享,通過(guò)使用相同的權(quán)重矩陣對(duì)輸入數(shù)據(jù)的每一個(gè)數(shù)據(jù)塊進(jìn)行卷積,減少了存儲(chǔ)權(quán)值的空間,降低了計(jì)算過(guò)程的復(fù)雜度,初步克服了BPNN參數(shù)爆炸的問(wèn)題。8.2神經(jīng)網(wǎng)絡(luò)的算法原理2.池化層

池化層的主要作用是在卷積層的基礎(chǔ)上對(duì)局部特征信息進(jìn)行總結(jié),達(dá)到特征降維的目的,從而減少參數(shù)和計(jì)算量,進(jìn)一步解決參數(shù)爆炸問(wèn)題。池化操作是在特征圖上通過(guò)一個(gè)大小為s×s的矩陣窗口進(jìn)行滑動(dòng)來(lái)實(shí)現(xiàn)的,但是區(qū)別于卷積層的對(duì)應(yīng)位置相乘再相加。常見(jiàn)的兩種池化方法為最大池化(MaxPooling)和平均池化(AveragePooling),最大池化是將s×s矩陣窗口中的最大值作為輸出,平均池化是將s×s矩陣窗口中的平均值作為輸出。8.2神經(jīng)網(wǎng)絡(luò)的算法原理3全連接層 CNN的卷積層和池化層只是完成了輸入數(shù)據(jù)的特征提取功能,卻無(wú)法得出最終的分類預(yù)測(cè)結(jié)果,因此引入了全連接層(FullyConnectedLayer,FC)來(lái)解決分類決策問(wèn)題。FC一般是在CNN模型的最后,緊挨著池化層,該層將池化層輸出的特征圖壓平,轉(zhuǎn)化成一維特征向量進(jìn)行訓(xùn)練,然后通過(guò)Softmax等分類器得到每個(gè)類別的概率值。全連接層采用全局連接方式,即每個(gè)神經(jīng)元都與前一層的所有神經(jīng)元互相連接,因此會(huì)產(chǎn)生大量的參數(shù),容易發(fā)生過(guò)擬合現(xiàn)象。所以,通常會(huì)在全連接層中加入dropout模塊,隨機(jī)拋棄部分神經(jīng)元來(lái)避免過(guò)擬合的發(fā)生。實(shí)際上FC層就相當(dāng)于單隱含層MLP的隱含層8.3基于Python的神經(jīng)網(wǎng)絡(luò)實(shí)例【例8-3】用sklearn中集成的MLP神經(jīng)網(wǎng)絡(luò)分類器MLPClassifier,處理第三章例3-7的鳶尾花分類問(wèn)題。

解:修改例3-7的代碼,將引入決策樹(shù)的代碼,更改為引入神經(jīng)網(wǎng)絡(luò)的代碼?!纠?-4】用sklearn中集成的MLP神經(jīng)網(wǎng)絡(luò)回歸器,預(yù)測(cè)例5-6的皮鞋廠第19個(gè)月銷售額。解:引入MLP神經(jīng)網(wǎng)絡(luò)回歸器MLPRegressor,代碼如下:8.3基于Python的神經(jīng)網(wǎng)絡(luò)實(shí)例【例8-5】利用TensorFlow2搭建MLP,對(duì)著名的手寫體數(shù)據(jù)集MNIST進(jìn)行分類識(shí)別。MNIST數(shù)據(jù)集來(lái)自美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所,訓(xùn)練集共60000個(gè)樣本,由來(lái)自250個(gè)不同人手寫的數(shù)字構(gòu)成,其中50%是高中學(xué)生,50%來(lái)自人口普查局(theCensusBureau)的工作人員。測(cè)試集共10000個(gè)樣本,也是同樣比例的手寫數(shù)字?jǐn)?shù)據(jù)。通過(guò)搭建神經(jīng)網(wǎng)絡(luò),使計(jì)算機(jī)能夠正確識(shí)別這些數(shù)字。8.3基于Python的神經(jīng)網(wǎng)絡(luò)實(shí)例8.3基于Python的神經(jīng)網(wǎng)絡(luò)實(shí)例解:(1)TensorFlow2中集成了MNIST數(shù)據(jù)集,首先要能夠讀入數(shù)據(jù),包括訓(xùn)練集和測(cè)試集。代碼如下:8.3基于Python的神經(jīng)網(wǎng)絡(luò)實(shí)例(2)利用TensorFlow2建立MLP的拓?fù)?。每一次需要輸?8*28的矩陣,輸入神經(jīng)元784個(gè)。輸出需要10個(gè)神經(jīng)元,對(duì)應(yīng)0-9的10個(gè)類別。按照式8-5,中間的隱含層需要30個(gè)神經(jīng)元。代碼如下:8.3基于Python的神經(jīng)網(wǎng)絡(luò)實(shí)例(3)訓(xùn)練神經(jīng)網(wǎng)絡(luò)并測(cè)試。代碼如下:8.3基于Python的神經(jīng)網(wǎng)絡(luò)實(shí)例【例8-6】利用TensorFlow2搭建CNN,對(duì)MNIST進(jìn)行識(shí)別。CNN采用LeNet-5架構(gòu),同樣設(shè)置epoch=20,與例8-5的MLP進(jìn)行性能對(duì)比。

解:LeNet-5是1995年提出的一種比較簡(jiǎn)單的CNN,其結(jié)構(gòu)如圖所示8.3基于Python的神經(jīng)網(wǎng)絡(luò)實(shí)例LeNet-5共有7層,分別是:卷積層1、池化層1、卷積層2、池化層2和3個(gè)全連接層。代碼如下:8.3基于Python的神經(jīng)網(wǎng)絡(luò)實(shí)例8.3基于Python的神經(jīng)網(wǎng)絡(luò)實(shí)例8.4基于Spark的神經(jīng)網(wǎng)絡(luò)實(shí)例【例8-7】利用SparkMLlib建立MLP,解決例3-12的鳶尾花分類問(wèn)題。

解:在Spark中,目前被MLlib集成的神經(jīng)網(wǎng)絡(luò)是MLPC,即MultilayerPerce

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論