深度学习的兴起与流行原因.

在我们学习深度学习的时候,最基本也是最好奇的问题就是:
  深度学习和神经网络之前的基础技术理念已经存在大概几十年了,为什么它们现在才突然流行起来呢?

文章目录

    • 为什么深度学习会兴起?
      • 1.数据量的增长
      • 2. 算法创新
      • 3 运算性能提升

为什么深度学习会兴起?

1.数据量的增长

我们画一个图,在水平轴上绘制出所有任务的数据量;而在垂直轴上,画出机器学习算法的性能。比如说准确率体现在垃圾邮件过滤或者广告点击预测,或者是神经网络在自动驾驶汽车时判断位置的准确性。
深度学习的兴起与流行原因._第1张图片
为了使这个图更加从技术上讲更精确一点,我在轴下面已经写明的数据量,这儿加上一个标签(label)量,通过添加这个标签量,也就是指在训练样本时,我们同时输入和标签,接下来引入一点符号,使用小写的字母表示训练集的规模,或者说训练样本的数量,这个小写字母就横轴结合其他一些细节到这个图像中。

根据图像可以发现,如果你把一个传统机器学习算法的性能画出来,作为数据量的一个函数,你可能得到一个弯曲的线,就像图中这样,它的性能一开始在增加更多数据时会上升,但是一段变化后它的性能就会像一个高原一样。假设你的水平轴拉的很长很长,它们不知道如何处理规模巨大的数据.

如果你训练一个小型的神经网络,那么这个性能可能会像图中黄色曲线表示那样;如果你训练一个稍微大一点的神经网络,比如说一个中等规模的神经网络(图中蓝色曲线),它在某些数据上面的性能也会更好一些;如果你训练一个非常大的神经网络,它就会变成下图绿色曲线那样,并且保持变得越来越好。

如果你没有大量的训练集,在小的训练集中,各种算法的优先级事实上并不是很明确,特征工程能力,将决定最终的模型变现。

因此你知道在这个图形区域的左边,各种算法之间的优先级并不是定义的很明确,最终的性能更多的是取决于你在工程选择特征方面的能力以及算法处理方面的一些细节。假设有些人训练出了一个 SVM(支持向量机)表现的更接近正确特征,然而有些人训练的规模大一些,可能在这个小的训练集中 SVM 算法可以做的更好。

只有在某些大数据规模非常庞大的训练集,也就是在右边这个会非常的大时,我们能更加持续地看到更大的由神经网络控制的其它方法,在这种数据量规模上,负责的神经网络模型的预测表现才能明显优于传统模型。

因此可以注意到两点:如果想要获得较高的性能体现,那么有两个条件要完成:第一个是你需要训练一个规模足够大的神经网络,另外需要很多的数据。

因此我们经常说规模一直在推动深度学习的进步,这里的规模指的是神经网络的规模,同时也有数据的规模。

事实上如今最可靠的在神经网络上获得更好的表现的方法,往往就是要么训练一个更大的神经网络,要么投入更多的数据。

多亏数字化社会的来临,现在的数据量都非常巨大,仅仅在过去的 20 年里对于很多应用,我们便收集到了大量的数据,远超过机器学习算法能够高效发挥它们优势的规模。我们花了很多时间活动在这些数字的领域,比如在电脑网站上、在手机软件上以及其它数字化的服务,它们都能创建数据,同时便宜的相机被配置到移动电话,还有加速仪及各类各样的传感器,同时在物联网领域我们也收集到了越来越多的数据。

2. 算法创新

许多算法方面的创新,一直是在尝试着使得神经网络训练的更快。

作为一个具体的例子,神经网络方面的一个巨大突破是从 sigmoid 函数转换到一个 ReLU函数。

我们知道的一个使用 sigmoid 函数的问题是,在距离0值较远的位置 sigmoid 函数的梯度会接近零,所以学习的速度会变得非常缓慢,因为当你实现梯度下降时,在梯度接近零的时候,参数会更新的很慢,所以学习的速率也会变的很慢。而通过改变激活函数,神经网络换用一个叫做 ReLU (修正线性单元)的函数,仅仅通过将 Sigmod 函数转换成 ReLU 函数,便能够使得梯度下降(gradient descent)的算法运行的更快,这就是一个比较简单的算法创新的例子。

根本上讲,算法创新所带来的影响,实际上是对计算带来的优化。我们通过改变算法,使得代码运行的更快,这也使得我们能够训练规模更大的神经网络,或者是多端口的网络。

3 运算性能提升

渐渐地,尤其是在最近这几年,得益于在 CPU 还是 GPU 方面取得了巨大的进步,见证了算法方面的极大创新。

我们训练神经网络的过程,很多时候是凭借直觉的。往往对神经网络架构有了一个想法,于是尝试写代码实现这个想法,然后运行来检验神经网络效果有多好,通过参考这个结果再返回去修改神经网络里面的一些细节。然后我们不断的重复上面的操作,这需要很长的时间。

快速计算可以大大缩短这个过程,让我们实现更多的尝试和创新。

得益于快速计算,我们能够更快得到实验结果。当我们训练模型的时候,我们可以利用生产效率去构建更多更高效的神经网络。当你能够有一个建模需求,在相同的时间内,你能够尝试更多的想法,那极有可能使得你的神经网络在你的应用方面工作的更好、更快的计算,在提高速度方面真的有帮助,那样你就能更快地得到你的实验结果。

得益于快速计算,深度学习研究社群变的繁荣。快速计算也同时帮助了神经网络的实验人员和有关项目的研究人员在深度学习的工作中迭代的更快,所有这些都使得整个深度学习的研究社群变的如此繁荣,包括令人难以置信地发明新的算法和取得不间断的进步,这些力量使得深度学习不断壮大。这些力量目前也正常不断的奏效,使得深度学习越来越好。

研究表明我们的社会仍然在获取越来越多的数字化数据,或者用一些特殊的硬件来进行计算,比如说 GPU,以及更快的网络连接各种硬件。我们可以做更大规模的神经网络,而计算的能力也会得到进一步改善,还有习研究社区连续不断的在算法前沿产生非凡的创新。我们相信在接下来的这些年,神经网络会变的越来越好。

你可能感兴趣的:(深度学习,深度学习)