深度学习(神经网络)的很多想法已经存在了几十年。为什么现在这些想法火了呢?
如今机器学习的发展有两个重要的因素:
- 可获取的数据。人们现在在数字设备(笔记本,移动设备)上花费很多时间。他们的活动会产生非常多数据,这些数据可用于学习算法。
- 计算规模。从几年前开始我们有能力训练更大的神经网络,从而充分利用我们获取到的大数据。
具体来讲,即使传统学习算法(比如逻辑回归)使用更多的数据进行训练,它也会出现“高原效应(plateaus)”。这意味着学习曲线会趋于平缓,即使给它再多的数据算法效果也会停止提高。
这就好像传统的算法并不知道如何使用我们拥有的所有数据。
如果你在同样的监督学习任务上训练一个小型神经网络,你可能只能获得微小的性能提升:
在这里,小型神经网络指的是有着小数量的隐藏单元/层/参数的神经网络。如果训练越来越大的神经网络,你将获取更好的性能[1]:
所以如果你满足以下条件,你会获得最佳的性能:
- 训练一个非常大的神经网络,这样你处于上图的绿色曲线上;
- 有非常大量的数据
很多其它方面,比如神经网络架构也很重要,并且在这个方向上有很多创新。但是现如今提高算法性能最可靠的方法仍旧是:
- 训练更大的网络;
- 获取更多的数据;
如何完成上面的(1)和(2)非常复杂的过程。这本书将详细讨论其中的细节。我们将从对于传统的机器学习和神经网络都有用的一般策略开始,建立对构建深度学习系统有用的最先进的策略。
[1] 这张图表示神经网络在小数据集合下也会做得更好。这和神经网络在大数据集合下表现非常好并不具有一致性。在小数据集合情况下,传统算法表现可能好也可能坏,这取决于手工设计的特征。比如,如果你只有20个训练样本,那么使用逻辑回归还是神经网络并不重要;手工设计的特征比选择的算法更加影响结果。但是如果你有一百万条训练样本,我更倾向于神经网络。
网友评论