深度学习相关知识

1、深度学习:是加深了层的深度神经网络,基于之前的网络只需要通过叠加层就可以创建深度网络,比如进行手写数字识别的深度CNN,使用He初始值作为权重的初始值,使用Adam更新权重参数,识别精度能达到99%以上,具有以下特点:

  • 基于3x3的小型滤波器的卷积层;
  • 激活函数是ReLU;
  • 全连接层后面使用Dropout层;
  • 基于Adam的最优化;
  • 使用He初始值作为权重初始值。

2、提高识别精度的技术:集成学习、学习率衰减、Data Augmentation(数据扩充)等都有助于提高识别精度,尤其是数据扩充技术在提高识别精度上效果显著,它基于算法对训练图像进行“人为”扩充,通过施加旋转、垂直或者水平方向上的移动等微小变化来增加图像数量,也可以通过其他方法(比如裁剪图像的crop处理、将图像左右翻转的flip处理等)进行扩充,从而巧妙地增加训练图像。

3、加深层的好处
减少网络的参数数量。叠加小型滤波器来加深网络的好处是可以减少参数的数量,扩大感受野(receptive filed,给神经元施加变化的某个局部空间区域),并且通过叠加层,将ReLU等激活函数夹在卷积层的中间,进一步提高了网络的表现力,通过非线性函数的叠加,可以表现更加复杂的东西;
使学习更加高效。通过加深层,可以减少学习数据从而进行高效学习,将各层要学习的问题分解成容易解决的简单问题,分层次传递信息能大大减少学习的时间,另外因为提取了边缘的层的下一层能够使用边缘的信息,所以能够高效地学习更加高级的模式。

4、深度学习发展趋势

  1. ImageNet:拥有超过100万张图像的数据集,包含各种各样的图像,并且每张图像都被关联了标签(类别名)。每年都会举办的ILSVRC图像识别大赛就使用该数据集,大赛有多个测试项目,其中之一是“类别分类”,会进行1000个类别的分类,比试识别精度,以2012年AlexNet大幅降低错误识别率为界线,之后深度学习方法一直居于首位,特别是15年的ResNet将错误识别率降低到3.5%,17年的Squeeze-and-Excutation Networks(SENet)在比赛中错误率降为更低的2.251%。
  2. VGG:由卷积层和池化层构成的基础CNN,特点在于将有权重的层叠加到16/19层,使层具备了深度,另外基于3x3的小型滤波器的卷积层运算是连续进行的,整个处理过程重复“卷积层重叠2-4次,再通过池化层将大小减半”,最后经由全连接层输出结果。
    在这里插入图片描述
  3. GoogLeNet:网络不仅在纵向上有深度,在横向上也有广度(宽度,Inception结构,使用多个大小不同的滤波器和池化,再合并它们的结果),此外还用了很多大小为1x1的滤波器卷积层,这个1x1的卷积运算通过在通道方向上减小大小,有助于减少参数和实现高速化处理。
  4. ResNet:是微软团队开发的网络,特征在于比以前的网络结构更深,为了解决不断加深层导致的性能不佳问题,导入了“快捷结构”(在连续两层的卷积层中,将输入x跳着连接至两层后的输出,F(x)变成了F(x)+x),反向传播时信号可以无衰减地传递,之前因为加深层导致梯度变小的梯度消失问题就可以得到缓解,最终随着层的加深不断地提高性能。

5、迁移学习:在实践中灵活运用使用ImageNet这个巨大数据集学习到的权重数据,将学习完的权重复制到神经网络进行再学习,在数据集较少时十分有效。

6、基于GPU的高速化:大多数深度学习框架都支持GPU(Graphics Processing Unit),可以高速地进行大量的运算,GPU原本是作为图像专用的显卡使用的,现在也用于通用的数值计算,目标是将压倒性的计算能力用于各种用途。深度学习中往往要进行大量的乘积累加运算,这种大量的并行计算往往是GPU擅长的,另外通过cuDNN这个最优化库,可以进一步实现高速化,大多数深度学习框架受益于NVIDIA的GPU,它的CUDA提供了面向GPU计算的综合开发环境。

7、分布式学习:为了进一步提高深度学习所需的计算速度,可以考虑在多台机器上或者多个GPU进行分布式计算,以大型数据中心的低延迟▪高吞吐网络作为支撑的分布式学习框架(Google的TensorFlow、微软的CNTK等)呈现出惊人效果,随着GPU个数的增加,学习速度大大提高。

8、运算精度的位数缩减:在深度学习的高速化中,除了计算量之外,内存容量(将大量权重参数和中间数据放在内存中)和总线带宽(流经GPU/CPU总线的数据超过某个限制)也有可能成为瓶颈,考虑到这些,要尽可能减少流经网络的数据位数。深度学习并不那么需要太多位的数值,即便图像附有一些小的噪声,输出结果也仍然保持不变,所以可以采取16位的半精度浮点数。

9、深度学习的应用

  • 物体检测——从图像中确定物体的位置并进行分类,比物体识别更加困难,需要从图像中确定类别的位置,而且图像可能涉及多个物体。著名的R-CNN方法会首先找出形似物体的区域,然后对提取出的区域应用CNN进行分类;
  • 图像分割——在像素水平上对图像进行分类,使用以像素为单位对各个对象分别着色的监督数据进行学习,在推理时对输入图像的所有像素进行分类。这样的方法需要按照像素数量进行相应次forward处理,因而需要耗费大量时间,但是FCN方法仅通过一次forward处理对所有像素进行分类,将全连接层替换成发挥相同作用的卷积层,最后导入扩大空间大小的处理(基于双线性插值法的扩大);
  • 图像标题的生成——给出一个图像,会自动生成图像标题,用于表示该图像的内容,代表性方法是NIC模型,由深层的CNN和处理自然语言的RNN(具有循环连接,经常被用于自然语言、时间序列数据等连续性数据中)构成,NIC基于CNN进行图像的特征提取,然后传给RNN进行循环处理,生成文本。这种将组合图像和自然语言等多种信息进行综合处理的行为称为多模态处理

10、深度学习的展望

  • 图像风格变换——输入“内容图像”和“风格图像”,生成一个具有新风格的“目标图像”,在学习的过程中使网络的中间数据对内容图像的中间数据进行模拟,这样就可以让输入图像近似于内容图像的形状;
  • 图像的自动生成——先用大量的图像进行学习,但是在作图时不需要任何图像,比如基于DCGAN实现从零生成卧室图像,技术要点是使用了Generator(生成者)和Discriminator(识别者)两个神经网络,生成者用于生成近似真品的图像,识别者用于识别是不是真实图像,通过两者进行对抗学习,生成者会学到更加精妙的图像作假技术,识别者会成长为能以更高精度辨别真假的鉴定师,两者互相切磋,共同成长;
  • 自动驾驶——自动驾驶需要结合各种技术力量来实现,比如决定行使路线的路线计划path plan技术、照相机或激光等传感技术,在这些技术中,正确识别周围环境并做出相应处理尤为重要。目前基于CNN的神经网络SegNet可以高精度地识别行驶环境,对输入图像进行了分割(像素水平的判别),在某种程度上正确地识别了道路、建筑物、人行道、车辆等;
  • 强化学习Deep Q-NetWork——让计算机在摸索试验的过程中自主学习称为强化学习(reinforcement learning),目的是决定代理的行动方针以获得更好的报酬,基本框架是:代理(Agent)根据环境选择行动,然后通过这个行动改变环境,根据环境的变化代理获得某种报酬。DQN在Q的学习中,为了确定最合适的行动,需要确定一个被称为最优行动价值函数的函数,为了近似这个函数,使用了CNN,把游戏的帧(连续4帧)作为输入,最终输出游戏手柄的各个动作。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值