神经网络是通过梯度方反向传播来更新参数,所需的数据集一般分为训练数据和测试数据,其中训练的数据会根据有监督和无监督学习进行分类。

有监督学习

对于有监督学习,一般是给网络一个输入,然后再定一个网络应该的输出的数据,称为标签(label)。
然后输入数据X,会得到一组输出Y,将这个Y与X对应的Y_label进行对比,比较二者之间的差值(一般用mse或者交叉熵来刻画),然后通过这个差值去调整网络中的W和b参数(梯度反向传播调整参数),使得下一次输出的Y更加接近Y_label。

  • 一般来说,调整神经网络参数W和b是需要大量的数据的,所以我们需要训练数据,对于有监督学习,训练数据会分为数据(X)和标签(Y_label)两个部分,在训练完之后,我们需要查看网络训练的好不好,也就是查看网络在训练集上的准确率。
  • 另外,在训练集上的准确率高不能反映网络训练的好坏,需要在测试集上进行验证,即需要拿网络从来没有用过的数据去测试它,然后网络在测试集上的准确率。只有测试准确率高,才能说明网络训练的好。
  • 另外,我们在进行网络设计的时候,网络的层数,卷积核的大小等等参数刚开始也无从下手,不知道怎么去确定,这些参数叫做超参数。一般我们会用数据进行训练来不断尝试这些超参数的好坏,这里用到的数据叫验证集(注意,在验证超参数的好坏的时候,不能用训练集的数据,因为训练集已经参与了网络参数的调整过程),所以,一般流程如下:在用训练集训练完之后,用验证集去判断哪个超参数最好,选择最好的那组超参数,然后用测试集去测试网络训练的准确度。
  • 验证集一般从从训练集里面划分,例如把训练集划分为10,其中随机9分作为训练集,1份作为验证集,接着任选其余9份作为训练集,1份作为验证集,如此循环,反复去验证某一组超参数最优。

过拟合及抑制方法

过拟合

  当网络学习能力比较强,训练集的数据少,训练的次数多的时候,可能会导致网络学习的过于细枝末节,造成了网络在训练集上准确率很高,在测试集上准确率急剧下降。 这个现象就是过拟合。
  例如,现在我们只想对是非人类进行判断,一个简单的是非问题。当训练集只有5张图片且5个人全是带着帽子或者眼镜。网络通过反复学习后,可能出现的情况就是,它认为必须带帽子或者眼镜的人才被认为是人,换句话说,网络的泛化能力就不行了,它没有学到人类的通用特征,而是学到了一些更细枝末节的东西,然后它以这些细节去评判是非人类,这样在测试时准确率当然会急剧下降。


如图所示,当训练集和测试集精度比较接近时,认为网络训练没有问题,它没有发生过拟合。
当测试精度与训练精度差别很大时,认为网络发生过拟合。

抑制方法

  1. Dropout
  2. Batch Normalization
    Dropout:神经元之间的严重依赖关系会导致网络的泛化能力不强,这会造成过拟合。dropout在训练的正向传播时会以一定的概率关闭神经元(神经元一旦被关闭,则其不可能被激活,输出一直为0),从而来增强神经元的独立工作能力,来增强神经网络的泛化能力。然后这些神经元在测试的时候又全部打开。
    Batch Normalization:对输出的特征图,对数据进行均值变为0,方差变为1的归一化。可以极大的提升训练速度,加快收敛过程。

神经网络训练数据的一点理解相关推荐

  1. python神经网络训练数据_用Python从头开始实现一个神经网络

    注:本篇文章非原创,翻译自Implementing a Neural Network from Scratch in Python – An Introduction​www.wildml.com ...

  2. matlab神经网络求解最优化,matlab神经网络训练数据

    1.神经网络的准确率是怎么计算的? 其实神经网络的准确率的标准是自己定义的. 我把你的例子赋予某种意义讲解: 1,期望输出[1 0 0 1],每个元素代表一个属性是否存在.像着4个元素分别表示:是否肺 ...

  3. bp神经网络预测未来五年数据_基于小波神经网络的数据中心KPI预测

    随着软件和微服务的发展,智能运维越来越受到人们的重视.在大量的运维数据里,最不可忽视的就是各种关键性能指标数据(Key Performance Indicators,KPI),它们在数学上都可以被表达 ...

  4. 神经网络如何训练数据,神经网络常用训练方法

    gpu构架为什么更适合发展神经网络 因为神经网络这种大范围多任务的简单运算来说,正好符合GPU这种多核架构,比如你CPU20核心,同时处理20个任务.但是神经网络可能有20000个任务(比喻). 但最 ...

  5. 神经网络怎么训练数据,神经网络训练结果分析

    深度神经网络是如何训练的? Coursera的Ng机器学习,UFLDL都看过.没记错的话Ng的机器学习里是直接给出公式了,虽然你可能知道如何求解,但是即使不知道完成作业也不是问题,只要照着公式写就行. ...

  6. 神经网络训练集和验证集的原理理解

    今天在学习<python深度学习>的时候,看到了这么一段话: 评估模型的重点是将数据划分为三个集合:训练集.验证集和测试集.在训练数据上训练模型,在验证数据上评估模型.一旦找到了最佳参数, ...

  7. 神经网络训练中batch的作用(从更高角度理解)

    1.什么是batch batch,翻译成汉语为批(一批一批的批).在神经网络模型训练时,比如有1000个样本,把这些样本分为10批,就是10个batch.每个批(batch)的大小为100,就是bat ...

  8. 学界 | 数据并行化对神经网络训练有何影响?谷歌大脑进行了实证研究

    选自arXiv 作者:Christopher J. Shallue 等 机器之心编译 参与:路.张倩 近期的硬件发展实现了前所未有的数据并行化,从而加速神经网络训练.利用下一代加速器的最简单方法是增加 ...

  9. bp神经网络训练_数据分析模型6——神经网络基础(人工智能的底层模型)

    未经许可请勿转载 更多数据分析内容参看这里 今天我们来学习人工智能的底层模型--神经网络(NEURAL NETWORKS),现在比较热门的一个模型是深度学习,深度学习的基础也是神经网络,要学好深度学习 ...

最新文章

  1. 下列关于python字典变量的定义中错误的是_python练习题-day14
  2. .NET 页面间传值的几种方法
  3. Linux基础命令---e2fsck
  4. [No000035]操作系统Operating System之OS Interface操作系统接口
  5. 组合模式_[设计模式]10.组合模式
  6. 关于网站图片格式 png,jpg,
  7. IOS开发基础之单例模式
  8. 使用vux组件库常见报错($t)处理
  9. 玩转 IntelliJ IDEA 2020
  10. Struts与Servlet的冲突
  11. 数据库的基本概念(三大范式,数据)
  12. Parallels中使用加密狗读取文件出现错误
  13. 【MySQL】5.7新特性之四
  14. 威胁快报|Nexus Repository Manager 3新漏洞已被用于挖矿木马传播,建议用户尽快修复...
  15. 奈奎斯特定理与香农定理
  16. 计算机网络之DNS面试题
  17. linux下划线后面加变量名,Shell中下划线_与变量的关系
  18. mysql 开源聊天系统_轻量级的开源企业聊天软件 喧喧聊天(界面很不错)
  19. 全面的软件测试(转)
  20. git 码云 简要使用

热门文章

  1. 前端 Bootstrap 代码
  2. Sharding-JDBC执行原理
  3. 如何使用murano的PL语言
  4. ARCGIS 递增赋值
  5. netty框架android,隻需五步,即可基於Netty框架實現Android內網推送功能。
  6. tf.keras 11: 时间序列预测之LSTM天气预测
  7. ubuntu 配置网络重启 使用/etc/init.d/networking restart 命令无效
  8. Alphapose算法
  9. meteor安装过慢 curl install.meteor.com | sh
  10. Vue(14)slot插槽的使用