深度学习 发展 优缺点 面试二

经过了几个月,对神经网络的优缺点又做了一些总结:


神经网络的发展经历了3次大的转折。由于早期的计算资源的限制,以及数据量不足,导致前2个时期提出的神经网络,大多规模很小,而且在一定程度上还不如传统的统计机器学习方法,而且神经网络的结构相对简单,因此并没有体现出神经网络的潜在价值。

在07年,hitton提出了利用自编码器来stack by stack的学习图像的表征,然后堆叠起来作为神经网络参数的初始化值,然后在统一采用反向传播算法(BP算法)进行训练,最终准确率有显著的提升。同样的,由于大数据的出现,以及GPU等计算资源的出现,使得深度神经网络的训练得到可能。


神经网络的优点:
(1)由于神经网络天生具备拟合任意复杂函数的特点,因此神经网络你和能力很强,可以做非常复杂的非线性映射。
(2)深度神经网络的参数很多,因此要得到的假设空间维度非常高,有很强大的表征能力。
(3)现代的深度神经网络大多可以用来提取图像,语音,文本的抽象特征,而且提取出来的特征要比人为设定的特定具有更强的泛化性能,可以应用到多个领域。可以学习浅层语义信息,同样可以学习深层语义信息,因此这样便可以自动获取特征。为后面各个不同的任务提供特征。
(4)神经网络通过设计不同的结构,可以改变网络提取特征的方法,同样也可以对拟合目标函数达到不同的效果。其中,从早些时候的Alexnet,到后面的vgg16, vgg19, googlenet, resnet,以及近期提出的双通道网络,都围着这降低参数量,学习更加丰富的特征,以及加快训练速度等角度提出的,可见神经网络具有非常大的灵活性,可以适应于多种不同的任务。


神经网络的缺点:
(1)神经网络强大的假设空间,使得神经网络极易陷入局部最优,导致模型泛化能力很差,使得模型过拟合见到的数据分布,并不能很好的预测未知的数据。“没有免费的午餐”即表示使用复杂的模型,也会带来模型泛化能力的下降。因此基于泛化能力,提出了许多相应的措施,比如提出dropout在训练阶段,选择性的遮掉一部分隐藏节点,使得最终的模型节点点没有太多的趋同效果,相当于训练了多个子网络,达到ensemble的效果。
(2)神经网络参数量巨大,倒是训练起来非常慢,对于存储也非常不方便,因此基于这个问题,现在不断的更改网络结构,先训练大网络,然后在迁移到小网络结构,使得参数量大幅度降低,但是准确率不会有明显降低。
(3)在网络很深的情况下,会出现梯度消失,因此会提出relu,tanh等激活函数来方式梯度消失。
(4)网络很深,会使得收敛很慢,同样提出了batch normalization,来使得训练深层的网络成为可能。

猜你喜欢

转载自blog.csdn.net/nicholas_liu2017/article/details/77688500