目前AI主要瓶颈

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33813365/article/details/85000475

目前深度学习主要问题:

当我们将人类智能,和目前的人工智障对比时,常常举的例子就是“现在机器学习依赖大数据,而人类的学习却是相反的,依赖小数据”。这个说法其实不尽准确。人类拥有太多的感知器官,无时无刻不接收着巨量的数据:就按人眼的分辨率而言,目前几乎没有什么实际的机器学习模型模型使用如此高清晰度的数据进行训练的。我们观察一个东西的时候,所有的知觉都潜移默化地给我们灌输海量的数据,供我们学习,推理,判断。我们所谓的“小数据”,实际上主要分为两个部分:

  1. 少标签。我们遇到的“题目”很多,我们无时无刻不在接受信息;但是我们的“答案”很少,我们可能看过各种各样的人,各种各样的动物,直到某一天才有人用3个字告诉我们,“这是猫”。可能一生中,别人给你指出这是猫的次数,都是屈指可数的。但是,仅仅通过这一两次提示(相当于一两个标签),你就能在一生中记得这些概念。甚至别人从不告诉这是猫,你也知道这应该不是狗或者其他动物。这种“没有答案”的学习称为 “无监督学习”(Yann LeCun将其比作蛋糕胚,以示其基础性的作用),目前机器学习在无监督学习方面进展很少。

2.逻辑推断,因果分析。也可以说是少证据。如果你看过探案相关的小说,那些侦探,能从非常细微的证据中,得出完整的逻辑链;现实中,爱因斯坦等物理学家能够从非常少的几点假设构建出整套物理学框架。最早的人工智能研究很多集中在类似的方面(流派被称为“符号主义”),但是事实证明这些研究大多数很难应用到实际问题中。现在NN为人所诟病的方面之一就是很难解决逻辑问题,以及因果推断相关的问题(不过最近有些进步,比如在视觉问答VQA方面)

深度学习发展历史

目前来看,很多对 NN 的贡献(特别是核心的贡献),都在于NN的梯度流上,比如

sigmoid会饱和,造成梯度消失。于是有了ReLU。
ReLU负半轴是死区,造成梯度变0。于是有了LeakyReLU,PReLU。
强调梯度和权值分布的稳定性,由此有了ELU,以及较新的SELU。
太深了,梯度传不下去,于是有了highway。
干脆连highway的参数都不要,直接变残差,于是有了ResNet。
强行稳定参数的均值和方差,于是有了BatchNorm。
RNN梯度不稳定,于是加几个,于是有了LSTM。
LSTM简化一下,有了GRU。
GAN的JS散度有问题,会导致梯度消失或无效,于是有了WGAN
WGAN对梯度的clip有问题,于是有了WGAN-GP
说到底,相对于8,90年代(已经有了CNN,LSTM,以及反向传播算法),没有特别本质的改变。

但是为什么当前这种方式实际效果很好?我想主要有:

全参数优化,end-to-end。反向传播(下面用BP代替)可以同时优化所有的参数,而不像一些逐层优化的算法,下层的优化不依赖上层,为了充分利用所有权值,所以最终还是要用BP来fine-tuning;也不像随机森林等集成算法,有相对分立的参数。很多论文都显示end-to-end的系统效果会更好。
形状灵活。几乎什么形状的NN都可以用BP训练,可以搞CNN,可以搞LSTM,可以变成双向的 Bi-LSTM,可以加Attention,可以加残差,可以做成DCGAN那种金字塔形的,或者搞出Inception那种复杂的结构。如果某个结构对NN很有利,那么就可以随便加进去;将训练好的部分加入到另一个NN中也是非常方便的事情。这样随着时间推进,NN结构会被人工优化得越来越好。BP的要求非常低:只要连续,就可以像一根导线一样传递梯度;即使不连续,大部分也可以归结为离散的强化学习问题来提供Loss。这也导致了大量NN框架的诞生,因为框架制作者知道,这些框架可以用于所有需要计算图的问题(就像万能引擎),应用非常广泛,大部分问题都可以在框架内部解决,所以有必要制作。
计算高效。BP要求的计算绝大多数都是张量操作,GPU跑起来贼快,并且NN的计算图的形式天生适合分布式计算;而且有大量的开源框架支持。

猜你喜欢

转载自blog.csdn.net/qq_33813365/article/details/85000475