网络训练

1.1 网络运算的基本过程

神经网络的参数更新方法是基于一阶导数的梯度下降方法,网络的运算包含两个交替进行的步骤:数据的前向运算和误差的反向传播。在前向运算中,输入数据经过网络逐层变换,形成神经网络的预测值。网络的预测值和数据的真值(称为标签)进行比对,通过损失函数来刻画预测值与真值的误差。在后向运算中,损失函数对网络参数求梯度并逐层反传,各层连接权依靠反传梯度进行更新。

1.2 mini-batch梯度下降

1.3 带有动量的梯度下降

当参数点落入“山谷” ,即在某一方向比另外方向更加陡峭时,梯度下降法往往不能有效进行。参数会沿着地势更加陡峭的方向反复震荡,而在地势相对平缓的区域下降缓慢。这种情况常常出现在接近局部最优点的情况下。图2-16通过等高线展示了参数点在遇到山谷地形时的优化特点,可以看到,参数点震荡的方向几乎正交于局部最优的方向,这样的迭代无疑是非常低效的。 为了改善这种

1.4 自适应学习率的梯度下降

梯度下降的另一个主要问题是学习率的调整问题。学习率控制了梯度下降时每一步更新的步长,过大的学习率会导致收敛效果较差,参数点在最优点附近来回震荡。而过小的学习率会带来训练缓慢,容易陷入局部最优点的问题。通常,我们希望在训练一开始能够使用较大的学习率,促进网络快速收敛。而在训练的中后期使用较小的学习率,保证收敛效果。同时,我们希望对参数集θ中的不同参数,能够提供自适应的学习率。常见的自适应学习率梯度下降方法包括Adagrad [27] ,Adadelta [68] ,RMSprop À ,Adam [28] 等。其中,Adagrad对不同的参数设置不同的学习率,参数更新约频繁,其学习率越小,因此特别适合于稀疏数据。Adadelta、RMSprop和Adam均是对Adagrad的扩展,主要解决了Adagrad中学习率随训练的进行逐步减少,不可逆转的缺点.

1.5 目标函数

目标函数通常还会增加额外的正则项以对网络参数进行正则,这点在后面将会介绍。

1.6 网络参数初始化

适当的初始化策略能够帮助网络训练的更快、更深。尽管BatchNormalization的出现大大降低了网络对初始参数的敏感度,但适当的初始化策略对网络训练仍然极有帮助。权重的初始化的基本准则是,不能把所有的权重设为同样的值,因为如果权重值全部相同,则一层中所有神经元都会产生相同的输出,并获得相同的梯度,不管经过多少次训练,最后所得到的权重值仍然会相同。典型的初始化方法包括从均匀分布中生成初始参数,从正态分布中生成参数等。

简单的随机初始化往往效果较差,事实上,可以通过理论分析为不同的激活函数推导出适当的初始化方法。在假设网络内部只有线性变换的条件下(尽管该条件并不满足),通过假设网络前向产生的各层输出与后向运算产生的各层反传梯度方差均保持不变,推导出了权重应服从的均匀分布的上下边界,这种推导基于的是0均值激活函数Tanh。感兴趣的可以了解适合ReLU和PReLU激活函数的初始化方案。

1.7 迁移学习

迁移学习的基本原理根植于深度学习分层特征抽取的特点上。以图像处理为例,卷积神经网络的底层通常被认为用以提取如边缘、角点等底层特征,而高层用于提取更抽象更具有语义信息的特征。需要提取的高层特征根据具体任务的不同而有所不同,但底层和中层特征却具有较好的通用性。迁移学习的基本思想是进行网络权重的复用,通过将一个已经成熟训练的网络的一部分进行截断和微调,达到复用成熟网络以适应新问题的目的。通常迁移学习包含三个主要步骤,第一步是截取适当网络,截取的层数根据当前任务与模型原始任务的差异而确定,二者任务越相似,则可以保留越多的网络层。第二步是在截断网络后补充若干层适应于当前任务的网络,形成整体模型。第三步是进行微调,首先冻结截取到的网络的权重,仅仅更新新加入的网络层的权重,当训练到一定程度后,解封所有权重进行模型整体微调。迁移学习的一般过程示意图展示如图2-17,图中绿色矩形所代表的网络层是得到训练的层,而橙色矩形代表的网络层是权重被冻结的层。有时我们也可以略去第二步,直接对全模型进行微调。深度学习是一门工程性很强的学科,网络的训练和调参,尤其是在大型数据集上的训练,十分考验研究人员的工程能力,因此性能

出色的模型往往是学界和工业界的宝贵资源。迁移学习的出现大大加强了对预训练权重的利用能力。

1.8 处理样本不均衡问题

样本分布不均衡问题指的是在分类等问题中,各个类别的样本数目相差较大。不均衡的训练集对模型的学习有负面影响,模型将偏向于样本数量占优的类别。在极端情况下,少数样本的类别可能会被当作数据的离群点而被忽略。处理样本不均衡的主要手段包括对多数样本进行欠采样,对少数样本进行重采样,配置类别权重,或生成少数样本等多种手段。

网络训练 (总结5)相关推荐

  1. Wide Deep的OneFlow网络训练

    Wide & Deep的OneFlow网络训练 HugeCTR是英伟达提供的一种高效的GPU框架,专为点击率(CTR)估计训练而设计. OneFlow对标HugeCTR搭建了Wide & ...

  2. 二值网络训练--A Empirical Study of Binary Neural Networks' Optimisation

    A Empirical Study of Binary Neural Networks' Optimisation ICLR2019 https://github.com/mi-lad/studyin ...

  3. 【深度学习】快照集成等网络训练优化算法系列

    [深度学习]快照集成等网络训练优化算法系列 文章目录 1 什么是快照集成? 2 什么是余弦退火学习率? 3 权重空间中的解决方案 4 局部与全局最优解 5 特别数据增强 6 机器学习中解决数据不平衡问 ...

  4. 图像识别python cnn_MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(一)...

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 全连接神经网络是深度学习的基础,理解它就可以掌握深度学习的核心概念:前向传播.反向误差传递.权重.学习 ...

  5. DL之AlexNet:AlexNet算法的架构详解、损失函数、网络训练和学习之详细攻略

    DL之AlexNet:AlexNet算法的架构详解.损失函数.网络训练和学习之详细攻略 相关文章 Dataset:数据集集合(CV方向数据集)--常见的计算机视觉图像数据集大集合(建议收藏,持续更新) ...

  6. 如何绘制caffe网络训练曲线

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51774966 当我们设计好网络结构后, ...

  7. MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(三)...

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 在前两篇文章MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网 ...

  8. [深度学习-实践]Tensorflow 2.x应用ResNet SeNet网络训练cifar10数据集的模型在测试集上准确率 86%-87%,含完整代码

    环境 tensorflow 2.1 最好用GPU Cifar10数据集 CIFAR-10 数据集的分类是机器学习中一个公开的基准测试问题.任务的目标对一组32x32 RGB的图像进行分类,这个数据集涵 ...

  9. 设置随机种子之后,网络训练结果仍然不同的解决方法(针对随机采样的数据集)torch设置随机种子,num_worker对数据采样的影响。

    网络训练结果无法复现 设置随机种子 应该为torch, numpy,以及Python设置随机种子,并提高torch卷积精度. def set_seed(seed):random.seed(seed)n ...

  10. Faster-Rcnn 网络训练医学乳腺DDSM图像不能预测到定位框问题及其训练问题

    在faster-rcnn 网络训练中,不同的数据集所带来的问题是不同的,首先明确医学数据集以及常见的RGB数据的区别: 1.医学数据集是超分辨率数据集(DDSM), 其长宽值较高, 而常用的RGB图像 ...

最新文章

  1. 算法设计与分析第2章 递归与分治策略
  2. 错误处理: socket.timeout: The read operation timed out
  3. 求解最长单调递增子串
  4. 【牛客 -2A】矩阵(二分,字符串哈希)
  5. iframe懒加载_懒加载是如何实现的?
  6. 清新BLOG-CMS博客主题源码
  7. 开发人员如何高效编程?
  8. ‘nvidia-smi‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  9. hexo init报错
  10. 魅族pro5 刷机 android,魅族Pro5刷通用固件方法教程[多图]
  11. pyqt创建透明窗体
  12. android微博图片上传,安卓开发 新浪微博share接口实现发带本地图片的微博
  13. 中国传媒大学计算机课程表,中国传媒大学新学院课程表.doc
  14. JavaWeb名片管理系统设计及详细分析
  15. 使用蓝牙耳机玩游戏声音卡顿延迟问题
  16. “名师带教,共同成长“渭南市马红“名师+”研修共同体2022年工作计划
  17. 做生鲜水果这行线上销售有什么好的平台推荐?
  18. WordPress如何修改文章的更新(发布)日期和时间?
  19. Visual Basic开发实战1200例(第I卷)pdf
  20. ModStart-UEditor 开源,让 UEditor 重新焕发活力

热门文章

  1. 微信支付服务商分账-请求单次分账
  2. 鸿蒙os多设备如何实现,鸿蒙OS中如何实现跨设备迁移?
  3. Android实现用户圆形头像+背景模糊
  4. JAVA代码实现人物照片的人像分割 | 百度AI
  5. 2021年全球及中国天然橡胶产量、消费量及价格走势分析:中国市场需求量急速增涨[图]
  6. 橡胶密封件老化原因有哪些?
  7. 新站如何快速做SEO优化,获收录和排名
  8. Unity 给模型换材质
  9. 通过labview vision视觉模块写的带学习功能的OCR字符识别程序
  10. 03Java常用API-17. 日期格式化类SimpleDateFormat