前言Neural Network Design,Second Edition本書介紹基本的神經網絡結構和學習規則,重點闡述網絡的數學分析、訓練方法,以及網絡在非線性回歸、模式識別、信號處理、數據挖掘和控制系統等領域實際工程問題中的應用。
我們盡最大努力以清晰和一致的方式安排本書內容,以期本書易懂易用。書中使用了許多例子來解釋每個討論的主題。在書的最后幾章,我們提供了一些學習實例,以展示神經網絡在實際應用中可能遇到的問題。
由于本書是關于神經網絡設計的,因此在內容的選擇上依據了兩個原則。首先,我們希望提供最有用且實際的神經網絡結構、學習規則和訓練技巧。其次,我們希望本書能夠自成體系,并且章節間的過渡自然流暢。為了實現這個目的,我們將有關應用數學的各種介紹材料和章節放在了需要用到這些材料的特定主題之前。簡言之,一些內容的選擇是因為它們對神經網絡的實際應用有重要作用,而另一些內容的選擇則是由于它們對解釋神經網絡的運行機制有重要意義。
我們省略了許多本可以包含的內容。例如,我們沒有把本書寫成一個涵蓋所有已知神經網絡結構和學習規則的目錄或綱要,而是集中精力介紹基礎概念。其次,我們沒有討論神經網絡的實現技術,如VLSI、光學器件和并行計算機等。再有,我們沒有提供神經網絡的生物學和心理學方面的基礎知識。雖然這些內容都是重要的,不過,我們希望重點討論那些我們認為對神經網絡設計最有用的內容,并進行深入闡釋。
本書可作為高年級本科生或一年級研究生一個學期的神經網絡導論課程教材(也適合短期課程、自學或參考)。讀者需要具有一定的線性代數、概率論和微分方程的基礎知識。
書中每章按如下方式分節:目標、理論與例子、小結、例題、結束語、擴展閱讀和習題。理論與例子是每章的主要部分,包含基本思想的發展以及例子解析。小結部分提供一個方便的列表,包含重要方程和概念,以易于工程參考。每章將大約1/3的篇幅用在例題部分,為所有關鍵的概念提供詳細的例題解析。
下頁的框圖說明了各章之間的依賴關系。
第1~6章涵蓋后面所有章節需要的基本概念。第1章是本書的引言,簡要介紹神經網絡的歷史背景和一些生物學基礎。第2章描述基本的神經網絡結構,這一章引入的記號體系將貫穿全書。第3章給出一個簡單的模式識別問題,并展示該問題可以分別由三類不同的神經網絡來解決。這三類網絡是本書后面的網絡類型的代表。此外,這里的模式識別問題也提供了本書解決問題的一般思路。
本書主要專注于訓練神經網絡完成各種任務的方法。在第4章中,我們介紹學習算法并給出第一個實際算法:感知機學習規則。感知機網絡雖然有其本質的局限性,但卻具有重要的歷史意義,并且可作為一個有用的工具來引入后面章節中強大神經網絡的關鍵概念。
本書的主要目的之一是闡述神經網絡的工作原理。為此,我們將神經網絡的內容和一些重要的輔助材料組織在一起。例如,在第5、6章中提供了線性代數的相關材料,這是理解神經網絡所需的核心數學知識。這兩章討論的概念將廣泛用于本書后面章節。
第7章和第15章闡述主要受生物學和心理學啟發的神經網絡及其學習規則。它們分為兩類:聯想網絡和競爭網絡。聯想網絡安排在第7章,而競爭網絡安排在第15章。
第8~14章以及第16章論述一類稱為性能學習的方法,該方法用于訓練網絡以優化其性能。第8、9章介紹性能學習的基本概念。第10~13章中將這些概念用于逐步強大和復雜的前饋神經網絡。第14章將這些概念用于動態神經網絡。在第16章中,這些概念則被用于徑向基神經網絡,這類網絡也用到了來自競爭學習的概念。
第17~22章和前面的章節不同。前面的章節主要關注每種網絡的基礎理論和相應的學習規則,要點是理解核心概念。在第17~22章中,我們討論神經網絡在實際應用中的具體問題。第17章闡述許多實際的訓練技巧,第18~22章給出一系列實例研究,這些實例包括將神經網絡用于函數逼近、概率估計、模式識別、聚類和預測。
軟件MATLAB軟件并非是使用本書所必需的,上機練習可以用任何編程語言來完成。另外,本書提供的神經網絡設計演示(Neural Network Design Demonstrations)程序雖然有助于理解書中內容,但非關鍵所在。
不過,我們還是采用MATLAB軟件包來提供本書的輔助材料。該軟件使用廣泛,而且由于它的矩陣/向量表示法和圖形化顯示,為神經網絡實驗提供了方便的環境。我們用兩種不同的方法使用MATLAB。第一種,我們為讀者準備了一些用MATLAB去完成的練習。神經網絡的一些重要特性僅在大型問題中才能體現出來,這需要大量計算,不適合手工演算。利用MATLAB可以快速實現神經網絡算法,也可以方便地測試大型問題。(如果沒有MATLAB軟件,可以使用任何其他編程語言來完成這些練習。)第二種使用MATLAB的方法是利用Neural Network Design Demonstrations軟件,你可以從網站hagan.okstate.edu/nnd.html下載它。這些交互式的演示程序解釋了每章中的重要概念。把這個軟件加載到你計算機的MATLAB目錄下之后(或者放在MATLAB路徑上),就可在MATLAB提示符下通過輸入nnd命令進