QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2171|回复: 1
打印 上一主题 下一主题

BP网络底层程序,求高手解答~~~~~

[复制链接]
字体大小: 正常 放大
yqxxqy        

21

主题

4

听众

321

积分

升级  7%

  • TA的每日心情
    难过
    2016-4-16 21:09
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人进步奖

    跳转到指定楼层
    1#
    发表于 2011-3-22 18:34 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    网络结构神经元数为输入:1,隐1层:1,隐二层:2,输出:1
    ( P- q0 O% Y+ L" R求高手解答!!!" q; w8 n" Q  l: r; v; W4 |
    我单步执行的结果是第一隐层输出饱和了。因为是为了后面的程序做准备,所以不想归一化。用工具箱的话是可以实现的。/ u! {- ~' P0 V) U6 ?
    但是从底层编的话该怎么改呢?望高手解答!心里那个急啊~~~~~~
    5 h$ \1 H. h1 l! {clc
    " L- l, n& Z$ b; nclear
    6 P$ _' s  [- H+ T- |/ l4 lk=[1,2,3,4,5];%输入
    2 p8 E! A1 b; |- cfor i=1:length(k)4 v: O5 ^3 U9 M0 k; M1 X
        T(i)=sum(k(1:i)); %输出
    3 ~6 x! C- r+ l" t! M$ |end
    ) F  `% Z5 q. z' Perror_goal=0.01;%目标误差4 m' H7 L$ ~7 z
    max_epoch=200;%最大训练次数
    + y8 U2 L( b1 h* ilr=0.5;%学习速率0 q. o; J1 ]0 l7 @: G% x
    %% 权值阀值初始化
    5 B: q. x. R$ Z4 a( [4 p5 BE=zeros(length(k),max_epoch);%误差矩阵,便于查看误差
    . n# r  U: L0 s1 _: WW11=rands(1);%权值初始化! B9 K2 d& e' {( p+ u( ]% o
    W2=rands(2,1);
    + o0 s. U% Y5 `[W3,theta]=rands(1,2)
    : x; e) E; _- n2 @4 u% s4 _W21=W2(1)/4;W22=W2(2)/4;W31=W3(1)/4;W32=W3(2)/4;theta=theta/4;
    1 o% g# B6 V- |4 a% W  @6 Q3 h    DW110=0;
    $ r" U) }! u) Y4 d    DW210=0;
    ) K3 r/ ~5 |) P4 l) c2 ~( S6 s8 m    DW220=0;4 [5 r9 ]7 w; B7 h
        DW310=0;
    9 G  e$ K; C' B2 t    DW320=0;
    9 s0 o8 w: R3 D+ ?$ h* d' t( B    Dtheta0=0;5 y6 V7 g- J  {
        mc=0.5;0 `3 ^+ p5 ?  {3 S4 N. q+ N! H
    %% 循环迭代
    7 M+ |3 ~. ^2 U& P for j=1:max_epoch* O9 h& K) f! U
        lr=lr/sqrt(1+j)   %防止震荡,学习效率递减
    + V% E& c0 V" I" [8 M$ m' o. ]for i=1:length(k)
    - W3 j2 ]; S, O4 E) R$ F  P1 u   
    4 F3 G0 y+ O9 ~; I" [   %% 网络输出计算
    . z4 l! _: b3 E7 i0 `2 \2 o  N, |    LB=1/(1+exp(-W11*k(i)))   %LB层输出 sigmod函数
    ( p5 W5 f* K; w0 G# d( A    LC1=LB*W21          %LC层输出 线性函数
      M* V2 X; G- B+ A4 A    LC2=LB*W22    %LC层输出  线性函数1 ^& b& B' A) q, d: C: n% t% a% p
        LD=W31*LC1+W32*LC2  %LD层输出  线性函数8 s7 c) x2 c' W0 A* C
        ym=LD-theta   %网络输出值
    ' H6 i( \2 f) i/ [* W/ L& U" [        
    % `7 T3 }9 F0 C  W% I' ^0 [    + z) c, `! d" j6 z+ U% D! Y: _
        %% 权值修正
    0 S/ O5 E! ^; [5 V! I# h    error=T(i)-ym  %计算误差
    8 a# E9 `0 L1 q' k2 @' ?8 q    E(i,j)=error;    %误差统计  
      F5 s/ \8 _8 W6 V2 k$ i6 q    delta3=error; v2 i) S& V5 L1 }/ ^
        delta21=error*W31
    / ]/ C; d4 i9 j2 b/ g; H! o    delta22=error*W328 R( Q. x, `. q6 j$ f, X/ t
        delta1=(delta21*W21+delta22*W22)*(LB*(1-LB))
    * q6 R: i+ q  q3 q" w( x- O+ n    %修改权值: _" I2 W5 q6 o) n
        DW11=lr*delta1*k(i)
    2 q- x' t: I! H+ N& U    DW21=lr*delta21*LB4 \& z0 A% B3 H9 P$ a! w+ v# B- E) v
        DW22=lr*delta22*LB9 E5 }6 m( c  T+ v9 k
        DW31=lr*delta3*LC1$ x' ~+ }4 _% g1 w
        DW32=lr*delta3*LC2) a0 t' ^3 c6 U; b1 G& W
        Dtheta=lr*delta3;% n5 k: @: b( M4 w- o
        W11=W11+DW11+mc*DW110  ?. z2 y4 ~' N
        W21=W21+DW21+mc*DW210
    / f, w) d( B/ z$ k    W22=W22+DW22+mc*DW220
    ) |: e: |6 S1 R$ X    W31=W31+DW31+mc*DW310
    & [6 Z. C6 `. [5 m& q) Q: g  H7 p    W32=W32+DW32+mc*DW320+ N6 f. s" Q0 P' \6 U8 c% P# V
        theta=theta+Dtheta+mc*Dtheta0
    * N3 R7 ]$ q( m9 S) ]- K+ i    DW110=DW11, G& ]% }# b/ `# U! b
        DW210=DW21& G9 p% Z% _$ a* @) S
        DW220=DW225 ~$ Q& p. s7 r0 b
        DW310=DW31; b% e2 \8 r& S
        DW320=DW32
    $ e( e& ^: Q+ @    Dtheta0=Dtheta
    & @0 N4 Y8 P2 zend. e( J. _7 r) w
    if sumsqr(E(:,j))<error_goal. T* w8 t  V5 v$ l. f
        disp('good')
      O) n0 \. C9 ~: P/ }    x=input('x=')
    5 X/ I1 b# u/ G1 [# C; |, w    LB=1/(1+exp(-W11*x));   %LB层输出
    4 Z9 X. W; M" U9 z9 [8 p    LC1=LB*W21;           %LC层输出. Y  t+ l( H# S. z3 ]
        LC2=LB*W22;    %LC层输出0 K- H8 O& I; n/ ?4 I4 v- l5 A- I9 W
       
    : H) i" j* o: u2 J' K. I/ s# J" e    LD=W31*LC1+W32*LC2  %LD层输出  p0 i' h1 X; r6 H# ~
        ym=LD-theta %网络输出值
    2 C8 c3 A& @! N& A7 A3 j1 vbreak;4 {* `" z$ f/ ]$ K$ F
    end
    . ]2 I- L% S7 V/ q' Yend  
    ; r6 o" N7 {) [. jYY=0;. i9 N  ]( @; a7 o2 K
        for i=1:length(k)/ k* v, N- z6 U- ?, y2 B
        LB=1/(1+exp(-W11*k(i)));   %LB层输出1 I# \' u% s. _# x& Z0 S
        LC1=LB*W21;           %LC层输出
    ! Y+ o& e; i6 u# m$ Z" D6 I    LC2=LB*W22;    %LC层输出; Y' x  T+ g& k, y
        LD=W31*LC1+W32*LC2;  %LD层输出
    ) G6 Z4 \# s6 Q0 c    ym=LD-theta;   %网络输出值
    " V5 Y" F7 ]1 w$ y% a4 Q    YY=[YY,ym];! N2 l5 M$ X; A. J0 j8 @3 C$ v/ _
       
    & J, l% J6 P$ c0 j  J# v. ~3 @    end
    : X. K% j8 g* q9 m5 \9 A     YY=YY(2:end);& h' q: ?) Z# e, Y* j$ t, B
        YY
    7 z$ Y) N2 |" E- W/ \3 x4 L$ t; y3 U# |" g" Z
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    杨帆 实名认证       

    4

    主题

    4

    听众

    626

    积分

    升级  6.5%

  • TA的每日心情
    奋斗
    2012-12-4 13:38
  • 签到天数: 314 天

    [LV.8]以坛为家I

    新人进步奖 最具活力勋章 发帖功臣

    群组数学趣味、游戏、IQ等

    群组数学建模

    群组我们一定会赢

    既然你诚信诚意的推荐了,那我就勉为其难的听听吧!
    % ^, e" e: B9 c2 j8 m7 f数学中国社区分享快乐!
    # w5 x1 k$ R7 e. d" p* t
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-7-12 11:25 , Processed in 0.326178 second(s), 58 queries .

    回顶部