前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇神經網絡學習方法范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。
中圖分類號Q1 文獻標識碼A 文章編號 1674-6708(2011)40-0111-02
0 引言
機器學習方法經常被應用到解決醫學和生物信息學的問題。在這個報告中我列舉了一些把機器學習方法應用到生物信息學領域的實例。比如:組建多重神經網絡,運用該神經網絡對4種不同形勢的腫瘤患者進行分類。
1 介紹
人工神經網絡屬于機器學習領域。關于人工神經網絡的概念最早提出于1940年代。后來在1980年代后被推廣應用,尤其是在醫學領域。
其中一個非常有用的用途是對疾病進行分類,達到診斷的目的,或者對基因表達進行分類。在這類神經網絡里面,k點最近鄰居算法是最常被采用的算法。
人工神經網絡的優點是:不需要人們蛆關注神經網絡里面的細節信息;人工神經網絡可以很容易地被重新訓練來應對不同地分類數據。人工神經網絡可以用來解決有監督學習和無監督學習,比如:自組織特征映射(self-organized feature map)就可以用來解決無監督學習的問題。
它的不足之處在于:人工神經網絡往往需要大量的訓練數據,而這些訓練數據往往不是很容易獲得。人工神經網絡可以被看作是一個黑盒,它的細節隱藏在點點之間的權值里面。這些權值的意義是人類無法理解的。同時,人工神經網絡需要被仔細的訓練以避免過擬合的情況出現。我們常常需也要降低高維數據的維度。下面,我將分析介紹人工神經網絡的具體應用。
人工神經網絡的結構如圖1所示:
X1 ,X2 ,X3是該神經網絡的輸入值,w0 ,w1 ,w2 ,w3 是該神經網絡的輸入結點到內部節點的路徑權值,每個神經元的激活函數是如上圖右側所示的函數圖像。
這個函數被稱作為sigmoid函數,表達式如下:
多重神經網絡通常有3層,事實上,3層神經網絡以能進行很好的分類效果。這三個層包括輸入層,隱藏層,輸出層。在每個神經元內部我們可以選擇sigmoid激活函數或其他種類的激活函數。
如圖2所示:
單個神經元僅能提供線性的分割面,所以多層神經網絡可以提供非線性的分類函數(即:若干個線性分割面的復雜組合)。這并不意味著4層神經網絡就一定比3層神經網絡能一共更好的分類效果,因為層數越多,需要的訓練集就越龐大,得到的效果也不會提高。
既然有訓練問題,就會涉及到訓練算法。較為早的和著名的訓練算法是delta 規則。它于20世紀60年代被提出。它的原理是計算理論輸出值和世紀輸出值的均方差。tp 為理論輸出值,yp為實際輸出值,表示為:
訓練的開始階段,我們通常設定一個隨機選取值,令該值等于:
該公式里,α是學習速率,學習速率越大,學習的過程就越快,完成學習的時間短。但如果學習的速率過大,可能導致網絡的理想權值在合理結果的附近游擺而永遠無法獲得理想的權值。
神經網絡被訓練好了以后,它就被用到解決目標問題。原始的數據集可以被分為兩部分:一部分用來訓練,一部分用來測試。
有時候神經網絡會把訓練數據集里面的噪音點的特征納入自己的權值表達里,從而該神經網絡無法真正體現該點集的真實特征。我們把這種情況叫做過擬合。過擬合是由于網絡比待估函數復雜造成的。比如一個可以同3層網絡解決的問題,我們用4層網絡或者由更多神經元的三層網絡去解決該問題,就容易造成過擬合。為了更好的明確訓練時所采用的神經網絡的隱藏層的層數,Livingstone 和 Manalack 提出了如下計算公式:
D = m*o/w
該公式里m是訓練樣本的數目,o是該網絡的輸出值,w是網絡權值的數目,D就是隱藏層的數目。
得到了隱藏層的數目之后,我們可以以這個數目創建神經網絡,邊訓練邊削減,直到我們獲得一個一半化的網絡。對于沒有隱藏網絡層或只有一個隱藏網絡層的神經網絡,我們需要先確定它要解決的問題是否是線性的。
適當的訓練方案是能也可以使網絡的復雜性和數據的復雜性得到合適的匹配。一個合適的訓練方案應該是如下步驟:首先選擇一個很大的網絡并且把它的每個權值都設到一個很小的值上。通過訓練,這些權值可以逐漸游擺到一個合理的值。
由于初始數據集通常要被分為訓練集和測試集。在醫學領域,我們能獲得的數據集往往很小,比如某種病的病人數目不會很大。所以我門需要采用交叉驗證的技巧來是較小的數據集在被分為訓練集和測試集之后能較好的訓練神經網絡。
關鍵詞:人工智能;深度學習;教學建議
0 引言
傳統的人工智能課程主要包括人工智能導論、模式分析、機器學習、數據挖掘等。這些課程由各個院校根據專業情況不同而選擇,課程的內容也有較大差別,但是,基本上都涉及人工神經網絡的內容。然而在人工神經網絡的教學內容上,一般只講解經典的多層感知器和反向傳播算法,或再加入一些反饋網絡的內容,這種教學內容設計的一個不足是忽視了人工智能領域的最新發展——深度學習,它是近幾年人工智能領域最具影響力的研究主題,并在大規模語音識別、大規模圖像檢索等領域取得突破。
北京郵電大學計算機學院開設人工智能科學與技術的本科專業,筆者從事深度學習的研究工作,同時承擔了本科生和研究生人工智能類課程的教學工作,因此產生了將深度學習內容引人人工智能類課程的想法。本文先介紹深度學習的背景,說明深度學習在人工智能發展中的地位,之后分析了將深度學習基本內容引入人工智能類課程的必要性和可行性,最后給出了一些實施建議供探討。
1 深度學習背景
2006年,加拿大多倫多大學的GeoffreyHinton教授與Salakhutdinov博士在美國《科學》雜志發表了題為“Reducing the Dimensionality ofDatawith Neural Networks”的論文,該文提出一種學習多層神經網絡的方法,并將這種具有多層結構的學習方法命名為深度學習(Deep Learning),而這成為深度學習研究的一個導火索,從此深度學習的研究與應用蓬勃發展起來。
深度學習在語音識別與生成、計算機視覺等應用領域取得了突出進展。近幾年的國際機器學會(International Conference on MachineLearning,ICML)、神經信息處理大會(AnnualConference On Neural Information Processing Systems,NIPS)、計算機視覺大會(InternationalConference on Computer Vision,ICCV)、
聲學語音與信號處理大會(International ConferenceOn Acoustics,Speech,and Signal Processing,ICASSP)、計算語言學大會(Annual Meeting of the Association for Computational Linguistics.ACL)、計算機視覺與模式識別(InternationalConference on Computer Vision and P atternRecognition,CVPR)等都有不少相關的研究論文、會議教程和小組研討會(Workshop)。美國國防高級研究計劃(DARPA)也提出了關于深層學習的研究項目。此外,2013年6月《程序員雜志》的封面故事,采訪了周志華、李航、朱軍3位國內的機器學習專家對于深度學習的看法,他們一致肯定了深度學習在機器學習領域的貢獻。
工業界對深度學習也寄予了很高期望。2012年6月,《紐約時報》報道了斯坦福大學計算機科學家AndrewNg和谷歌公司的系統專家JeffDean共同研究深度神經網絡的機器學習模型在語音識別和圖像識別等領域獲得的巨大成功。2012年11月,微軟公司在天津公開演示了一個全自動的同聲傳譯系統,其關鍵技術也是深度學習。2013年1月,百度公司首席執行官李彥宏先生宣布建立深度學習研究院(Institute of Deep Learning)。2013年3月,谷歌公司收購了由深度學習創始人Geoffrey Hinton創立的公司。
從學術界與工業界的研究態勢看,深度學習已經成為機器學習與模式識別,乃至人工智能領域的研究熱點。正是在這樣一個背景下,人工神經網絡重新回到人們的視野。此前人工神經網絡的發展大致可以分為兩個時期,1943年,McCulloch和Pitts提出了最早的人工神經元,這種神經元具有學習能力,這是人工神經網絡的發端,也可以被認為是人工智能的發端(當時還沒有人工智能這個術語)。1949年,Hebb提出了Hebbian學習算法。1957年,Rosenblatt提出了感知器的神經網絡模型。1969年,Minsky和Papert分析了這種感知器神經網絡模型的局限性。然而,很多研究者認為,感知器的這種局限性對于所有的神經網絡模型都適用,這使人工神經網絡的研究很快暗淡下來。1980年代中期,諾貝爾獎得主John Hopfield提出了Hopfield神經網絡模型,這種Recurrent神經網絡具有的動態性有可能用于解決復雜的問題。同時,多層前向神經網絡的后傳算法也被重新發現,這兩個工作使人工神經網絡得到重生。這時,人工神經網絡已經成為人工智能的一個重要組成部分。但是,在隨后的研究中,人們發現,當學習多層神經網絡包含更多的隱藏層時,后傳算法并不能學到有效的網絡權值,這使得神經網絡的研究再次陷入低潮。此次以深層神經網絡為代表的深度學習重新回到研究的舞臺,其中一個重要因素是Hinton提出的逐層預訓練神經網絡方法治愈了多層神經網絡的一個致命傷。
2 必要性與可行性
深度學習的發展使得從事教學一線的教師也無法忽視這個頗具影響力的研究主題。為此,我們提出將深度學習這個主題引入到人工智能類課程中,將它作為課題教學的一部分。
2.1 必要性
將深度學習這個主題引入到人工智能類課程中的必要性主要包括如下4點。
1)深度學習是人工智能的前沿。
2006年以來,深度學習的研究席卷了整個人工智能,從機器學習、機器視覺、語音識別到語言處理,都不斷涌現出新的研究工作和突破性進展。深度學習不僅在機器學習領域成為研究熱點,同時在多個應用領域也成為有力工具,而且,在工業界的系統應用中,深度學習成為其中的關鍵解決技術。
2)深度學習是人工智能的突破。
深度學習的發端是神經網絡。關于神經網絡的論述,在人工智能類常見教科書中還停留在多層神經網絡,即神經網絡的第二階段,它們大部分描述多層結構無法訓練的現象。但是,從深度學習的角度看,深層神經網絡不僅可學習,而且有必要,這與第二代神經網絡的觀點是完全不同的。深度學習突破了原有人工神經網絡的認識,超越了人工智能神經網絡教科書中的原有內容,因此,有必要將多層神經網絡結構的可學習性告知學生,從新的視角糾正原有的觀點。
3)深度學習是人工智能的延伸。
深度學習不僅提供了一種可以在深層神經結構下訓練網絡的方法,也包含了不少新的內容,是人工智能的新發展,為人工智能補充了新的內容。到目前為止,深度學習至少包括:從生物神經網絡與人類認知的角度認識深層神經網絡的必要性;如何構建和學習深層學習網絡;如何將深層結構用于解決視覺、語音、語言的應用問題;如何看待深度學習與原有的機器學習方法,如流形學習、概率圖模型、能量模型的直接關系;深度學習與其他學科的關系等。
4)深度學習是學生的潛在興趣點。
大學生對知識有著強烈的好奇心,加之當前信息技術的發達,部分對智能感興趣的學生可以從其他途徑了解到這個學科發展的前沿。因此,順勢而為,將深度學習這個主題做具體講解,滿足學生的好奇心,培養他們對學科前沿與發展的認識,是十分必要的。對高年級的學生而言,了解深度學習的基本知識,是他們全面認識人工智能與發展前沿的一個途徑,而對于研究生,較多地了解和掌握深度學習的基本知識有助于他們研究工作的開展。
基于以上幾點,筆者認為,將深度學習這個主題引入到人工智能類課程中非常有必要。深度學習作為人工智能的前沿,既是對人工智能原有理論和技術的一個突破和補充。
2.2 可行性
將深度學習引入到人工智能類課程中的可行性主要包括如下3點。
1)深度學習與現有人工智能聯系密切。
深度學習并不像突兀的山峰拔地而起。而是深深植根于原有的人工智能理論與技術。深度學習是以神經網絡為出發點,這正是深度學習教與學的切入點。比如,可以通過對多層感知器隱藏層的增加和后傳算法的失效來講解深度學習是如何解決這個問題的。再者,深度學習的一個核心構建“受限波爾茲曼機(Restricted Boltzmann Machine)”,可以被認為是一種能量模型,而這種模型與Hopfield網絡都可以從物理學的能量模型角度分析,RBM可以認為是Hopfield網絡的隨機擴展。總之,深度學習與現有人工智能的聯系,使學習深度學習變得容易。
2)深度學習的基本內容并不深。
深度學習有個很好的名字,這個名字恰當地描述了特定的學習結構。比如,深度學習的核心部件受限于波爾茲曼機RBM,其結構非常簡單。從神經網絡的角度,受限波爾茲曼機是一種隨機的雙向連接神經網絡,信號可以從可見層傳遞到隱藏層,也可以從隱藏層傳遞到可見層。網絡中每個節點是具有特定結構的神經元,其中的神經元具有典型的包含自身偏置的Logistic函數的隨機單元,能夠依Logistic函數計算得到的概率輸出0狀態或1狀態。概括地說,深度學習的基本內容在高年級階段較易掌握。
3)深度學習的資料容易獲得。
當前的信息資訊非常發達,有相當多的資料可以通過互聯網等多種途徑獲得,這使學習深度學習成為可能。近期,中國計算機學會主辦了多個技術講座均涉及深度學習的部分;深度學習的創始人Hinton教授的主頁也有很多資料;Coursera網站有免費的Hinton教授的神經網絡課程;斯坦福大學的Ng教授提供了很多的在線教程;蒙特利爾大學Bengio教授發表的題為“Learning Deep Architectures for AI”的論文也是這領域的優質資料。
3 實施建議
在具體的教學過程中,筆者建議適當安排深度學習的最基本內容,內容不宜過多,也不宜占用過多的學時,可以根據教學對象的不同進行調整。比如,本科生的高年級專業課可以安排1學時的教學量,介紹層次訓練的基本算法;也可以在高年級前沿講座中安排2學時,內容覆蓋面盡可能廣泛。在研究生的教學中,可以根據教學的課程主題安排內容與學時。比如,神經網絡主題的課程可以安排4-6學時的教學內容,包括波爾茲曼機及學習算法、深層信念網絡與學習算法、深層波爾茲曼機與學習算法卷、積神經網絡、自動編碼器等。結合應用,課程還可以包含MNIST數字識別的應用、人臉識別的應用、圖像檢索的應用、語音識別中的應用等。另外,深度學習是一個實踐性很強的研究,隨機性:大規模(意味著數據不宜可視化,程序運行時間長)等多種因素混合,使深度學習在學習中不容易理解。為此,可以在條件允許的前提下,增加小規模的實驗,輔助理解。最后,課件可以通過對優質資料做修改得到。
關鍵詞:決策支持系統;專家系統;集成學習;神經網絡集成
中圖分類號:TP18文獻標識碼:A文章編號:1009-3044(2008)27-2045-02
The Construction of the IDSS Based on the Neural Network Ensemble
WANG Jian-min, LI Tie-jun, DONG Yun-qiang
(PLA University of Science and Technology, Nanjing 210007, China)
Abstract: It is difficult to solve the problem, which is gaps between classical Decision Support System (DDS) and practical decision-making problems, especially the complexes. Ensemble Learning is a hot topic in Machine Learning studies. The improvement of generalization performance of individuals comes primarily from the diversity caused by re-sampling the training set. Neural Network Ensemble (NNE) can significantly improve the generalization ability of learning systems through training a finite number of neural networks and combining their result. The paper introduces the DSS and NNE, and studies the application of NNE on constructing IDSS knowledge base.
Key words: DSS; expert system; ensemble learning; NNE
1 引言
決策支持系統(Decision Support System,簡稱DSS)的概念在20世紀初由Keen P G和Morton M S等人提出,1980年Sprague R H 提出了基于數據庫和模型庫的DSS結構,目前各個DSS框架結構,概括起來分為基于X庫和基于知識的DSS的框架結構兩大類,前者以各種庫及其管理系統作為DSS的核心,后者以問題處理單元作為系統的主要部分。隨著研究的深入,人們發現傳統的手段難以在決策中取得理想的結果,于是將AI中知識表示與知識處理的思想引入到了DSS中,產生了智能決策支持系統(Intelligent Decision Support Systems,簡稱IDSS)。目前在研究的各類DSS大都與計算機技術緊密關聯,對計算機依賴程度過高,從而產生了很多局限,且不能解決或者有效提供對于復雜巨問題的決策支持[1]。
機器學習是人工智能研究的重要方向,已在DSS中扮演起越來越重要的角色,若將兩者有機地結合起來,改進問題處理系統,增設學習系統,就成為一種基于學習的DSS體系結構,簡稱ML-IDSS [2]。對神經網絡算法運用集成學習(Ensemble Learning )的思想,即為神經網絡集成(Neural Network Ensemble)方法,它通過訓練多個神經網絡并將其結果進行合成,可顯著地提高神經網絡系統的泛化能力。該方法易于使用且效果明顯,是一種非常有效的工程化神經計算方法 [3]。
2 決策支持系統(Decision Support System)
一般認為決策支持系統是“決策”(D)、“支持”(S)、“系統”(S)三者匯集成的一體,即通過不斷發展的計算機建立系統的技術(System),逐漸擴展支持能力(Support),達到更好的輔助決策(Decision)[4]。
傳統DSS通過模型來操縱數據,實際上支持的僅僅是決策過程中結構化和具有明確過程性的部分,人們更希望解決半結構化和非結構化的決策問題。即傳統DSS的局限性表現在:系統在決策支持中的作用是被動的,不能根據決策環境的變化提供主動支持(主動的DSS或者協同的DSS),對決策中普遍存在的非結構化問題無法提供支持,以定量數學模型為基礎,對決策中常見的定性問題、模糊問題和不確定性問題缺乏相應的支持手段。
AI技術應用于DSS中后,有效地增強了DSS的效能,提高了輔助決策和支持決策的能力,極大地豐富了DSS的信息存取和信息處理手段,同時也使DSS在軍事、政府、工程規劃、制造等領域受到越來越多的青睞,現有的DSS除了在定量分析支持上有提升外,對于決策中的半結構化和非結構化的問題也提供了一定的定性分析支持,但是集成了專家系統的DSS,定性知識處理能力依然較弱,且基于專家系統的智能決策系統適用范圍狹窄,依然無法完成全部的定性分析支持,更無法處理復雜問題的決策支持 [1]。
3 神經網絡集成(Neural Network Ensemble)
3.1 機器學習(Machine Learning)
機器學習是一門新興的邊緣學科,其突出的自學習能力讓人們看到了它在DSS中應用的前景。現有的DSS定性知識處理能力弱,沒有自學習適應能力,而這正是機器學習應用于DSS中的突出優點。神經網絡是機器學習中具有強大生命力的算法之一。
3.2 神經網絡集成(NNE)
神經網絡算法已經成功應用在諸多領域,但由于缺乏嚴密理論體系指導,其應用效果完全取決于使用者的經驗。神經網絡集成一般是幾個神經網絡的線性組合,它具有比單個神經網絡更好的泛化能力。
3.2.1 問題的提出:強學習器與弱學習器
在PAC學習模型中,存在強學習與弱學習之分,且兩者存在等價性問題。若存在的一個多項式級學習算法在辨別一組概念的過程中,辨別正確率很高,那么它是強可學習的;如果學習算法辨別一組概念的正確率僅比隨機猜測略好,那么它是弱可學習的,并且弱、強學習算法之間存在等價性問題,即可以將弱學習算法提升成強學習算法。等價性問題是神經網絡集成思想的出發點。1990年,Schapire針對此問題給出了構造性證明并提出集成方法和相應的Boosting算法。
關鍵詞: 電力負荷;Elman網絡;BP網絡;預測
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2013)16-3871-04
電力系統時序負荷的準確預測是實現現代控制的前提之一,也是電力系統規劃和運行研究的重要內容。負荷預測是從已知的用電需求出發,考慮政治、經濟、氣候等相關因素,對未來的用電需求作出的預測[1]。電力系統負荷預測也是電力生產部門的重要工作之一,通過準確的負荷預測,可以經濟合理地安排機組啟停,減少旋轉備用容量,合理安排檢修計劃,降低發電成本,提高經濟效益。此外,它也是電力市場中電價制定的基礎。
負荷預測對電力系統控制、運行和計劃都有著重要意義。電力系統負荷變化一方面受許多不確定因素的影響,負荷變化會存在隨機波動,另一方面又具有周期性,這也使得負荷預測曲線具有相似性。同時,由于受天氣、節假日等特殊情況的影響,又使負荷變化出現異常。由于神經網絡具有較強的非線性映射特性,它常用于負荷預測。
近年來,人工神經網絡越來越引起控制理論工作者的極大興趣。人工神經網絡是一個能夠學習,能夠總結歸納的系統,也就是說它能夠通過已知數據的實驗運用來學習和歸納總結。人工神經網絡通過對局部情況的對照比較(而這些比較是基于不同情況下的自動學習和要實際解決問題的復雜性所決定的),它能夠推理產生一個可以自動識別的系統。與之不同的基于符號系統下的學習方法,它們也具有推理功能,只是它們是建立在邏輯演算法的基礎上,也就是說它們之所以能夠推理,基礎是需要有一個推理演算法則的集合。神經網絡的優點在于它具有模擬多變量而不需要對輸入變量做復雜的相關假定的能力,具有良好的自適應和自學習能力,能夠充分逼近復雜的非線性關系,但關鍵是要建立合理的數學模型。
本文利用Elman神經網絡的自適應性和較強的非線性映射能力進行負荷預測。采用自適應學習速率動量梯度下降反向傳播算法進行網絡訓練,可以克服傳統BP算法收斂速度慢和局部極小等缺陷。
1 Elman神經網絡結構與算法
1.1Elman神經網絡結構
Elman網絡通常是一個兩層網絡,其隱含層神經元到輸入層神經元之間還存在一個反饋連接通道,這種反饋連接在神經網絡術語中稱為回歸(recurrent)連接。這種回歸連接使得Elman網絡具有檢測和產生時變模式的能力。
2 數據的預處理
2.1數據的選取
有效地選取輸入變量是決定神經網絡預測精度的關鍵所在。電力系統負荷的波動往往受各種突變因素的影響,而這些因素包含的信息往往具有很大的不確定性。出于篇幅考慮,對預報模型簡單化,輸入變量的選取僅來自于某年歐洲競賽中電力負荷的歷史數據。
2.2結構分析
2.3輸入和輸出參數的標準化
3 仿真分析
神經網絡中單個神經元具有簡單的能夠反映非線性本質特征的能力,這些基本的單元經過自組織復合,使神經網絡可以逼近任意非線性函數。通過學習,從樣本中抽取并存儲其內在規律,從而可以對序列的變化進行預測。使用神經網絡方法可以避免復雜的常規建模過程,而且神經網絡模型有良好的自適應和自學習能力、較強的抗干擾能力,易于給出工程上容易實現的算法。在進行神經網絡預測時,首先是要確定輸入、輸出節點。
在訓練和預測的過程中,在MATLAB語言環境下,使用其特有的神經網絡工具箱,對改進的BP算法建立負荷預測模型,實現短期負荷預測。對比兩種網絡預測圖像和數據,可以清楚地看出,Elman網絡的訓練速度及預測精度都有較大的改善。比較圖4、圖5及預測技術指標可以看到,訓練Elman網絡時間短,平均預測精度高,最大預測精度也優于BP網絡。
對于電力預測來說,只考慮歷史數據是不夠的,還受許多隨機因素的影響,由于工作日和節假日的負荷不同,還要考慮時間特征值[8]。為避免預測時出現較大的誤差,可以通過適當增加樣本容量。
4 結論
到目前為止,電力系統的負荷預測一直都是一個難點,這主要是因為電力系統結構越來越復雜。該文采用Elman網絡建立短期負荷的預測模型,克服了傳統BP神經網絡的一些缺陷。通過仿真計算,證明了Elman神經網絡具有動態特性好、網絡訓練速度快、精度高等特點,同時表明該方法是可行且有效的,并且在電網電力負荷預測領域具有廣闊的應用前景。
參考文獻:
[1] 汪峰,于爾鏗,周京陽.能量管理系統(EMS) [J]. 電力系統自動化,1997,21(4):66-69.
[2] 芮執元,任麗娜,馮瑞成.基于Elman神經網絡的甘肅電網負荷預測模型[J].現代電力,2007,24(2):26-29.
[3] 夏昌浩,向學軍,何勝雄. 基于MATLAB神經網絡工具箱的電力系統負荷預報[J]. 武漢水利電力大學學報,2000,22(4):303-307.
[4] 孫洪波,秦翼鴻,徐國禹. 用于短期電力負荷預報的人工神經網絡方法[J]. 重慶大學學報,1995(7):42-47.
[5] 陳玉彬.礦井雙風機自動的簡易實現[J].礦山機械, 2009(18):84.
[6] 王關平. 基于人工神經網絡的無刷直流電動機控制研究[D]. 蘭州理工大學,2007.
作者已經采用BP網絡建立了機器人視覺系統的映射模型,并作了初步的研究和實驗。結果發現,采用神經網絡建立機器人視覺映射模型是一種有效的建模方法。但采用BP網絡建立模型存在網絡規模大、訓練時間長、容易陷入局部最小解、定位精度較低等缺點。本文采用CMAC神經網絡建立了機器人視覺系統的映射模型,取得了十分令人滿意的效果。
1 CMAC神經網絡簡介
小腦模型關節控制器神經網絡(Cerebellar Model Articulation Controller Neural Network,即CMAC神經網絡)是Albus根據小腦的生物模型提出的一種人工神經網絡。它學習速度快,具有局域泛化能力,能夠克服BP網絡容易陷入局部最小點的問題,且硬件易于實現。目前,CMAC神經網絡被廣泛應用于機器人控制、非線性函數映射、模式識別以及自適應控制等領域。
1.1 CMAC的基本結構和原理
CMAC神經網絡的模型結構原理圖如圖1所示。它本質上可看作是一種用于表示復雜非線性函數的查表結構。
圖1中,S為n維輸入矢量空間;A為聯想記憶空間;Y是輸出響應矢量。輸入空間S中的每一矢量S(…,Si,…,Sj,…)被量化后送人存鍺區A,每個輸入變量Si激活存儲區A中C個連續存儲單元。網絡輸出yi為這C個對應單元中值(即權wi)的累加結果,對某一輸入樣本,總可通過調整權值達到期望輸出值。由圖1可以看出,每一輸入樣本對應于存儲區A中的C個單元,當各樣本分散存儲在A中時,在S中比較靠近的那些樣本就會在A中出現交疊現象,其輸出值也比較相近,即這C個單元遵循"輸入相鄰,輸出相近"的原則,這種現象被稱為CMAC神經網絡的局部泛化特性,C為泛化參數:C越大,對樣本的映射關系影響越大,泛化能力越好。
CMAC網絡的學習采用誤差糾正算法,計算量少斂速度快。其權值修正公式及輸出可表示如下:
式中,η為學習步長,yd為期望輸出,mi為輸入變量S激活存儲單元的首地址。修正方法可以采用每個樣本修正一次的增量學習方法,也可以采用所有樣本都輸入一輪后再修正的批量學習方法。
1.2 多維CMAC網絡的計算方法
由上述CMAC模型的算法可知,應用傳統的多維CMAC概念映射算法會因輸入維數的增大而使存儲空間劇烈增大,從而使網絡計算量增大,收斂速度變慢。這里采用一種新的多維CMAC網絡的處理方法--疊加處理法。即把輸入空間為n維的多維CMAC網絡看作是由n個一維CMAC網絡疊加而成,其輸出為n個一維子網絡的輸出的疊加。\par
當輸入空間的維數n=1時,對于每一個輸入變量,都激活C個連續存儲單元,即有C個對應單元的權值輸出非零。它的激勵情況如表l所示。
表1 激活單元地址分布
sia1a2a3a4a5a6a7a8a9a1001111000000101111000002001111000030001111000400001111005000001111060000001111經歸納,輸入變量Si激活存儲單元的首地址mi的計算方法如下:
mi=Si(C-Δ)+1 (4)
其中,Si為輸入量的量化值;C為泛化參數;為相鄰輸入激活存儲單元的重疊單元數大小。若輸入矢量有q個量化級,則存儲區A需要q(C-)+C個存儲單元。.
當輸入空間的維數n>1時;設輸入空間為n維矢量Si=(Si1,Si2,…,Sin),對于每個分量Sij,都可以看作圖1所示結構模型的一維輸入量。由式(3)可得其對應的輸出為:
其中,mj為Sij所激活存儲單元的首地址。整個CMAC網絡可看作由n個如圖1所示的子網絡組成,S對應的輸出yi可看作n個子網絡輸出yij(j=1,2,…,n)的疊加。
若每個輸入分量有q個量化級,每個子網絡中兩相鄰樣本有個單元重疊,采用上述疊加方法共需存儲單元n×[q(C-)+C]。而對于傳統的多維概念映射算法來說,n維輸入空間中可能的輸入狀態為qn個。對于一些實際系統,qn往往遠遠大于n×[q(C-)+C]。例如8維輸入,量化級為200個等級,泛化參數C取為40,相鄰輸入激活存儲單元的重疊單元數大小為35,則用疊加處理法需要11200個存儲單元,而用傳統的概念映射算法需要2008個存儲單元。對于傳統的概念映射算法所帶來的要求存儲空間過大的問題,最常用的方法是把A當作一個虛擬存儲區,通過散射編碼映射到一個小得多的物理空間單元Ap中,從而減少存儲空間。但是這種地址壓縮技術隨機性很強,會帶來沖撞問題且不可避免。然而,對多維CMAC網絡采用疊加處理法,不但可以大大減少占用的存儲單元數,而且還可以避免地址壓縮帶來的沖撞現象,大大提高網絡的映度和學習速度。
圖2
2 實驗及仿真結果
實驗是在山東大學現代物流實驗中心進行的。該機器人手眼系統由用于抓取物體的SK6機械手和用于視覺定位的Panasonic WV-CP410/G彩色攝像頭組成。攝像頭采集的圖像是二維的,而機械手運動到某一位置需要六自由度坐標。因此必須把二維圖像坐標轉換成機器人運動空間的六維坐標,才能控制機器人運動到指定的空間位置,這就是機器人手眼系統位置控制問題。本文采用CMAC神經網絡實現了這一坐標變換,并對其結果與BP網絡進行了比較。