找回密码
 注册
关于网站域名变更的通知
查看: 363|回复: 3
打印 上一主题 下一主题

迭代之后,误差反而越来越大的问题

[复制链接]
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-12-1 11:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    目前正在做神经网络训练方面的学习,拿一份数据进行了练习,但是对数据进行处理之后,发现在训练过程中,误差随着迭代次数的增加也在增加,之后维持不变,请教各位大神,这可能是出于什么缘故?' Q, P( B5 w# ~" M0 ?' C8 b$ c
    具体代码如下:4 X: Z& \; t& b" w0 r
        err = expectedOut'-out_out;
    5 b9 o$ i- a% ^0 I- C3 H    sse = sumsqr(err);
    6 \; v4 o& P' T    errRec(i) = sse;                    %记录每次的错误- w1 t  b! L  W3 x2 H6 Q0 f
        fprintf('第%d次迭代  误差: %f\n',i,sse);# }9 ?2 I% r! n
    2 n) B5 c2 H) I& J6 U

    - Z, {5 d  V; Z- L7 e其中,expectedOut是实际值,out_out是经过训练之后得到的结果
    * L$ S' E# x6 k& `4 R2 J' s然后,结果是这样:9 c0 B/ p: Q, v% b- M7 `/ p
    第1次迭代  误差: 2.124233
    7 V5 n. x4 c8 O2 z& v6 A: c2 S第2次迭代  误差: 8.216954% }3 o: C4 Z( ]! R9 T
    第3次迭代  误差: 6.639643
    - G( U; ?& I, [1 z2 g第4次迭代  误差: 27.220103
    0 r0 A& n! f4 w2 H! ^5 ~7 M第5次迭代  误差: 27.222127
    " E3 n! X- N0 d% N  U第6次迭代  误差: 27.222127
    0 r8 O. C! b1 n第7次迭代  误差: 27.222127# w) B# [& p7 i+ u3 x
    第8次迭代  误差: 27.222127
    # E0 b; O, T2 n$ y3 O- f
    / |# m, E: `! R8 J3 z9 A" q" t$ [之后误差一直维持不变,想了解一下这是出于什么缘故?是正常情况吗?
    ( B3 L: M1 \0 p$ ]0 W$ a
    % ]% N+ F8 U6 C( n+ i  v) B. b
  • TA的每日心情
    开心
    2022-1-24 15:10
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-12-1 13:12 | 只看该作者
    (1)判断条件是否有问题,不该迭代却迭代了;(2)迭代方向是否搞反了

    该用户从未签到

    3#
    发表于 2022-12-1 13:21 | 只看该作者
    如果方便给更多一点代码会更容易理解

    点评

    %开始迭代 for i=1:maxiter hid_input = net.w1 * SampInEx; %3X100 hid_out = logsig(hid_input); %3X100 ou_input1 = [hid_out;ones(1,nTrainNum)]; %4X1  详情 回复 发表于 2022-12-1 13:27
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
     楼主| 发表于 2022-12-1 13:27 | 只看该作者
    TEL15286598 发表于 2022-12-1 13:21' D3 G* U3 ^' b2 b% F7 C( c
    如果方便给更多一点代码会更容易理解

    5 P5 |/ X/ m: n+ V% ?, s7 ~%开始迭代( g- @) {$ K. `* s$ T$ `: E8 J
    for i=1:maxiter
    9 a. k# h8 j- i9 ?. `, _    hid_input = net.w1 * SampInEx;                %3X1006 D6 [) }# W$ _- ?+ z
        hid_out = logsig(hid_input);                  %3X100  
    7 u" A7 j7 w) J  h( V    ou_input1 = [hid_out;ones(1,nTrainNum)];      %4X100# c6 Q8 }0 `6 d4 s! J; v' o
        ou_input2 = net.w2 * ou_input1;               %1X100; H. J4 X/ C# ^
        out_out =logsig(ou_input2);                   %1X100$ h4 N' I0 V7 v0 V2 i
        out_Rec(:,i) = out_out;                       %记录每次的输出* L) e- x7 n- H, S
        err = expectedOut'-out_out;
    4 S8 m7 y0 ^) C' |    sse = sumsqr(err);
    ; ^* Q7 h& J2 C) x3 R    errRec(i) = sse;                    %记录每次的错误
    1 _+ _. V. u) }7 g$ x3 o    fprintf('第%d次迭代  误差: %f\n',i,sse);
    - ?) ]$ T" c7 ], Y6 V+ `    iteration = iteration+1;3 r# F- k+ S- u7 J6 W# s9 Y
       
    ; n. Y2 o( f" l* E" j# l7 P    %判断是否收敛
    ; e4 Z& i% u0 S    if sse<=eb4 v1 l0 D6 D7 W8 N
            break;/ v" L. I1 a. C- g
        end2 W/ L4 t: ~8 j
       5 v  o. t6 F/ k0 u3 K+ x' j6 f
        %误差反向传播8 q3 u& B2 O2 V* q* }% Y  I5 F2 W
        %隐含层与输出层之间的局部梯度度
    ) ]2 r9 I9 ?  [    DELTA = err.*dlogsig(ou_input2,out_out);
    ( E/ B+ ~  ^4 P- i, q    %输入层与隐含层之间的局部梯度5 V/ F7 q& L4 l! u6 l. i' e8 ^
        delta = net.w2(:,1:end-1)'*DELTA.*dlogsig(hid_input,hid_out);7 b5 j2 R! b- i  q+ y
        %权值修改量. B. G. V6 g8 @& K- t5 H
        dWEX=DELTA*ou_input1';: X. y( i5 s& K+ M+ S: _$ F
        dwex=delta*SampInEx';5 `* O7 p0 f$ K% H- s( E7 w
        %修改权值,如果不是第一次修改,则使用动量因子
      r$ O1 u: n2 [9 @" J- ?    if i==1; F9 L8 e8 i( ]
            net.w2 = net.w2+eta*dWEX;
    9 d( T7 T3 [8 u7 a$ E1 p1 e4 x        net.w1 = net.w1+eta*dwex;
    ' [  S4 V) M4 B# x6 [+ _# n- o    else
    0 x0 k' x, V% U: F& v; B3 K        net.w2 = net.w2+(1-mc)*eta*dWEX+mc*dWEXOld;9 {8 Y9 `3 C( m. v" O
            net.w1 = net.w1+(1-mc)*eta*dwex+mc*dwexOld;* m0 a2 A* B+ v: W3 V: i
        end  J$ T+ |: `9 m5 }, q! U
       
    , L( }, s( T" ]7 j4 q& E# Y/ Y    %记录上一次的权值修改量
    ! k- w. ?" L; z2 ~7 ]3 s    dWEXOld = dWEX;" V6 i$ v# t  L4 ]' L% W3 `9 X0 S
        dwexOld = dwex;
    4 v- ?( v) c# o. I4 A& E7 Tend; y( S# _+ q2 h
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-19 20:33 , Processed in 0.093750 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表