Python機(jī)器學(xué)習(xí)項(xiàng)目化教程(微課視頻版)課件 第10章 人工神經(jīng)網(wǎng)絡(luò)_第1頁
Python機(jī)器學(xué)習(xí)項(xiàng)目化教程(微課視頻版)課件 第10章 人工神經(jīng)網(wǎng)絡(luò)_第2頁
Python機(jī)器學(xué)習(xí)項(xiàng)目化教程(微課視頻版)課件 第10章 人工神經(jīng)網(wǎng)絡(luò)_第3頁
Python機(jī)器學(xué)習(xí)項(xiàng)目化教程(微課視頻版)課件 第10章 人工神經(jīng)網(wǎng)絡(luò)_第4頁
Python機(jī)器學(xué)習(xí)項(xiàng)目化教程(微課視頻版)課件 第10章 人工神經(jīng)網(wǎng)絡(luò)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第10章人工神經(jīng)網(wǎng)絡(luò)目錄CONTENTS10.1感知機(jī)10.2神經(jīng)網(wǎng)絡(luò)模型10.3BP神經(jīng)網(wǎng)絡(luò)算法思想及實(shí)現(xiàn)10.4BP神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)10.5本章小結(jié)10.1從感知機(jī)到多層感知機(jī)學(xué)習(xí)基礎(chǔ)學(xué)習(xí)認(rèn)知能力信息素養(yǎng)高M(jìn)-P神經(jīng)元模型如圖10-1所示。輸出一般可以表示為:1.激活函數(shù)假設(shè)有兩個(gè)輸入信號(hào)x1和x2,經(jīng)過感知機(jī)處理后,輸出結(jié)果為y,其網(wǎng)絡(luò)結(jié)構(gòu)如圖10-2所示。10.1從感知機(jī)到多層感知機(jī)sigmoid函數(shù)、tanh函數(shù)和階躍函數(shù)的圖形如圖10-3所示。10.1從感知機(jī)到多層感知機(jī)而對(duì)于圖10-4所示的異或問題就顯得無能為力。但是,可以通過對(duì)邏輯與、邏輯或、邏輯與非進(jìn)行疊加后來實(shí)現(xiàn)邏輯異或運(yùn)算,如圖10-5所示。10.2神經(jīng)網(wǎng)絡(luò)模型一個(gè)單隱藏層的神經(jīng)網(wǎng)絡(luò)模型如圖10-6所示。將神經(jīng)網(wǎng)絡(luò)每一層加上權(quán)值進(jìn)行擴(kuò)充后,就變成了圖10-7所示的兩層神經(jīng)網(wǎng)絡(luò)模型。:10.2神經(jīng)網(wǎng)絡(luò)模型經(jīng)過輸入層后,隱藏層的輸出可通過以下公式得到:則上式就變?yōu)椋海菏褂镁仃囆问娇梢员硎緸椋?0.2神經(jīng)網(wǎng)絡(luò)模型隱藏層到輸出層的初始權(quán)值、偏置及輸入為:則有:10.3BP神經(jīng)網(wǎng)絡(luò)算法思想及實(shí)現(xiàn)假設(shè)有n個(gè)輸入樣本,每個(gè)特征向量xi包含m個(gè)特征xi=(d1,d2,…,dm)?,F(xiàn)在要確定神經(jīng)網(wǎng)絡(luò)的映射函數(shù):神經(jīng)網(wǎng)絡(luò)的輸出要無限接近真實(shí)的標(biāo)簽值,就是要最小化預(yù)測誤差,如果采用均方誤差,則目標(biāo)函數(shù)為:10.3BP神經(jīng)網(wǎng)絡(luò)算法思想及實(shí)現(xiàn)是一個(gè)2×3的矩陣,是一個(gè)二維的列向量,則有:第i個(gè)輸出結(jié)果為yi,則誤差函數(shù)可以表示為:10.3BP神經(jīng)網(wǎng)絡(luò)算法思想及實(shí)現(xiàn)BP反向傳播計(jì)算分為兩個(gè)部分:(1)隱藏層到輸出層的參數(shù)W和b的更新;(2)從輸入層到隱藏層的參數(shù)W和b的更新。10.3BP神經(jīng)網(wǎng)絡(luò)算法思想及實(shí)現(xiàn)輸入為4個(gè)樣本,每個(gè)樣本包含兩個(gè)數(shù)x1和x2,如果增加一個(gè)偏置x0,則每個(gè)輸入樣本包含3個(gè)數(shù)(x0,x1,x2);輸出為1個(gè)數(shù),其值為0或1。importnumpyasnpdefinit_data():X=np.array([[1,0,0],[1,0,1],[1,1,0],[1,1,1]])Y=np.array([[0,1,1,0]])W1=np.random.random((3,4))*2-1W2=np.random.random((4,1))*2-1alpha=0.1returnX,Y,W1,W2,alpha10.3BP神經(jīng)網(wǎng)絡(luò)算法思想及實(shí)現(xiàn)(1)前向傳播:根據(jù)輸入數(shù)據(jù)和權(quán)值矩陣,計(jì)算X×W1,并將其代入激活函數(shù),得到輸入層到隱藏層的輸出hidden_out;然后將其作為隱藏層到輸出層的輸入,再計(jì)算hidden_out*W2,將其代入激活函數(shù),得到輸出層的輸出output_out。(2)計(jì)算誤差:根據(jù)輸出層的輸出output_out與真實(shí)標(biāo)簽Y的取值,得到輸出層的誤差delta_output;根據(jù)隱藏層的輸出hidden_out和隱藏層到輸出層的權(quán)值矩陣W2,得到隱藏層的誤差delta_hidden。(3)更新權(quán)值:先利用delta_output和hidden_out得到W2的變化量,然后更新W2;根據(jù)輸入層的X和delta_hidden得到W1的變化量,然后更新W1。10.3BP神經(jīng)網(wǎng)絡(luò)算法思想及實(shí)現(xiàn)3.學(xué)習(xí)到參數(shù)W1和W2經(jīng)過若干次迭代后,返回W1和W2。defbp_nn(X,Y,W1,W2,alpha,iter):foriinrange(iter):W1,W2=bp_train(X,Y,W1,W2,alpha)ifi%1000==0:hidden_out=sigmoid(np.dot(X,W1))#隱藏層輸出為4×4的矩陣

output_out=sigmoid(np.dot(hidden_out,W2))#輸出層輸出為4×1的向量

print('當(dāng)前誤差:',np.mean(np.abs(Y.T-output_out)))returnW1,W210.3BP神經(jīng)網(wǎng)絡(luò)算法思想及實(shí)現(xiàn)4.測試樣本defmodel_test(X,W1,W2):hidden_out=sigmoid(np.dot(X,W1))#隱藏層輸出為4×4的矩陣

output_out=sigmoid(np.dot(hidden_out,W2))#輸出層輸出為4×1的向量

print('BP神經(jīng)網(wǎng)絡(luò)模型測試結(jié)果:')forsampleinmap(judge,output_out):print(sample,end='')10.3BP神經(jīng)網(wǎng)絡(luò)算法思想及實(shí)現(xiàn)當(dāng)前誤差:0.4979871475935289當(dāng)前誤差:0.4914224281784273…當(dāng)前誤差:0.10820928582709059當(dāng)前誤差:0.0934149541358422BP神經(jīng)網(wǎng)絡(luò)輸出:

[[0.07394936][0.89675472][0.94200876][0.09623804]]BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果:0110BP神經(jīng)網(wǎng)絡(luò)模型測試結(jié)果:0101110.4BP神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)──鳶尾花分類1鳶尾花(iris)數(shù)據(jù)集包含4個(gè)特征,1個(gè)類別屬性,共有150個(gè)樣本。iris是鳶尾植物,數(shù)據(jù)集中存儲(chǔ)了其萼片和花瓣的長寬,共4個(gè)屬性;鳶尾花分為3類:山鳶尾(setosa)、變色鳶尾(versicolor)和維吉尼亞鳶尾(virginica)。其屬性及類別描述如表10-1所示。10.4BP神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)──鳶尾花分類22.樣本標(biāo)簽數(shù)據(jù)處理為了方便實(shí)現(xiàn)對(duì)樣本數(shù)據(jù)的多分類,可對(duì)原樣本標(biāo)簽進(jìn)行預(yù)處理,即把原分類標(biāo)簽0、1和2分別轉(zhuǎn)換為[1,0,0]、[0,1,0]和[0,0,1]。foriinrange(len(all_feature)):newdata=[]newdata.append(list(all_feature[i]))ifall_data[i][4]=='setosa':newdata.append([1,0,0])elifall_data[i][4]=='versicolor':newdata.append([0,1,0])else:newdata.append([0,0,1])data.append(newdata)10.4BP神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)──鳶尾花分類33.創(chuàng)建神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)假設(shè)要構(gòu)建一個(gè)3層神經(jīng)網(wǎng)絡(luò)模型,即包含一個(gè)輸入層、一個(gè)隱藏層及一個(gè)輸出層網(wǎng)絡(luò)結(jié)構(gòu),需要初始化各層的權(quán)值,為方便調(diào)用,我們可以定義一個(gè)MyBPNetwork類,通過輸入層、隱藏層和輸出層神經(jīng)元個(gè)數(shù),構(gòu)建輸入層到隱藏層和隱藏層到輸出層的權(quán)值矩陣,然后再通過隨機(jī)生成函數(shù)初始化權(quán)值矩陣。10.4BP神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)──鳶尾花分類33.創(chuàng)建神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)defupdate(self,feature):foriinrange(self.in_num-1):self.in_layer[i]=feature[i]forjinrange(self.hidden_num):z=0.0foriinrange(self.in_num):z=z+self.in_layer[i]*self.W1[i][j]self.hid_out[j]=sigmoid(z)

forkinrange(self.output_num):z=0.0forjinrange(self.hidden_num):z=z+self.hid_out[j]*self.W2[j][k]self.out_out[k]=sigmoid(z)returnself.out_out10.4BP神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)──鳶尾花分類defback_propagate(self,y_label,alpha):"""反向傳播"""delta_output=[0.0]*self.output_numforindexinrange(self.output_num):err=y_label[index]-self.out_out[index]delta_output[index]=dsigmoid(self.out_out[index])*errdelta_hidden=[0.0]*self.hidden_numforiinrange(self.hidden_num):err=0.0forjinrange(self.output_num):err=error+delta_output[j]*self.W2[i][j]delta_hidden[i]=dsigmoid(self.hid_out[i])*err

溫馨提示

  • 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)論