Δ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
版权声明:本文为博主原创文章,转载请附上博文链接!

神经网络为什么需要多次epoch的更多相关文章

  1. 手动设计神经网络进行MNIST分类

    前言: 用手工设计的两层神经网络,经过200个epoch,最后得到0.9599,约0.96的精度 正文 import tensorflow as tf from tensorflow.examples ...

  2. 3.对神经网络训练中Epoch的理解

    代表的是迭代的次数,如果过少会欠拟合,反之过多会过拟合 EPOCHS 当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一个 epoch.   然而,当一个 epoch 对于计算机而言太 ...

  3. 神经网络中Epoch、Iteration、Batchsize相关理解

    batch 深度学习的优化算法,说白了就是梯度下降.每次的参数更新有两种方式. 第一种,遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度.这种方法每更新一次参数都要把数据集里的所有样 ...

  4. 一文读懂神经网络训练中的Batch Size,Epoch,Iteration

    一文读懂神经网络训练中的Batch Size,Epoch,Iteration 作为在各种神经网络训练时都无法避免的几个名词,本文将全面解析他们的含义和关系. 1. Batch Size 释义:批大小, ...

  5. 如何用卷积神经网络CNN识别手写数字集?

    前几天用CNN识别手写数字集,后来看到kaggle上有一个比赛是识别手写数字集的,已经进行了一年多了,目前有1179个有效提交,最高的是100%,我做了一下,用keras做的,一开始用最简单的MLP, ...

  6. 使用神经网络来识别手写数字【译】(三)- 用Python代码实现

    实现我们分类数字的网络 好,让我们使用随机梯度下降和 MNIST训练数据来写一个程序来学习怎样识别手写数字. 我们用Python (2.7) 来实现.只有 74 行代码!我们需要的第一个东西是 MNI ...

  7. RNN神经网络和英中机器翻译的实现

    本文系qitta的文章翻译而成,由renzhe0009实现.转载请注明以上信息,谢谢合作. 本文主要讲解以recurrent neural network为主,以及使用Chainer和自然语言处理其中 ...

  8. [转]Theano下用CNN(卷积神经网络)做车牌中文字符OCR

    Theano下用CNN(卷积神经网络)做车牌中文字符OCR 原文地址:http://m.blog.csdn.net/article/details?id=50989742 之前时间一直在看 Micha ...

  9. c++实现mlp神经网络

    之前一直用theano训练样本,最近需要转成c或c++实现.在网上参考了一下其它代码,还是喜欢c++.但是看了几份cpp代码之后,发现都多少有些bug,很不爽.由于本人编码能力较弱,还花了不少时间改正 ...

随机推荐

  1. Comparator进行List集合排序

    对数据库中查询到的结果进行排序,一般开发中,实体类是没有实现Comparable接口的,所以不能实现compareTo()方法进行排序, 只能用Comparator去进行排序,只需要在带排序的集合中加 ...

  2. day38 06-MyEclipse配置Schema约束

  3. 洛谷P1968 美元汇率[2017年4月计划 动态规划02]

    P1968 美元汇率 题目背景 此处省略maxint+1个数 题目描述 在以后的若干天里戴维将学习美元与德国马克的汇率.编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能 ...

  4. Mac 下终端命令行之基本命令总结(持续更新)

    最近用Mac做一些开发,用到了一些命令行的内容,先将常用的命令行进行总结.由于会不断的用到新的,所以将会持续的总结进来.每一个命令行的使用可能都会比较复杂,我只会总结最常用的使用方法. echo命令 ...

  5. arcgis点密度专题

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. Appium 常用的API函数

    常用的API函数[转] http://blog.sina.com.cn/s/blog_68f262210102vzf9.html 获取信息类API (1)获取默认系统语言对应的Strings.xml文 ...

  7. React map生成元素添加点击事件绑定this

    问题 使用.map(function(Item)生成元素添加onClick事件:onClick={this.provinceChange.bind(this, "99")}时,前台 ...

  8. passive的作用和原理

    passived到底有什么用? passived主要用于优化浏览器页面滚动的性能,让页面滚动更顺滑~~ passived产生的历史时间线 addEventListener():大家都是认识的,为dom ...

  9. C++ 浮点数 为 0 的判断

  10. (转)jQuery中append(),prepend()与after(),before()的区别

    在jQuery中,添加元素有append(),prepend和 after(),before()两种共四个. 根据字面意思我们可以看出他们分别是追加,添加和之前,之后,意思相近.同时他们又都有添加元素 ...