資源描述:
《東南大學(xué) backpropagation》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、人工神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)報(bào)告-------------LG一、實(shí)驗(yàn)?zāi)康模喝斯ど窠?jīng)網(wǎng)絡(luò)是由大量處理單元互聯(lián)組成的非線性、自適應(yīng)信息處理系統(tǒng)??梢哉f(shuō)它是人工智能中一個(gè)璀璨的明珠,該實(shí)驗(yàn)讓我們對(duì)人工神經(jīng)網(wǎng)絡(luò)編程有了簡(jiǎn)單的了解。二、實(shí)驗(yàn)原理:本實(shí)驗(yàn)的基本原理就是將訓(xùn)練樣例作為輸入,通過(guò)計(jì)算結(jié)果與實(shí)際結(jié)果間的誤差來(lái)調(diào)節(jié)權(quán)向量(向?qū)嶋H結(jié)果方向靠近),來(lái)最終實(shí)現(xiàn)表達(dá)式的計(jì)算。三、實(shí)驗(yàn)初始參數(shù):a)訓(xùn)練集1)x[0]=1,x[1]=0,x[2]=1,d=02)x[0]=0,x[1]=0,x[2]=1,d=13)x[0]=
2、0,x[1]=1,x[2]=1,d=0b)初始權(quán)值W[0]=(2,-2,0)W[1]=(1,3,-1)W[2]=(3,-1,1)c)測(cè)試集x[0]=1,x[1]=1,x[2]=1,d=1四、實(shí)驗(yàn)結(jié)果分析:通過(guò)實(shí)驗(yàn)我發(fā)現(xiàn),我取的初始權(quán)值的大小對(duì)于實(shí)驗(yàn)結(jié)果的影響比較大,分析可能是因?yàn)閷?shí)驗(yàn)數(shù)據(jù)太少的緣故。訓(xùn)練樣例不具有代表性,結(jié)果導(dǎo)致得到的結(jié)果的置信區(qū)間比較大,可靠性差。一、實(shí)驗(yàn)代碼://BackPropagation.cpp:定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。//#include"stdafx.h"#inc
3、lude"iostream"usingnamespacestd;#include"math.h"classTLUnode{public:TLUnode(){w=newdouble[numberofinput];}~TLUnode(){}voidsetw(double*neww){for(inti=0;i4、++){sum+=w[i]*input[i];}}voidsigmoid(double*input){reachresult(input);f=1/(1+exp(-sum));}voidthreshold(double*input){reachresult(input);if(sum>0.5)f=1;elsef=0;}doublesum;staticconstintnumberofinput=3;//doubleresult;double*w;doublef;doubled_f;};int_tma
5、in(intargc,_TCHAR*argv[]){doublelearningdata[4][4]={1,0,1,0,0,0,1,1,0,1,1,0,1,1,1,1};constintnumberofinput=3;doublenoww[numberofinput];doublenowinput[numberofinput];doublec=1;TLUnodenode[3];noww[0]=2;noww[1]=-2;noww[2]=0;node[0].setw(noww);noww[0]=1;n
6、oww[1]=3;noww[2]=-1;node[1].setw(noww);noww[0]=3;noww[1]=-1;noww[2]=1;node[2].setw(noww);for(inti=0;i<3;i++){for(intj=0;j<2;j++){for(intk=0;k<3;k++){nowinput[k]=learningdata[i][k];}node[j].sigmoid(nowinput);}nowinput[0]=node[0].f;nowinput[1]=node[1].f
7、;nowinput[2]=1;node[2].sigmoid(nowinput);node[2].d_f=(learningdata[i][3]-node[2].f)*node[2].f*(1-node[2].f);for(intj=0;j<2;j++){node[j].d_f=node[2].d_f*node[j].f*(1-node[j].f);}for(intj=0;j<2;j++){node[j].w[0]=c*node[j].d_f*learningdata[i][0]+node[j].
8、w[0];node[j].w[1]=c*node[j].d_f*learningdata[i][1]+node[j].w[1];node[j].w[2]=c*node[j].d_f*learningdata[i][2]+node[j].w[2];}node[2].w[0]=c*node[2].d_f*node[0].f+node[2].w[0];node[2].w[1]=c*node[2].d_f*node[1].f+node[2].w[1];node[2].w[2]=c*node