第一步:數據導入第二步:使用神經網路工具箱構建模型
神經網路軟體用於模擬、研究、開發和應用人工神經網路,從生物神經網路改編的軟體概念,在某些情況下還可以用於更廣泛的自適應系統,例如人工智慧和機器學習
常用的人工神經網路模擬器包括斯圖加特神經網路模擬器(SNNS)、緊急和神經實驗室。
⑵ 利用人工神經網路建立模型的步驟
人工神經網路有很多種,我只會最常用的BP神經網路。不同的網路有不同的結構和不同的學習演算法。
簡單點說,人工神經網路就是一個函數。只是這個函數有別於一般的函數。它比普通的函數多了一個學習的過程。
在學習的過程中,它根據正確結果不停地校正自己的網路結構,最後達到一個滿意的精度。這時,它才開始真正的工作階段。
學習人工神經網路最好先安裝MathWords公司出的MatLab軟體。利用該軟體,你可以在一周之內就學會建立你自己的人工神經網路解題模型。
如果你想自己編程實現人工神經網路,那就需要找一本有關的書籍,專門看神經網路學習演算法的那部分內容。因為「學習演算法」是人工神經網路的核心。最常用的BP人工神經網路,使用的就是BP學習演算法。
⑶ 如何把大量數據導入神經網路模型中
有同樣的問題,將數據倒入XLS中那也是是手動的一個一個的讀取要是想連續的讀取是不是應該編寫一個程序?
⑷ 訓練好的神經網路模型怎麼用
那是肯定有影響的。你這樣理解,就像你讓一個復雜的結構構造的機器去學習一個東西,和你用一個構造簡單的機器去學習一個東西,它們理解的會一樣嗎?而且關於隱含層神經元個數還有幾個公式來推測它可能的神經元個數,你可以查查看,如果沒有影響你覺得誰會花時間在這上面去研究公式呢,你說是吧?
除了你說的這些,另外訓練目標和訓練次數等也會對訓練結果產生影響。
⑸ 怎麼使用已經訓練好的BP神經網路
BP(Back Propagation)神經網路是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用梯度下降法,通過反向傳播來不斷調整網路的權值和閾值,使網路的誤差平方和最小。BP神經網路模型拓撲結構包括輸入層(input)、隱層(hidden layer)和輸出層(output layer)。
⑹ 神經網路Hopfield模型
一、Hopfield模型概述
1982年,美國加州工學院J.Hopfield發表一篇對人工神經網路研究頗有影響的論文。他提出了一種具有相互連接的反饋型人工神經網路模型——Hopfield人工神經網路。
Hopfield人工神經網路是一種反饋網路(Recurrent Network),又稱自聯想記憶網路。其目的是為了設計一個網路,存儲一組平衡點,使得當給網路一組初始值時,網路通過自行運行而最終收斂到所存儲的某個平衡點上。
Hopfield網路是單層對稱全反饋網路,根據其激活函數的選取不同,可分為離散型Hopfield網路(Discrete Hopfield Neural Network,簡稱 DHNN)和連續型 Hopfield 網路(Continue Hopfield Neural Network,簡稱CHNN)。離散型Hopfield網路的激活函數為二值型階躍函數,主要用於聯想記憶、模式分類、模式識別。這個軟體為離散型Hopfield網路的設計、應用。
二、Hopfield模型原理
離散型Hopfield網路的設計目的是使任意輸入矢量經過網路循環最終收斂到網路所記憶的某個樣本上。
正交化的權值設計
這一方法的基本思想和出發點是為了滿足下面4個要求:
1)保證系統在非同步工作時的穩定性,即它的權值是對稱的,滿足
wij=wji,i,j=1,2…,N;
2)保證所有要求記憶的穩定平衡點都能收斂到自己;
3)使偽穩定點的數目盡可能地少;
4)使穩定點的吸引力盡可能地大。
正交化權值的計算公式推導如下:
1)已知有P個需要存儲的穩定平衡點x1,x2…,xP-1,xP,xp∈RN,計算N×(P-1)階矩陣A∈RN×(P-1):
A=(x1-xPx2-xP…xP-1-xP)T。
2)對A做奇異值分解
A=USVT,
U=(u1u2…uN),
V=(υ1υ2…υP-1),
中國礦產資源評價新技術與評價新模型
Σ=diαg(λ1,λ2,…,λK),O為零矩陣。
K維空間為N維空間的子空間,它由K個獨立的基組成:
K=rαnk(A),
設{u1u2…uK}為A的正交基,而{uK+1uK+2…uN}為N維空間的補充正交基。下面利用U矩陣來設計權值。
3)構造
中國礦產資源評價新技術與評價新模型
總的連接權矩陣為:
Wt=Wp-T·Wm,
其中,T為大於-1的參數,預設值為10。
Wp和Wm均滿足對稱條件,即
(wp)ij=(wp)ji,
(wm)ij=(wm)ji,
因而Wt中分量也滿足對稱條件。這就保證了系統在非同步時能夠收斂並且不會出現極限環。
4)網路的偏差構造為
bt=xP-Wt·xP。
下面推導記憶樣本能夠收斂到自己的有效性。
(1)對於輸入樣本中的任意目標矢量xp,p=1,2,…,P,因為(xp-xP)是A中的一個矢量,它屬於A的秩所定義的K個基空間的矢量,所以必存在系數α1,α2,…,αK,使
xp-xP=α1u1+α2u2+…+αKuK,
即
xp=α1u1+α2u2+…+αKuK+xP,
對於U中任意一個ui,有
中國礦產資源評價新技術與評價新模型
由正交性質可知,上式中
當i=j,
當i≠j,
對於輸入模式xi,其網路輸出為
yi=sgn(Wtxi+bt)
=sgn(Wpxi-T·Wmxi+xP-WpxP+T·WmxP)
=sgn[Wp(xi-xP)-T·Wm(xi-xP)+xP]
=sgn[(Wp-T·Wm)(xi-xP)+xP]
=sgn[Wt(xi-xP)+xP]
=sgn[(xi-xP)+xP]
=xi。
(2)對於輸入模式xP,其網路輸出為
yP=sgn(WtxP+bt)
=sgn(WtxP+xP-WtxP)
=sgn(xP)
=xP。
(3)如果輸入一個不是記憶樣本的x,網路輸出為
y=sgn(Wtx+bt)
=sgn[(Wp-T·Wm)(x-xP)+xP]
=sgn[Wt(x-xP)+xP]。
因為x不是已學習過的記憶樣本,x-xP不是A中的矢量,則必然有
Wt(x-xP)≠x-xP,
並且再設計過程中可以通過調節Wt=Wp-T·Wm中的參數T的大小來控制(x-xP)與xP的符號,以保證輸入矢量x與記憶樣本之間存在足夠的大小余額,從而使sgn(Wtx+bt)≠x,使x不能收斂到自身。
用輸入模式給出一組目標平衡點,函數HopfieldDesign( )可以設計出 Hopfield 網路的權值和偏差,保證網路對給定的目標矢量能收斂到穩定的平衡點。
設計好網路後,可以應用函數HopfieldSimu( ),對輸入矢量進行分類,這些輸入矢量將趨近目標平衡點,最終找到他們的目標矢量,作為對輸入矢量進行分類。
三、總體演算法
1.Hopfield網路權值W[N][N]、偏差b[N]設計總體演算法
應用正交化權值設計方法,設計Hopfield網路;
根據給定的目標矢量設計產生權值W[N][N],偏差b[N];
使Hopfield網路的穩定輸出矢量與給定的目標矢量一致。
1)輸入P個輸入模式X=(x[1],x[2],…,x[P-1],x[P])
輸入參數,包括T、h;
2)由X[N][P]構造A[N][P-1]=(x[1]-x[P],x[2]-x[P],…,x[P-1]-x[P]);
3)對A[N][P-1]作奇異值分解A=USVT;
4)求A[N][P-1]的秩rank;
5)由U=(u[1],u[2],…,u[K])構造Wp[N][N];
6)由U=(u[K+1],…,u[N])構造Wm[N][N];
7)構造Wt[N][N]=Wp[N][N]-T*Wm[N][N];
8)構造bt[N]=X[N][P]-Wt[N][N]*X[N][P];
9)構造W[N][N](9~13),
構造W1[N][N]=h*Wt[N][N];
10)求W1[N][N]的特徵值矩陣Val[N][N](對角線元素為特徵值,其餘為0),特徵向量矩陣Vec[N][N];
11)求Eval[N][N]=diag{exp[diag(Val)]}[N][N];
12)求Vec[N][N]的逆Invec[N][N];
13)構造W[N][N]=Vec[N][N]*Eval[N][N]*Invec[N][N];
14)構造b[N],(14~15),
C1=exp(h)-1,
C2=-(exp(-T*h)-1)/T;
15)構造
中國礦產資源評價新技術與評價新模型
Uˊ——U的轉置;
16)輸出W[N][N],b[N];
17)結束。
2.Hopfield網路預測應用總體演算法
Hopfield網路由一層N個斜坡函數神經元組成。
應用正交化權值設計方法,設計Hopfield網路。
根據給定的目標矢量設計產生權值W[N][N],偏差b[N]。
初始輸出為X[N][P],
計算X[N][P]=f(W[N][N]*X[N][P]+b[N]),
進行T次迭代,
返回最終輸出X[N][P],可以看作初始輸出的分類。
3.斜坡函數
中國礦產資源評價新技術與評價新模型
輸出范圍[-1,1]。
四、數據流圖
Hopfield網數據流圖見附圖3。
五、調用函數說明
1.一般實矩陣奇異值分解
(1)功能
用豪斯荷爾德(Householder)變換及變形QR演算法對一般實矩陣進行奇異值分解。
(2)方法說明
設A為m×n的實矩陣,則存在一個m×m的列正交矩陣U和n×n的列正交矩陣V,使
中國礦產資源評價新技術與評價新模型
成立。其中
Σ=diag(σ0,σ1,…σp)p⩽min(m,n)-1,
且σ0≥σ1≥…≥σp>0,
上式稱為實矩陣A的奇異值分解式,σi(i=0,1,…,p)稱為A的奇異值。
奇異值分解分兩大步:
第一步:用豪斯荷爾德變換將A約化為雙對角線矩陣。即
中國礦產資源評價新技術與評價新模型
其中
中國礦產資源評價新技術與評價新模型
j具有如下形式:
中國礦產資源評價新技術與評價新模型
其中ρ為一個比例因子,以避免計算過程中的溢出現象與誤差的累積,Vj是一個列向量。即
Vj=(υ0,υ1,…,υn-1),
則
中國礦產資源評價新技術與評價新模型
其中
中國礦產資源評價新技術與評價新模型
第二步:用變形的QR演算法進行迭代,計算所有的奇異值。即:用一系列的平面旋轉變換對雙對角線矩陣B逐步變換成對角矩陣。
在每一次的迭代中,用變換
中國礦產資源評價新技術與評價新模型
其中變換
在每次迭代時,經過初始化變換V01後,將在第0列的主對角線下方出現一個非0元素。在變換V01中,選擇位移植u的計算公式如下:
中國礦產資源評價新技術與評價新模型
最後還需要對奇異值按非遞增次序進行排列。
在上述變換過程中,若對於某個次對角線元素ej滿足
|ej|⩽ε(|sj+1|+|sj|)
則可以認為ej為0。
若對角線元素sj滿足
|sj|⩽ε(|ej-1|+|ej|)
則可以認為sj為0(即為0奇異值)。其中ε為給定的精度要求。
(3)調用說明
int bmuav(double*a,int m,int n,double*u,double*v,double eps,int ka),
本函數返回一個整型標志值,若返回的標志值小於0,則表示出現了迭代60次還未求得某個奇異值的情況。此時,矩陣的分解式為UAVT;若返回的標志值大於0,則表示正常返回。
形參說明:
a——指向雙精度實型數組的指針,體積為m×n。存放m×n的實矩陣A;返回時,其對角線給出奇異值(以非遞增次序排列),其餘元素為0;
m——整型變數,實矩陣A的行數;
n——整型變數,實矩陣A的列數;
u——指向雙精度實型數組的指針,體積為m×m。返回時存放左奇異向量U;
υ——指向雙精度實型數組的指針,體積為n×n。返回時存放右奇異向量VT;
esp——雙精度實型變數,給定的精度要求;
ka——整型變數,其值為max(m,n)+1。
2.求實對稱矩陣特徵值和特徵向量的雅可比過關法
(1)功能
用雅可比(Jacobi)方法求實對稱矩陣的全部特徵值與相應的特徵向量。
(2)方法說明
雅可比方法的基本思想如下。
設n階矩陣A為對稱矩陣。在n階對稱矩陣A的非對角線元素中選取一個絕對值最大的元素,設為apq。利用平面旋轉變換矩陣R0(p,q,θ)對A進行正交相似變換:
A1=R0(p,q,θ)TA,
其中R0(p,q,θ)的元素為
rpp=cosθ,rqq=cosθ,rpq=sinθ,
rqp=sinθ,rij=0,i,j≠p,q。
如果按下式確定角度θ,
中國礦產資源評價新技術與評價新模型
則對稱矩陣A經上述變換後,其非對角線元素的平方和將減少
綜上所述,用雅可比方法求n階對稱矩陣A的特徵值及相應特徵向量的步驟如下:
1)令S=In(In為單位矩陣);
2)在A中選取非對角線元素中絕對值最大者,設為apq;
3)若|apq|<ε,則迭代過程結束。此時對角線元素aii(i=0,1,…,n-1)即為特徵值λi,矩陣S的第i列為與λi相應的特徵向量。否則,繼續下一步;
4)計算平面旋轉矩陣的元素及其變換後的矩陣A1的元素。其計算公式如下
中國礦產資源評價新技術與評價新模型
5)S=S·R(p,q,θ),轉(2)。
在選取非對角線上的絕對值最大的元素時用如下方法:
首先計算實對稱矩陣A的非對角線元素的平方和的平方根
中國礦產資源評價新技術與評價新模型
然後設置關口υ1=υ0/n,在非對角線元素中按行掃描選取第一個絕對值大於或等於υ1的元素αpq進行平面旋轉變換,直到所有非對角線元素的絕對值均小於υ1為止。再設關口υ2=υ1/n,重復這個過程。以此類推,這個過程一直作用到對於某個υk<ε為止。
(3)調用說明
void cjcbj(double*a,int n,double*v,double eps)。
形參說明:
a——指向雙精度實型數組的指針,體積為n×n,存放n階實對稱矩陣A;返回時,其對角線存放n個特徵值;
n——整型變數,實矩陣A的階數;
υ——指向雙精度實型數組的指針,體積為n×n,返回特徵向量,其中第i列為與λi(即返回的αii,i=0,1,……,n-1)對應的特徵向量;
esp——雙精度實型變數。給定的精度要求。
3.矩陣求逆
(1)功能
用全選主元高斯-約當(Gauss-Jordan)消去法求n階實矩陣A的逆矩陣。
(2)方法說明
高斯-約當法(全選主元)求逆的步驟如下:
首先,對於k從0到n-1做如下幾步:
1)從第k行、第k列開始的右下角子陣中選取絕對值最大的元素,並記住此元素所在的行號和列號,再通過行交換和列交換將它交換到主元素位置上,這一步稱為全選主元;
2)
3)
4)αij-
5)-
最後,根據在全選主元過程中所記錄的行、列交換的信息進行恢復,恢復原則如下:在全選主元過程中,先交換的行、列後進行恢復;原來的行(列)交換用列(行)交換來恢復。
圖8-4 東昆侖—柴北緣地區基於HOPFIELD模型的銅礦分類結果圖
(3)調用說明
int brinv(double*a,int n)。
本函數返回一個整型標志位。若返回的標志位為0,則表示矩陣A奇異,還輸出信息「err**not inv」;若返回的標志位不為0,則表示正常返回。
形參說明:
a——指向雙精度實型數組的指針,體積為n×n。存放原矩陣A;返回時,存放其逆矩陣A-1;
n——整型變數,矩陣的階數。
六、實例
實例:柴北緣—東昆侖地區銅礦分類預測。
選取8種因素,分別是重砂異常存在標志、水化異常存在標志、化探異常峰值、地質圖熵值、Ms存在標志、Gs存在標志、Shdadlie到區的距離、構造線線密度。
構置原始變數,並根據原始數據構造預測模型。
HOPFIELD模型參數設置:訓練模式維數8,預測樣本個數774,參數個數8,迭代次數330。
結果分44類(圖8-4,表8-5)。
表8-5 原始數據表及分類結果(部分)
續表
⑺ 你好!我想用BP神經網路搭建一個模型,看了很多資料都不太懂怎麼用神經網路工具箱,你能仔細教教我么
網路文庫里有介紹(文件可免費下載)
⑻ 遺傳演算法怎麼調用神經網路訓練好的模型
遺傳演算法優化的BP神經網路建模借鑒別人的程序做出的模擬,最近才有時間整理。
目標:
對y=x1^2+x2^2非線性系統進行建模,用1500組數據對網路進行構建網路,500組數據測試網路。由於BP神經網路初始神經元之間的權值和閾值一般隨機選擇,因此容易陷入局部最小值。本方法使用遺傳演算法優化初始神經元之間的權值和閾值,並對比使用遺傳演算法前後的效果。
步驟:
未經遺傳演算法優化的BP神經網路建模
1、 隨機生成2000組兩維隨機數(x1,x2),並計算對應的輸出y=x1^2+x2^2,前1500組數據作為訓練數據input_train,後500組數據作為測試數據input_test。並將數據存儲在data中待遺傳演算法中使用相同的數據。
2、 數據預處理:歸一化處理。
3、 構建BP神經網路的隱層數,次數,步長,目標。
4、 使用訓練數據input_train訓練BP神經網路net。
5、 用測試數據input_test測試神經網路,並將預測的數據反歸一化處理。
6、 分析預測數據與期望數據之間的誤差。
遺傳演算法優化的BP神經網路建模
1、 讀取前面步驟中保存的數據data;
2、 對數據進行歸一化處理;
3、 設置隱層數目;
4、 初始化進化次數,種群規模,交叉概率,變異概率
5、 對種群進行實數編碼,並將預測數據與期望數據之間的誤差作為適應度函數;
6、 循環進行選擇、交叉、變異、計算適應度操作,直到達到進化次數,得到最優的初始權值和閾值;
7、 將得到最佳初始權值和閾值來構建BP神經網路;
8、 使用訓練數據input_train訓練BP神經網路net;
9、 用測試數據input_test測試神經網路,並將預測的數據反歸一化處理;
10、 分析預測數據與期望數據之間的誤差。
⑼ 如何在R語言中進行神經網路模型的建立
不能發鏈接,所以我復制過來了。
#載入程序和數據
library(RSNNS)
data(iris)
#將數據順序打亂
iris <- iris[sample(1:nrow(iris),length(1:nrow(iris))),1:ncol(iris)]
#定義網路輸入
irisValues <- iris[,1:4]
#定義網路輸出,並將數據進行格式轉換
irisTargets <- decodeClassLabels(iris[,5])
#從中劃分出訓練樣本和檢驗樣本
iris <- splitForTrainingAndTest(irisValues, irisTargets, ratio=0.15)
#數據標准化
iris <- normTrainingAndTestSet(iris)
#利用mlp命令執行前饋反向傳播神經網路演算法
model <- mlp(iris$inputsTrain, iris$targetsTrain, size=5, learnFunc="Quickprop", learnFuncParams=c(0.1, 2.0, 0.0001, 0.1),maxit=100, inputsTest=iris$inputsTest, targetsTest=iris$targetsTest)
#利用上面建立的模型進行預測
predictions <- predict(model,iris$inputsTest)
#生成混淆矩陣,觀察預測精度
confusionMatrix(iris$targetsTest,predictions)
#結果如下:
# predictions
#targets 1 2 3
# 1 8 0 0
# 2 0 4 0
# 3 0 1 10
⑽ 如何建立神經網路模型
人工神經網路有很多種,我只會最常用的BP神經網路。不同的網路有不同的結構和不同的學習演算法。
簡單點說,人工神經網路就是一個函數。只是這個函數有別於一般的函數。它比普通的函數多了一個學習的過程。
在學習的過程中,它根據正確結果不停地校正自己的網路結構,最後達到一個滿意的精度。這時,它才開始真正的工作階段。
學習人工神經網路最好先安裝MathWords公司出的MatLab軟體。利用該軟體,你可以在一周之內就學會建立你自己的人工神經網路解題模型。
如果你想自己編程實現人工神經網路,那就需要找一本有關的書籍,專門看神經網路學習演算法的那部分內容。因為「學習演算法」是人工神經網路的核心。最常用的BP人工神經網路,使用的就是BP學習演算法。