BP网络练习

原创 2012年03月21日 23:55:34

利用BP算法及Sigmoid函数,研究函数的逼近问题:

f(x)=1/x,  1<=x<=100;

BP神经网络:

clc;close all;clear;
N = 7;
P = rand(1,N);
P = P*100
T = P.^(-1)
w1 = rand(1,2);
w2 = rand(2,1);
E = 0;
Eta = 0.5;
epoch = 0;
while (epoch==0||0.5*(1/N)*E>0.00001)  
    E = 0;
    for n=1:N
            v1 = (w1')*P(n);                 
            y1 = (exp(-1*v1)+1).^(-1);
            v2 = (w2')*y1;
            O = (exp(-1*v2)+1).^(-1);
            e=T(n)-O;
            E=E+0.5*(e.^2);
            Delta2 = e*O*(1-O);
            w2 = w2+Eta*Delta2*y1;
            Delta1(1,1) = y1(1,1)*(1-y1(1,1))*([1 1]*(Delta2*w2));
            Delta1(2,1) = y1(2,1)*(1-y1(2,1))*([1 1]*(Delta2*w2));
            w1(1,1) = w1(1,1)+Eta*Delta1(1,1)*P(n);
            w1(1,2) = w1(1,2)+Eta*Delta1(2,1)*P(n);
            epoch = epoch+1;
    end
end
e
E
epoch
w1
w2

仿真:

function bpsim(w1,w2)
P = 0:1:100;
T = P.^(-1);
v1 = (w1')*P;                 
y1 = (exp(-1*v1)+1).^(-1);
v2 = (w2')*y1;
O = (exp(-1*v2)+1).^(-1);
hold;
plot(P,T,'r');
plot(P,O,'b');

仿真结果:

P =

   33.1665   15.2234   34.8008   12.1658   88.4153    9.4278   93.0041

T =

    0.0302    0.0657    0.0287    0.0822    0.0113    0.1061    0.0108

e =

   -0.0080

E =

  1.4000e-004

epoch =

      958895

w1 =

    0.0456   -0.3060

w2 =

   -4.0149
    3.8677


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

周志华《机器学习》课后习题解答系列(六):Ch5 - 神经网络

本章学习了神经网络。基础知识部分包括感知机、BP算法、RNN、SOM、深度学习等内容,实践部分涉及了多种神经网络模型的应用实验。

BP网络练习(二)

上次用MATLAB做的,这次尝试用C写了下,有待改进! #include #include double daoshu(double p)//求导数函数 { double d; d = 1/...

70行Java代码BP神经网络

神经网络的计算过程 神经网络结构如下图所示,最左边的是输入层,最右边的是输出层,中间是多个隐含层,隐含层和输出层的每个神经节点,都是由上一层节点乘以其权重累加得到,标上“+1”的圆圈为截距项b,对输...

BP神经网络的原理及简单应用

BP神经网络中应用到了梯度下降法,所以先介绍下梯度下降法。 梯度下降法    梯度下降法,也叫最速下降法,是求解无约束最优化问题的一种常用方法。标量场中,某一点上的梯度指向标量场增长最快的方向...

BP神经网络:误差反向传播公式的简单推导

最近看了一下BP神经网络(Backpropagation Neural Networks),发现很多资料对于BP神经网络的讲解注重原理,而对于反向传播公式的推导介绍的比较简略,故自己根据《PATTER...

BP神经网络

BPBP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。...

神经网络学习笔记(十):多层感知机(中)--BP算法

多层感知机监督训练在线学习的流行正是由于反向传播(BP算法)算法的提出而得到了加强,BP算法可以说是神经网络的核心算法。           如下图所示,神经元j被它左边的一层神经元产生的一组函数信...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)