zoukankan      html  css  js  c++  java
  • 神经网络为什么需要多次epoch

    Δw(t)=−ε
    ∂w(t)
    ∂E

    +αΔw(t−1)(9)

    我们知道反向传播每次迭代的效果是这样的:
    w=w+Δw(t) w=w+Delta w(t)
    w=w+Δw(t)

    我们知道,每条训练数据都会导致训练的过程中,
    计算一次∂E∂w(t) frac{∂E}{∂w(t)}
    ∂w(t)
    ∂E

    ,假如我的wi w_iw
    i

    初始化为0,最终的值是0.7
    但是我的学习率ε=0.0001 varepsilon=0.0001ε=0.0001,一万条数据,
    epoch=1够不够,可能够,也可能不够.
    因为你想啊,就假如一个三层的神经网络
    第一层和第二层之间有个wi w_iw
    i


    第2层和第3层之间有个wj w_jw
    j


    假设w在0~1之间,那么就有1/ε varepsilonε=10000种取值,
    并且层与层之间的w还得排列组合,这些排列组合虽然是根据∂E∂w(t) frac{∂E}{∂w(t)}
    ∂w(t)
    ∂E

    不断调整w ww的,你能确保这些层与层之间的不同w的值的组合
    刚好令loss(也就是E)最小吗?
    显然不能,所以根据梯度下降的过程,你需要很多次epoch,才有可能让神经网络来拟合处满足当前训练集的模型.
    一言概之,为啥需要多次epoch,
    就是
    w=w+Δw(t) w=w+Delta w(t)
    w=w+Δw(t)
    还没来得及迭代到最终的值.

    当然最终的值很可能会让神经网络过拟合,这是后话.
    ---------------------
    作者:Chi Yus Blog
    来源:CSDN
    原文:https://blog.csdn.net/appleyuchi/article/details/86555315
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    秋季总结
    PTA第一个编程题总结
    秋季学习总结
    人生路上对我影响最大的三位老师
    自我介绍
    真实的我——自我介绍
    学习总结
    寒假编程总结三
    寒假编程总结二
    寒假编程总结一
  • 原文地址:https://www.cnblogs.com/jfdwd/p/11242588.html
Copyright © 2011-2022 走看看