來自神經網路之家
日期:2015-07-1611:18:37.0
用於訓練的輸入資料:
對應的輸出資料:
我們這裡設定:
1:節點個數設定: 輸入層、隱層、輸出層的節點個數分別為[2 ,3,1]。
2:傳遞函式設定:隱層( tansig函式)。輸出層(purelin函式)。
3:訓練方式:trainlm。
即得到下圖的模型:
在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,,'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
執行後得到訓練的圖:
紅色為網路**的y,藍色為原來的y。
若果想知道x1=0.5,x2=0.5時的值,可輸入
這樣,就能夠**y的值。
實際上訓練好的網路其實就是乙個函式,將x1,x2對映成simy,
如何提取出這個函式的具體表示式?
需要了解請檢視:提取神經網路數學表示式
乙個簡單的神經網路例子
神經系統的搭建 import tensorflow as tf import numpy as np import matplotlib,pylab as plt def add layer input,in size,out size,activation function none weight...
TensorFlow 乙個簡單的神經網路
利用tensorflow實現第乙個簡單的神經網路 encoding utf 8 import tensorflow as tf numpy生成模擬資料集 from numpy.random import randomstate 定義訓練資料batch大小 batch size 8 定義神經網路的引數...
搭建乙個簡單的神經網路
def add layer 最基礎的四個引數 輸入值,輸入的大小,輸出的大小和激勵函式,激勵函式可以自己新增,也可以不使用激勵函式。def add layer inputs,in size,out size,activation function none 接下來我們定義weight和biases ...