0%

Deep Learning Chapter 1

最近想要系统地学习下deep learning,因此找了Ian Goodfellow写的”Deep Learning”一书来啃,我会将每章所讲内容整理后放在blog上。本篇就简要介绍下deep learning一书的第一章,Introduction。

What is Deep Learning?

什么是深度学习?虽然这一词早已为大家所熟知,但是这一概念可能大部分人都不胜了解。其实一张简单的韦恩图就可以清晰简洁的表示:

简单地说,深度学习是一种表示学习(representation learning),也是一种机器学习,可用于许多AI方法。

那么深度学习又和之前的这些概念有什么区别呢?

从这张图中我们可以看出,对于经典的机器学习方法,我们需要手动设计出特点进行导入来实现目的。而Representation Learning则是能够自己发掘特征,找到并导入来实现结果。

而对于深度学习而言,特征的找取是分多层多次实现的:先是通过原有的数据进行简单的特征提取,再根据提取的简单特征,进一步提取出更加抽象的特征来,这层递增,最终实现结果。

以图像识别的例子而言就是这样的:

  1. 第一层可以是edge,通过图像中像素值的突变来实现edge这一特征的提取;
  2. 第二层可以是corners and contours,在edge的基础上,我们可以识别出轮廓和角的边的集合,将轮廓和角等提取出来;
  3. 第三次则是object parts,通过轮廓和角的集合,我们可以测定处特定对象的整个部分;

有了上述这三个hidden layer,我们就可以最终判断出图像是哪种物体了。

Brief Introduction about the History

之前我上过Ng在coursera上的“Machine Learning”课,在课的后半部分简要地带过了一些关于神经网络的知识点。如今想来,二三年前深度学习还大部分时候还是以神经网络这一概念展现在我们面前的。

的确,深度学习作为一个早已提出的概念,经历过三次发展浪潮,直到最近才以 Deep Learning 这一词示人。

在Ng课中介绍的神经网络,就是一种从神经科学的角度出发的简单的线性模型。这些模型被设计为使用一组n个输入{x1,…,xn},并将其与一个输出y关联,这些模型希望学习一组权重{w1,…,wn},输出y=x1 w1 + … + xn wn,多层这样的结果就构成了这种早期的神经网络的雏形。一般是用back-propagation的方法来进行参数的训练。这种方法直至今日仍然是训练深度模型的主导方法。

由于多层的结构再加上多层之间的信息传递(训练时的正向、反向传播),使得这一模型也被称为神经网络模型。的确神经科学被视为深度学习研究的一个重要灵感来源,但是由于我们没有足够的关于大脑的信息来进行进一步研究指导,其作用逐渐被削弱。现在的大多数神经网络是基于一个成为Rectified linear unit的神经单元模型。

在80年代,神经网络在认知科学的背景下随着Connectionism或者说parallel distributed processing的出现而引来了又一个发展高潮。通过将大量简单的计算单元连接在一起构成网络从而实现智能的行为,用分布式表示的方法,将多个特征彼此分立开,每个输入都有多个特征表示,每个特征都参与表示多个输入,从而分立进行训练。随着back-propagation的普及,这种方法走向了潮流。

随着硬件的发展,当年遥不可及的计算代价如今得以了实现,从而引来了第三次的发展。而大量的数据集的出现也使得训练变得更为方便和准确,而模型规模的增大也使得能够实现更多复杂的内容。