
在控制領域中,若要精確的分析輸入與輸出之間的關係,則必須將系統藉由數學的方式做成模型。但是,實際的系統往往是複雜且非線性的,因此如何以數學的方式簡化系統及線性化,就成為控制學門中一個重要的課題。
類神經網路的一個優點在於並不需要瞭解系統的數學模型為何,而直接以神經網路取代系統的模型,一樣可以得到輸入與輸出之間的關係。其方塊圖如下所示:
.jpg)
人類的大腦大約由1011個神經細胞(nerve cells)組成,而每個神經細胞又有104個突觸(synapses)與其他細胞互相連結成一個非常複雜的神經網路。當人類的感官受到外界刺激經由神經細胞傳遞訊號到大腦,大腦便會下達命令傳遞至相關的受動器(effector)做出反應(例如:手的皮膚接觸到燙的物體立即放開),這樣的過程往往需要經由反覆的訓練,才能做出適當的判斷,並且記憶於腦細胞中。如果大腦受到損害(例如中風患者),便需要藉由復健的方式,重新學習。類神經網路的運作便源於此,藉由不同的演算法訓練類神經網路使得神經網路的輸出能達到我們所要求的結果。
虛線的部分即為類神經元
X:稱為神經元的輸入(input)。
W:稱為鍵結值(weights),類神經網路的訓練就是在調整鍵結值,使其變得更大或是更小,通常由隨機的方式產生介於+1到- 1之間的初始值。鍵結值可視為一種加權效果,其值越大,則代表連結的神經元更容易被激發,對類神經網路的影響也更大;反之,則代表對類神經網路並無太大的影響,而太小的鍵結值通常可以移除以節省電腦計算的時間與空間。
b:稱為閥值(bias),有偏移的效果。
S:稱為加法單元(summation),此部分是將每一個輸入與鍵結值相乘後做一加總的動作。
φ( ):稱之為活化函數(activation function),通常是非線性函數,有數種不同的型式,其目的是將S的值做映射得到所需要的輸出。
Y:稱之為輸出(output),亦即我們所需要的結果。
將上述的神經元組合起來就成為一個類神經網路。目前為止,許多的學者針對欲解決問題的不同,提出許多的類神經網路模型,每一種類神經網路的演算法並不相同。常見的網路有:倒傳遞網路(Back-propagation Network)、霍普菲爾網路(Hopfield Network)、半徑式函數網路(Radial Basis Function Network),這些類神經網路並非適用所有的問題,我們必須針對欲解決問題的不同選擇適當的類神經網路。以下所顯示的是四個輸入與一個輸出的倒傳遞網路模型:
圓圈的部分代表神經元
要使得類神經網路能正確的運作,則必須透過訓練(training)的方式,讓類神經網路反覆的學習,直到對於每個輸入都能正確對應到所需要的輸出,因此在類神經網路學習前,我們必須建立出一個訓練樣本(training pattern)使類神經網路在學習的過程中有一個參考,訓練樣本的建立來自於實際系統輸入與輸出或是以往的經驗,例如:洗衣機洗淨衣服的時間,與衣服的質料、數量、骯髒的程度有關,因此我們必須先針對不同質料、數量、骯髒的程度的衣服統計出洗衣所需的時間,建立訓練樣本。不同衣服的質料、數量、骯髒程度就是類神經網路的輸入,而洗衣所需的時間則為類神經網路的目標值(target),也就是類神經網路的參考輸出。類神經網路的工作性能與訓練樣本有直接的關係,若訓練樣本不正確、太少或是太相似,類神經網路的工作區間與能力將大打折扣。換句話說,訓練樣本就是類神經網路的老師,因此,訓練樣本越多、越正確、差異性越大,類神經網路的能力就越強。
類神經網路訓練的目的,就是讓類神經網路的輸出越接近目標值。亦即,相同的輸入進入到系統與類神經網路,得到的輸出值亦要相同。類神經網路未訓練前,其輸出是凌亂的,隨著訓練次數的增加,類神經網路的鍵結值會逐漸的被調整,使得目標值與神經網路的輸出兩者誤差越來越小。當兩者的誤差幾乎不再變化時,我們稱此類神經網路已收斂(convergence),此時類神經網路便訓練完成。通常我們會定義一個價值函數(cost function)作為神經網路收斂的指標,價值函數將會隨著網路的訓練次數越變越小最後幾乎不再變化。
學習率(learning rate),在類神經網路的訓練過程中是一個非常重要的參數。學習率影響著類神經網路收斂的速度,若學習率選擇較大則類神經網路收斂的速度將變得較快,反之,較小的學習率會使得類神經網路的收斂速度變慢。選擇太大或太小的學習率對類神經網路的訓練都有不良的影響。
當類神經網路經由訓練樣本訓練完成後,雖然神經網路的輸出已經與我們所要求的數值接近,但對於不是由訓練樣本所產生的輸入,我們並不知道會得到何種輸出。因此,我們必須使用另一組類神經網路從未見過樣本進入到類神經網路中,測試其推廣性(generalization),看看是否與所要求的值接近,而此樣本則稱之為測試樣本(testing pattern)。推廣性亦是類神經網路中的一項優點,當類神經網路訓練完成後,對於與訓練樣本相近的輸入,類神經網路亦能給予一個合理的輸出,但是如果測試樣本與訓練樣本的差異過大,類神經網路仍是無法給予正確的數值。
底下舉出一個使用半徑式函數網路(Radial Basis Function Network)做 y(x)=1/x 函數近似的應用,可以更清楚的瞭解類神經網路的學習能力。
這是一個單輸入單輸出的問題,目的是希望相同的輸入進入到y(x)=1/x函數與類神經網路,得到的輸出值要相同,首先將X=1.....100代入y(x)=1/x中,我們會得到100組的y值,取X=1.3.5....99共50筆的數據作為訓練樣本,X=2.4.6.....100共50筆的數據作為測試樣本,在類神經網路未訓練前,所得到的結果如下圖所示:

綠線代表實際y(x)=1/x的輸出,而紅線代表類神經網路的輸出,類神經網路未訓練前,由於初始的鍵結值是由隨機所產生,因此當訓練樣本的輸入進到網路時,類神經網路的輸出是凌亂的,隨著訓練次數的增加,鍵結值逐漸的被調整,使得紅線的部分逐漸的與綠線符合,下圖是類神經網路訓練20次的結果:

由於在類神經網路訓練的過程中,訓練樣本不斷的提供類神經網路正確的輸出值作為參考,使得類神經網路的輸出逐漸的與實際的輸出相同,當類神經網路訓練2000次時,由下圖可看出類神經網路的輸出與系統的輸出幾乎相同,此時就可以停止訓練,而適合此函數的鍵結值就被記錄下來:

當類神經網路訓練完成後,神經網路便可以取代原來y(x)=1/x這個函數。換句話說,此類神經網路就變成了y(x)=1/x,對於x=1....100區間內的輸入,類神經網路的輸出與真實的函數相同。
下圖表示類神經網路訓練過程中價值函數的變化情形,價值函數是類神經網路收斂的指標,會隨著網路的訓練越來越小,最後幾乎不再有變化,此時就可判定此網路訓練完成。由於網路的初始鍵結值是由隨機所產生,因此網路的訓練的結果並非唯一解,雖然價值函數在每次訓練過程,均會有逐漸收斂的趨勢,但並不保證所得到的是最佳的解。

下圖是網路訓練完成後訓練樣本與測試樣本的誤差,由於此網路是以訓練樣本作為神經網路學習的參考,因此與實際系統的誤差較小,大約只有0.8%;而測試樣本為類神經網路從未見過的資料,輸入到類神經網路後的誤差較大,大約4.4%,這表示類神經網路對於從未見過的輸入,一樣會給予一個合理的輸出。

此範例的答案並非唯一的,也就是說如果此類神經網路重新訓練時,得到的誤差也許會更小,也許會較大,但此網路一定有近似於實際系統的趨勢。在實際的工程應用上,少許的誤差是可以被接受的,當然,類神經網路理論亦提供了改善誤差的方法,有興趣的朋友可以更進階的學習。
化工程序診斷
實驗數據模型建立
工程分析與設計
類神經網路可應用的領域相當廣泛。
您的問題已有人使用類神經網路完成。
您電腦的速度夠快。