乙個簡單的神經網路例子

2021-07-05 07:24:21 字數 2037 閱讀 8068

來自神經網路之家

日期: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 ...