神經網路實現
❶ 如何用MATLAB的神經網路工具箱實現三層BP網路
這是一個來自<神經網路之家>nnetinfo的例子,在matlab2012b運行後的確可以,因為網路知道的文本寬度不夠,注釋擠到第二行了,有些亂,樓主注意區分哪些是代碼哪些是注釋,
x1 =
[-3,-2.7,-2.4,-2.1,-1.8,-1.5,-1.2,-0.9,-0.6,-0.3,0,0.3,0.6,0.9,1.2,1.5,1.8]; %x1:x1 = -3:0.3:2;
x2 =
[-2,-1.8,-1.6,-1.4,-1.2,-1,-0.8,-0.6,-0.4,-0.2,-2.2204,0.2,0.4,0.6,0.8,1,1.2];%x2:x2 = -2:0.2:1.2;
y = [0.6589,0.2206,-0.1635,-0.4712,-0.6858,-0.7975,-0.8040,...
-0.7113,-0.5326,-0.2875
,0,0.3035,0.5966,0.8553,1.0600,1.1975,1.2618]; %y:
y = sin(x1)+0.2*x2.*x2;
inputData = [x1;x2]; %將x1,x2作為輸入數據
outputData = y; %將y作為輸出數據
%使用用輸入輸出數據(inputData、outputData)建立網路,
%隱節點個數設為3.其中隱層、輸出層的傳遞函數分別為tansig和purelin,使用trainlm方法訓練。
net = newff(inputData,outputData,3,{'tansig','purelin'},'trainlm');
%設置一些常用參數
net.trainparam.goal = 0.0001;
%訓練目標:均方誤差低於0.0001
net.trainparam.show = 400; %每訓練400次展示一次結果
net.trainparam.epochs = 15000;
%最大訓練次數:15000.
[net,tr] = train(net,inputData,outputData);%調用matlab神經網路工具箱自帶的train函數訓練網路
simout = sim(net,inputData);
%調用matlab神經網路工具箱自帶的sim函數得到網路的預測值
figure; %新建畫圖窗口窗口
t=1:length(simout);
plot(t,y,t,simout,'r')%畫圖,對比原來的y和網路預測的y
❷ 如何用BP神經網路實現預測
BP神經網路具有任意復雜的模式分類能力和優良的多維函數映射能力,解決了簡單感知器不能解決的異或(Exclusive OR,XOR)和一些其他問題。從結構上講,BP網路具有輸入層、隱藏層和輸出層;從本質上講,BP演算法就是以網路誤差平方為目標函數、採用梯度下降法來計算目標函數的最小值。
❸ 神經網路如何用單片機實現
用單片機開發神經網路應用主要考慮三個方向:
1)網路本身,神網本質上是一組矩陣,矩陣在單片機中的表現可以通過數組來實現;
2)輸入輸出,神網的應用就是把輸入陣列與網路本身的矩陣點乘叉乘後算術求和,產生輸出矩陣,把輸入輸出的演算法做到單片機里也不是難事;
3)訓練,神網的權值矩陣都是訓練出來的,採用諸如前向或反向的演算法,可以做離線也可以做在線,如果做離線就沒有必要把演算法實現在單片機內,PC上就可以做,然後導入矩陣即可;如果做在線則是相對較難的技術,需要在單片機上實現,對於單片機本身的資源要求也較高。
簡單說,1)是基礎,也最容易;1)+2)就已經是神經網路的應用了,也容易實現;1)+2)+Matlab神經網路離線訓練是易於實現,且富有彈性的應用方式;1)+2)+在線訓練基本上就是具備自己學習能力的機器人,這是學術界一直探索的方向。
希望能給你一些啟發,研究神網對我來說已經是五六年前的過去了,還是很懷念那時候的激情,個人認為這將是二十一世紀後期最有影響力的技術之一。
❹ BP神經網路代碼用什麼實現
BP演算法,只是一種演算法,用任何語言都能實現。
Matlab有神經網路工具箱,提供已經封裝好的:網路建立函數newff、訓練函數train,省去了自己編寫代碼的麻煩,你可以考慮。
BP(Back Propagation)神經網路是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網路的權值和閾值,使網路的誤差平方和最小。BP神經網路模型拓撲結構包括輸入層(input)、隱層(hidden layer)和輸出層(output layer)。
❺ 急求BP神經網路演算法,用java實現!!!
見附件,一個基本的用java編寫的BP網路代碼。
BP(Back Propagation)神經網路是86年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網路的權值和閾值,使網路的誤差平方和最小。BP神經網路模型拓撲結構包括輸入層(input)、隱層(hidden layer)和輸出層(output layer)。
❻ 什麼是人工神經網路及其演算法實現方式
人工神經網路(Artificial Neural Network,即ANN ),是20世紀80 年代以來人工智慧領域興起的研究熱點。它從信息處理角度對人腦神經元網路進行抽象, 建立某種簡單模型,按不同的連接方式組成不同的網路。在工程與學術界也常直接簡稱為神經網路或類神經網路。神經網路是一種運算模型,由大量的節點(或稱神經元)之間相互聯接構成。每個節點代表一種特定的輸出函數,稱為激勵函數(activation function)。每兩個節點間的連接都代表一個對於通過該連接信號的加權值,稱之為權重,這相當於人工神經網路的記憶。網路的輸出則依網路的連接方式,權重值和激勵函數的不同而不同。而網路自身通常都是對自然界某種演算法或者函數的逼近,也可能是對一種邏輯策略的表達。
最近十多年來,人工神經網路的研究工作不斷深入,已經取得了很大的進展,其在模式識別、智能機器人、自動控制、預測估計、生物、醫學、經濟等領域已成功地解決了許多現代計算機難以解決的實際問題,表現出了良好的智能特性。
❼ 神經網路是什麼
神經網路是一種模仿動物神經網路行為特徵,進行分布式並行信息處理的演算法數學模型。這種網路依靠系統的復雜程度,通過調整內部大量節點之間相互連接的關系,從而達到處理信息的目的。
生物神經網路主要是指人腦的神經網路,它是人工神經網路的技術原型。人腦是人類思維的物質基礎,思維的功能定位在大腦皮層,後者含有大約10^11個神經元,每個神經元又通過神經突觸與大約103個其它神經元相連,形成一個高度復雜高度靈活的動態網路。作為一門學科,生物神經網路主要研究人腦神經網路的結構、功能及其工作機制,意在探索人腦思維和智能活動的規律。
人工神經網路是生物神經網路在某種簡化意義下的技術復現,作為一門學科,它的主要任務是根據生物神經網路的原理和實際應用的需要建造實用的人工神經網路模型,設計相應的學習演算法,模擬人腦的某種智能活動,然後在技術上實現出來用以解決實際問題。因此,生物神經網路主要研究智能的機理;人工神經網路主要研究智能機理的實現,兩者相輔相成。
(7)神經網路實現擴展閱讀:
神經網路的研究內容相當廣泛,反映了多學科交叉技術領域的特點。主要的研究工作集中在以下幾個方面:
1、生物原型
從生理學、心理學、解剖學、腦科學、病理學等方面研究神經細胞、神經網路、神經系統的生物原型結構及其功能機理。
2、建立模型
根據生物原型的研究,建立神經元、神經網路的理論模型。其中包括概念模型、知識模型、物理化學模型、數學模型等。
3、演算法
在理論模型研究的基礎上構作具體的神經網路模型,以實現計算機模擬或准備製作硬體,包括網路學習演算法的研究。這方面的工作也稱為技術模型研究。
神經網路用到的演算法就是向量乘法,並且廣泛採用符號函數及其各種逼近。並行、容錯、可以硬體實現以及自我學習特性,是神經網路的幾個基本優點,也是神經網路計算方法與傳統方法的區別所在。
❽ 神經網路計算機的實現技術
人工神經網路的主要特點是大量神經元之間的加權互連。這就是神經網路與光學技術相結合的重要原因。電子技術與光學技術相比,精確度高,便於程序控制,抗雜訊能力強。但是,隨著計算機晶元集成度和速度的提高,計算機中的引線問題已成為一個嚴重的障礙。由於電子引線不能互相短路交叉,引線靠近時會發生耦合,高速電脈沖在引線上傳播時要發生色散和延遲,以及電子器件的扇入和扇出系數較低等問題,使得高密度的電子互連在技術上有很大困難。超大規模集成電路(VLSI)的引線問題造成的時鍾扭曲(clock skew),嚴重限制了諾依曼型計算機的速度。而另一方面,光學互連是高度並行的,光線在傳播時可以任意互相交叉而不會發生串擾,光傳播速度極快,其延時和色散可以忽略不計,加上光學元件的扇入和扇出系數都很高,因此光學互連具有明顯的優勢。
正因如此,許多科學家早已開始研究採用光學互連來解決VLSI的引線問題,以及晶元之間、插板之間的連接問題。此外,光學運算的高度並行性和快速實現大信息量線性運算的能力,如矩陣相乘,二維線性變換,二維卷積、積分等,也是用光學手段實現人工神經網路的有利條件。光學信息處理雖有高速度及大信息量並行處理和優點,但要滿足模糊運算和隨機處理的要求還是遠遠不夠的。光學信息處理性能的改進,要求在傳統的線性光學處理系統中引入非線性,而這些問題的解決與神經網路的光學實現恰好不謀而合。光學信息處理中的許多課題,如光計算、圖像變換、相關濾波、特徵提取、邊緣增強、聯想存儲、雜訊消除等,都可以用神經網路的方法來完成。
關於光學神經網路的研究,國內外已提出許多不同的硬體系統。例如,基於光學矢量矩陣相乘的Hopfield網路的外積實現,採用全息存儲和共軛反射鏡(PCM)的全光學系統,採用液晶開關陣列、液晶光閥以及其它空間光調制器(SLM)的內積型光學神經網路,光電混合全雙極「WTA」網路等等。光學神經網路已成為人工神經網路研究的一個重要組成部分。
❾ 神經網路在simulink中的實現
1.T=[1 1 1;1 1 1];目標函數是2維的,說明輸出可為2個,所以net=newff(minmax(X),[5 2],{'tansig','purelin'},'trainlm');你這個程序少了參數設置部分:net.trainParam.epochs=50;net.trainparam.goal=1e-3;還有其他參數可設置。
2.你建好個這個模型是對X=[1 2 3;-1 1 1;1 3 2];T=[1 1 1;1 1 1];控制的,對你那個模型當然不行,你這個程序連個介面都沒有沒法用SIMULINK,getsim()這個函數我不了解,你要是模擬可用.M文件編個S-FUNCTION,可用於模型模擬。
❿ 如何用神經網路實現連續型變數的回歸預測
神經網路最開始是機器學習的一種模型,但其訓練的時間和其他幾種模型相比不佔優勢,且結果也不盡人意,所以一直沒有被廣泛使用。但隨著數學的深入研究以及計算機硬體質量的提高,尤其是GPU的出現,給深度學習的廣泛應用提供了基礎。GPU最初是為了給游戲玩家帶來高質量的視覺體驗,由於其處理矩陣運算的能力特別優秀,也被用於深度學習中模型的訓練,以往數十天才能訓練好的模型在GPU上訓練幾天就可以訓練好,大大減少了深度學習的訓練時間,因而深度學習的應用越來越多。
通常使用Python來搭建神經網路,Python自帶深度學習的一些庫,在進行回歸預測時,我們只需用調用函數,設定幾個參數,如隱藏層層數和神經元個數等,剩下的就是等模型自行訓練,最終便能完成回歸預測,非常的方便。