foolyc

MLY S04 Scale drives machine learning progress

规模促进机器学习的发展

深度学习(神经网络)的很多思想已经提出快几十年了,为什么这些东西现在突然火了呢?

促进近年来巨大进步的最大的驱动因素有两个:

  • 大量可用的数据。现在人们会花更多的时间在数字设备上(比如笔记本/手机等),他们在数字设备上的操作会产生大量可供学习算法使用的数据。
  • 计算尺度。仅仅在几年前我们才刚开始能训练足够大的神经网络,以利用我们拥有的大量数据。

详细来说,即使你积累再多的数据,通常原有古老的学习算法(比如logistic回归)的性能也会出现“高原效应(plateaus)”。这意味带着即使你提供再多的数据,算法的学习曲线也会平坦,算法的效果不会再提高。

img

这就好像这些传统算法并不知道该如何处理我们的全部数据。

如果你对同样的监督学习问题训练一个小型的神经网络,你会获得略好的结果。

img

这里,小型神经网络(small NN)我们指只有少量隐层神经元/层/参数的网络。最后,如果你训练一个更大的神经网络,你能获得甚至更好的效果。

img

因此,如果你想获得更好的学习效果,你需要(I)训练更大的神经网络,使其在绿色曲线上方;(II)使用大量数据。

在训练效果更好的神经网络过程中,很多其他因素,包括神经网络的架构,也非常重要,本书也会详细讨论这些细节。但是最可靠的方法仍然是(I)训练更大的神经网络;(II)获取更多的数据。

如何完成(I)和(II)是非常复杂的,这本书将会充分的讨论这些细节。我们会从对传统学习算法和神经网络都有用的通用策略开始,逐步构建最先进的深度学习体系。


这个图表说明了NN在小数据集下也会做的更好(横轴前半部分)。这和NN在大数据集中表现优秀并不是一回事。在小数据集中,传统算法可能做得更好,也可能不会做得更好,这依赖于人工设计的特征。例如,如果你只有20个训练样本,那么你使用logistic regression 或使用neural network可能没有多大区别;人工设计的特征将会比算法的选择产生更大的影响。但是如果你拥有一百万的数据量,我更倾向于使用神经网络。

自己的一点想法

  • 数据之中包含信息(这里可以理解为知识),而每种学习算法都有其容量,能承载的信息量(知识)有限。
  • 深度神经网络是一种有很大数据承载能力的学习算法。
  • 容量可以从学习参数的自由度这个角度理解,比如同样是多项式拟合,三阶多项式显然能表达的形态比二阶多项式丰富,当然容量肯定不能简单的理解为参数自由度。
  • 以后如果谁提出了完备的神经网络容量度量方式,那将是深度学习领域重大的理论突破。
  • 对神经网络而言,不仅有容量度量,还有其结构决定的固有特性。
本文由foolyc创作和发表,采用BY-NC-SA国际许可协议进行许可
转载请注明作者及出处,本文作者为foolyc
本文标题为MLY S04 Scale drives machine learning progress
本文链接为http://foolyc.com//2017/03/12/MLY-S04-Scale-drives-machine-learning-progress/.