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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    目前正在做神经网络训练方面的学习,拿一份数据进行了练习,但是对数据进行处理之后,发现在训练过程中,误差随着迭代次数的增加也在增加,之后维持不变,请教各位大神,这可能是出于什么缘故?" |; t/ n: S/ H4 A8 S; `
    具体代码如下:$ x( ^- L. b7 U9 |
        err = expectedOut'-out_out;# q5 O& h6 ~) a
        sse = sumsqr(err);
    , a) a. y5 I- [5 I  e8 u    errRec(i) = sse;                    %记录每次的错误
    5 Y, F' }; |7 Y    fprintf('第%d次迭代  误差: %f\n',i,sse);/ X! A7 g0 P( s- U
    " j& x5 @" Z+ x. F
    $ d2 @8 @; H: n/ M9 R0 a. n
    其中,expectedOut是实际值,out_out是经过训练之后得到的结果' ~" V) r( e9 h! C  s
    然后,结果是这样:
    ; N, P3 w. d. G! n第1次迭代  误差: 2.124233  n' s0 ~' s; d# H# U: H7 M
    第2次迭代  误差: 8.216954
    - z4 _8 u, B! G4 Q/ T$ [% l第3次迭代  误差: 6.639643
    0 R+ i" d4 r5 u" R# R$ M$ s: a& P" l# n" Q第4次迭代  误差: 27.2201033 T. d; T& c" c& ^
    第5次迭代  误差: 27.222127
    ! f, ]/ [4 z8 t3 I2 ]/ C/ o: ~第6次迭代  误差: 27.222127: B, b3 G1 \( U7 j/ b
    第7次迭代  误差: 27.2221277 k9 x3 X9 q  ?
    第8次迭代  误差: 27.222127
    8 B/ A3 _5 u/ @
    8 ?- Q$ @$ c& j$ o3 O  c/ d. |之后误差一直维持不变,想了解一下这是出于什么缘故?是正常情况吗?
    6 O  s- I$ m1 ^' x1 C$ R
    ) }+ {+ {( c( u- P/ I
  • 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/ y5 d) J+ Q" }  `/ o! k
    如果方便给更多一点代码会更容易理解
    * P" G5 m9 A3 i* `( }/ M$ b
    %开始迭代
    % u$ y, h% P0 q2 {' D, D3 afor i=1:maxiter
    9 S  O7 J5 Q  X  n    hid_input = net.w1 * SampInEx;                %3X100: q, D1 W, L2 R- z% N
        hid_out = logsig(hid_input);                  %3X100  
    : r2 z6 ~6 `  s) Y: ^; {    ou_input1 = [hid_out;ones(1,nTrainNum)];      %4X1002 I0 Z! C3 X- R/ f' f7 h; ?
        ou_input2 = net.w2 * ou_input1;               %1X100
    1 O) `: J# [7 `' t3 a- U; B# V    out_out =logsig(ou_input2);                   %1X100: k8 Z! g# g' l4 _+ N  L% v
        out_Rec(:,i) = out_out;                       %记录每次的输出+ o) V9 r5 r% j$ S5 d
        err = expectedOut'-out_out;- f5 E+ T0 V: o: o. S9 S
        sse = sumsqr(err);* }/ t/ Y# q0 A" d9 w
        errRec(i) = sse;                    %记录每次的错误# W' U- \+ Q' q$ c
        fprintf('第%d次迭代  误差: %f\n',i,sse);7 D! K3 W9 ]) ^9 N
        iteration = iteration+1;
    + Z' f7 h% g: I   1 _3 R* ^# F% z; p; u8 C
        %判断是否收敛
    : y+ r2 l  m- u1 R    if sse<=eb* A" M. {$ D& [
            break;
    + R3 H: q; L1 I  b6 ?: I, G    end
    7 g; i& G( }& P   
    , Z4 `4 S( N6 F1 O( q9 K6 t: i    %误差反向传播
    2 M3 l& _  x( I  j/ n    %隐含层与输出层之间的局部梯度度8 H, W8 z7 b, {% J6 ~% D6 \1 `
        DELTA = err.*dlogsig(ou_input2,out_out);
    7 F5 J# |$ Z  R, L/ ]/ M    %输入层与隐含层之间的局部梯度
    " {1 h3 Q* \  z' [+ j8 w, Y- b+ ~. I    delta = net.w2(:,1:end-1)'*DELTA.*dlogsig(hid_input,hid_out);
    ! b7 b; W5 ?& b    %权值修改量
    : E" l' N% @5 ]    dWEX=DELTA*ou_input1';, l! f! j8 q& z( R
        dwex=delta*SampInEx';0 p) h( E; L2 N" A8 j  s, [8 H0 I
        %修改权值,如果不是第一次修改,则使用动量因子1 o/ s0 X1 N2 K6 r+ N6 B
        if i==1: q8 Q5 ]  E9 T$ S
            net.w2 = net.w2+eta*dWEX;1 ~5 W6 |; t1 M4 `* [8 f  }
            net.w1 = net.w1+eta*dwex;2 @) p5 y# E; I' D: G; t* Y' I& a" A% {
        else$ h6 v4 P9 h0 x
            net.w2 = net.w2+(1-mc)*eta*dWEX+mc*dWEXOld;
    # m8 w, F. \* y8 J        net.w1 = net.w1+(1-mc)*eta*dwex+mc*dwexOld;! \% ?$ a9 N* J
        end( N( }+ X8 R8 `) N6 V# b
       
    7 F& L. O* I3 ]& V7 f# u    %记录上一次的权值修改量
    : @  c  n! n8 |/ V    dWEXOld = dWEX;* ^7 a7 p  y! ^- u9 o9 R" {
        dwexOld = dwex;
    4 S$ A* g; k/ E2 }! Jend* e2 d2 d3 j! k+ Q
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-20 11:31 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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