![Matlab的神經(jīng)網(wǎng)絡工具箱實用指南上課講義_第1頁](http://file4.renrendoc.com/view/fb0ad698e13fa014fd70dadb8212bf71/fb0ad698e13fa014fd70dadb8212bf711.gif)
![Matlab的神經(jīng)網(wǎng)絡工具箱實用指南上課講義_第2頁](http://file4.renrendoc.com/view/fb0ad698e13fa014fd70dadb8212bf71/fb0ad698e13fa014fd70dadb8212bf712.gif)
![Matlab的神經(jīng)網(wǎng)絡工具箱實用指南上課講義_第3頁](http://file4.renrendoc.com/view/fb0ad698e13fa014fd70dadb8212bf71/fb0ad698e13fa014fd70dadb8212bf713.gif)
![Matlab的神經(jīng)網(wǎng)絡工具箱實用指南上課講義_第4頁](http://file4.renrendoc.com/view/fb0ad698e13fa014fd70dadb8212bf71/fb0ad698e13fa014fd70dadb8212bf714.gif)
![Matlab的神經(jīng)網(wǎng)絡工具箱實用指南上課講義_第5頁](http://file4.renrendoc.com/view/fb0ad698e13fa014fd70dadb8212bf71/fb0ad698e13fa014fd70dadb8212bf715.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Good is good, but better carries it.精益求精,善益求善。Matlab的神經(jīng)網(wǎng)絡工具箱實用指南-Matlab的神經(jīng)網(wǎng)絡工具箱實用指南文章摘要:第一章是神經(jīng)網(wǎng)絡的基本介紹,第二章包括了由工具箱指定的有關網(wǎng)絡結構和符號的基本材料以及建立神經(jīng)網(wǎng)絡的一些基本函數(shù),例如new、init、adapt和train。第三章以反向傳播網(wǎng)絡為例講解了反向傳播網(wǎng)絡的原理和應用的基本過程。第一章介紹1神經(jīng)網(wǎng)絡神經(jīng)網(wǎng)絡是單個并行處理元素的集合,我們從生物學神經(jīng)系統(tǒng)得到啟發(fā)。在自然界,網(wǎng)絡功能主要由神經(jīng)節(jié)決定,我們可以通過改變連接點的權重來訓練神經(jīng)網(wǎng)絡完成特定的功能。一般的神經(jīng)網(wǎng)絡都是可
2、調節(jié)的,或者說可訓練的,這樣一個特定的輸入便可得到要求的輸出。如下圖所示。這里,網(wǎng)絡根據(jù)輸出和目標的比較而調整,直到網(wǎng)絡輸出和目標匹配。作為典型,許多輸入/目標對應的方法已被用在有監(jiān)督模式中來訓練神經(jīng)網(wǎng)絡。神經(jīng)網(wǎng)絡已經(jīng)在各個領域中應用,以實現(xiàn)各種復雜的功能。這些領域包括:模式識別、鑒定、分類、語音、翻譯和控制系統(tǒng)。如今神經(jīng)網(wǎng)絡能夠用來解決常規(guī)計算機和人難以解決的問題。我們主要通過這個工具箱來建立示范的神經(jīng)網(wǎng)絡系統(tǒng),并應用到工程、金融和其他實際項目中去。一般普遍使用有監(jiān)督訓練方法,但是也能夠通過無監(jiān)督的訓練方法或者直接設計得到其他的神經(jīng)網(wǎng)絡。無監(jiān)督網(wǎng)絡可以被應用在數(shù)據(jù)組的辨別上。一些線形網(wǎng)絡和H
3、opfield網(wǎng)絡是直接設計的??偟膩碚f,有各種各樣的設計和學習方法來增強用戶的選擇。神經(jīng)網(wǎng)絡領域已經(jīng)有50年的歷史了,但是實際的應用卻是在最近15年里,如今神經(jīng)網(wǎng)絡仍快速發(fā)展著。因此,它顯然不同與控制系統(tǒng)和最優(yōu)化系統(tǒng)領域,它們的術語、數(shù)學理論和設計過程都已牢固的建立和應用了好多年。我們沒有把神經(jīng)網(wǎng)絡工具箱僅看作一個能正常運行的建好的處理輪廓。我們寧愿希望它能成為一個有用的工業(yè)、教育和研究工具,一個能夠幫助用戶找到什么能夠做什么不能做的工具,一個能夠幫助發(fā)展和拓寬神經(jīng)網(wǎng)絡領域的工具。因為這個領域和它的材料是如此新,這個工具箱將給我們解釋處理過程,講述怎樣運用它們,并且舉例說明它們的成功和失敗。
4、我們相信要成功和滿意的使用這個工具箱,對范例和它們的應用的理解是很重要的,并且如果沒有這些說明那么用戶的埋怨和質詢就會把我們淹沒。所以如果我們包括了大量的說明性材料,請保持耐心。我們希望這些材料能對你有幫助。這個章節(jié)在開始使用神經(jīng)網(wǎng)絡工具箱時包括了一些注釋,它也描述了新的圖形用戶接口和新的運算法則和體系結構,并且它解釋了工具箱為了使用模塊化網(wǎng)絡對象描述而增強的機動性。最后這一章給出了一個神經(jīng)網(wǎng)絡實際應用的列表并增加了一個新的文本-神經(jīng)網(wǎng)絡設計。這本書介紹了神經(jīng)網(wǎng)絡的理論和它們的設計和應用,并給出了相當可觀的MATLAB和神經(jīng)網(wǎng)絡工具箱的使用。2準備工作基本章節(jié)第一章是神經(jīng)網(wǎng)絡的基本介紹,第二章
5、包括了由工具箱指定的有關網(wǎng)絡結構和符號的基本材料以及建立神經(jīng)網(wǎng)絡的一些基本函數(shù),例如new、init、adapt和train。第三章以反向傳播網(wǎng)絡為例講解了反向傳播網(wǎng)絡的原理和應用的基本過程。幫助和安裝神經(jīng)網(wǎng)絡工具箱包含在nnet目錄中,鍵入helpnnet可得到幫助主題。工具箱包含了許多示例。每一個例子講述了一個問題,展示了用來解決問題的網(wǎng)絡并給出了最后的結果。顯示向導要討論的神經(jīng)網(wǎng)絡例子和應用代碼可以通過鍵入helpnndemos找到。安裝神經(jīng)網(wǎng)絡工具箱的指令可以在下列兩份MATLAB文檔中找到:theInstallationGuideforMS-WindowsandMacintosh或者
6、theInstallationGuideforUNIX。第二章神經(jīng)元模型和網(wǎng)絡結構1符號數(shù)學符號下面給出等式和數(shù)字中用到的基本符號:標量-小寫的斜體字.a,b,c向量-小寫加粗的非斜體字.a,b,c矩陣-大寫加粗的非斜體字.A,B,C向量表示一組數(shù)字數(shù)學符號和字符的等價從數(shù)學符號到字符的轉換或者反過來可以遵循一些規(guī)則,為了便于今后引用我們將這些規(guī)則列出。為了從數(shù)學符號變?yōu)镸ATLAB符號用戶需要:變上標為細胞數(shù)組標號例如變下標為圓括號標號例如和變圓括號標號為二維數(shù)組標號例如變數(shù)學運算符為MATLAB運算符和工具箱函數(shù)例如2神經(jīng)元模型單神經(jīng)元下圖所示為一個單標量輸入且無偏置的神經(jīng)元。這個輸入標量
7、通過乘以權重為標量w的連結點得到結果wp,這仍是一個標量。這里,加權的輸入wp僅僅是轉移函數(shù)f的參數(shù),函數(shù)的輸入是標量a。右邊的神經(jīng)元有一個標量偏置b,你既可以認為它僅僅是通過求和節(jié)點加在結果wp上,也可以認為它把函數(shù)f左移了b個單位,偏置除了有一個固定不變的輸入值1以外,其他的很像權重。標量n是加權輸入wp和偏置b的和,它作為轉移函數(shù)f的參數(shù)。函數(shù)f是轉移函數(shù),它可以為階躍函數(shù)或者曲線函數(shù),它接收參數(shù)n給出輸出a,下一節(jié)將給出各種不同的轉移函數(shù)。注意神經(jīng)元中的w和b都是可調整的標量參數(shù)。神經(jīng)網(wǎng)絡的中心思想就是參數(shù)的可調整使得網(wǎng)絡展示需要和令人感興趣的行為。這樣,我們就可以通過調整權重和偏置參
8、量訓練神經(jīng)網(wǎng)絡做一定的工作。或者神經(jīng)網(wǎng)絡自己調整參數(shù)以得到想要的結果。在這個工具箱里所有的神經(jīng)元都提供偏置,我們的許多例子中都用到了偏置并且假定它在這個工具箱的大多數(shù)情況下都要用到??墒?,如果你愿意的話,你也可以在一個神經(jīng)元中省略偏置。正如上面所提到的,在神經(jīng)元中,標量b是個可調整的參數(shù)。它不是一個輸入??墒球寗悠玫某A?卻是一個輸入而且當考慮線性輸入向量時一定要這樣認為。轉移函數(shù)在這個工具箱里包括了許多轉移函數(shù)。你能在TransferFunctionGraphs中找到它們的完全列表。下面列出了三個最常用的函數(shù)。上圖所示的階躍轉移函數(shù)限制了輸出,使得輸入?yún)?shù)小于0時輸出為0,大于或等于0時輸
9、出為1,在第三章中我們將用它來進行分類。工具箱中有一個函數(shù)hardlim來數(shù)學上的階躍,如上圖所示。我們可以輸入以下代碼n=-5:0.1:5;plot(n,hardlim(n),c+:);它產生一張在-5到5之間的階躍函數(shù)圖。所有在工具箱中的數(shù)學轉移函數(shù)都能夠用同名的函數(shù)實現(xiàn)。線性轉移函數(shù)如下圖所示這種類型的神經(jīng)元將在第四章的自適應線性濾波中用作線性擬合。下圖顯示的曲線轉移函數(shù)的輸入?yún)?shù)是正負區(qū)間的任意值,而將輸出值限定于0到1之間。這種傳遞函數(shù)通常用于反向傳播(BP)網(wǎng)絡,這得益于函數(shù)的可微性。在上面所示的每一個轉移函數(shù)圖的右邊方框中的符號代表了對應的函數(shù),這些圖表將替換網(wǎng)絡圖的方框中的f來
10、表示所使用的特定的轉移函數(shù)。第13章列出了所有的轉移函數(shù)和圖標。你能夠定義自己的傳遞函數(shù),你可以不限于使用第13章所列的轉移函數(shù)。你能夠通過運行示例程序nn2n1來試驗一個神經(jīng)元和各種轉移函數(shù)。帶向量輸入的神經(jīng)元一個有R個元素輸入向量的神經(jīng)元如下圖所示。這里單個輸入元素乘上權重得到加權值輸入求和節(jié)點。它們的和是Wp,單行矩陣W和向量p的點乘。這個神經(jīng)元有一個偏置b,它加在加權的輸入上得到網(wǎng)絡輸入n,和值n是轉移函數(shù)f的參數(shù)。表達式自然可用MATLAB代碼表示為:n=W*p+b可是,用戶很少要寫如此底層的代碼,因為這些代碼已經(jīng)被建立到函數(shù)中來定義和模擬整個網(wǎng)絡。上面所示的圖包括了許多細節(jié)。當我們
11、考慮有許多神經(jīng)元和可能是許多神經(jīng)元組成的多層網(wǎng)絡時,我們可能會漏掉許多細節(jié)。因此,作者設計了一個簡潔的符號代表單個神經(jīng)元。這個符號如下圖中所示,它將會在以后的多重神經(jīng)元電路中用到。這里輸入向量p用左邊的黑色實心豎條代表,p的維數(shù)寫在符號p下面,在圖中是Rx1。(注意我們用的是大寫字母,正如在以前句子里R用來表示向量大小時一樣。)因此,p是一個有R個輸入元素的向量。這個輸入列向量乘上R列單行矩陣W。和以前一樣,常量1作為一個輸入乘上偏置標量b,給轉移函數(shù)的網(wǎng)絡輸入是n,它是偏置與乘積Wp的和。這個和值傳給轉移函數(shù)f得到網(wǎng)絡輸出a,在這個例子中它是一個標量。注意如果我們有超過一個神經(jīng)元,網(wǎng)絡輸出就
12、有可能是一個向量。上面圖中定義了神經(jīng)網(wǎng)絡的一層。一層包括權重的組合,乘法和加法操作(這里就是向量乘積Wp),偏置b和轉移函數(shù)f。輸入數(shù)組,即向量p不包括在一層中。這個簡潔的網(wǎng)絡符號每一次都會被用到,向量的大小會顯示在矩陣變量名字的下面。我們希望這個符號會讓你理解神經(jīng)網(wǎng)絡的結構以及與之相關的矩陣數(shù)學。正如前面所討論的,當特定的轉移函數(shù)在一張圖中被使用時,轉移函數(shù)將用上面所示的符號代替。下面是幾個例子:你可以通過運行示例程序nnd2n2來試驗有2個元素的神經(jīng)元。3網(wǎng)絡結構兩個或更多的上面所示的神經(jīng)元可以組合成一層,一個典型的網(wǎng)絡可包括一層或者多層。我們首先來研究神經(jīng)元層。單層神經(jīng)元網(wǎng)絡有R輸入元素
13、和S個神經(jīng)元組成的單層網(wǎng)絡如下圖所示:在一個單層網(wǎng)絡中,輸入向量p的每一個元素都通過權重矩陣W和每一個神經(jīng)元連接起來。第I個神經(jīng)元通過把所有加權的輸入和偏置加起來得到它自己的標量輸出n(i)。不同的n(i)合起來形成了有S個元素的網(wǎng)絡輸入向量n。最后,網(wǎng)絡層輸出一個列向量a,我們在圖的底部顯示了a的表達式。注意輸入元素個數(shù)R和神經(jīng)元個數(shù)S通常是不等的,我們也并不需要這兩者相等。你也可以建立一個簡單的復合神經(jīng)元層,它將上面所示的網(wǎng)絡并行的合在一起,使用不同的轉移函數(shù)。所有的網(wǎng)絡都有相同的輸入,而每一個網(wǎng)絡都會產生輸出。輸入向量元素經(jīng)加權矩陣W作用輸入網(wǎng)絡。W=注意加權矩陣W的行標標記權重的目的神
14、經(jīng)元,列標標記待加權的輸入標號。因此,的標號表示從輸入信號的第二個元素到第一個神經(jīng)元的權重是。有S個神經(jīng)元和R個輸入元素的神經(jīng)網(wǎng)絡也能夠簡化成以下符號:這里,p是一個有R個元素的輸入向量,W是一個SxR的矩陣,a和b是有S個元素的向量。如前面所定義的,神經(jīng)元層包括權重矩陣,乘法運算,偏置向量b,求和符和轉移函數(shù)框。輸入和層我們將要討論多層網(wǎng)絡,所以我們需要拓展我們的符號來描述這樣的網(wǎng)絡。特別是我們要弄清連接輸入的權重矩陣和連接層的權重矩陣之間的區(qū)別。我們也要分清權重矩陣的目的和源。我們將把連接輸入的權重矩陣成為輸入權重,把來自層輸出的權重矩陣稱為層矩陣。進一步說,我們在各個權重和其他網(wǎng)絡元素中
15、將用上標區(qū)分源(第二個標號)和目的(第一個標號)。作為示例,我們用簡化的形式重畫了上面所畫的單層多輸入網(wǎng)絡。你可以看到,我們把連接輸入向量p的權重矩陣標記為輸入權重矩陣(IW1,1),第二個標號1是源,第二個標號1是目的。同樣,第一層的元素,比如偏置、網(wǎng)絡輸入和輸出都有上標1來表示它們屬于第一層。在下一章節(jié),我們將用LW表示層權重矩陣,用IW表示輸入權重矩陣。你可以復習以下這一章開始的符號那一節(jié),它把特定的網(wǎng)絡net中用數(shù)學符號表示的層權重矩陣轉換成代碼,如下所示:IW1,1net.IW1,1這樣,你就可以寫代碼來得到對轉移函數(shù)的網(wǎng)絡輸入了:n1=net.IW1,1*p+net.b1多層神經(jīng)元
16、網(wǎng)絡一個網(wǎng)絡可以有幾層,每一層都有權重矩陣W,偏置向量b和輸出向量a。為了區(qū)分這些權重矩陣、輸出矩陣等等,在圖中的每一層,我們都為感興趣的變量以上標的形式增加了層數(shù)。你能夠看到在下面所示的三層網(wǎng)絡圖和等式中使用層符號。上面所示的網(wǎng)絡有R1個輸入,第一層有S1個神經(jīng)元,第二層有S2個神經(jīng)元,以次類推。一般不同層有不同數(shù)量的神經(jīng)元。每一個神經(jīng)元的偏置輸入是常量1。注意中間層的輸出就是下一層的輸入。第二層可看作有S1個輸入,S2個神經(jīng)元和S1xS2階權重矩陣W2的單層網(wǎng)絡。第二層的輸入是a1,輸出是a2,現(xiàn)在我們已經(jīng)確定了第二層的所有向量和矩陣,我們就能把它看成一個單層網(wǎng)絡了。其他層也可以照此步驟處
17、理。多層網(wǎng)絡中的層扮演著不同的角色。給出網(wǎng)絡輸出的層叫做輸出層。所有其他的層叫做隱層。上圖所示的三層網(wǎng)絡有一個輸出層(第三層)和兩個隱層(第一和第二層)。有些作者把輸入作為第四層,這里不用這種指定。上面所示的三層網(wǎng)絡的簡潔畫法如下圖所示:多層網(wǎng)絡的功能非常強大。舉個例子,一個兩層的網(wǎng)絡,第一層的轉移函數(shù)是曲線函數(shù),第二層的轉移函數(shù)是線性函數(shù),通過訓練,它能夠很好的模擬任何有有限斷點的函數(shù)。這種兩層網(wǎng)絡集中應用于反向傳播網(wǎng)絡。注意我們把第三層的輸出a3標記為y。我們將使用這種符號來定義這種網(wǎng)絡的輸出。4數(shù)據(jù)結構這一節(jié)將討論影響網(wǎng)絡仿真的輸入數(shù)據(jù)結構的格式。我們首先討論靜態(tài)網(wǎng)絡,在討論動態(tài)網(wǎng)絡。我
18、們將關心兩種基本的輸入向量類型:同步(同時或者無時序)向量和異步向量。對異步向量來說,向量的順序是非常重要的。對同步向量來說,順序是不重要的,并且如果我們已經(jīng)有一定數(shù)量的并行網(wǎng)絡我們就能把一個輸入向量輸入到其中的任意網(wǎng)絡。靜態(tài)網(wǎng)絡中的同步輸入仿真仿真靜態(tài)網(wǎng)絡(沒有反饋或者延遲)是網(wǎng)絡仿真最簡單的一種。在這種情況中,我們不需要關心向量輸入的時間順序,所以我們可以認為它是同時發(fā)生的。另外,為了是問題更簡單,我們假定開始網(wǎng)絡僅有一個輸入向量。我們用下面的網(wǎng)絡作為例子。為了建立這個網(wǎng)絡我們可以用以下命令:net=newlin(-11;-11,1);簡單起見我們假定權重矩陣和偏置為W=1,2,b=0其命
19、令行是:net.IW1,1=12;net.b1=0;假定模擬的網(wǎng)絡有四個無序向量,即Q=4:這些同步向量可以用一個矩陣來表示:P=1223;2131;現(xiàn)在我們就可以模擬這個網(wǎng)絡了:A=sim(net,P)A=5485我們向網(wǎng)絡輸入一個簡單的同步向量矩陣,得到了一個簡單的同步向量輸出矩陣。結果不論是由一個網(wǎng)絡串行輸出還是由四個網(wǎng)絡并行輸出得到的都是一樣的。由于輸入并無關聯(lián),輸入向量的順序并不重要。動態(tài)網(wǎng)絡中的異步輸入仿真當網(wǎng)絡中存在延遲時,順序發(fā)生的輸入向量就要按一定的序列輸入網(wǎng)絡。為了演示這種情況,我們用了一個有延遲的簡單網(wǎng)絡。為了建立這個網(wǎng)絡我們可以用以下命令:net=newlin(-11,
20、1,01);net.biasConnect=0;假定權重矩陣為:W=1,2命令行為:net.IW1,1=12;假定輸入順序為:p(1)=1,p(2)=2,p(3)=3,p(4)=4輸入序列可以用一個細胞數(shù)組來表示:P=1234;這樣我們就能模擬這個網(wǎng)絡了:A=sim(net,P)A=14710我們輸入一個包含輸入序列的細胞數(shù)組,網(wǎng)絡產生一個包含輸出序列的細胞數(shù)組。注意異步輸入中的輸入順序是很重要的。在這個例子中,當前輸出等于當前輸入乘1加上前一個輸入乘2。如果我們改變輸入順序,那么輸出結果也回隨之改變。動態(tài)網(wǎng)絡中的同步輸入仿真如果我們在上一個例子中把輸入作為同步而不是異步應用,我們就會得到完全
21、不同的響應。(雖然我們不清楚為什么要在動態(tài)網(wǎng)絡中使用這種方式。)這就好象每一個輸入都同時加到一個單獨的并行網(wǎng)絡中。在前一個例子中,如果我們用一組同步輸入,我們有:p1=1,p2=2,p3=3,p4=4這可用下列代碼創(chuàng)建:P=1234;模擬這個網(wǎng)絡,我們得到:A=sim(net,P)A=1234這個結果和我們同時把每一個輸入應用到單獨的網(wǎng)絡中并計算單獨的輸出沒什么兩樣。注意如果我們沒有初始化延遲時間,那么缺省值就是0。在這個例子中,由于當前輸入的權重是1,輸出就是輸入乘1。在某些特定的情況下,我們可能想要在同一時間模擬一些不同序列的網(wǎng)絡響應。這種情況我們就要給網(wǎng)絡輸入一組同步序列。比如說,我們要
22、把下面兩個序列輸入網(wǎng)絡:p(1)=1,p(2)=2,p(3)=3,p(4)=4p(1)=4,p(2)=3,p(3)=2,p(4)=1輸入P應該是一個細胞數(shù)組,每一個數(shù)組元素都包含了兩個同時發(fā)生的序列的元素。P=14233241;現(xiàn)在我們就可以模擬這個網(wǎng)絡了:A=sim(net,P);網(wǎng)絡輸出結果將是:A=1441178105你可以看到,每個矩陣的第一列是由第一組輸入序列產生的輸出序列,每個矩陣的第二列是由第二組輸入序列產生的輸出序列。這兩組序列之間沒有關聯(lián),好象他們是同時應用在單個的并行網(wǎng)絡上的。下面的圖表顯示了當我們有Q個TS長度的序列時,在函數(shù)sim中輸入P的一般格式。它函蓋了單輸入向量的
23、所有的情況。每一個細胞數(shù)組的元素都是一個同步向量矩陣,它對應于每一個序列的同一時間點。如果有多輸入向量,那么在細胞數(shù)組中的矩陣里就有多行。這一節(jié)我們我們把同步和異步輸入應用到了動態(tài)網(wǎng)絡中。在以前的章節(jié)中我們把同步輸入應用到了靜態(tài)網(wǎng)絡中。我們也能把異步序列應用到靜態(tài)網(wǎng)絡中。這不會改變網(wǎng)絡的輸出響應,但是這會影響訓練過的網(wǎng)絡的形式。在下一節(jié)你會更清楚的了解這一點。5訓練方式在這一節(jié)中,我們將描述兩種不同的訓練方式。在增加方式中,每提交一次輸入數(shù)據(jù),網(wǎng)絡權重和偏置都更新一次。在批處理方式中,僅僅當所有的輸入數(shù)據(jù)都被提交以后,網(wǎng)絡權重和偏置才被更新。增加方式(應用與自適應網(wǎng)絡和其他網(wǎng)絡)雖然增加方式更
24、普遍的應用于動態(tài)網(wǎng)絡,比如自適應濾波,但是在靜態(tài)和動態(tài)網(wǎng)絡中都可以應用它。在這一節(jié)中我們將示范怎樣把增加方式應用到這兩種網(wǎng)絡中去。靜態(tài)網(wǎng)絡中的增加方式繼續(xù)考慮前面用過的第一個靜態(tài)網(wǎng)絡的例子,我們用增加方式來訓練它,這樣每提交一次輸入數(shù)據(jù),網(wǎng)絡權重和偏置都更新一次。在這個例子里我們用函數(shù)adapt,并給出輸入和目標序列:假定我們要訓練網(wǎng)絡建立以下線性函數(shù):t=2p1+p2我們以前用的輸入是:目標輸出是:t1=4,t2=5,t3=7,t4=7我們首先用0初始化權重和偏置。為了顯示增加方式的效果,我們把學習速度也設為0。net=newlin(-11;-11,1,0,0);net.IW1,1=00;n
25、et.b1=0;為了用增加方式,我們把輸入和目標輸出表示為以下序列:P=1;22;12;33;1;T=4577;前面的討論中,不論是作為一個同步向量矩陣輸入還是作為一個異步向量細胞數(shù)組輸入,模擬的輸出值是一樣的。而在訓練網(wǎng)絡時,這是不對的。當我們使用adapt函數(shù)時,如果輸入是異步向量細胞數(shù)組,那么權重將在每一組輸入提交的時候更新(就是增加方式),我們將在下一節(jié)看到,如果輸入是同步向量矩陣,那么權重將只在所有輸入提交的時候更新(就是批處理方式)。我們現(xiàn)在開始用增加方式訓練網(wǎng)絡:net,a,e,pf=adapt(net,P,T);由于學習速度為0,網(wǎng)絡輸出仍然為0,并且權重沒有被更新。錯誤和目標
26、輸出相等。a=0000e=4577如果我們設置學習速度為0.1,我們就能夠看到當每一組輸入提交時,網(wǎng)絡是怎么調整的了。net.inputWeights1,1.learnParam.lr=0.1;net.biases1,1.learnParam.lr=0.1;net,a,e,pf=adapt(net,P,T);a=026.05.8e=431.01.2由于在第一個輸入數(shù)據(jù)提交前還沒有更新,第一個輸出和學習速率為0時一樣。由于權重已更新,第二個輸出就不一樣了。每計算一次錯誤,權重都不斷的修改。如果網(wǎng)絡可行并且學習速率設置得當,錯誤將不斷的趨向于0。動態(tài)網(wǎng)絡中的增加方式我們同樣也能用增加方式訓練動態(tài)網(wǎng)
27、絡。實際上,這是最普遍的情況。讓我們用前面用過的那個有輸入延遲的線性網(wǎng)絡作為例子,我們將初始化權重為0,并把學習速率設為0.1。net=newlin(-11,1,01,0.1);net.IW1,1=00;net.biasConnect=0;為了用增加方式,我們把輸入和目標輸出表示為細胞數(shù)組的元素:Pi=1;P=234;T=357;這里我們嘗試訓練網(wǎng)絡把當前輸入和前一次輸入加起來作為當前輸出。輸入序列和我們以前使用sim的例子中用過的一樣,除了我們指定了輸入序列的第一組作為延遲的初始狀態(tài)。現(xiàn)在我們可以用adapt來訓練網(wǎng)絡了:net,a,e,pf=adapt(net,P,T,Pi);a=02.4
28、7.98e=32.6-1.98由于權重沒有更新,第一個輸出是0。每一個序列步進,權重都改變一次。批處理方式在批處理方式中,僅僅當所有的輸入數(shù)據(jù)都被提交以后,網(wǎng)絡權重和偏置才被更新,它也可以應用于靜態(tài)和動態(tài)網(wǎng)絡。我們將在這一節(jié)討論這兩種類型。靜態(tài)網(wǎng)絡中的批處理方式批處理方式可以用adapt或train函數(shù)來實現(xiàn),雖然由于由于采用了更高效的學習算法,train通常是最好的選擇。增加方式只能用adapt來實現(xiàn),train函數(shù)只能用于批處理方式。讓我們用前面用過的靜態(tài)網(wǎng)絡的例子開始,學習速率設置為0.1。net=newlin(-11;-11,1,0,0.1);net.IW1,1=00;net.b1=0
29、;用adapt函數(shù)實現(xiàn)靜態(tài)網(wǎng)絡的批處理方式,輸入向量必須用同步向量矩陣的方式放置:P=1223;2131;T=4577;當我們調用adapt時將觸發(fā)adaptwb函數(shù),這是缺省的線性網(wǎng)絡調整函數(shù)。learnwh是缺省的權重和偏置學習函數(shù)。因此,Widrow-Hoff學習法將會被使用:net,a,e,pf=adapt(net,P,T);a=0000e=4577注意網(wǎng)絡的輸出全部為0,因為在所有要訓練的數(shù)據(jù)提交前權重沒有被更新,如果我們顯示權重,我們就會發(fā)現(xiàn):net.IW1,1ans=4.90004.1000net.b1ans=2.3000經(jīng)過了用adapt函數(shù)的批處理方式調整,這就和原來不一樣了
30、?,F(xiàn)在用train函數(shù)來實現(xiàn)批處理方式。由于Widrow-Hoff規(guī)則能夠在增加方式和批處理方式中應用,它可以通過adapt和train觸發(fā)。我們有好幾種算法只能用于批處理方式(特別是Levenberg-Marquardt算法),所以這些算法只能用train觸發(fā)。網(wǎng)絡用相同的方法建立:net=newlin(-11;-11,1,0,0.1);net.IW1,1=00;net.b1=0;在這種情況下輸入向量即能用同步向量矩陣表示也能用異步向量細胞數(shù)組表示。用train函數(shù),任何異步向量細胞數(shù)組都會轉換成同步向量矩陣。這是因為網(wǎng)絡是靜態(tài)的,并且因為train總是在批處理方式中使用。因為MATLAB實
31、現(xiàn)同步模式效率更高,所以只要可能總是采用同步模式處理。P=1223;2131;T=4577;現(xiàn)在我們開始訓練網(wǎng)絡。由于我們只用了一次adapt,我們這里訓練它一次。缺省的線性網(wǎng)絡訓練函數(shù)是trainwb。learnwh是缺省的權重和偏置學習函數(shù)。因此,我們應該和前面缺省調整函數(shù)是adaptwb的例子得到同樣的結果。net.inputWeights1,1.learnParam.lr=0.1;net.biases1.learnParam.lr=0.1;net.trainParam.epochs=1;net=train(net,P,T);經(jīng)過一次訓練后,我們顯示權重發(fā)現(xiàn):net.IW1,1ans=4
32、.90004.1000net.b1ans=2.3000這和用adapt訓練出來的結果是一樣的。在靜態(tài)網(wǎng)絡中,adapt函數(shù)能夠根據(jù)輸入數(shù)據(jù)格式的不同應用于增加方式和批處理方式。如果數(shù)據(jù)用同步向量矩陣方式輸入就用批處理方式訓練;如果數(shù)據(jù)用異步方式輸入就用增加方式。但這對于train函數(shù)行不通,無論輸入格式如何,它總是采用批處理方式。動態(tài)網(wǎng)絡中的增加方式訓練靜態(tài)網(wǎng)絡相對要簡單一些。如果我們用train訓練網(wǎng)絡,即使輸入是異步向量細胞數(shù)組,它也是轉變成同步向量矩陣而采用批處理方式。如果我們用adapt。輸入格式?jīng)Q定著網(wǎng)絡訓練方式。如果傳遞的是序列,網(wǎng)絡用增加方式,如果傳遞的是同步向量就采用批處理方式
33、。在動態(tài)網(wǎng)絡中,批處理方式只能用train完成,特別是當僅有一個訓練序列存在時。為了說明清楚,讓我們重新考慮那個帶延遲的線性網(wǎng)絡。我們把學習速率設為0.02(當我們采用梯度下降算法時,我們要用比增加方式更小的學習速率,應為所有的分立的梯度都要在決定權重改變步進之前求和)net=newlin(-11,1,01,0.02);net.IW1,1=00;net.biasConnect=0;net.trainParam.epochs=1;Pi=1;P=234;T=356;我們用以前增加方式訓練過的那組數(shù)據(jù)訓練,但是這一次我們希望只有在所有數(shù)據(jù)都提交后才更新權重(批處理方式)。因為輸入是一個序列,網(wǎng)絡將用
34、異步模式模擬。但是權重將用批處理方式更新。net=train(net,P,T,Pi);經(jīng)過一次訓練后,權重值為:net.IW1,1ans=0.90000.6200這里的權重值和我們用增加方式得到的不同。在增加方式中,通過訓練設置,一次訓練可以更新權重三次。在批處理方式中,每次訓練只能更新一次。第三章反向傳播網(wǎng)絡(BP網(wǎng)絡)1概述前面介紹了神經(jīng)網(wǎng)絡的結構和模型,在實際應用中,我們用的最廣泛的是反向傳播網(wǎng)絡(BP網(wǎng)絡)。下面就介紹一下BP網(wǎng)絡的結構和應用。BP網(wǎng)絡是采用Widrow-Hoff學習算法和非線性可微轉移函數(shù)的多層網(wǎng)絡。一個典型的BP網(wǎng)絡采用的是梯度下降算法,也就是Widrow-Hoff
35、算法所規(guī)定的。backpropagation就是指的為非線性多層網(wǎng)絡計算梯度的方法?,F(xiàn)在有許多基本的優(yōu)化算法,例如變尺度算法和牛頓算法。神經(jīng)網(wǎng)絡工具箱提供了許多這樣的算法。這一章我們將討論使用這些規(guī)則和這些算法的優(yōu)缺點。一個經(jīng)過訓練的BP網(wǎng)絡能夠根據(jù)輸入給出合適的結果,雖然這個輸入并沒有被訓練過。這個特性使得BP網(wǎng)絡很適合采用輸入/目標對進行訓練,而且并不需要把所有可能的輸入/目標對都訓練過。為了提高網(wǎng)絡的適用性,神經(jīng)網(wǎng)絡工具箱提供了兩個特性-規(guī)則化和早期停止。這兩個特性和用途我們將在這一章的后面討論。這一章還將討論網(wǎng)絡的預處理和后處理技術以提高網(wǎng)絡訓練效率。2基礎網(wǎng)絡結構神經(jīng)網(wǎng)絡的結構前一章
36、已詳細討論過,前饋型BP網(wǎng)絡的結構結構和它基本相同,這里就不再詳細論述了,這里著重說明以下幾點:1常用的前饋型BP網(wǎng)絡的轉移函數(shù)有l(wèi)ogsig,tansig,有時也會用到線性函數(shù)purelin。當網(wǎng)絡的最后一層采用曲線函數(shù)時,輸出被限制在一個很小的范圍內,如果采用線性函數(shù)則輸出可為任意值。以上三個函數(shù)是BP網(wǎng)絡中最常用到的函數(shù),但是如果需要的話你也可以創(chuàng)建其他可微的轉移函數(shù)。2在BP網(wǎng)絡中,轉移函數(shù)可求導是非常重要的,tansig、logsig和purelin都有對應的導函數(shù)dtansig、dlogsig和dpurelin。為了得到更多轉移函數(shù)的導函數(shù),你可以帶字符deriv的轉移函數(shù):tan
37、sig(deriv)ans=dtansig網(wǎng)絡構建和初始化訓練前饋網(wǎng)絡的第一步是建立網(wǎng)絡對象。函數(shù)newff建立一個可訓練的前饋網(wǎng)絡。這需要4個輸入?yún)?shù)。第一個參數(shù)是一個Rx2的矩陣以定義R個輸入向量的最小值和最大值。第二個參數(shù)是一個顢頇每層神經(jīng)元個數(shù)的數(shù)組。第三個參數(shù)是包含每層用到的轉移函數(shù)名稱的細胞數(shù)組。最后一個參數(shù)是用到的訓練函數(shù)的名稱。舉個例子,下面命令將創(chuàng)建一個二層網(wǎng)絡,其網(wǎng)絡模型如下圖所示。它的輸入是兩個元素的向量,第一層有三個神經(jīng)元,第二層有一個神經(jīng)元。第一層的轉移函數(shù)是tan-sigmoid,輸出層的轉移函數(shù)是linear。輸入向量的第一個元素的范圍是-1到2,輸入向量的第二個
38、元素的范圍是0到5,訓練函數(shù)是traingd。net=newff(-12;05,3,1,tansig,purelin,traingd);這個命令建立了網(wǎng)絡對象并且初始化了網(wǎng)絡權重和偏置,因此網(wǎng)絡就可以進行訓練了。我們可能要多次重新初始化權重或者進行自定義的初始化。下面就是初始化的詳細步驟。在訓練前饋網(wǎng)絡之前,權重和偏置必須被初始化。初始化權重和偏置的工作用命令init來實現(xiàn)。這個函數(shù)接收網(wǎng)絡對象并初始化權重和偏置后返回網(wǎng)絡對象。下面就是網(wǎng)絡如何初始化的:net=init(net);我們可以通過設定網(wǎng)絡參數(shù)net.initFcn和net.layeri.initFcn這一技巧來初始化一個給定的網(wǎng)絡
39、。net.initFcn用來決定整個網(wǎng)絡的初始化函數(shù)。前饋網(wǎng)絡的缺省值為initlay,它允許每一層用單獨的初始化函數(shù)。設定了net.initFcn,那么參數(shù)net.layeri.initFcn也要設定用來決定每一層的初始化函數(shù)。對前饋網(wǎng)絡來說,有兩種不同的初始化方式經(jīng)常被用到:initwb和initnw。initwb函數(shù)根據(jù)每一層自己的初始化參數(shù)(net.inputWeightsi,j.initFcn)初始化權重矩陣和偏置。前饋網(wǎng)絡的初始化權重通常設為rands,它使權重在-1到1之間隨機取值。這種方式經(jīng)常用在轉換函數(shù)是線性函數(shù)時。initnw通常用于轉換函數(shù)是曲線函數(shù)。它根據(jù)Nguyen和
40、WidrowNgWi90為層產生初始權重和偏置值,使得每層神經(jīng)元的活動區(qū)域能大致平坦的分布在輸入空間。它比起單純的給權重和偏置隨機賦值有以下優(yōu)點:(1)減少神經(jīng)元的浪費(因為所有神經(jīng)元的活動區(qū)域都在輸入空間內)。(2)有更快的訓練速度(因為輸入空間的每個區(qū)域都在活動的神經(jīng)元范圍中)。初始化函數(shù)被newff所調用。因此當網(wǎng)絡創(chuàng)建時,它根據(jù)缺省的參數(shù)自動初始化。init不需要單獨的調用??墒俏覀兛赡芤匦鲁跏蓟瘷嘀睾推没蛘哌M行自定義的初始化。例如,我們用newff創(chuàng)建的網(wǎng)絡,它缺省用initnw來初始化第一層。如果我們想要用rands重新初始化第一層的權重和偏置,我們用以下命令:net.laye
41、rs1.initFcn=initwb;net.inputWeights1,1.initFcn=rands;net.biases1,1.initFcn=rands;net.biases2,1.initFcn=rands;net=init(net);網(wǎng)絡模擬(SIM)函數(shù)sim模擬一個網(wǎng)絡。sim接收網(wǎng)絡輸入p,網(wǎng)絡對象net,返回網(wǎng)絡輸出a,這里是simuff用來模擬上面建立的帶一個輸入向量的網(wǎng)絡。p=1;2;a=sim(net,p)a=-0.1011(用這段代碼得到的輸出是不一樣的,這是因為網(wǎng)絡初始化是隨機的。)下面調用sim來計算一個同步輸入3向量網(wǎng)絡的輸出:p=132;241;a=sim(
42、net,p)a=-0.1011-0.23080.4955網(wǎng)絡訓練一旦網(wǎng)絡加權和偏差被初始化,網(wǎng)絡就可以開始訓練了。我們能夠訓練網(wǎng)絡來做函數(shù)近似(非線性后退),模式結合,或者模式分類。訓練處理需要一套適當?shù)木W(wǎng)絡操作的例子-網(wǎng)絡輸入p和目標輸出t。在訓練期間網(wǎng)絡的加權和偏差不斷的把網(wǎng)絡性能函數(shù)net.performFcn減少到最小。前饋網(wǎng)絡的缺省性能函數(shù)是均方誤差mse-網(wǎng)絡輸出和目標輸出t之間的均方誤差。這章的余項將描述幾個對前饋網(wǎng)絡來說不同的訓練算法。所有這些算法都用性能函數(shù)的梯度來決定怎樣把權重調整到最佳。梯度由叫做反向傳播的技術決定,它要通過網(wǎng)絡實現(xiàn)反向計算。反向傳播計算源自使用微積分的鏈
43、規(guī)則?;镜姆聪騻鞑ニ惴ǖ臋嘀匮刂荻鹊呢摲较蛞苿?,這將在下一節(jié)講述。以后的章節(jié)將講述更復雜的算法以提高收斂速度。反向傳播算法反向傳播算法中有許多變量,這一章將討論其中的一些。反向傳播學習算法最簡單的應用是沿著性能函數(shù)最速增加的方向-梯度的負方向更新權重和偏置。這種遞歸算法可以寫成:xk+1=xk-akgk這里xk是當前權重和偏置向量,gk是當前梯度,ak是學習速率。有兩種不同的辦法實現(xiàn)梯度下降算法:增加模式和批處理模式。在增加模式中,網(wǎng)絡輸入每提交一次,梯度計算一次并更新權重。在批處理模式中,當所有的輸入都被提交后網(wǎng)絡才被更新。下面兩節(jié)將討論增加模式和批處理模式。增加模式訓練法(ADAPT)
44、函數(shù)adapt用來訓練增加模式的網(wǎng)絡,它從訓練設置中接受網(wǎng)絡對象、網(wǎng)絡輸入和目標輸入,返回訓練過的網(wǎng)絡對象、用最后的權重和偏置得到的輸出和誤差。這里有幾個網(wǎng)絡參數(shù)必須被設置,第一個是net.adaptFcn,它決定使用哪一種增加模式函數(shù),缺省值為adaptwb,這個值允許每一個權重和偏置都指定它自己的函數(shù),這些單個的學習函數(shù)由參數(shù)net.biasesi,j.learnFcn、net.inputWeightsi,j.learnFcn、net.layerWeightsi,j.learnFcn和GradientDescent(LEARDGD)來決定。對于基本的梯度最速下降算法,權重和偏置沿著性能函數(shù)
45、的梯度的負方向移動。在這種算法中,單個的權重和偏置的學習函數(shù)設定為learngd。下面的命令演示了怎樣設置前面建立的前饋函數(shù)參數(shù):net.biases1,1.learnFcn=learngd;net.biases2,1.learnFcn=learngd;net.layerWeights2,1.learnFcn=learngd;net.inputWeights1,1.learnFcn=learngd;函數(shù)learngd有一個相關的參數(shù)-學習速率lr。權重和偏置的變化通過梯度的負數(shù)乘上學習速率倍數(shù)得到。學習速率越大,步進越大。如果學習速率太大算法就會變得不穩(wěn)定。如果學習速率太小,算法就需要很長的時
46、間才能收斂。當learnFcn設置為learngd時,就為每一個權重和偏置設置了學習速率參數(shù)的缺省值,如上面的代碼所示,當然你也可以自己按照意愿改變它。下面的代碼演示了把層權重的學習速率設置為0.2。我們也可以為權重和偏置單獨的設置學習速率。net.layerWeights2,1.learnParam.lr=0.2;為有序訓練設置的最后一個參數(shù)是net.adaptParam.passes,它決定在訓練過程中訓練值重復的次數(shù)。這里設置重復次數(shù)為200net.adaptParam.passes=200;現(xiàn)在我們就可以開始訓練網(wǎng)絡了。當然我們要指定輸入值和目標值如下所示:p=-1-122;0505;
47、t=-1-111;如果我們要在每一次提交輸入后都更新權重,那么我們需要將輸入矩陣和目標矩陣轉變?yōu)榧毎麛?shù)組。每一個細胞都是一個輸入或者目標向量。p=num2cell(p,1);t=num2cell(t,1);現(xiàn)在就可以用adapt來實現(xiàn)增加方式訓練了:net,a,e=adapt(net,p,t);訓練結束以后,我們就可以模擬網(wǎng)絡輸出來檢驗訓練質量了。a=sim(net,p)a=-0.9995-1.00001.00011.0000帶動力的梯度下降法(LEARDGDM)除了learngd以外,還有一種增加方式算法常被用到,它能提供更快的收斂速度-learngdm,帶動量的最速下降法。動力允許網(wǎng)絡不但
48、根據(jù)當前梯度而且還能根據(jù)誤差曲面最近的趨勢響應。就像一個低通濾波器一樣,動量允許網(wǎng)絡忽略誤差曲面的小特性。沒有動量,網(wǎng)絡又可能在一個局部最小中被卡住。有了動量網(wǎng)絡就能夠平滑這樣的最小。動量能夠通過把權重變得與上次權重變化的部分和由算法規(guī)則得到的新變化的和相同而加入到網(wǎng)絡學習中去。上一次權重變化對動量的影響由一個動量常數(shù)來決定,它能夠設為0到1之間的任意值。當動量常數(shù)為0時,權重變化之根據(jù)梯度得到。當動量常數(shù)為1時新的權重變化等于上次的權重變化,梯度值被忽略了。Learngdm函數(shù)有上面所示的learngd函數(shù)觸發(fā),除非mc和lr學習參數(shù)都被設置了。由于每一個權重和偏置有它自己的學習參數(shù),每一個
49、權重和偏置都可以用不同的參數(shù)。下面的命令將用lerangdm為前面建立的用增加方式訓練的網(wǎng)絡設置缺省的學習參數(shù):net.biases1,1.learnFcn=learngdm;net.biases2,1.learnFcn=learngdm;net.layerWeights2,1.learnFcn=learngdm;net.inputWeights1,1.learnFcn=learngdm;net,a,e=adapt(net,p,t);批處理訓練方式訓練的另一種方式是批處理方式,它由函數(shù)train觸發(fā)。在批處理方式中,當整個訓練設置被應用到網(wǎng)絡后權重和偏置才被更新。在每一個訓練例子中的計算的梯度
50、加在一起來決定權重和偏置的變化。批處理梯度下降法(TRAINGD)與增加方式的學習函數(shù)learngd等價的函數(shù)是traingd,它是批處理形式中標準的最速下降學習函數(shù)。權重和偏置沿著性能函數(shù)的梯度的負方向更新。如果你希望用批處理最速下降法訓練函數(shù),你要設置網(wǎng)絡的trainFcn為traingd,并調用train函數(shù)。不像以前章節(jié)的學習函數(shù),它們要單獨設置權重矩陣和偏置向量,這一次給定的網(wǎng)絡只有一個學習函數(shù)。Traingd有幾個訓練參數(shù):epochs,show,goal,time,min_grad,max_fail和lr。這里的學習速率和lerangd的意義是一樣的。訓練狀態(tài)將每隔show次顯示一次。其他參數(shù)決定訓練什么時候結束。如果訓練次數(shù)超過epochs,性能函數(shù)低于goal,梯度值低于mingrad或者訓練時間超過time,訓練就會結束。下面的代碼將重建我們以前的網(wǎng)絡,然后用批處理最速下降法訓練網(wǎng)絡。(注意用批處理方式訓練的話所有的輸入要設置為矩陣方式)net=newff(-12;05,3,1,tans
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學生交流會策劃方案(8篇)
- 2025年材料用過濾袋合同采購流程
- 2025年醫(yī)用耗材集中采購協(xié)議
- 2025年文物遺址保護服務項目規(guī)劃申請報告
- 2025年舞蹈學校教職員工勞動合同
- 2025年貴金屬靶材項目申請報告模板
- 2025年企業(yè)互助共享協(xié)議
- 2025年單位二手商業(yè)房產出售合同范本
- 2025年公司員工競業(yè)限制協(xié)議范例
- 2025年組合開關項目提案報告
- 2025年廣東省春季高考英語情景交際題專項練習(含答案)
- 浙江省湖州是吳興區(qū)2024年中考語文二模試卷附參考答案
- 風電設備安裝施工專項安全措施
- IQC培訓課件教學課件
- 智能 檢測與監(jiān)測 技術-智能建造技術專01課件講解
- 關于成立合同審核小組的通知
- 2024年上海市中考英語試題和答案
- 教育部《中小學校園食品安全和膳食經(jīng)費管理工作指引》知識培訓
- 征地拆遷項目社會穩(wěn)定風險評價報告
- 長沙醫(yī)學院《無機化學》2021-2022學年第一學期期末試卷
- eras婦科腫瘤圍手術期管理指南解讀
評論
0/150
提交評論