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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    目前正在做神经网络训练方面的学习,拿一份数据进行了练习,但是对数据进行处理之后,发现在训练过程中,误差随着迭代次数的增加也在增加,之后维持不变,请教各位大神,这可能是出于什么缘故?' R$ I' V% L" v$ O+ c( ^
    具体代码如下:
    ' }4 E: [" T' c9 a; r1 d$ ^    err = expectedOut'-out_out;/ ^; ~* j, Q6 T3 c4 I9 ^8 B- V
        sse = sumsqr(err);4 q% M% j- R1 }: y' g* t
        errRec(i) = sse;                    %记录每次的错误% b/ l. B/ w! w! D0 u
        fprintf('第%d次迭代  误差: %f\n',i,sse);
    ( ~3 k7 u' R8 d% }( P  X! E1 c2 c% G& `2 {
    ' M1 W( Z- }, K1 `$ P6 X$ c
    其中,expectedOut是实际值,out_out是经过训练之后得到的结果
    5 c1 C' g' [- j' K. n然后,结果是这样:) H2 U7 y" ^8 V) ]8 H. p
    第1次迭代  误差: 2.124233: [/ j! ], g9 w6 B
    第2次迭代  误差: 8.216954
    $ x  ]8 |5 I8 O+ |* l* A: }第3次迭代  误差: 6.639643
    2 e8 o" f/ t  P# }第4次迭代  误差: 27.220103
    ; L' Q0 ]# S7 A( b8 \第5次迭代  误差: 27.222127
      ^1 }4 f. Q, @9 C$ z# M第6次迭代  误差: 27.222127! O9 E+ J6 u& ?6 r5 K2 S/ E
    第7次迭代  误差: 27.222127; ]3 g" {7 E' s+ E" O# O* m5 k* h
    第8次迭代  误差: 27.2221278 V6 R2 g  E( T' l5 w" W

    ) W) _6 i6 V: d6 O3 u) u之后误差一直维持不变,想了解一下这是出于什么缘故?是正常情况吗?
    - l7 s5 ^1 S+ O
    2 T1 ?. O! J, X
  • 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
    0 [7 A$ [7 C& r如果方便给更多一点代码会更容易理解
    % I' ]. v- @0 x, z+ c
    %开始迭代
    4 P3 Y7 L. ~9 B' M: \% a4 rfor i=1:maxiter
    - x# s' u4 |2 G    hid_input = net.w1 * SampInEx;                %3X100# j9 u0 V$ T3 L5 d( Y
        hid_out = logsig(hid_input);                  %3X100  8 P! r% L& t  N; z9 ?1 I. ~
        ou_input1 = [hid_out;ones(1,nTrainNum)];      %4X100
    0 A( b: W  K3 Z- u: ~) u0 I    ou_input2 = net.w2 * ou_input1;               %1X100
      k0 H2 ^& T) m: M' b    out_out =logsig(ou_input2);                   %1X100
    ' K' x" B- A, ^    out_Rec(:,i) = out_out;                       %记录每次的输出- W+ P4 `9 J) ]$ P  c
        err = expectedOut'-out_out;
    - l, _) b+ k1 `( K) k    sse = sumsqr(err);
    5 m3 x7 |& J5 E, P; [: F    errRec(i) = sse;                    %记录每次的错误
    7 G' J& z2 Q+ _! {; W7 x    fprintf('第%d次迭代  误差: %f\n',i,sse);
    7 r+ T5 l8 p; e. W+ t    iteration = iteration+1;
    7 w7 ?& u, e- {( u6 e5 L+ g   
      Q6 D5 U* l2 C8 v2 a% z    %判断是否收敛+ ?; N  F4 ]/ P3 K
        if sse<=eb
    ! O6 A; R! P% K& @# @* U        break;
    ! d1 ]) y- w% v/ p# U2 i    end7 ~) J, X/ O; a; u* [
       3 E9 G1 p# [$ J
        %误差反向传播' u- T/ Z5 p$ Z3 j0 z& z
        %隐含层与输出层之间的局部梯度度
    8 O+ k/ O' l& s1 t; c$ x    DELTA = err.*dlogsig(ou_input2,out_out);% a! i' N. U- ]* e2 @7 e, P
        %输入层与隐含层之间的局部梯度
    + E- p  G& J. X; k- J- Q    delta = net.w2(:,1:end-1)'*DELTA.*dlogsig(hid_input,hid_out);0 C! ]6 r: m) J
        %权值修改量+ ^' i" N2 E2 x; M+ z) ]
        dWEX=DELTA*ou_input1';+ N5 J/ t1 d0 q: r. H! _1 L# Y
        dwex=delta*SampInEx';- ?: h7 {; p9 f* `5 y8 G" v
        %修改权值,如果不是第一次修改,则使用动量因子9 A' @& g2 s+ U, `
        if i==1
    * q" b/ i6 p5 ?5 Y) _        net.w2 = net.w2+eta*dWEX;
    ; |1 C  e9 K* ~0 M$ h7 M0 G; G        net.w1 = net.w1+eta*dwex;: y- R* I) q  @; q" r! A
        else. P/ Z1 ?: O4 g2 t
            net.w2 = net.w2+(1-mc)*eta*dWEX+mc*dWEXOld;
    % w6 O! y8 ^' E7 w+ R        net.w1 = net.w1+(1-mc)*eta*dwex+mc*dwexOld;: C/ }& G2 o! [1 c* N
        end3 R  ~% @% ~% w' b
       
      T* ]! M0 O* F$ ^    %记录上一次的权值修改量
    0 |6 F$ H) D4 w  Y  r4 H- U    dWEXOld = dWEX;
    / n) v6 \! s7 s8 N; O9 Q    dwexOld = dwex;+ T& |. X# r! o( v
    end
    ) E1 d8 J8 \/ i8 \0 x, }2 P7 S( p
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-24 09:10 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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