類神經網路(Artificial Neural Networks, ANNs)或譯為人工神經網路,其主要的基本概念是嘗試著模仿人類的神經系統。其架構源自於現今對人類神經系統的認識,它是由很多非線性的運算單元(即:神經元 neuron)和位於這些運算單元間的眾多連結(links)所組成,而這些運算單元通常是以平行且分散的方式來進行運算,如此就可以同時處理大量的資料應用,如:語音、手寫辨識等。
類神經網路是以電腦的軟硬體來模擬生物神經網路的資訊處理系統,從人類專家解決問題的實際案例中學習,利用非線性函數的轉換,能有效地對大量資料進行分析,且具學習能力,以利各種非結構性決策的制定;此外,類神經網路之應用不需前提假設,只要有充足的歷史資料,即可進行分析,例如有完整之水文資訊(雨量、流量或水位資料)的集水區,或精確且眾多的氣象資料,皆十分適合運用網路模式進行分析、預測的工作。
一般類神經網路為三層結構,包含輸入層、隱藏層及輸出層。其中輸入層用以表現輸入變數,其單元數目依問題的型式而定;隱藏層有可能有數層,用以表現輸入處理單元間之交互影響,其單元數目需以試驗的方式決定其最佳數目;輸出層用以表現輸出變數。神經網路的基本原理為網路中靠相關權重連結各層間之單元,各輸入單元輸入值經由加權累加後到達隱藏層,並透過轉換函數可得一值,同理再傳至輸出層。
網路依其架構與學習方式,可用來解決不同類型的問題,常用的類神經網路有:倒傳遞類神經網路、輻狀機底函數類神經網路、自組特徵映射類神經網路、回饋式類神經網路、反傳遞模糊類神經網路、調適性網路模糊推論系統等。
類神經網路已成為熱門的科技議題與發展迅速的應用技術,今日已廣泛地應用在各個領域,從電機、資訊、機械、化工、土木、水利、環工、海洋等理工相關領域,到醫學、農學等生物相關領域及經濟、管理、財務金融等,都可以看到類神經網路的相關研究。許多科學先趨者試著採用模仿生物神經系統之模型—— 類神經網路,來解決一些過去無法解決的問題,其原因大致分為以下幾點:(1) 聯想速度快,(2) 網路架構容易調整,(3) 解決最佳化、非線性等系統問題,(4) 具平行處理特性,(5) 具容錯特性。目前以類神經網路作為解決方案且有良好效果的問題有:語音辨識、文字辨識、天氣預測、股票指數預測、機器人控制、雷達偵測、影像識別、汽車自動駕駛、醫學檢測、蛋白質3D結構檢測等,這也是類神經網路之所以能在短短數十年間,廣受重視且發展迅速之主因。
人工神經網路是一種應用類似於大腦神經突觸聯接的結構進行信息處理的數學模型。在工程與學術界也常直接簡稱為「神經網路」或類神經網路。神經網路是一種運算模型[1],由大量的節點(或稱「神經元」,或「單元」)和之間相互聯接構成。每個節點代表一種特定的輸出函數,稱為激勵函數(activation function)。每兩個節點間的連接都代表一個對於通過該連接信號的加權值,稱之為權重(weight),這相當於人工神經網路的記憶。網路的輸出則依網路的連接方式,權重值和激勵函數的不同而不同。而網路自身通常都是對自然界某種演算法或者函數的逼近,也可能是對一種邏輯策略的表達。
它的構築理念是受到生物(人或其他動物)神經網路功能的運作啟發而產生的。人工神經網路通常是通過一個基於數學統計學類型的學習方法(Learning Method)得以優化,所以人工神經網路也是數學統計學方法的一種實際應用,通過統計學的標準數學方法我們能夠得到大量的可以用函數來表達的局部結構空間,另一方面在人工智慧學的人工感知領域,我們通過數學統計學的應用可以來做人工感知方面的決定問題(也就是說通過統計學的方法,人工神經網路能夠類似人一樣具有簡單的決定能力和簡單的判斷能力),這種方法比起正式的邏輯學推理演算更具有優勢
人工神經元網路模型
通常來說,一個人工神經元網路是由一個多層神經元結構組成,每一層神經元擁有輸入(它的輸入是前一層神經元的輸出)和輸出,每一層(我們用符號記做)Layer(i)是由Ni(Ni代表在第i層上的N)個網路神經元組成,每個Ni上的網路神經元把對應在Ni-1上的神經元輸出做為它的輸入,我們把神經元和與之對應的神經元之間的連線用生物學的名稱,叫做神經軸突的突觸,在數學模型中每個突觸有一個加權數值,我們稱做權重,那麼要計算第i層上的某個神經元所得到的勢能等於每一個權重乘以第i-1層上對應的神經元的輸出,然後全體求和得到了第i層上的某個神經元所得到的勢能,然後勢能數值通過該神經元上的激勵函數(activation function,常是en:Sigmoid function以控制輸出大小,因為其可微分且連續,方便en:Delta rule處理。)求出該神經元的輸出,注意的是該輸出是一個非線性的數值,也就是說通過激勵函數求的數值根據極限值來判斷是否要激活該神經元,換句話說我們對一個神經元網路的輸出是線性不感興趣。
基本結構
一種常見的多層結構的前饋網路(Multilayer Feedforward Network)由三部分組成,
- 輸入層(Input layer),眾多神經元(Neuron)接受大量非線形輸入信息。輸入的信息稱為輸入向量。
- 輸出層(Output layer),信息在神經元鏈接中傳輸、分析、權衡,形成輸出結果。輸出的信息稱為輸出向量。
- 隱藏層(Hidden layer),簡稱「隱層」,是輸入層和輸出層之間眾多神經元和鏈接組成的各個層面。隱層可以有多層,習慣上會用一層。隱層的節點(神經元)數目不定,但數目越多神經網路的非線性越顯著,從而神經網路的強健性(robustness)(控制系統在一定結構、大小等的參數攝動下,維持某些性能的特性。)更顯著。習慣上會選輸入節點1.2至1.5倍的節點。
神經網路的類型已經演變出很多種,這種分層的結構也並不是對所有的神經網路都適用。
無監督式學習網路(Unsupervised Learning Network)是人工智慧網路的一種演算法(algorithm),其目的是去對原始資料進行分類,以便瞭解資料內部結構。有別於監督式學習網路,無監督式學習網路在學習時並不知道其分類結果是否正確,亦即沒有受到監督式增強(告訴它何種學習是正確的)。其特點是僅對此種網路提供輸入範例,而它會自動從這些範例中找出其潛在類別規則。當學習完畢並經測試後,也可以將之應用到新的案例上。
沒有留言:
張貼留言