吴恩达 深度学习课程

为什么深度学习会兴起?

如果深度学习和神经网络背后的基本技术理念已经有好几十年,为什么现在才突然兴起?

  • 数据量的急剧增加
  • 更快的计算能力
  • 神经网络算法的创新

下面我们将介绍深度学习流行起来的主要因素,这会帮助你更好地运用到工作中去。
我们首先来画一张图:


传统机器学习算法.jpg

水平轴代表完成任务的数据数量,垂直轴代表机器学习算法的性能,比如垃圾邮件过滤的准确率、广告点击预测的准确率,或是用于无人驾驶中判断其他车辆位置的神经网络的准确率。
根据图像可以发现,把传统机器学习算法的表现,比如说支持向量机,或logistics回归 作为数据量的一个函数。它的性能在刚刚开始的时候,会随着数据量的增加而上升,但是过一段时间之后,它的性能进入平台期,这是因为这些模型无法处理海量数据

数据量急剧增加

而在过去20年中,我们遇到的很多问题,只有相对较少的数据量。而现在,是一个数据化的社会,收集海量的数据变得轻而易举。

  1. 人们花了越来越多的时间在网络上,而所有的这些活动都能创造数据,
  2. 一些硬件:相机、电话、加速器以及物联网中的各种传感器,也使我们收集到了越来越多的数据。

过去20年来收集到的海量数据,远超传统学习算法能发挥作用的规模。对于神经网络模型,训练不同规模的神经网络,他们的性能也会不一样。一个中等规模的神经网络,它的性能表现也会更好一些。越大的神经网络,其性能表现越来越好。如图所示:

规模推动深度学习的进步.jpg

为了使这个图从技术上更准确一点,X轴的数据量,准确来说应该是“带标签的数据”量。
带标签的数据,在训练样本时,我们会输入变量X和变量Y。
使用小写字母m,表示样本集的规模,或者训练样本的数量。

在样本集规模不大的情况下,各种算法的性能的差异是不大的,难以比较。它的效果取决于人工设计的组件。假设有些人训练出了一个SVM, 可能是因为人工设计的组件很厉害。有些人训练的规模会大一些,可能训练集不大的时候,SVM表现更好。在这个图形区域的左边,各种算法之间的优劣不是很明显。最终的性能,更多取决于人工设计组件的技能,以及算法处理的一些细节。
只有在大数据领域,非常庞大的训练集,也就是在右边,m非常大时,我们才能见到,神经网络稳定地领先于其他算法。

如果你想达到那么高的性能水平,注意两点:
1. 训练规模足够大的神经网络,以发挥巨大规模数据量的优点。
2. 要有足够的数据量(规模一直在推动深度学习的进步)
提升这两者的规模,使我们在深度学习领域取得了较大的进展。

更快的计算能力

神经网络算法的创新

可以这么说,在初期,是数据和计算能力规模的发展促进了深度学习的崛起。但是渐渐地,尤其是在最近这几年我们也见证了算法方面的极大创新。我不想忽略算法方面的巨大贡献。

  • 有趣的是,许多算法上的创新,都是为了让神经网络运行得更快,举一个例子,神经网络方面的一个巨大突破是,从sigmoid函数,转换到这样的ReLU函数,


    image.png

    如果你无法理解刚才我说的某个细节,也不要担心,但是使用sigmoid函数的机器学习问题是,在这个区域,sigmoid函数的斜率会接近0,所以学习会变得非常缓慢,而通过改变函数,当神经网络用ReLU函数——修正线性单元ReLU,它的斜率是1,对于所有的正值的输入、输出都是1,因此梯度不会逐渐趋向0。我们发现,只需将sigmod函数转换成ReLU函数,便能够使得“梯度下降法”运行得更快。这是一个简单的算法创新的小例子,但是最终算法创新所带来的影响,是增加计算速度。
    有很多像这样的例子,我们通过改变算法,使得代码运行更快,这也使得我们能够训练更大规模的神经网络,即使在数据量很大的情况下,也能在规定时间内完成计算。

  • 快速计算另一个很重要的原因是:训练神经网络的过程,很多时候是凭直觉的。当你有了关于神经网络架构的想法,于是你写代码实现你的想法,然后运行一下代码,来检验你的神经网络效果有多好,知道结果之后再回去修改。去改你的神经网络中的一些细节。然后你不断重复这个循环。


    image.png

    当你的神经网络需要很长时间去训练,需要很长时间才能走完一圈循环的话,在实现神经网络时,迭代速度对你的效率影响巨大。有些人可能需要10分钟便可得到结果,而有些人可能需要一个月,如果你只需要10分钟得到结果,那么你就可以尝试更多的想法,那你就更可能发现适合你的应用的神经网络。所以计算速度的提升,真的有帮助提高迭代速度,让你更快地得到实验结果。这也同时帮助了神经网络的从业人员,和有关项目的研究人员,在深度学习的工作中,迭代得更快。

所有这些都极大推动了整个深度学习社区的研究,快到令人难以置信。人们一直在发明新的算法,持续不断地进步。是这些力量支持了深度学习的崛起。而这些力量还在不断发挥作用。让深度学习更进一步。
数据: 我们的社会还在产生更多的数字化数据
计算:GPU这类专用硬件还在继续发展、网络和各种硬件的速度变得更快,我很有信心我们实现超级大规模神经网络的能力。或者从计算能力这个角度看,也在继续进展。
算法:我希望深度学习研究社区能在算法上持续创新。
基于这些,我们可以乐观地回答,深度学习还会继续进步很多年。

你可能感兴趣的:(吴恩达 深度学习课程)