到底什么是深度学习?
它是涵盖了建立和训练神经网络的特殊方法的一个术语。神经网络最早在上世纪五十年代被提出,就像核聚变一样,他们曾是很有前途但很不可思议的实验室想法,迟迟未能在实际中应用。我会在稍后章节详细介绍神经网络是如何工作的,现在你可以把它当作一个作出决策的黑盒子。它们以一个数组作为输入(数组可以代表像素,音频微波,或者单词),在这个数组上运行一系列的函数,输出一个或多个数字。输出结果一般是对你试图从输入中得出的一些特性的预测,例如一张图片上画的是不是一只猫。
在黑盒子里运行的功能是由神经网络的内存控制的,权重数组负责决定如何将输入数据进行组合和重组来生成结果。像猫检测这样的实际问题,在处理时需要非常复杂的功能,也就是说它的这些权重数组会非常大。一个最近的计算机视觉网络问题,其权重数组包含大约6千万的数据。使用神经网络的一个最大的障碍是如何给这些巨大的数组赋值,才能很好的将输入信号转换成输出的预测结果。
训练
研究人员一直致力于训练神经网络,主要原因是神经网络理论上是可教的。在小规模的问题上,根据一系列的样本输入和期望输出,通过机械加工,让权重从一开始的随机数逐步变成可以提供更精准的预测的数字,是一个非常简单的过程。问题的关键是如何在更复杂的问题上做好这件事,比如语音识别或计算机视觉这些权重数量巨大的问题。
这是在2012 Imagenet Paper会议引发神经网络复兴以来的一个真正突破。Alex Krizhevsky,Ilya Sutskever 和Geoff Hinton将很多不同的加速学习的程序汇集在一起,包括卷积网络(convolutional networks),巧妙运用GPU,和一些新的数学计算技巧比如如ReLU和dropout,结果显示,他们可以在几周内训练出一个非常复杂的网络,并且这个网络在计算机视觉上可以达到与以往很出色的传统方法几乎一样的效果。
这并不是一个单独的或偶然的事件,类似的方法已经在自然语言处理和语音识别上得到了很成功的应用。这就是深度学习的核心--这种新技术让我们可以搭建和训练神经网络来解决以前无法解决的问题。