1.1引言
近年來,隨著基因技術在醫學中的廣泛應用,基于基因資料的計算機輔助診斷迅速發展起來,計算機輔助診斷可以提高醫生診斷的準確率,協助醫生對病人病因進行判斷和識別并有助于預防疾病,在特征提取的基礎上進行模式分類是基于基因的計算機輔助診斷的重要步驟,如人工神經網路等分類方法已廣泛的應用于疾病診斷及預防系統之中,
人工神經網路的研究已有半個多世紀的歷史,起源于20世紀40年代,20世紀80年代開始蓬勃發展,如今出現了研究的新熱潮.人工神經網路的研究主要是直接模擬人腦的結構和功能,具有生物神經網路的某些特性,在自學習、自組織、聯想、及容錯方面具有較強的能力,能用于聯想、識別和決策.概率神經網路是20世紀90年代初提出來的一個分類網路,它以貝葉決策和密度函式估計為理論基礎,廣泛應用于模式識別和模式分類領域.因此,研究概率神經網路的模式識別具有重要的理論意義和應用前景,
1.2人工神經網路的發展及研究現狀
人工神經網路(Artificial Neural Network),亦稱為神經網路(Neural Networks,NN),是由大量神經處理單元(神經元Neurons)廣泛互連而成的網路,是對人腦的抽象、簡化和模擬,反映人腦的基本特征,人工神經網路的研究是從人腦的生理結構出發來研究人的智能行為,模擬人腦資訊處理的功能,
人工神經網路能模擬人類大腦的某些功能和思維方式,從而更好地解決模式識別、組合優化和智能控制等一系列本質上非計算的問題,它有如下優點:具有很強的自學習和自適應能力,可以處理不確定或不知道的系統;具有很強的資訊綜合能力,能同時處理定量和定性的資訊,能很好地協調多種輸入資訊關系;具有很強的魯棒性和容錯性,因為資訊是分布貯于網路內的神經元中;采用并行處理方法,使得計算快速;可以充分逼近任意復雜的非線性關系等,經過近半個世紀的發展,神經網路理論已在許多研究領域取得了廣泛的成功,神經網路和其它演算法的結合和交叉,構造混合神經網路模型,是當前神經網路研究的主要趨勢,如神經網路和模糊邏輯結合,建立模糊神經網路;將混沌理論和神經網路結合建立混沌神經網路;將優化演算法和神經網路結合,利用優化演算法優化神經網路的結構或權值;將小波分析和神經網路結合建立小波神經網路;貝葉斯學習以及粗糙集理論和神經網路結合等,都是當前神經網路研究的熱點,
到目前為止,神經網路的型別已多達數百種,神經網路的理論研究和實際應用有了引人注目的發展,神經網路在向縱深發展的同時,也在向模糊技術、進化計算等智能方法相結合的方向上發展,并廣泛應用于模式識別等多個領域,尤其是在模式識別方面,神經網路所表現出來的能力超過了包括統計方法、靜態方法和人工智能方法在內的傳統方法,
1.3 研究意義
神經網路通俗來講,就是人們平時所說的“人工智能”,這個詞是神經網路在人類大腦上歷史基礎的結果,神經網路是基于人類大腦作業的簡化模型-這就解釋了與人腦相關的神經網路術語,例如,神經網路是經過訓練的,而訓練的程序被稱為"學習",神經網路,例如多層的感知器,甚至使用被稱為"神經元"的內部結構,神經細胞由此接收輸入并且以不同的強度發射信號,人工神經元網路是生物神經網路的一種模擬和近似,它從結構、實作機理和功能上模擬生物 神經網路,從系統觀點看,人工神經元網路是由大量神經元通過極其豐富和完善的連接而構 成的自適應非線性動態系統,
模式識別是一種從大量資訊和資料出發,在專家經驗和已有認識的基礎上,利用計算機和數學推理的方法對形狀、模式、曲線、數字、字符格式和圖形自動完成識別的程序,模式識別包括相互關聯的兩個階段,即學習階段和實作階段,前者是對樣本進行特征選擇,尋找分類的規律,后者是根據分類規律對未知樣本集進行分類和識別,廣義的模式識別屬計算機科學中智能模擬的研究范疇,內容非常廣泛,包括聲音和語言識別、文字識別、指紋識別、聲納信號和地震信號分析、照片圖片分析、化學模式識別等等,在現實世界中,人類發出的聲音、印刷或者書寫出的文字、眼睛看到的風景,以及測量器輸出的信號等,以各種各樣的模式存在著,如果計算機能夠聽出并且分辨出這些模式,就能夠簡單地輸入到計算機,并且可以送到工專業人員的作業負擔,把模式輸入到計算機后,通過一系列的處理,就可對其進行識別,
在模式識別中有很多方法:統計模式識別方法,句法結構模式識別,人工神經網路模式識別,前面兩者在實際應用程序中都顯示出各自的局限性,而人工神經網路的研究起源于對生物神經系統的研究,采用反向傳播(BP)網路,具有良好的模式分類能力,引入模糊邏輯理論,能較好地處理一些資料的不確定性問題,因此它對待識別的物件不要求有太多的分析與了解,具有一定的智能化處理的特點,由于具有良好的容錯能力、分類能力強、并行處理能力和自學習能力,因而,采用神經網路識別方式是一種很好的選擇,
傳統的分類方法對于同類相聚,異類分離比較有優勢,但客觀世界中許多事物在樣本空間中的區域分割曲面非常復雜,相近的樣本可能屬于不同的類,而遠離的樣本可能屬于同一類1,模式是對某些感興趣的客體的定量描述或結構描述,模式類是具有某些共同特征的模式的集合,模式分類可分為兩種型別,分類和聚類,分類是在類別知識等導師資訊的指導下,將待識別的輸入模式分配到各自的模式類中去,聚類是無導師的分類方法,它是將相似的模式樣本劃歸為一類,而將不相似的分離開,實作了模式樣本類內相似性和類間分離性,通過聚類,可以發現原始樣本的分布特性,
神經網路對外界的輸入樣本具有很強的識別能力,可以發現輸入樣本自身的聯系和規律以及輸入樣本和期望輸出之間的非線性規律,因此在模式分類方面具有傳統分類方法無法比擬的優點,人工神經網路在模式分類方面提出了大量了網路模型,發現了許多學習演算法,
通常所說的神經網路結構,主要指它的連接方式,從拓撲結構上考慮,神經網路屬于以神經元為節點,以節點間的有向連接為邊的一種圖,其結構大體上可分為層狀和網狀兩大類:層狀結構的神經網路是由若干層組成,每層中有一定數量的神經元,下相鄰層中的神經元為單向連接,同層內的神經元不能連接:在網狀結構的神經網路中,任何兩個神經元之間都可能雙向連接,一般常見的神經網路有如下幾種網路結構,
前向網路(前饋網路),前向網路通常包括許多層,其特點是只有前后相鄰兩層之間的神經元存在相互連接,各神經元之間沒有反饋,每個神經元可以從前一層接收多個輸入,并只有一個輸入送給下一層的各神經元,三層前向網路分為輸入層、隱含層和輸出層,在前向網路中有計算功能的節點稱為計算單元,而輸入節點無計算功能,
反饋網路,反饋網路從輸入層到輸出層有反饋,即每個節點同時接收外來輸入和來自其它節點的反饋輸入,其中也包括神經元輸出信號引回到本身輸入成的自環反,這種反網路的節點都是一個計元,
相互結合型網路,這種網路在任意兩個神經元之間都可能有連接,Hopfield網路和Boltzman機均屬于這種型別,在無反饋的前向網路中,信號一旦通過某個神經元,該神經元的處理程序就結束了,而在相互結合網路中,信號要在神經元之間反復傳遞,網路處于一種不斷改變狀態的動態之中,從某初試狀態開始,經過若干次的變化,才會達到某種平衡狀態,
3.1.2神經網路的學習和訓練
人腦中有一個典型的神經元通過許多樹突的精細結構,收集來自其它神經元的資訊,當它收到的興奮輸入足夠大于它的抑制輸入時,神經元將通過軸突發出電話性脈沖,經突觸結構影響其它的神經元,這便發生了學習行為,因此,可以認為神經網路學習的本質特征在于神經細胞特殊的突觸結構所具有的可塑性連接,而如何調整連接權值就構成了不同的學習規則,學習規則就是修改神經網路的權值和偏置值的方法和程序(也稱這種程序是訓練演算法),其目的是為了訓練網路來完成某些作業,現在有很多型別的神經網路學習規則,如Hebb學習規則、Delta學習規則、Wdirow-Hoff學習規則等,大致可以將其分為有監督學習和無監督學習兩大類,
有監督學習,為了使神經網路在實際應用中能解決各種問題,必須對它進行訓練,就是從應用環境中選出一些樣本資料,通過不斷地調整權矩陣,直到得到合適的輸入輸出關系為止,這個程序就是對神經網路的訓練程序,這種訓練程序需要外界監督,提供訓練資料(樣本資料),權值的調整是基于獎懲式的規則:當網路的輸出朝正確的方向變化時,調整權值以強化(獎勵)此方向的變化;而當網路的輸出朝著錯誤方向變化時,權值將朝著榷訓(懲罰)的方向變化,這種學習方法雖然簡單,并能夠根據訓練資料準確地調整出所需的權矩陣,但它也同時要求訓練資料能夠代表實際的應用環境,并且為了適應環境的變化,需要重新調整權值,這樣當學到新知識時,就容易遺忘舊的知識,
無監督學習,無監督學習的訓練資料集中,只有輸入而沒有目標輸出,訓練程序中神經網路將自動地提取各輸入資料的特征,并將其分成若干類,經過訓練好的網路能夠識別訓練資料集以外的新的輸入類別,并相應獲得不同的輸出,
3.2 SOM神經網路
SOM網路是Kohonen于1981年提出的,它引入了網路的拓撲結構,并在這種拓撲結構上進一步引入變化鄰域概念來模擬生物神經網路中的側抑制現象,從而實作網路的自組織特性,SOM網路的無監督學習方式更類似于人類大腦中生物神經網路的學習,其重要特點是通過自動尋找樣本中的內在規律和本質屬性,自組織、自適應地改變網路引數和結構,
自組織映射演算法的基本目標是尋找較小的原型集來存盤一個大的輸入集,而這些原型集能夠提供對輸入空間的良好近似,從分類角度說,自組織映射通過尋找最優參考向量集合來對輸入模式進行分類,這個原型集就是自組織網路的權值向量,因此特征映射提供了對輸入空間的良好近似,
SOM網路能夠根據其學習規則對輸入的模式自動進行分類,即在非監督的情況下,對輸入模式進行自組織學習,通過反復地調整連接著輸入和輸出的權值向量,最終使得這些權值反映出輸入樣本之間的相互距離關系,并在競爭層中將分類結果表示出來,當外界輸入不同的樣本到SOM網路中,一開始時輸入樣本引起輸出興奮的位置各不相同,但通過網路自組織后會形成一些輸出群,它們分別代表了輸入樣本的分布,反映了輸入樣本的圖形分布特征,
SOM網路使輸入樣本通過競爭學習后,相似的輸入靠得比較近,不同的分得比較開,以此將一些無規則的輸入自動排開,在連接權的調整程序中,使得權值的分布與輸入樣本的概率密度分布相似,所以SOM網路可以作為一種樣本特征檢測器,在樣本排序、樣本分類以及樣本檢測方面有廣泛地應用,
SOM 網屬于自組織映射神經網路 SOM神經網路接收外界的輸入模式時會分為不同的對應區域各區域對不同的輸入模式會有不同的回應特征利用這個特征可以對輸入模式進行分類,
5.2 BP神經網路建模
為了降低神經網路的規模和提高網路的性能,我們必須對原始采樣資料進行預處理和特征提取,其中后者非常關鍵,我們采用在神經網路模式識別系統中應用很廣泛的PCA主分量分析方法,而神經網路分類器的設計則是最重要的,我們采用BP多層前饋網路實作,
5.2.1 BP神經網路演算法設計與實作
經過PCA主分量分析處理后的特征維數取為10,故神經網路的輸入層節點數為10,輸出層節點數為3,網路期望輸出值按輸入正面左向時設定為1000,
為了區分分類結果,區分邊界定義為0.9即當三個節點輸出有一個大于0.9時認定為該類,沒有一個大于則認定是假幣,拒絕接收,確定隱層節點數時,先根據經驗公式(其中m為隱層節點數,n為輸入層節點數,為輸出節點數)大概先確定初值為5,然后等后面訓練比較確定最佳值,
5.2.1.1 神經網路引數的選定
網路激勵函式采用Sigmoid函式,訓練學習率初始值經考慮選定為0.1,動量系數選用0.95,最大訓練次數設定為1000次,系統誤差小于時,認為網路收斂,
net.trainParam.show = 1;
net.trainParam.lr = 0.3;
net.trainParam.mc = 0.95;
net.trainParam.mem_reduc = 10;
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-6;
net.trainParam.min_grad = 1e-20;
net.trainParam.time = inf;
以上是BP神經網路的初始化引數的設定,
5.2.1.2 樣本訓練
試驗中采用基因資料的采樣資料作為訓練樣本,對網路進行訓練,借助于MATLAB,用改進的BP演算法對以上樣本進行訓練,用-l~l之間的亂數初始化權重,對隱層節點數取2~10之間的數進行試驗,得到不同的訓練次數如下表所示:
NodeNum = 2; % 隱層節點數
TypeNum = 3; % 輸出維數
p1 = xn_train; % 訓練輸入
t1 = dn_train; % 訓練輸出
Epochs = 1000; % 訓練次數
P = xn_test; % 測驗輸入
T = dn_test; % 測驗輸出(真實值)
在這里,我們修改系統的隱層節點數,從2修改到10,我們做對比,
表5-1 不同隱層節點數時網路訓練次數表
| 隱層 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 次數 | >200 | 33 | 42 | 34 | 21 | 58 | 16 | 13 | 30 | 19 | 33 | 16 | 20 | 20 | 29 | 36 |
由該表可知,隱層節點數為12訓練次數較少,而且從其訓練誤差曲線(用MATLAB畫出如圖5.1)情況來看也比較好,所以最終確定隱層節點數為12,那么最后的網路結構也確定下來即1Ox8x3,即網路容量為2400,
根據已知條件,給定的資料中,已知一組20個樣本具有癌癥特性,而另一組20個樣本具有正常的特性,現在我們要通過神經網路模型將第三組模型進行訓練,做模式分類從而來判斷其具有的特性,
我們首先將前20組資料歸為一個陣列,中間20個歸為一個陣列,最后20個歸為一個陣列,通過BP神經網路演算法對三類進行識別分類,
我們分別以癌癥患者的資料和正常人的基因資料為訓練目標,對第三組資料進行測驗,分別得到如下的結果,
訓練樣本(癌癥病人):
圖5-1 訓練400次
圖5-2 訓練100次
圖5-3 訓練50次
訓練樣本(正常人):
圖5-4 訓練400次
圖5-5 訓練100次
圖5-6 訓練50次
通過以上分析,我們可以知道第三組資料型別可能為正常人基因,
5.3小結
本章研究并設計實作了一個具體的模式識別系統,即人體基因資料的模式分類,在深入分析、設計其硬體構成的基礎上,采用BP神經網路較好地實作了基因資料的識別,開發的樣機運行結果良好,有較高的基因識別率,表明本文所研究與開發的成果有較好的理論意義和實用意義,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/147917.html
標籤:python
上一篇:四元數、歐拉角學習筆記&個人理解
下一篇:orangepi 4B利用python3使用snowboy實作語音喚醒以及使用騰訊AI api實作語音識別、回復以及合成
