基于madaline的神經網絡系統(tǒng)課程設計_第1頁
已閱讀1頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  軟件質量控制與測試課程設計報告</p><p>  ( 2011 -- 2012 年度第 一 學期)</p><p>  課程名稱: 軟件質量控制與測試課程設計報告</p><p>  題 目: 基于madaline的神經網絡系統(tǒng) </p><p>  院 系: 計算機科學與技術系 <

2、/p><p>  班 級: </p><p>  學 號: </p><p>  姓 名: </p><p>  指導教師: </p><p>  設計周數:

3、 兩周 </p><p>  日期:2012 年 5月 4日</p><p><b>  一.任務書</b></p><p><b>  1.項目背景</b></p><p>  人工神經網絡也稱為神經或稱作連接模型,是對人腦或自然神經網絡若干基本特性的抽象和模擬。人工神

4、經網絡以對大腦的生理研究成果為基礎,其目的在于模擬大腦的某些機理與機制,實現某個方面的功能。神經網絡的分類有多種方法:按結構分有前饋神經網絡和后饋神經網絡;按應用功能來分有局部逼近網絡和全局逼近網絡。</p><p><b>  2.要求</b></p><p><b>  2.1目的和用途</b></p><p>  實

5、現網絡計算,并輸出網絡分別在訓練樣本和測試樣本上的性能值。</p><p>  2.2主要內容和組成</p><p>  一.輸入界面的設計包括如下:</p><p>  (1)輸入數據,其中數據的格式可分為.xls,.doc,.txt.提供數據可分為訓練樣本和測試樣本,訓練樣本中已經包含了輸入數據和本身的輸出數據。測試樣本中只有輸入數據。</p>&

6、lt;p>  (2)輸入的數據想通過上傳文件的格式,并且能夠一次性上傳多個文件,在沒有人得干預下,讓它自己進行訓練與測試。</p><p>  (3)在此軟件上能夠任意的設置輸入維數的參數。</p><p>  (4)在軟件輸入界面上要設有樣本的個數,能夠通過人工的預設。</p><p>  二.輸出界面的設計包括如下:</p><p>

7、;<b>  (1)學習性能</b></p><p><b>  (2)測試性能</b></p><p><b>  (3)樣本成功率</b></p><p>  (4)測試樣本成功率</p><p><b>  (5)學習效率</b></p>

8、<p><b>  (6)范化性能</b></p><p><b>  (7)實際迭代次數</b></p><p><b>  (8)學習性能</b></p><p>  (9)輸出數據,其中輸出數據為-1,和1,因為考慮到輸出的多樣性,而且數據范圍比較大。-1是表示在訓練數據時輸出的數

9、據與預期的數據不一致時呈現的結果。1是表示的在訓 練數據時輸出的數據與預期的數據一致時呈現的結果。</p><p><b>  二.需求分析</b></p><p><b>  1.需要實現的功能</b></p><p>  文件復制,文件移動,目錄創(chuàng)建,文件瀏覽,文件上傳下載,程序運行,插件安裝,插件卸載,整體卸載等遠程

10、控制功能,端口更換,密碼更換等系統(tǒng)功能</p><p><b>  2.界面要求</b></p><p>  界面使用知識流界面模式,知識流界面提供默認與自定義配置結合,而此界面所能帶來的優(yōu)勢為可針對多種用戶,并且上手容易。并在有可能的情況下提供多種的語言包,使軟件國際化具有可操作性。</p><p><b>  三.總體設計<

11、/b></p><p>  1.感知器神經元模型</p><p>  感知器神經元通過對權值的訓練,可以使感知器神經元的輸出能代表對輸入模式進行的分類,下圖為感知器神經元模型。</p><p>  感知器神經元的每一個輸入都對應于一個合適的權值,所有的輸入與其對應權值的加權和作為閥值函數的輸入。由于閥值函數的引入,從而使得感知器可以將輸入向量分為兩個區(qū)域,通常

12、閥函數采用雙極階躍函數,如:</p><p><b>  (3.1)</b></p><p>  而感知器神經元模型的實際輸出為</p><p><b> ?。?.2)</b></p><p><b>  其中b為閥值</b></p><p>  2.感

13、知器的網絡結構</p><p>  圖2.2所描述的是一個簡單的感知器網絡結構,輸入層有R個輸入,Q個輸出,通過權值wij與s個感知器神經元連接組成的感知器神經網絡。</p><p>  根據網絡結構,可以寫出感知器處理單元對其輸入的加權和操作,即:</p><p><b>  (3.3)</b></p><p><

14、;b>  而其輸出ai為</b></p><p>  ai=f (ni+bi) (3.4)</p><p><b>  由式2.1易知</b></p><p><b> ?。?.5)</b></p><p>  則當輸入ni+bi

15、大于等于0,即有ni≥-bi時,感知器的輸出為1;否則輸出為0。</p><p>  上面所述的單層感知器神經網絡是不可能解決線性不可分的輸入向量分類問題,也不能推廣到一般的前向網絡中去。為解決這一問題,我們可以設計多層感知器神經網絡以實現任意形狀的劃分。</p><p>  圖2.3描述了一個雙層感知器神經網絡。其工作方式與單層感知器網絡一樣,只不過是增加了一層而已,具體的內容這里不做討

16、論。</p><p><b>  四.詳細設計</b></p><p>  1.自適應線性神經元模型和結構</p><p>  一個線性的具有r個輸人的自適應線性神經元模型如下圖所示。這個神經元有一個線性激活函數,被稱為Adaline如圖4.1(a)所示。和感知器一樣,偏差可以用來作為網絡的一個可調參數,提供額外可調的自由變量以獲得期望的網絡特

17、性。線性神經元可以訓練學習一個與之對應的輸入輸出的函數關系,或線性逼近任意一個非線性函數,但它不能產生任何非線性的計算特性。</p><p>  圖4. 1 自適應線性神經網絡的結構</p><p>  當自適應線性網絡由s個神經元相并聯形成一層網絡,此自適應線性神經網絡又稱為Madallne如圖4.1(b)所示。</p><p>  W—H規(guī)則僅能夠訓練單層網絡

18、,但這并不是什么嚴重問題。如前面所述,單層線性網絡與多層線性網絡具有同樣的能力,即對于每一個多層線性網絡,都具有一個等效的單層線性網絡與之對應。在反向傳播法產生以后,威德羅又將其自適應線性網絡擴展成多層,甚至將激活函數也擴展成非線性的了。</p><p><b>  2.W-H學習規(guī)則</b></p><p>  W—H學習規(guī)則是由威德羅和霍夫提出的用來修正權矢量的學

19、習規(guī)則,所以用他們兩人姓氏的第一個字母來命名。采用W—H學習規(guī)則可以用來訓練一定網絡的權值和偏差使之線性地逼近一個函數式而進行模式聯想(Pattern Association)。</p><p>  定義一個線性網絡的輸出誤差函數為:</p><p><b> ?。?.1)</b></p><p>  由(4.1)式可以看出:線性網絡具有拋物線

20、型誤差函數所形成的誤差表面,所以只有一個誤差最小值。通過W—H學習規(guī)則來計算權值和偏差的變化,并使網絡誤差的平方和最小化,總能夠訓練一個網絡的誤差趨于這個最小值。另外很顯然,E(W,B)只取決于網絡的權值及目標矢量。我們的目的是通過調節(jié)權矢量,使E(W,B)達到最小值。所以在給定E(W,B)后,利用W—H學習規(guī)則修正權矢量和偏差矢量,使E(W,B)從誤差空間的某一點開始,沿著E(W,B)的斜面向下滑行。根據梯度下降法,權矢量的修正值正比

21、于當前位置上E(W,B)的梯度,對于第i個輸出節(jié)點有:</p><p><b>  (4.2)</b></p><p><b>  或表示為:</b></p><p><b>  (4.3)</b></p><p>  這里定義為第i個輸出節(jié)點的誤差:

22、 </p><p><b>  (4.4)</b></p><p>  (4.3)式稱為W—H學習規(guī)則,又叫δ規(guī)則,或為最小均方差算法(LMS)。W—H學習規(guī)則的權值變化量正比于網絡的輸出誤差及網絡的輸入矢量。它不需求導數,所以算法簡單,又具有收斂速度快和精度高的優(yōu)點。</p>

23、<p>  (4.5)式中的η為學習速率。在一般的實際運用中,實踐表明,η通常取一接近1的數,或取值為:</p><p><b> ?。?.5)</b></p><p>  這樣的選擇可以達到既快速又正確的結果。</p><p>  學習速率的這一取法在神經網絡工具箱中用函數maxlinlr.m來實現。(4.5)式可實現為:</

24、p><p>  其中l(wèi)r為學習速率。</p><p>  W—H學習規(guī)則的函數為:learnwh.m來實現,另外,加上線性自適應網絡輸出函數purelin.m,可以寫出W—H學習規(guī)則的計算公式為:</p><p>  A=purelin(W*P);</p><p><b>  E=T—A;</b></p>&l

25、t;p>  [dW,dB]=learnwh(P,E,h);</p><p><b>  W=W十dW;</b></p><p><b>  B=B十dB;</b></p><p>  采用W—H規(guī)則訓練自適應線性元件使其能夠得以收斂的必要條件是被訓練的輸入矢量必須是線性獨立的,且應適當地選擇學習速率以防止產生振蕩現象

26、。</p><p><b>  3.網絡訓練</b></p><p>  自適應線性元件的網絡訓練過程可以歸納為以下三個步驟:</p><p>  1)表達:計算訓練的輸出矢量A=W*P十B,以及與期望輸出之間的誤差E=T—A;</p><p>  2)檢查:將網絡輸出誤差的平方和與期望誤差相比較,如果其值小于期望誤差,

27、或訓練已達到事先設定的最大訓練次數,則停止訓練;否則繼續(xù);</p><p>  3)學習:采用W—H學習規(guī)則計算新的權值和偏差,并返回到1)。</p><p>  每進行一次上述三個步驟,被認為是完成一個訓練循環(huán)次數。</p><p>  如果網絡訓練獲得成功,那么當一個不在訓練中的輸入矢量輸入到網絡中時,網絡趨于產生一個與其相聯想的輸出矢量。這個特性被稱為泛化,這

28、在函數逼近以及輸入矢量分類的應用中是相當有用的。</p><p>  如果經過訓練,網絡仍不能達到期望目標,可以有兩種選擇:或檢查一下所要解決的問題,是否適用于線性網絡;或對網絡進行進一步的訓練。</p><p>  雖然只適用于線性網絡,W—H學習規(guī)則仍然是重要的,因為它展現了梯度下降法是如何來訓練一個網絡的,此概念后來發(fā)展成反向傳播法,使之可以訓練多層非線性網絡。</p>

29、<p>  采用Matlab進行自適應線性元件網絡的訓練過程如下:</p><p><b>  %表達式</b></p><p>  A=purelin(W*P,B);</p><p><b>  E=T-A;</b></p><p>  SSE=sumsqr(E);%求誤差平方和

30、</p><p>  for epoch=1: max_epoch%循環(huán)訓練</p><p>  if SSE<err_goal%比較誤差</p><p>  epoch=epoch—1;</p><p>  break%若滿足期望誤差要求,結束訓練</p><p><b>  end</b

31、></p><p>  [dlw,dB]=1earnwh(P,E,lr);%修正權值</p><p><b>  W=W十dW;</b></p><p><b>  B=B十dB;</b></p><p>  A=purelin(W*P,B);%網絡輸出</p><p&

32、gt;<b>  E=T-A;</b></p><p>  SSE=sumsqr(E);%計算網絡誤差平方和</p><p><b>  end</b></p><p>  同樣,工具箱中設計了一個名為trainwh.m的函數可以替代上述整個訓練過程。</p><p>  如果仍用在輸入空間作

33、圖法來解釋自適應線性元件網絡的功能,它可以解釋為用W*P十B=0的界面通過給出的輸入矢量組成的空間(點或線),或線性地逼近這些輸入矢量。</p><p><b>  五.編碼</b></p><p>  現在來考慮一個較大的多神經元網絡的模式聯想的設計問題。輸入矢量和目標矢量分別為:</p><p><b>  解答過程如下:<

34、/b></p><p>  由輸入矢量和目標輸出矢量可得:r=3,s=4,q=4。所以網絡的結構如圖5.1所示。</p><p>  圖5.1 網絡設計的結構圖</p><p>  這個問題的求解同樣可以采用線性方程組求出,即對每一個輸出節(jié)點寫出輸入和輸出之間的關系等式。對于網絡每一個輸出神經元都有4個變量(三個權值加一個偏差),有四個限制方程(每組輸入對應四

35、個輸出值)。這樣由四個輸出節(jié)點,共產生16個方程,其方程數目與權值數目相等。所以只要輸入矢量是線性獨立的,則同時滿足這16個方程的權值存在且唯一。對應到網絡上來說,則存在零誤差的精確權值。</p><p>  實際上要求出這16個方程的解是需要花費一定的時間的,甚至是不太容易的。對于一些實際問題,常常并不需要求出其完美的零誤差時的解。也就是說允許存在一定的誤差。在這種情況下,采用自適應線性網絡求解就顯示出它的優(yōu)越

36、性:因為它可以很快地訓練出滿足一定要求的網絡權值。對于有完美解的網絡設計,通過對期望誤差平方和的選定,也能通過加長訓練次數來獲得。</p><p>  下面給出設計程序。為了便于對比,在程序中增加了以下幾項:</p><p>  1)訓練前由初始權值所得到的誤差平方和;</p><p>  2)最終誤差及訓練次數的顯示;</p><p>  

37、3)整個訓練過程中的網絡誤差的記錄顯示;</p><p><b>  4)最終權值。</b></p><p><b> ?。f2.m</b></p><p><b> ?。?lt;/b></p><p>  P=[1 1.5 1.2 –0.3; -1 2 3 –0.5; 2 1 –

38、1.6 0.9];</p><p>  T=[0.5 3 –2.2 1.4; 1.1 –1.2 1.7 –0.4; 3 0.2 –1.8 –0.4; -1 0.1 –1.0 0.6];</p><p>  disp_freq=400;%中間不顯示結果</p><p>  max_epoch=400;</p><p>  er

39、r_goal=0.001;</p><p>  lr=0.9*maxlinlr(P);</p><p>  W=[1.9978 –0.5959 –0.3517; 1.5543 0.05331 1.3660;%初始權值</p><p>  1.0672 0.3645 –0.9227; -0.7747 1.3839 –0.3384];</p>&l

40、t;p>  B=[0.0746; -0.0642; -0.4256; -0.6433];</p><p>  SSE=sumsqr(T-purelin(W*P,B)); %未訓練前誤差</p><p>  fprintf(‘Before trainihg, sum squared error=%g. \n’, SSE)</p><p><b&g

41、t; ?。ビ柧毦W絡</b></p><p><b>  flops(0)</b></p><p>  tp=[disp_freq max_epoch err_goal lr]; %設置參數變量tp</p><p>  [W, B, epochs,errors]=trainwh(W, B, P, T, tp); %進

42、行線性網絡權值訓練</p><p>  W %顯示最終訓練權矢量</p><p>  B %顯示最終訓練偏差矢量</p><p>  SSE=sumsqr(T-purelin(W*P, B)); %最終誤差</p><p> ?。ワ@示結果并給出結論</p><p

43、>  ploterr(errors), </p><p>  fprintf (‘\n After%.0f epochs,sum squared e error=%g. \n\n’, SSE),</p><p>  fprintf (‘Training took %.0f flops. \n’, flops),</p><p>  fprintf (‘ Tra

44、ined network operates:’);</p><p>  if SSE<err_goal</p><p>  disp(‘Adequately.’)</p><p><b>  else</b></p><p>  disp(‘Inadequately.’)</p><p><

45、b>  end</b></p><p><b>  end</b></p><p>  運行wf2.m在訓練274次循環(huán)后其誤差平方和達到0.000993245,而初始誤差為144.463。在整個訓練過程中誤差的變化走向如圖5.2所示。</p><p>  訓練后的網絡權值為:</p><p>  圖5

46、.2 網絡訓練過程中的誤差記錄</p><p>  對于存在零誤差的精確權值網絡,若用函數solvelin.m來求解,則更加簡單如下:</p><p><b> ?。f3.m</b></p><p><b> ?。?lt;/b></p><p>  P=[1 1.5 1.2 –0.3; -1 2 3

47、–0.5; 2 1 –1.6 0.9];</p><p>  T=[0.5 3 –2.2 1.4; 1.1 –1.2 1.7 –0.4; 3 0.2 –1.8 -0.4; -1 0.1 –1.0 0.6];</p><p>  [W,B]=solvelin(P,T);</p><p>  A=simulin (P, W, B);</p><p&g

48、t;  SSE=sumsqr (T-A)</p><p><b>  W</b></p><p><b>  B</b></p><p><b>  end</b></p><p>  由此可得零誤差的唯一精確解為:</p><p>  通常可以直接地判

溫馨提示

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

評論

0/150

提交評論