传统神经网络的训练方法为什么不能用在深度神经网络?

BP算法作为传统训练多层网络的典型算法,实际上对仅含几层网络,该训练方法就已经很不理想。涉及多个非线性处理单元层的深度结构的非凸目标代价函数中普遍存在的局部最小是训练困难的主要来源。

BP算法存在的问题:

1、梯度越来越稀疏:从顶层越往下,误差校正信号越来越小;

2、收敛到局部最小值:尤其是从远离最优区域开始的时候(随机值初始化会导致这种情况的发生);

3、一般,我们只能用有标签的数据来训练:但大部分的数据是没标签的,而大脑可以从没有标签的的数据中学习;


深度学习训练方法

如果对所有层同时训练,时间复杂度会太高;如果每次训练一层,偏差就会逐层传递。这会面临跟上面监督学习中相反的问题,会严重欠拟合(因为深度网络的神经元和参数太多了)。

2006年,Hinton提出了在非监督数据上建立多层神经网络的一个有效方法,该方法分为两步,一是每次训练一层网络,二是调优,使原始表示x向上生成的高级表示r和该高级表示r向下生成的x'尽可能一致:

1、首先逐层构建单层神经元,这样每次都是训练一个单层网络。

2、当所有层训练完后,Hinton使用wake-sleep算法进行调优。

将除最顶层的其它层间的权重变为双向的,这样最顶层仍然是一个单层神经网络,而其它层则变为了图模型。向上的权重用于“认知”,向下的权重用于“生成”。

然后使用Wake-Sleep算法调整所有的权重。让认知和生成达成一致,也就是保证生成的最顶层表示能够尽可能正确的复原底层的结点。比如顶层的一个结点表示人脸,那么所有人脸的图像应该激活这个结点,并且这个结果向下生成的图像应该能够表现为一个大概的人脸图像。

Wake-Sleep算法分为醒(wake)和睡(sleep)两个部分:

wake阶段:认知过程,通过外界的特征和向上的权重(认知权重)产生每一层的抽象表示(结点状态),并且使用梯度下降修改层间的下行权重(生成权重)。也就是“如果现实跟我想象的不一样,改变我的权重使得我想象的东西就是这样的”。

sleep阶段:生成过程,通过顶层表示(醒时学得的概念)和向下权重,生成底层的状态,同时修改层间向上的权重。也就是“如果梦中的景象不是我脑中的相应概念,改变我的认知权重使得这种景象在我看来就是这个概念”。

深度学习训练过程:

1、使用自下上升非监督学习(就是从底层开始,一层一层的往顶层训练):

采用无标定数据(有标定数据也可)分层训练各层参数,这一步可以看作是一个无监督训练过程,是和传统神经网络区别最大的部分(这个过程可以看作是特征学习过程):

具体的,先用无标定数据训练第一层,训练时先学习第一层的参数(这一层可以看作是得到一个使得输出和输入差别最小的三层神经网络的隐层),由于模型能力的限制以及稀疏性约束,使得得到的模型能够学习到数据本身的结构,从而得到比输入更具有表示能力的特征;在学习得到第n-1层后,将n-1层的输出作为第n层的输入,训练第n层,由此分别得到各层的参数;

2、自顶向下的监督学习(就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调):

基于第一步得到的各层参数进一步微调整个多层模型的参数,这一步是一个有监督训练过程;第一步类似神经网络的随机初始化初值过程,由于深度学习的第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果;所以深度学习效果好很大程度上归功于第一步的特征学习过程。

深度学习——训练过程相关推荐

  1. 最全深度学习训练过程可视化工具(附github源码)

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 Datawhale干货 作者:Edison_G,来源:计算机视觉研究院 编辑丨极市平台 ...

  2. 的训练过程_最全深度学习训练过程可视化工具(附github源码)

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 Datawhale干货 作者:Edison_G,来源:计算机视觉研究院编辑丨极市平台. ...

  3. Python - 深度学习训练过程使用matplotlib.pyplot实时动态显示loss和acc曲线

    1 深度学习训练过程中实时动态显示loss和acc曲线 可参考代码如下: # -*- coding: utf-8 -*-import matplotlib.pyplot as pltif __name ...

  4. 深度学习训练过程中的技巧深刻总结

    深度学习训练模型技巧 1 训练过程经常遇到的问题 1.1 损失值为nan 1.2 训练效果差 1.2.1 损失值很低,正确率很高,但miou很差 1.2.2 损失值来回变,准确率或者miou忽大忽小 ...

  5. 微信监控机器学习、深度学习训练过程,可视化

    五月两场 | NVIDIA DLI 深度学习入门课程 5月19日/5月26日一天密集式学习  快速带你入门阅读全文> 正文共765个字,3张图,预计阅读时间5分钟. 训练复杂的机器学习.深度学习 ...

  6. 训练过程acc_AI 深度学习训练tricks总结(均有实验支撑)

    ↑↑↑↑↑点击上方蓝色字关注我们! 『运筹OR帷幄』转载 作者:Jones@知乎 作者丨Jones@知乎来源丨https://zhuanlan.zhihu.com/p/261999668编辑丨极市平台 ...

  7. 深度学习训练技巧总结

    参考: 1 技巧链接一!重要 技巧链接二!重要 技巧链接三!重要 模型训练技巧最直接的就是几个超参数的设置 根据图片大小来选择网络和超参数 如果图片不是很大比如3030,这种情况下做分类就不能用VGG ...

  8. 深度学习训练数据打标签过程

    深度学习训练数据打标签过程 为了获取大量的图片训练数据,在采集数据的过程中常用视频的方式采集数据,但对于深度学习,训练的过程需要很多的有有标签的数据,这篇文章主要是解决视频文件转换成图片文件,并加标签 ...

  9. MLPerf结果证实至强® 可有效助力深度学习训练

    MLPerf结果证实至强® 可有效助力深度学习训练 · 核心与视觉计算事业部副总裁Wei Li通过博客回顾了英特尔这几年为提升深度学习性能所做的努力. · 目前根据英特尔® 至强® 可扩展处理器的ML ...

最新文章

  1. 【企业管理】如何降低内部成本
  2. 基于SSD的Kafka应用层缓存架构设计与实现
  3. checkbox 最多选两项
  4. 性能测试之Jmeter 中 CSV 如何参数化测试数据并实现自动断言
  5. AcWing1069.凸多边形的划分(区间DP)题解
  6. pwnable.kr lotto之write up
  7. react创建项目报错unexpected end of json while parsing near xxx
  8. COdeSmith的教程 CHM格式
  9. GEOTIF转nc文件
  10. 主机耳机没声音win10
  11. 史玉柱和他老同学的一段故事
  12. 企鹅吞狗,狗走狐悲,狼厂危矣
  13. ftp服务器空文件夹不让删,FTP不能删除(修改)文件夹的问题?(转载)
  14. 【ArcGIS风暴】ArcGIS标注和注记的区别及用法案例详解
  15. jQuery网格插件 ParamQuery
  16. [UTCTF2020]sstv
  17. java 调用 su,java调用外部应用程序
  18. 交叉线、直通线、反转线的区别与应用
  19. 网易2018校园招聘编程题真题集合 详解
  20. mysql微信昵称存储_mysql存储昵称带有emoji处理方案

热门文章

  1. 在ARCGIS SERVER 9.2中动态增加图层(附代码)
  2. PhoenixOS ROOT与安装Xposed方法(无需system.img)
  3. samtools用法详解
  4. matlab不选主元的高斯消去法,高斯消去法与列选主元的高斯消去法-matlab实现
  5. VSCode主题颜色的更改,让字体变暗一些,不那么刺眼(类IDEA风)
  6. cad菜单栏快捷键_天正CAD界面“菜单栏”不见了怎么办?教你3招秒解决,实用神技巧...
  7. python|3种运行cmd命令行的方法
  8. ios h5页面回弹
  9. DuerOS开放平台对接扫地机器人
  10. PLC程序实例一:MC协议定时进行网络触发