關於類神經網路

    類神經網路由來

    類神經網路簡介

    類神經網路應用

    類神經網路優缺點

    結論

    參考文獻


1.類神經網路由來

        類神經網路理論起源於1950年代,當時科學家仿造人類大腦的組織及運作方式,開始提出稱之為「感知機」(perceptron)的神經元模型,這是最簡單也是最早的類神經模型,感知機通常被拿來做分類器(classifier)使用。但是在1980年之前,由於專家系統(expert system)則是當時最流行的人工智慧基礎,加上類神經網路的理論仍不成熟,因此類神經網路並沒有受到很大的重視,一直到1980年代之後,由於霍普菲爾(Hopfield)神經網路(1982年)被提出,而此時專家系統開始遇到了瓶頸,類神經網路理論才逐漸受到重視。直到今日為止,類神經網路仍然有新的架構及理論不斷的被提出,配合電腦運算速度的增加,使得類神經網路的功能更為強大,運用層面也更為廣泛。
       一部機器的運作或是一個事件的發生常常有相對應的因果關係(例如:打開電器用品的開關,電器用品開始運作;腳採油門車子的速度增加),我們將打開開關與腳採油門的動作稱為系統的輸入,電器用品與車子稱為系統,而電器用品的運作與車子的速度稱為系統的輸出,整個輸入與輸出的關係可以用一個方塊圖來表示:

        在控制領域中,若要精確的分析輸入與輸出之間的關係,則必須將系統藉由數學的方式做成模型。但是,實際的系統往往是複雜且非線性的,因此如何以數學的方式簡化系統及線性化,就成為控制學門中一個重要的課題。

         類神經網路的一個優點在於並不需要瞭解系統的數學模型為何,而直接以神經網路取代系統的模型,一樣可以得到輸入與輸出之間的關係。其方塊圖如下所示:

        人類的大腦大約由1011個神經細胞(nerve cells)組成,而每個神經細胞又有104個突觸(synapses)與其他細胞互相連結成一個非常複雜的神經網路。當人類的感官受到外界刺激經由神經細胞傳遞訊號到大腦,大腦便會下達命令傳遞至相關的受動器(effector)做出反應(例如:手的皮膚接觸到燙的物體立即放開),這樣的過程往往需要經由反覆的訓練,才能做出適當的判斷,並且記憶於腦細胞中。如果大腦受到損害(例如中風患者),便需要藉由復健的方式,重新學習。類神經網路的運作便源於此,藉由不同的演算法訓練類神經網路使得神經網路的輸出能達到我們所要求的結果。

回到目錄

2.類神經網路簡介

       一個類神經元的模型顯示如下:

 虛線的部分即為類神經元

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%,這表示類神經網路對於從未見過的輸入,一樣會給予一個合理的輸出。

        此範例的答案並非唯一的,也就是說如果此類神經網路重新訓練時,得到的誤差也許會更小,也許會較大,但此網路一定有近似於實際系統的趨勢。在實際的工程應用上,少許的誤差是可以被接受的,當然,類神經網路理論亦提供了改善誤差的方法,有興趣的朋友可以更進階的學習。

回到目錄

3.類神經網路應用

       由於類神經網路對於輸入對應到輸出有著記憶與學習的功能,並且對於未知的輸入有推廣性的功用,因此類神經網路可運用於各種領域中,舉例如下:
一. 工業應用
    控制器設計與系統鑑別
    產品品質分析
    機電設備診斷

    化工程序診斷

    實驗數據模型建立

    工程分析與設計

二.商業應用
    股票、債券、期貨....等,投資分析
    商業信用評估
三.管理應用
    策略管理
    時程管理
    品質管理
四.資訊應用
    影像、文字、語音,辨識系統
    訊號分類
    濾波
五.科學應用
六.其他領域的應用
回到目錄

4.類神經網路優缺點

優點:
    類神經網路可以建構非線性的模型。
    類神經網路有良好的推廣性,對於未知的輸入亦可得到正確的輸出。
    類神經網路可以接受不同種類的變數作為輸入,適應性強。

    類神經網路可應用的領域相當廣泛。

缺點:
    類神經網路以迭代方式更新鍵結值與閥值,計算量大,相當耗費電腦資源。
    類神經網路的解有無限多組,無法得知哪一組的解為最佳解。
    類神經網路訓練的過程中無法得知需要多少神經元個數,太多或太少的神經元均會影響系統的準確性,因此往往需以試誤的方式得到適當的神經元個數。
回到目錄

5.結論

        同學或朋友常問我什麼是類神經網路?相信許多人同樣對它感到好奇,尤其最近市面上開始出現類神經網路的產品(例如:Neurofuzzy洗衣機),類神經網路似乎是神秘而艱深的學問。希望此篇文章能使各位朋友對類神經有些許的認識,當然這是相當簡略的介紹,也許您在看完後對類神經網路仍然感到相當模糊。若您想更進一步的學習類神經方面的相關知識,建議您最好有一些程式語言與工程數學的基礎,由於神經網路的訓練往往需要幾千次甚至幾萬次的學習循環(learning cycle),計算量相當龐大,若無電腦的輔助是不可能達成所要求的結果。但是,若只需要以類神經網路來解決您的問題,坊間已經有數種類神經網路的套裝軟體可直接使用。
        或許您有這樣的疑問,什麼樣的問題適合以類神經網路來解決?在此提供一些建議:
    輸入值與輸出值之間是有其關連性的,例如:冷氣機中壓縮機運轉時間與外界溫度、室內溫度、相對濕度有關。則外界溫度、室內溫度、與相對濕度可作為類神經網路的輸入,而壓縮機運轉的時間可作為系統的輸出。
    您訓練樣本(training pattern)的數據正確、夠多且分佈均勻。
    傳統的技術無法解決的問題或者以類神經網路可以更有效率的解決問題。

    您的問題已有人使用類神經網路完成。

    您電腦的速度夠快。

      由於目前電腦的運算速度越來越快,類神經網路的訓練時間可以更為縮短,相信在未來類神經網路的應用領域將會更為廣泛。
回到目錄

6.參考文獻

    葉怡成,應用類神經網路,儒林圖書公司,1997.
    蘇木春、張孝德,機械學習:類神經網路、模糊系統以及基因演算法則,全華科技圖書股份有限公司,1999.
    Simon Haykin, Neural Networks: A Comprehensive Foundation,  Prentice Hall,1999
回到目錄

指導老師 我們的實驗室 儀器設備 回到首頁 相關連結
本文由鄭凱中製作。
如有任何疑問歡迎來信指教