当前位置: 首页 > 新闻 > 信息荟萃
编号:5194
神经网络与深度学习讲义.pdf
http://www.100md.com 2020年11月4日
第1页
第7页
第16页
第26页
第34页
第58页

    参见附件(688KB,70页)。

     神经网络与深度学习讲义

    书最早是我三年前放在网上的一本很粗浅的讲义。2015年复旦大学计算机学院开设了《神经网络与深度学习》课程,当时还没有关于深度学习的系统介绍,小编给大家准备了神经网络与深度学习讲义,有需要的就快来吧

    章节介绍

    第1章是绪论,介绍人工智能、机器学习、深度学习的概要,使读者对相关知识进行全面的了解。

    第2、3章介绍了机器学习的基础知识。

    第4、5、6章分别讲述三种主要的神经网络模型:前馈神经网络、卷积神经网络和循环神经网络。在第6章中略提了下图网络的内容。

    第7章介绍神经网络的优化与正则化方法。

    第8章介绍神经网络中的注意力机制和外部记忆。

    第9章简要介绍了一些无监督学习方法。

    第10章中介绍一些和模型独立的机器学习方法:集成学习、协同学习、多任务学习、迁移学习、终生学习、小样本学习、元学习等。这些都是目前深度学习的难点和热点问题。

    第11章介绍了概率图模型的基本概念,为后面的章节进行铺垫。

    第12章介绍两种早期的深度学习模型:玻尔兹曼机和深度信念网络。

    第13章介绍最近两年发展十分迅速的深度生成模型:变分自编码器和对抗生成网络。

    第14章介绍了深度强化学习的知识。

    第15章介绍了应用十分广泛的序列生成模型。

    Coursera吴恩达《神经网络与深度学习》课程笔记

    吴恩达(Andrew Ng)相信大家都不陌生了。8 月 8 日,吴恩达在他自己创办的在线教育平台 Coursera 上线了他的人工智能专项课程(Deep Learning Specialization)。

    此课程广受好评,通过视频讲解、作业与测验等让更多的人对人工智能有了了解与启蒙,国外媒体报道称:吴恩达这次深度学习课程是迄今为止,最全面、系统和容易获取的深度学习课程,堪称普通人的人工智能第一课。

    该专项课程的Coursera地址:https://www.coursera.org/specializations/deep-learning

    另外,网易云课堂前段时间宣布跟吴恩达合作,拿到了独家版权,开设了深度学习微专业课,并且提供中文字幕翻译,降低了学习门槛。但是只有视频和课件材料,没有Coursera 上的作业、考试等环节,也不会提供证书,需要证书的还得去 Coursera 上学习。这里附上网易云课堂该专项课程的地址:http://mooc.study.163.com/smartSpec/detail/1001319001.htm

    好了,在接下来的一段时间里,我将同步开始学习Coursera上深度学习专项课程,并将笔记以博客的形式记录下来。专项课程的第一门课是《神经网络与深度学习》。今天介绍第一讲:深度学习概述。

    1. What is a neural network?

    简单来说,深度学习(Deep Learning)就是更复杂的神经网络(Neural Network)。那么,什么是神经网络呢?下面我们将通过一个简单的例子来引入神经网络模型的概念。

    假如我们要建立房价的预测模型,一共有六个房子。我们已知输入x即每个房子的面积(多少尺或者多少平方米),还知道其对应的输出y即每个房子的价格。根据这些输入输出,我们要建立一个函数模型,来预测房价:y=f(x)。首先,我们将已知的六间房子的价格和面积的关系绘制在二维平面上,如下图所示:

    一般地,我们会一条直线来拟合图中这些离散点,即建立房价与面积的线性模型。但是从实际考虑,我们知道价格永远不会是负数。所以,我们对该直线做一点点修正,让它变成折线的形状,当面积小于某个值时,价格始终为零。如下图蓝色折线所示,就是我们建立的房价预测模型。

    其实这个简单的模型(蓝色折线)就可以看成是一个神经网络,而且几乎是一个最简单的神经网络。我们把该房价预测用一个最简单的神经网络模型来表示,如下图所示:

    该神经网络的输入x是房屋面积 ......

    DRAFT

    编译时间:2015-12-11 22:00

    《神经网络与深度学习》讲义

    Notes on Articial Neural

    Networks and Deep Learning

    邱锡鹏 xpqiu@fudan.edu.cn

    2015年12月11日DRAFT

    编译时间:2015-12-11 22:00

    目录

    第一章 绪论 1

    1.1 总结和深入阅读 . . . . . . . 2

    第二章 数学基础 3

    2.1 向量 . . . . . . . . 3

    2.1.1 向量的模 . . . . . . . 3

    2.1.2 向量的范数 . . . . . . . 3

    2.2 矩阵 . . . . . . . . 4

    2.3 矩阵的基本运算 . . . . . . . 4

    2.3.1 常见的矩阵 . . . . . . . 5

    2.3.2 矩阵的范数 . . . . . . . 5

    2.4 导数 . . . . . . . . 6

    2.4.1 常见的向量导数 . . . . . . 6

    2.4.2 导数法则 . . . . . . . 6

    2.5 常用函数 . . . . . . . . 7

    2.5.1 logistic函数 . . . . . . . 7

    2.5.2 softmax函数 . . . . . . . 7

    2.6 总结和深入阅读 . . . . . . . 9

    第三章 机器学习概述 10

    3.1 机器学习概述 . . . . . . . . 10DRAFT

    编译时间:2015-12-11 22:00

    II 目录

    3.1.1 损失函数 . . . . . . . 12

    3.1.2 机器学习算法的类型 . . . . . . 13

    3.1.3 机器学习中的一些概念 . . . . . . 14

    3.1.4 参数学习算法 . . . . . . . 16

    3.2 线性回归 . . . . . . . . 18

    3.3 线性分类 . . . . . . . . 20

    3.3.1 两类分类 . . . . . . . 20

    3.3.2 多类线性分类 . . . . . . . 22

    3.4 评价方法 . . . . . . . . 26

    3.5 总结和深入阅读 . . . . . . . 27

    第四章 感知器 28

    4.1 两类感知器 . . . . . . . . 29

    4.1.1 感知器学习算法 . . . . . . 29

    4.1.2 收敛性证明 . . . . . . . 30

    4.2 多类感知器 . . . . . . . . 32

    4.2.1 多类感知器的收敛性 . . . . . . 34

    4.3 投票感知器 . . . . . . . . 35

    4.4 总结和深入阅读 . . . . . . . 36

    第五章 人工神经网络 38

    5.1 神经元 . . . . . . . . 39

    5.1.1 激活函数 . . . . . . . 39

    5.2 前馈神经网络 . . . . . . . . 41

    5.2.1 前馈计算 . . . . . . . 41

    5.3 反向传播算法 . . . . . . . . 42

    5.4 梯度消失问题 . . . . . . . . 45

    5.5 训练方法 . . . . . . . . 46

    5.6 经验 . . . . . . . . 46

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    目录 III

    5.7 总结和深入阅读 . . . . . . . 47

    第六章 卷积神经网络 48

    6.1 卷积 . . . . . . . . 48

    6.1.1 一维场合 . . . . . . . 48

    6.1.2 两维场合 . . . . . . . 49

    6.2 卷积层:用卷积来代替全连接 . . . . . . 49

    6.3 子采样层 . . . . . . . . 52

    6.4 卷积神经网络示例:LeNet-5 . . . . . . 53

    6.5 梯度计算 . . . . . . . . 54

    6.5.1 卷积层的梯度 . . . . . . . 55

    6.5.2 子采样层的梯度 . . . . . . 56

    6.6 总结和深入阅读 . . . . . . . 56

    第七章 循环神经网络 57

    7.1 简单循环网络 . . . . . . . . 58

    7.1.1 梯度 . . . . . . . . 59

    7.1.2 改进方案 . . . . . . . 60

    7.2 长短时记忆神经网络:LSTM . . . . . . 61

    7.3 门限循环单元:GRU . . . . . . . 61

    7.4 总结和深入阅读 . . . . . . . 62

    参考文献 63

    索引 65

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    第一章 绪论

    一个人在不接触对方的情况下,通过一种特殊的方式,和对方进行

    一系列的问答。如果在相当长时间内,他无法根据这些问题判断对方是

    人还是计算机,那么就可以认为这个计算机是智能的。  Alan Turing [1950],《机器能思维吗?》

    让机器具备智能是人们长期追求的目标,但是关于智能的定义也十分模糊。 Alan Tur-

    ing在1950年提出了著名的图灵测试:“一个人在不接触对方的情况下,通过一种特殊的

    方式,和对方进行一系列的问答。如果在相当长时间内,他无法根据这些问题判断对方

    是人还是计算机,那么就可以认为这个计算机是智能的”。

    要通过真正地通过图灵测试,计算机必须具备理解语言、学习、记忆、推理、决策

    等能力。这也延伸出很多不同的学科,比如机器感知(计算机视觉、自然语言处理),学

    习(模式识别、机器学习、增强学习),记忆(知识表示)、决策(规划、数据挖掘)等。

    所有这些分支学科都可以看成是人工智能(Articial Intelligence,AI)的研究范畴。其

    中,机器学习(Machine Learning,ML)因其在很多领域的出色表现逐渐成为热门学科。

    机器学习的主要目的是设计和分析一些学习算法,让计算机从数据中获得一些决策函数,从而可以帮助人们解决一些特定任务,提高效率。对于人工智能来说,机器学习从一开

    始就是一个重要的研究方向,并涉及了概率论、统计学、逼近论、凸分析、计算复杂性理

    论等多门学科。

    人工神经网络(Articial Neural Network,ANN),也简称神经网络,是众多机器学

    习算法中比较接近生物神经网络特性的数学模型。人工神经网络通过模拟生物神经网络

    (大脑)的结构和功能,由大量的节点(或称“神经元”,或“单元”)和之间相互联接构

    成,可以用来对数据之间的复杂关系进行建模。

    Rosenblatt [1958]最早提出可以模拟人类感知能力的数学模型,并称之为感知器 (Per-

    ceptron),并提出了一种接近于人类学习过程(迭代、试错)的学习算法。但感知器因其DRAFT

    编译时间:2015-12-11 22:00

    2 第一章 绪论

    结构过于简单,不能解决简单的异或(XOR)等线性不可分问题,造成了人工神经领域

    发展的长年停滞及低潮。直到1980年以后,Geo?rey Hinton、Yann LeCun等人将反向传

    播算法(Backpropagation,BP)引入到多层感知器[Williams and Hinton, 1986],人工神

    经网络才又重新引起人们的注意,并开始成为新的研究热点。但是,2000年以后,因为当

    时计算机的计算能力不足以支持训练大规模的神经网络,并且随着支持向量机(Support

    Vector Machines,SVM)等方法的兴起,人工神经网络又一次陷入低潮。

    直到2006年,Hinton and Salakhutdinov [2006]发现多层前馈神经网络可以先通过逐

    层预训练,再用反向传播算法进行精调的方式进行有效学习。并且近年来计算机计算能

    力的提高(大规模并行计算,GPU),计算机已经可以训练大规模的人工神经网络。随着

    深度的人工神经网络在语音识别[Hinton et al., 2012]和图像分类[Krizhevsky et al., 2012]

    等任务上的巨大成功,越来越多的人开始关注这一个“崭新”的研究领域:深度学习。目

    前,深度学习技术在学术界和工业界取得了广泛的成功,并逐渐受到了高度重视。

    深度学习(Deep Learning, DL)是从机器学习中的人工神经网络发展出来的新领域。

    早期所谓的“深度”是指超过一层的神经网络。但随着深度学习的快速发展,其内涵已经

    超出了传统的多层神经网络,甚至机器学习的范畴,逐渐朝着人工智能的方向快速发展。

    本书主要介绍人工神经网络与深度学习中的基础知识、主要模型(卷积神经网络、递

    归神经网络等)以及在计算机视觉、自然语言处理等领域的应用。

    1.1 总结和深入阅读

    若希望全面了解人工神经网络和深度学习的知识,可以参考如下材料:

    1. Ian Goodfellow, Aaron Courville, and Yoshua Bengio. Deep learning. Book in

    preparation for MIT Press, 2015. URL http:goodfeli.github.iodlbook

    2. Yoshua Bengio. Learning deep architectures for AI. Foundations and trends R ? in

    Machine Learning, 2(1):1127, 2009

    另外,网站也给出很好的教程,比如http:deeplearning.net等。

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    第二章 数学基础

    2.1 向量

    在线性代数中,标量(Scalar)是一个实数,而向量(Vector)是指n个实数组成的

    有序数组,称为n维向量。如果没有特别说明,一个n维向量一般表示列向量,即大小为

    n  1 的矩阵。

    a =

    2

    6 6 6 6 6 4

    a1

    a2

    .

    .

    .

    an

    3

    7 7 7 7 7 5; (2.1)

    其中,ai称为向量a的第i个分量,或第i维。

    为简化书写、方便排版起见,有时会以加上转置符号T的行向量(大小为1n 的矩

    阵)表示列向量。

    a = [a1; a2;    ; an]

    T (2.2)

    向量符号一般用黑体小写字母a; b; c,或小写希腊字母 ; ; 等来表示。

    2.1.1 向量的模

    向量a的模∥a∥为

    ∥a∥ =

    v u u t n ∑

    i=1

    a2

    i : (2.3)

    2.1.2 向量的范数

    在线性代数中,范数(norm)是一个表示“长度”概念的函数,为向量空间内的所

    有向量赋予非零的正长度或大小。对于一个n维的向量x,其常见的范数有:DRAFT

    编译时间:2015-12-11 22:00

    4 第二章 数学基础

    L1范数:

    jxj1 =

    n ∑

    i=1

    jxij: (2.4)

    L2范数:

    ∥x∥2 =

    v u u t n ∑

    i=1

    x2

    i =

    p

    xT x: (2.5)

    2.2 矩阵

    一个大小为mn的矩阵(Matrix)是一个由m行n列元素排列成的矩形阵列。矩阵

    里的元素可以是数字、符号或数学式。这里,矩阵我们一般默认指数字矩阵。

    一个矩阵A从左上角数起的第i行第j列上的元素称为第i; j项,通常记为Ai;j或Aij。

    一个n维向量可以看作是n  1的矩阵。

    2.3 矩阵的基本运算

    如果A和B都为m  n的矩阵,则的A + B和A DRAFT

    编译时间:2015-12-11 22:00

    2.3 矩阵的基本运算 5

     结合律:(AB)C = A(BC), 分配律:(A + B)C = AC + BC,C(A + B) = CA + CB.

    mn矩阵A的转置(Transposition)是一个nm的矩阵,记为AT,AT第i行第j

    列的元素是原矩阵A第j行第i列的元素,(AT)ij = Aji: (2.11)

    2.3.1 常见的矩阵

    对称矩阵指其转置等于自己的矩阵,即满足A = AT。

    对角矩阵(Diagonal Matrix)是一个主对角线之外的元素皆为0的矩阵。对角线上

    的元素可以为0或其他值。一个n  n的对角矩阵矩阵A满足:

    Aij = 0 if i ?= j 8i; j 2 f1;    ; ng (2.12)

    对角矩阵A也可以记为diag(a),a为一个n维向量,并满足

    Aii = ai: (2.13)

    n  n的对角矩阵矩阵A = diag(a)和n维向量b的乘积为一个n维向量

    Ab = diag(a)b = a ⊙ b; (2.14)

    其中⊙表示点乘,即(a ⊙ b)i = aibi。

    单位矩阵是一种特殊的的对角矩阵,其主对角线元素为1,其余元素为0。n阶单位

    矩阵In,是一个n  n的方形矩阵。可以记为 In = diag(1; 1; :::; 1)。

    一个矩阵和单位矩阵的乘积等于其本身。

    AI = IA = A (2.15)

    2.3.2 矩阵的范数

    矩阵的范数有很多种形式,这里我们定义其p-范数为

    ∥A∥p =

    ( m ∑

    i=1

    n ∑

    j=1

    jaij j

    p)1=p

    : (2.16)

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    6 第二章 数学基础

    2.4 导数

    对于一个p维向量x 2 Rp,函数y = f(x) = f(x1;    ; xp) 2 R,则y关于x的导数为

    xf(x) =

    2

    6 6 4

    @f(x)

    @x1

    .

    .

    .

    @f(x)

    @xp

    3

    7 7 5 2 Rp

    : (2.17)

    对于一个p维向量x 2 Rp,函数y = f(x) = f(x1;    ; xp) 2 Rq,则y关于x的导数

    为

    xf(x) =

    2

    6 6 4

    @f1(x)

    @x1

      

    @fq(x)

    @x1

    .

    .

    .

    .

    .

    .

    .

    .

    .

    @fq(x)

    @x1

      

    @fq(x)

    @xp

    3

    7 7 5 2 Rpq

    : (2.18)

    2.4.1 常见的向量导数

    @Ax

    @x

    = AT; (2.19)

    @xTA

    @x

    = A (2.20)

    2.4.2 导数法则

    导数满足如下法则:

     加(减)法则:y = f(x),z = g(x)则

    @(y + z)

    @x

    = @y

    @x

    + @z

    @x

    (2.21)

     乘法法则:y = f(x),z = g(x)则

    @yT z

    @x

    = @y

    @x

    z + @z

    @x

    y (2.22)

     链式法则:z = f(y),y = g(x)则

    @z

    @x

    = @y

    @x

    

    @z

    @y

    (2.23)

    如果z = f(y),y = g(X),X为矩阵,则

    @z

    @Xij

    = tr

    (

    (

    @z

    @y)

    T @y

    @Xij)

    (2.24)

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    2.5 常用函数 7

    2.5 常用函数

    这里我们介绍几个本书中常用的函数。

    假设一个函数f(x)的输入是标量x。对于一组K个标量x1;    ; xK,我们可以通过

    f(x)得到另外一组K个标量z1;    ; zK,zk = f(xk); 8k = 1;    ;K (2.25)

    为了简便起见,我们定义x = [x1;    ; xK]

    T,z = [z1;    ; zK]

    T,z = f(x); (2.26)

    f(x)是按位运算的,即(f(x))i = f(xi)。,即。

    如果f(x)的导数记为f′

    (x)。当这个函数的输入为K维向量x = [x1;    ; xK]

    T时,其

    导数为一个对角矩阵。

    @f(x)

    @x

    = [

    @f(xj)

    @xi

    ]KK =

    2

    6 6 6 6 6 4

    f′

    (x1) 0    0

    0 f′

    (x2)    0

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    0 0    f′

    (xK)

    3

    7 7 7 7 7 5

    (2.27)

    = diag(f′

    (x)): (2.28)

    2.5.1 logistic函数

    logistic函数经常用来将一个实数空间的数映射到(0; 1)区间,记为(x)

    (x) = 1

    1 + eDRAFT

    编译时间:2015-12-11 22:00

    8 第二章 数学基础

    对于K个标量x1;    ; xK,softmax函数定义为

    zk = softmax(xk) = exp(xk)

    ∑K

    i=1 exp(xi); (2.32)

    这样,我们可以将K个变量x1;    ; xK 转换为一个分布:z1;    ; zK,满足

    zk 2 [0; 1]; 8k;

    K ∑

    i=1

    zk = 1: (2.33)

    当softmax函数的输入为K维向量x时,? z = softmax(x) (2.34)

    = 1

    ∑K

    k=1 exp(xk)

    2

    6 6 4

    exp(x1)

    .

    .

    .

    exp(xK)

    3

    7 7 5

    = exp(x)

    ∑K

    k=1 exp(xk)

    = exp(x)

    1

    T

    K exp(x); (2.35)

    其中,1

    K = [1;    ; 1]K1是K维的全1向量。

    其导数为

    @ softmax(x)

    @x

    =

    @

    (

    exp(x)

    1

    T

    K exp(x))

    @x

    = 1

    1

    K exp(x)

    @ exp(x)

    @x

    +

    @

    (

    1

    1

    T

    K exp(x))

    @x

    (exp(x))

    T

    = diag (exp(x))

    1

    K exp(x)

    DRAFT

    编译时间:2015-12-11 22:00

    2.6 总结和深入阅读 9

    2.6 总结和深入阅读

    详细的矩阵偏导数参考https:en.wikipedia.orgwikiMatrix_calculus。

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    第三章 机器学习概述

    机器学习是对能通过经验自动改进的计算机算法的研究。

     Mitchell [1997]

    在介绍人工神经网络之前,我们先来了解下机器学习的基本概念。然后再介绍下最

    简单的神经网络:感知器。

    机器学习主要是研究如何使计算机从给定的数据中学习规律,即从观测数据(样本)

    中寻找规律,并利用学习到的规律(模型)对未知或无法观测的数据进行预测。目前,主

    流的机器学习算法是基于统计的方法,也叫统计机器学习。

    机器学习系统的示例见图3.1。

    3.1 机器学习概述

    狭义地讲,机器学习是给定一些训练样本 (xi; yi); 1  i  N (其中xi是输入,yi是

    需要预测的目标),让计算机自动寻找一个决策函数f()来建立x和y之间的关系。

    y = f(?(x); ); (3.1)

    模型 输入x 输出y

    学习算法 训练样本(x; y)

    图 3.1: 机器学习系统示例DRAFT

    编译时间:2015-12-11 22:00

    3.1 机器学习概述 11

    这里,? y是模型输出,为决策函数的参数,?(x)表示样本x对应的特征表示。因为x不

    一定都是数值型的输入,因此需要通过?(x)将x转换为数值型的输入。如果我们假设x

    是已经处理好的标量或向量,公式3.1也可以直接写为

    y = f(x; ): (3.2)

    此外,我们还要建立一些准则来衡量决策函数的好坏。在很多机器学习算法中,一

    般是定义一个损失函数L(y; f(x; )),然后在所有的训练样本上来评价决策函数的风险。

    R() = 1

    N

    N ∑

    i=1

    L(y(i); f(x(i); )): (3.3)

    这里,风险函数R()是在已知的训练样本(经验数据)上计算得来的,因此被称之

    为经验风险。用对参数求经验风险来逐渐逼近理想的期望风险的最小值,就是我们常说

    的经验风险最小化原则(Empirical Risk Minimization)。这样,我们的目标就是变成了

    找到一个参数使得经验风险最小。

    

    = argmin

    

    R(): (3.4)

    因为用来训练的样本往往是真实数据的一个很小的子集或者包含一定的噪声数据,不能很好地反映全部数据的真实分布。经验风险最小化原则很容易导致模型在训练集上

    错误率很低,但是在未知数据上错误率很高。这就是所谓的过拟合 index过拟合。过拟合

    问题往往是由于训练数据少和噪声等原因造成的。过拟合的标准定义为:给定一个假设

    空间H,一个假设h属于H,如果存在其他的假设h属于H,使得在训练样例上h的损失比

    h小,但在整个实例分布上h比h 的损失小,那么就说假设h过度拟合训练数据[Mitchell,1997]。

    和过拟合相对应的一个概念是泛化错误。泛化错误是衡量一个机器学习模型是否可

    以很好地泛化到未知数据。泛化错误一般表现为一个模型在训练集和测试集上错误率的

    差距。

    为了解决过拟合问题,一般在经验风险最小化的原则上上加参数的正则化(Regular-

    ization),也叫结构风险最小化原则(Structure Risk Minimization)。

    

    = argmin

    

    R() + ∥∥2

    2 (3.5)

    = argmin

    

    1

    N

    N ∑

    i=1

    L(y(i); f(x(i); )) + ∥∥2

    : (3.6)

    这里,∥∥2是L2范数的正则化项,用来减少参数空间,避免过拟合。用来控制正

    则化的强度。

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    12 第三章 机器学习概述

    正则化项也可以使用其它函数,比如L1范数。L1范数的引入通常会使得参数有一定

    稀疏性,因此在很多算法中也经常使用。在Bayes估计的角度来讲,正则化是假设了参数

    的先验分布,不完全依赖训练数据。

    3.1.1 损失函数

    给定一个实例(x; y),真实目标是y,机器学习模型的预测为f(x; )。如果预测错误

    时(f(x; ) ?= y),我们需要定义一个度量函数来定量地计算错误的程度。常见的损失函

    数有如下几类:

    0-1损失函数 0-1损失函数(0-1 loss function)是

    L(y; f(x; )) =

    {

    1 if y = f(x; )

    0 if y ?= f(x; )

    (3.7)

    = I(y ?= f(x; )); (3.8)

    这里I是指示函数。

    平方损失函数 平方损失函数(quadratic loss function)是

    L(y; ? y) = (y DRAFT

    编译时间:2015-12-11 22:00

    3.1 机器学习概述 13

    如果我们用one-hot向量1y来表示目标类别c,其中只有yc = 1,其余的向量元素都

    为0。

    负对数似然函数也可以写为:

    L(y; f(x; )) = DRAFT

    编译时间:2015-12-11 22:00

    14 第三章 机器学习概述

    这里f(x; )的输出也是离散值,I()是指示函数,若条件为真,I() = 1;否则

    I() = 0。另一种常用的方式是让fi(x; )去估计给定x的情况下第i个类别的

    条件概率P(y = ijx)。损失函数定义为负对数似然函数。

    L(y; f(x; )) = DRAFT

    编译时间:2015-12-11 22:00

    3.1 机器学习概述 15

    特征学习

    数据的原始表示转换为。原始数据的特征有很多,但是并不是所有的特征都是有用

    的。并且,很多特征通常是冗余并且易变的。我们需要抽取有效的、稳定的特征。传统的

    特征提取是通过人工方式进行的,这需要大量的人工和专家知识。即使这样,人工总结

    的特征在很多任务上也不能满足需要。因此,如何自动地学习有效的特征也成为机器学

    习中一个重要的研究内容,也就是特征学习,也叫表示学习。特征学习分成两种,一种是

    特征选择,是在很多特征集合选取有效的子集;另一种是特征提取,是构造一个新的特征

    空间,并将原始特征投影在新的空间中。

    样本

    样本是按照一定的抽样规则从全部数据中取出的一部分数据,是实际观测得到的数

    据。在有监督学习中,需要提供一组有输出目标的样本用来学习模型以及检验模型的好

    坏。

    训练集和测试集

    一组样本集合就称为数据集。在很多领域,数据集也经常称为语料库。为了检验机

    器学习算法的好坏,一般将数据集分为两部分:训练集和测试集。训练集用来进行模型

    学习,测试集用来进行模型验证。通过学习算法,在训练集得到一个模型,这个模型可以

    对测试集上样本x预测一个类别标签? y。假设测试集为T,模型的正确率为:

    Acc = 1

    jTj

    ∑

    (xi;yi)2T

    j ? yi = yij; (3.15)

    其中jTj为测试集的大小。第?节中会介绍更多的评价方法。

    正例和负例

    对于两类分类问题,类别可以表示为f+1;DRAFT

    编译时间:2015-12-11 22:00

    16 第三章 机器学习概述

    为了定义这些用来进行空间分割的超平面,就需要引入判别函数的概念。假设变量

    z 2 Rm为特征空间中的点,这个超平面由所有满足函数f(z) = 0的点组成。这里的f(z)

    就称为判别函数。

    有了判别函数,分类就变得很简单,就是看一个样本在特征空间中位于哪个区域,从

    而确定这个样本的类别。

    判别函数的形式多种多样,在自然语言处理中,最为常用的判别函数为线性函数。

    3.1.4 参数学习算法

    学习算法就是如何从训练集的样本中,自动学习决策函数的参数。不同机器学习算

    法的区别在于决策函数和学习算法的差异。相同的决策函数可以有不同的学习算法。比

    如线性分类器,其参数的学习算法可以是感知器、支持向量机以及梯度下降法等。通过

    一个学习算法进行自动学习参数的过程也叫作训练过程。

    这里我们介绍一种常用的参数学习算法:梯度下降法(Gradient Descent Method)。

    梯度下降法也叫最速下降法(Steepest Descend Method)。如果一个实值函数f(x)

    在点a处可微且有定义,那么函数f(x)在a点沿着梯度相反的方向DRAFT

    编译时间:2015-12-11 22:00

    3.1 机器学习概述 17

    如果用梯度下降法进行参数学习,at+1 = at DRAFT

    编译时间:2015-12-11 22:00

    18 第三章 机器学习概述

    动量法 动量法(Momentum Method)[Rumelhart et al., 1988]对当前迭代的更新中加

    入上一次迭代的更新。我们记?t = t DRAFT

    编译时间:2015-12-11 22:00

    3.2 线性回归 19

    如果我们定义f(x)是线性函数,f(x) = wTx + b; (3.28)

    这就是线性回归问题(Linear Regression)。

    为了简单起见,我们将公式3.28写为

    f(x) = ? wT? x; (3.29)

    其中 ? w和? x分别称为增广权重向量和增广特征向量。

    x = 1  x ,2

    6 6 6 6 6 4

    1

    x1

    .

    .

    .

    xk

    3

    7 7 7 7 7 5

    =

    2

    6 6 6 6 4

    1

    x

    3

    7 7 7 7 5; (3.30)

    w = 1  w ,2

    6 6 6 6 6 4

    b

    w1

    .

    .

    .

    wk

    3

    7 7 7 7 7 5

    =

    2

    6 6 6 6 4

    b

    w

    3

    7 7 7 7 5; (3.31)

    这里只两个向量的拼接。

    在后面的描述中,我们一般采用简化的表示方法,直接用w和x来表示增广权重向

    量和增广特征向量。

    线性回归的损失函数通常定义为平方损失函数。

    L(y; f(x;w)) = ∥y DRAFT

    编译时间:2015-12-11 22:00

    20 第三章 机器学习概述

    其中,y是一个目标值 y(i);    ; y(N)

    的列向量,X是所有输入组成的矩阵:

    X =

    0

    B B B B B @

    1 1    1

    x(1)

    1 x(2)

    1    x(N)

    1

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    x(1)

    k x(2)

    k    x(N)

    k

    1

    C C C C C A

    (3.36)

    要最小化R(Y; f(X;w))),我们要计算R(Y; f(X;w)))对w的导数

    @R(

    Y; f(X;w))

    @w = @∥XTw DRAFT

    编译时间:2015-12-11 22:00

    3.3 线性分类 21

    x1

    x2

    wTx = 0

    w1

    ∥w∥

    w

    图 3.2: 两类分类线性判别函数

    = I(wTx > 0); (3.44)

    其中,I是指示函数。

    公式3.60定义了一个两类分类问题的线性判别函数。在高维的特征空间中,所有满足

    f(z) = 0的点组成用一个超平面,这个超平面将特征空间一分为二,划分成两个区域。这

    两个区域分别对应两个类别。

    图3.2中给了一个两维数据的判别函数以及对应的判别界面。在二维空间中,分类界

    面为一个直线。在三维空间中,分类界面为一个平面。在高维空间中,分类界面为一个超

    平面。对于线性函数来说,权重向量在线性空间中垂直于分类界面的向量。

    Logistic回归

    线性分类函数的参数w有很多种学习方式,比如第四章中介绍的感知器。这里使用

    另一种常用的学习算法:Logistic回归。

    我们定义目标类别y = 1的后验概率为:

    P(y = 1jx) = (wTx) = 1

    1 + exp(DRAFT

    编译时间:2015-12-11 22:00

    22 第三章 机器学习概述

    险函数为:

    J (w) = DRAFT

    编译时间:2015-12-11 22:00

    3.3 线性分类 23

    1. 把多类分类问题转换为C个两类分类问题,构建C个一对多的分类器。每个两类分

    类问题都是把某一类和其他类用一个超平面分开。

    2. 把多类分类问题转换为C(C DRAFT

    编译时间:2015-12-11 22:00

    24 第三章 机器学习概述

    利用softmax函数,我们定义目标类别y = c的后验概率为:

    P(y = cjx) = softmax(wT

    c x) = wT

    c x

    exp(

    ∑C

    i=1 wT

    i x)

    : (3.59)

    对于样本(x; y),输出目标y = f1;    ;Cg,我们用C维的one-hot向量y来表示输出

    目标。对于类别c,y = [I(1 = c); I(2 = c);    ; I(C = c)]

    T; (3.60)

    这里,I是指示函数。

    同时,我们将公式3.59重新定义一下,直接输出k维向量。

    y = softmax(WTx)

    = exp(WTx)

    1

    T exp ((WTx))

    = exp(z)

    1

    T exp (z); (3.61)

    其中,W = [w1;    ;wC]是C个类对应权重向量组成的矩阵。? y的第c维的值是第c类的

    预测后验概率。其中,? z = WTx,为softmax函数的输入向量。

    给定N 给样本(x(i); y(i)); 1  i  N,我们使用交叉熵损失函数,模型在训练集的风

    险函数为:

    J (W) = DRAFT

    编译时间:2015-12-11 22:00

    3.3 线性分类 25

    2.z = WTx,则

    @z

    @wc

    = M(x; c); (3.66)

    M(x; c)为第c列为x,其余为0的矩阵。

    1

    T

    Ky(i)

    = 1

    xT diag(x)DRAFT

    编译时间:2015-12-11 22:00

    26 第三章 机器学习概述

    我们可以初始化W = 0,然后用梯度下降法进行更新

    Wt+1 = Wt +  DRAFT

    编译时间:2015-12-11 22:00

    3.5 总结和深入阅读 27

    召回率(Recall,R),也叫查全率,是测试集中存在的个体总数中正确识别的个体总

    数的比例。

    Rc =

    N ∑

    i=1

    yi=c

    jyi = ? yij

    N ∑

    i=1

    yi=c

    1

    (3.74)

    F1值是根据正确率和召回率二者给出的一个综合的评价指标,具体定义如下:

    F1c = Pc  Rc  2

    (Pc + Rc)

    (3.75)

    为了计算分类算法在整个数据集上的总体准确率、召回率和F1值,经常使用两种平

    均方法,分别称为宏平均(macro average)和微平均(micro average)。

    宏平均是每一个类的性能指标的算术平均值,Rmacro =

    C ∑

    i=1

    Rc=C; (3.76)

    Pmacro =

    C ∑

    i=1

    Pc=C; (3.77)

    F1macro = Pmacro  Rmacro  2

    (Pmacro + Rmacro)

    : (3.78)

    而微平均是每一个样本的性能指标的算术平均。对于单个样本而言,它的准确率和

    召回率是相同的(要么都是1,要么都是0)因此准确率和召回率的微平均是相同的,根

    据F1 值公式,对于同一个数据集它的准确率、召回率和F1的微平均指标是相同的。

    3.5 总结和深入阅读

    本章简单地介绍了机器学习的理论知识,主要为后面讲解人工神经网络铺垫一些基

    础知识。如果需要快速全面地了解机器学习的基本概念可以阅读《Pattern Classication》

    [Duda et al., 2001]和《Pattern Recognition and Machine Learning》[Bishop, 2006],进

    一步深入了解可以阅读《The Elements of Statistical Learning》[Hastie et al., 2001] 以及

    《Learning in Graphical Models》[Jordan, 1998]。

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    第四章 感知器

    在介绍人工神经网络之前,我们先来介绍下最简单的神经网络:感知器。

    感知器,也是最简单的神经网络(只有一层)。感知器是由美国计算机科学家Roseblatt

    于1957年提出的。感知器可谓是最简单的人工神经网络,只有一个神经元。感知器也可

    以看出是线性分类器的一个经典学习算法。

    感知器是对生物神经细胞的简单数学模拟。神经细胞也叫神经元(neuron),结构大

    致可分为细胞体和细胞突起。

     细胞体(Soma)中的神经细胞膜上有各种受体和离子通道,胞膜的受体可与相应的

    化学物质神经递质结合,引起离子通透性及膜内外电位差发生改变,产生相应的生

    理活动:兴奋或抑制。

     细胞突起是由细胞体延伸出来的细长部分,又可分为树突和轴突。

     树突(Dendrite)可以接受刺激并将兴奋传入细胞体。每个神经元可以有一或

    多个树突。

     轴突(Axons)可以把兴奋从胞体传送到另一个神经元或其他组织。每个神经元

    只有一个轴突。

    两个神经元之间或神经元与效应器细胞之间信息传递靠突触(Synapse)完成。突触

    是一个神经元的冲动传到另一个神经元或传到另一细胞间的相互接触的结构。

    单个神经细胞可被视为一种只有两种状态的机器——兴奋和抑制。神经细胞的状态

    取决于从其它的神经细胞收到的输入信号量,及突触的强度(抑制或加强)。当信号量总

    和超过了某个阈值时,细胞体就会兴奋,产生电脉冲。电脉冲沿着轴突并通过突触传递

    到其它神经元。

    感知器是模拟生物神经元行为的机器,有与生物神经元相对应的部件,如权重(突

    触)、偏置(阈值)及激活函数(细胞体),输出为0或1。

    下面我们来介绍下感知器模型和学习算法。DRAFT

    编译时间:2015-12-11 22:00

    4.1 两类感知器 29

    激活函数

    01

    ∑ x2

    w2

    .

    .

    .

    xn

    wn

    x1

    w1

    1

    b

    输入

    权重

    图 4.1: 感知器模型

    4.1 两类感知器

    图5.1给出了感知器模型的结构。

    给定一个n维的输入x = (x1; x2;    ; xn),? y =

    {

    +1 当wT x + b > 0

    DRAFT

    编译时间:2015-12-11 22:00

    30 第四章 感知器

    公式4.3等价于wT (yixi) > 0。

    Rosenblatt [1958]首次提出了感知器的学习算法。这个算法是错误驱动的在线学习算

    法。先初始化一个权重向量w0(通常是全零向量),然后每次分错一个样本时,就用这个

    样本来更新权重。具体的学习过程如算法4.1所示。

    算法 4.1: 两类感知器算法

    输入: 训练集: (xi; yi); i = 1;    ;N,迭代次数:T

    输出: w

    1 初始化:w0 = 0 ;

    2 k = 0 ;

    3 for t = 1    T do

    4 for i = 1   N do

    5 选取一个样本(xi; yi),if wT (yixi) < 0 then

    6 wk+1 = wk + yixi,;

    7 k = k + 1;

    8 end

    9 end

    10 end

    11 return wk ;

    4.1.2 收敛性证明

    Noviko? [1963]证明对于两类问题,如果训练集是线性可分的,那么感知器算法可以

    在有限次迭代后收敛。然而,如果训练集不是线性分隔的,那么这个算法则不能确保会

    收敛。

    4.1 两类线性?分: 对于训练集D = f(xi; yi) j yi 2 fDRAFT

    编译时间:2015-12-11 22:00

    4.1 两类感知器 31

    4.1 感知器收敛性: 对于任何线性可分的训练集D = f(xi; yi)g

    n

    i=1,假设R是所有样本中输入向量的模的最大值。

    R = max

    i

    ∥xi∥

    那么在感知器学习算法4.1中,总共的预测错误次数K < R2

    2。

    证明如下:

    权重向量的更新公式为:

    wk = wkDRAFT

    编译时间:2015-12-11 22:00

    32 第四章 感知器

    ∥wK∥2

     ∥wT

    wK∥2

    = ∥wT

    K ∑

    k=1

    (ykxk)∥2

    = ∥

    K ∑

    k=1

    wT

    (ykxk)∥2

     K2

    2

    (4.8) wT (yixi) > ; 8i

    由公式4.6和4.8,得到

    K2

    2

     jjwKjj

    2

     K  R2

    (4.9)

    取最左和最右的两项,进一步得到,K22  K  R2。然后两边都除K,最终得到

    K  R2

    2 : (4.10)

    因此,在线性可分的条件下,算法4.1会在 R2

    2 步内收敛。如果训练集不s是线性可分

    的,就永远不会收敛[Freund and Schapire, 1999]。

    4.2 多类感知器

    原始的感知器的输出是0或1,不能提供概率形式的输出,因此只能处理两类问题。

    为了使得感知器能处理多类问题以及更复杂的结构化学习任务,我们引入一个特征函数

    (x; y)将输入输出对映射到一个向量空间中[Collins, 2002]。这样,我们可以得到一个更

    为泛化的感知器:

    y = argmax

    y2Gen(x)

    wT?(x; y); (4.11)

    这里Gen(x)表示输入x所有的输出目标集合。当处理C类分类问题时, Gen(x) = f1;    ;Cg。

    在上面几节中,分类函数都是在输入x的向量空间上。通过引入特征函数?(x; y),感

    知器不但可以用于多类分类问题,也可以用于结构化学习问题,比如输出是序列或来其

    它结构化的形式。

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    4.2 多类感知器 33

    当y为离散变量时(y 2 f1;    ;Cg),类别也可以表示为向量:

    (y = c) =

    2

    6 6 6 6 6 6 6 6 6 6 6 6 6 4

    0

    .

    .

    .

    0

    1

    0

    .

    .

    .

    0

    3

    7 7 7 7 7 7 7 7 7 7 7 7 7 5

    第c行

    如果每个样本可以有多个类别,标签分类y = fc; kg时,类别可以表示为向量:

    (y = fc; kg) =

    2

    6 6 6 6 6 6 6 6 6 6 6 6 6 6 4

    0

    .

    .

    .

    1

    .

    .

    .

    1

    .

    .

    .

    0

    3

    7 7 7 7 7 7 7 7 7 7 7 7 7 7 5

    第c行

    第k行

    (x; y)可以看成是?(x)和?(y)T 的乘积得到矩阵的向量化。

    (x; y = c) = vec(?(x)?(y)

    T ); (4.12)

    这里,vec是向量化算子。设A = [aij ]mn,则

    vec(A) = [a11; a21;    ; am1; a12; a22;    ; am2; cdots; a1n; a2n;    ; amn]

    T :

    (x; y = c) =

    2

    6 6 6 6 6 6 6 6 4

    .

    .

    .

    0

    (x)

    0

    .

    .

    .

    3

    7 7 7 7 7 7 7 7 5

    =

    2

    6 6 6 6 6 6 6 6 6 6 6 6 6 6 4

    .

    .

    .

    0

    1(x)

    .

    .

    .

    m(x)

    0

    .

    .

    .

    3

    7 7 7 7 7 7 7 7 7 7 7 7 7 7 5

    (4.13)

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    34 第四章 感知器

    第c  m + 1行

    第c  m + m行

    多类感知器算法的训练过程如算法4.2所示。

    算法 4.2: 多类感知器算法

    输入: 训练集: (xi; yi); i = 1;    ;N,最大迭代次数:T

    输出: wk

    1 w0 = 0 ;

    2 k = 0 ;

    3 for t = 1    T do

    4 for i = 1   N do

    5 选取一个样本(xi; yi);

    6 用公式4.11计算预测类别? yi;

    7 if ? yi ?= yi then

    8 wk+1 = wk + (?(xi; yi) DRAFT

    编译时间:2015-12-11 22:00

    4.3 投票感知器 35

    那么在多类感知器学习算法总共的预测错误次数K < R2

    2。

    4.3 投票感知器

    从定理4.2可以看出,如果训练数据是线性可分的,那么感知器可以找到一个判别函

    数来分割不同类的数据。并且如果边际距离越大,收敛越快。但是,感知器并不能保证找

    到的判别函数是最优的(比如泛化能力高),这样可能导致过拟合。

    此外,从感知器的迭代算法可以看出:在迭代次序上排在后面的错误点,比前面的错

    误点对最终的权重向量影响更大。比如有1; 000个训练样本,在迭代100个样本后,感知

    器已经学习到一个很好的权重向量。在接下来的899个样本上都预测正确,也没有更新权

    重向量。但是在最后第1; 000个样本时预测错误,并更新了权重。这次更新可能反而使得

    权重向量变差了。

    为了这种情况,可以使用“参数平均”的策略来提高感知器的鲁棒性,也叫投票感知

    器(Voted Perceptron)[Freund and Schapire, 1999]。

    投票感知器记录第k次更新后得到的权重wk在其后分类中正确分类样本的次数ck。

    这样最后的分类器形式为(假设输出为0或1):

    y = sign(

    K ∑

    k=1

    ck sign(wT

    k x)): (4.14)

    投票感知器虽然提高了感知器的泛化能力,但是需要保存K 个权重向量。在实际

    操作中会带来额外的开销。因此,人们经常会使用一个简化的版本,也叫做平均感知器

    (Averaged Perceptron)[Collins, 2002]。

    y = sign(

    K ∑

    k=1

    ck(wT

    k x))

    = sign(

    K ∑

    k=1

    ckwk)

    T x)

    = sign( ˉ wT x); (4.15)

    其中,ˉ w为平均的权重向量。

    假设wt;i

    是在第t轮更新到第i个样本时权重向量的值,平均的权重向量 ˉ w也可以写

    为

    ˉ w =

    ∑T

    t=1

    ∑n

    i=1 wt;i

    nT

    (4.16)

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    36 第四章 感知器

    这个方法非常简单,只需要在算法4.2中增加一个 ˉ w,并且在处理每一个样本后,更

    新

    ˉ w = ˉ w + wt;i

    (4.17)

    这里要注意的是,ˉ w需要在处理每一个样本时都需要更新,并且 ˉ w和wt;i

    都是稠密

    向量。因此,这个操作比较费时。为了提高迭代速度,有很多改进的方法,让这个更新只

    需要在错误预测发生时才进行更新。

    算法4.3给出了一个改进的平均感知器算法的训练过程[Daumé III]。

    算法 4.3: 平均感知器算法

    输入: 训练集: (xi; yi); i = 1;    ;N,最大迭代次数:T

    输出: ˉ w

    1 w = 0 ;

    2 u = 0 ;

    3 c = 0 ;

    4 for t = 1    T do

    5 for i = 1   N do

    6 选取一个样本(xi; yi);

    7 用公式4.11计算预测类别? yt;

    8 if ? yt ?= yt then

    9 w = w + ((xt; yt) DRAFT

    编译时间:2015-12-11 22:00

    4.4 总结和深入阅读 37

    简单的异或(XOR)问题。虽然他也认为多层的网络可以解决非线性问题,但是遗憾的

    是,在当时这个问题还不可解。直到1980年以后,Geo?rey Hinton、Yann LeCun等人用

    连续输出代替离散的输出,并将反向传播算法(Backpropagation,BP)[Werbos, 1974]

    引入到多层感知器[Williams and Hinton, 1986],人工神经网络才又重新引起人们的注意。

    Minsky and Papert [1987]也修正之前的看法。

    另外一方面,人们对感知器本身的认识也在不断发展。Freund and Schapire [1999]

    提出了使用核技巧改进感知器学习算法,并用投票感知器来提高泛化能力。Collins [2002]

    将感知器算法扩展到结构化学习,给出了相应的收敛性证明,并且提出一种更加有效并

    且实用的参数平均化策略。[McDonald et al., 2010]有扩展了平均感知器算法,使得感知

    器可以在分布式计算环境中并行计算,这样感知器可以用在大规模机器学习问题上。

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    第五章 人工神经网络

    人工神经网络1943年,心理学家W.S.McCulloch和数理逻辑学家W.Pitts建立了神

    经网络和数学模型,称为MP模型。他们通过MP模型提出了神经元的形式化数学描述和

    网络结构方法,证明了单个神经元能执行逻辑功能,从而开创了人工神经网络研究的时

    代。1949年,心理学家提出了突触联系强度可变的设想。60年代,人工神经网络得到了

    进一步发展,更完善的神经网络模型被提出人工神经网络人工神经网络,其中包括感知

    器和自适应线性元件等。

    前馈神经网络也经常称为多层感知器(Multilayer Perceptron,MLP)。但多层感知

    器的叫法并不是否合理,因为前馈神经网络其实是由多层的logistic回归模型(连续的非

    线性函数)组成,而不是有多层的感知器(不连续的非线性函数)组成[Bishop, 2006]。

    人工神经网络(Articial Neural Network,即ANN ),是20世纪80 年代以来人工

    智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简

    单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络

    或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接

    构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个

    节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神

    经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而

    网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

    最近十多年来,人工神经网络的研究工作不断深入,已经取得了很大的进展,其在模式识

    别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多现

    代计算机难以解决的实际问题,表现出了良好的智能特性。

    人工神经网络模型主要考虑网络连接的拓扑结构、神经元的特征、学习规则等。目

    前,已有近40种神经网络模型,其中有反传网络、感知器、自组织映射、Hopeld网络、波耳兹曼机、适应谐振理论等。根据连接的拓扑结构,神经网络模型可以分为:[1]

    前向网络

    网络中各个神经元接受前一级的输入,并输出到下一级,网络中没有反馈,可以用一DRAFT

    编译时间:2015-12-11 22:00

    5.1 神经元 39

    个有向无环路图表示。这种网络实现信号从输入空间到输出空间的变换,它的信息处理

    能力来自于简单非线性函数的多次复合。网络结构简单,易于实现。反传网络是一种典

    型的前向网络。[2] 反馈网络

    网络内神经元间有反馈,可以用一个无向的完备图表示。这种神经网络的信息处理

    是状态的变换,可以用动力学系统理论处理。系统的稳定性与联想记忆功能有密切关系。

    Hopeld网络、波耳兹曼机均属于这种类型。

    5.1 神经元

    人工神经元(Neuron)是构成人工神经网络的基本单元。人工神经元和感知器非常

    类似,也是模拟生物神经元特性,接受一组输入信号并产出输出。生物神经元有一个阀

    值,当神经元所获得的输入信号的积累效果超过阀值时,它就处于兴奋状态;否则,应该

    处于抑制状态。

    人工神经元使用一个非线性的激活函数,输出一个活性值。假定神经元接受n个输

    入x = (x1; x2;    ; xn),用状态z表示一个神经元所获得的输入信号x的加权和,输出为

    该神经元的活性值a。具体定于如下:

    z = wT x + b (5.1)

    a = f(z) (5.2)

    其中,w是n维的权重向量,b是偏置。典型的激活函数f有sigmoid型函数、非线性斜面

    函数等。

    人工神经元的结构如图?所示。如果我们设激活函数f 为0或1的阶跃函数,人工神

    经元就是感知器。

    5.1.1 激活函数

    为了增强网络的表达能力,我们需要引入连续的非线性激活函数(Activation Func-

    tion)。因为连续非线性激活函数可以可导的,所以可以用最优化的方法来求解。传统神

    经网络中最常用的激活函数分别是sigmoid型函数。sigmoid型函数是指一类S型曲线函

    数,常用的sigmoid型函数有logistic函数(x)和tanh函数。

    (x) = 1

    1 + eDRAFT

    编译时间:2015-12-11 22:00

    40 第五章 人工神经网络

    

    激活函数

    01

    ∑ x2

    w2

    .

    .

    .

    xn

    wn

    x1

    w1

    1

    b

    输入

    权重

    图 5.1: 感知器模型

    tanh函数可以看作是放大并平移的logistic函数:tanh(x) = 2(2x) DRAFT

    编译时间:2015-12-11 22:00

    5.2 前馈神经网络 41

    DRAFT

    编译时间:2015-12-11 22:00

    42 第五章 人工神经网络

    x1

    x2

    x3

    x4

    y

    隐藏层 隐藏层 输入层 输出层

    图 5.3: 多层神经网络

     nl

    :表示第l层神经元的个数;

     fl():表示l层神经元的激活函数;

     W(l)

    2 Rnl

    nlDRAFT

    编译时间:2015-12-11 22:00

    5.3 反向传播算法 43

    给定一组样本(x(i); y(i); 1  i  N,用前馈神经网络的输出为f(xjw; b),目标函数

    为:

    J(W; b) =

    N ∑

    i=1

    L(y(i); f(x(i)

    jW; b)) + 1

    2

    ∥W∥2

    F ; (5.11)

    =

    N ∑

    i=1

    J(W; b; x(i); y(i)) + 1

    2

    ∥W∥2

    F ; (5.12)

    这里,W 和b包含了每一层的权重矩阵和偏置向量,∥W∥2

    F = ∑L

    l=1

    ∑nl+1

    j=1

    ∑nl

    j=W(l)

    ij 。

    我们的目标是最小化J(W; b; x; y)。如果采用梯度下降方法,我们可以用如下方法更

    新参数:

    W(l)

    = W(l)

    DRAFT

    编译时间:2015-12-11 22:00

    44 第五章 人工神经网络

    a(lDRAFT

    编译时间:2015-12-11 22:00

    5.4 梯度消失问题 45

    第一项因为a(l)

    = fl(z(l)),而fl()为按位计算的函数。因此

    @a(l)

    @z(l)

    = @fl(z(l))

    @z(l)

    (5.29)

    = diag(f′

    l (z(l))): (5.30)

    从公式5.27可以看出,第l层的误差项可以通过第l +1层的误差项计算得到。这就是

    误差的反向传播(Backpropagation,BP)。反向传播算法的含义是:第l层的一个神经元

    的误差项(或敏感性)是所有与该神经元相连的第l + 1层的神经元的误差项的权重和。

    然后,在乘上该神经元激活函数的梯度。

    在计算出每一层的误差项之后,我们就可以得到每一层参数的梯度。因此,前馈神

    经网络的训练过程可以分为以下三步:(1)先前馈计算每一层的状态和激活值,直到最

    后一层;(2)反向传播计算每一层的误差;(3)计算每一层参数的偏导数,并更新参数。

    具体的训练过程如算法5.1所示,也叫反向传播算法。

    算法 5.1: 反向传播算法

    输入: 训练集: (x(i); y(i)); i = 1;    ;N,最大迭代次数:T

    输出: W; b

    1 初始化 W; b ;

    2 for t = 1    T do

    3 for i = 1   N do

    4 (1) 前馈计算每一层的状态和激活值,直到最后一层;

    5 (2) 用公式5.27反向传播计算每一层的误差(l);

    6 (3) 用公式5.22和5.23每一层参数的导数;

    7

    @J(W;b;x(i);y(i))

    @W(l) = (l)

    (a(lDRAFT

    编译时间:2015-12-11 22:00

    46 第五章 人工神经网络

    DRAFT

    编译时间:2015-12-11 22:00

    5.7 总结和深入阅读 47

    初始化

    5.7 总结和深入阅读

    Anderson and Rosenfeld [2000]

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    第六章 卷积神经网络

    卷积神经网络(Convolutional Neural Networks,CNN)是一种前馈神经网络。卷

    积神经网络是受生物学上感受野(Receptive Field)的机制而提出的。感受野主要是指听

    觉系统、本体感觉系统和视觉系统中神经元的一些性质。比如在视觉神经系统中,一个

    神经元的感受野是指视网膜上的特定区域,只有这个区域内的刺激才能够激活该神经元

    [Hubel and Wiesel, 1968]。

    卷积神经网络有三个结构上的特性:局部连接,权重共享以及空间或时间上的次采

    样。这些特性使得卷积神经网络具有一定程度上的平移、缩放和扭曲不变性[LeCun et al.,1998]。

    6.1 卷积

    卷积,也叫摺积,是分析数学中一种重要的运算。我们这里只考虑离散序列的情况。

    6.1.1 一维场合

    一维卷积经常用在信号处理中。给定一个输入信号序列xt, t = 1;    ; n,和滤波器

    ft, t = 1;    ;m,一般情况下滤波器的长度m远小于信号序列长度n。

    卷积的输出为:

    yt =

    n ∑

    k=1

    fk  xtDRAFT

    编译时间:2015-12-11 22:00

    6.2 卷积层:用卷积来代替全连接 49

    在这里除了特别声明,我们一般说的卷积默认为窄卷积。

    6.1.2 两维场合

    一维卷积经常用在图像处理中。给定一个图像xij , 1  i  M, 1  j  N,和滤波

    器 fij , 1  i  m, 1  j  n,一般m << M; n << N。

    卷积的输出为:

    yij =

    m ∑

    u=1

    n ∑

    v=1

    fuv  xiDRAFT

    编译时间:2015-12-11 22:00

    50 第六章 卷积神经网络

    口内的神经元相连,构成一个局部连接网络。第l层的第i个神经元的输入定义为:

    a(l)

    i = f(

    m ∑

    j=1

    w(l)

    j  a(lDRAFT

    编译时间:2015-12-11 22:00

    6.2 卷积层:用卷积来代替全连接 51

    X(l;1)

    滤波器

    W(l;k;1)

    .

    .

    .

    .

    .

    .

    输入

    特征映射

    X(l;nlDRAFT

    编译时间:2015-12-11 22:00

    52 第六章 卷积神经网络

    图 6.3: 两维卷积层

    这样,假如连接表T 的非零个数为K,每个滤波器的大小为u  v,那么共需要K 

    (u  v) + nl参数。

    卷积层的作用是提取一个局部区域的特征,每一个滤波器相当于一个特征提取器。

    图6.3给出了两维卷积层示例。

    6.3 子采样层

    卷积层虽然可以显著减少连接的个数,但是每一个特征映射的神经元个数并没有显

    著减少。这样,如果后面接一个分类器,分类器的输入维数依然很高,很容易出现过拟

    合。为了解决这个问题,在卷积神经网络一般会在卷积层之后再加上一个池化(Pooling)

    操作,也就是子采样(Subsampling),构成一个子采样层。子采样层可以来大大降低特征

    的维数,避免过拟合。

    对于卷积层得到的一个特征映射X(l)

    ,我们可以将X(l)

    划分为很多区域Rk; k = 1;    ;K,这些区域可以重叠,也可以不重叠。一个子采样函数down(   )定义为:

    X(l+1)

    k = f(Z(l+1)

    k ); (6.10)

    = f

    (

    w(l+1)

     down(Rk) + b(l+1)); (6.11)

    其中,w(l+1)

    和b(l+1)

    分别是可训练的权重和偏置参数。

    X(l+1)

    = f(Z(l+1)); (6.12)

    = f

    (

    w(l+1)

     down(Xl) + b(l+1)); (6.13)

    down(Xl)是指子采样后的特征映射。

    子采样函数down()一般是取区域内所有神经元的最大值(Maximum Pooling)或

    平均值(Average Pooling)。

    poolmax(Rk) = max

    i2Rk

    ai (6.14)

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    6.4 卷积神经网络示例:LeNet-5 53

    图 6.4: LeNet-5网络结构。图片来源:[LeCun et al., 1998]

    poolavg(Rk) = 1

    jRkj

    ∑

    i2Rk

    ai: (6.15)

    子采样的作用还在于可以使得下一层的神经元对一些小的形态改变保持不变性,并

    拥有更大的感受野。

    6.4 卷积神经网络示例:LeNet-5

    下面我们来看一个具体的深层卷积神经网络:LeNet-5[LeCun et al., 1998]。LeNet-5

    虽然提出时间比较早,但是是一个非常成功的神经网络模型。基于LeNet-5的手写数字识

    别系统在90年代被美国很多银行使用,用来识别支票上面的手写数字。LeNet-5的网络

    结构如图6.4所示。

    不计输入层,LeNet-5共有7层,每一层的结构为:

    1. 输入层:输入图像大小为32  32 = 1024。

    2. C1层:这一层是卷积层。滤波器的大小是55 = 25,共有6个滤波器。得到6组大

    小为28  28 = 784的特征映射。因此,C1层的神经元个数为6  784 = 4; 704。可

    训练参数个数为6  25 + 6 = 156。连接数为156  784 = 122; 304(包括偏置在内,下同)。

    3. S2层:这一层为子采样层。由C1层每组特征映射中的22邻域点次采样为1个点,也就是4个数的平均。这一层的神经元个数为14  14 = 196。可训练参数个数为

    6  (1 + 1) = 12。连接数为6  196  (4 + 1) = 122; 304 (包括偏置的连接)

    4. C3层:这一层是卷积层。由于S2层也有多组特征映射,需要一个连接表来定义不

    同层特征映射之间的依赖关系。LeNet-5的连接表如图6.5所示。这样的连接机制的

    基本假设是: C3层的最开始的6个特征映射依赖于S2层的特征映射的每3个连续子

    集。接下来的6个特征映射依赖于S2层的特征映射的每4个连续子集。再接下来的

    3 个特征映射依赖于S2层的特征映射的每4个不连续子集。最后一个特征映射依赖

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    54 第六章 卷积神经网络

    图 6.5: LeNet-5中C3层的连接表。图片来源:[LeCun et al., 1998]

    于S2层的所有特征映射。这样共有60个滤波器,大小是5  5 = 25。得到16组大

    小为1010 = 100的特征映射。C3层的神经元个数为16100 = 1; 600。可训练参

    数个数为(60  25 + 16 = 1; 516。连接数为1; 516  100 = 151; 600。

    5. S4层:这一层是一个子采样层,由22邻域点次采样为1个点,得到16组55大

    小的特征映射。可训练参数个数为16  2 = 32。连接数为16  (4 + 1) = 2000。

    6. C5层:是一个卷积层,得到120组大小为1  1的特征映射。每个特征映射与S4

    层的全部特征映射相连。有120  16 = 1; 920 个滤波器,大小是5  5 = 25。C5

    层的神经元个数为120,可训练参数个数为1; 920  25 + 120 = 48; 120。连接数为

    120  (16  25 + 1) = 48; 120。

    7. F6层:是一个全连接层,有84个神经元,可训练参数个数为84(120+1) = 10; 164。

    连接数和可训练参数个数相同,为10; 164。

    8. 输出层:输出层由10个欧氏径向基函数(Radial Basis Function,RBF)函数组成。

    这里不再详述。

    6.5 梯度计算

    在全连接前馈神经网络中,目标函数关于第l层的神经元z(l)

    的梯度为

    (l)

    , @J(W; b; x; y)

    @z(l)

    (6.16)

    = f′

    l (z(l)) ⊙ ((W(l+1))

    T (l+1)

    (6.17)

    在卷积神经网络中,每一个卷积层后都接着一个子采样层,然后不断重复。因为我

    们需要分别来看下卷积层和子采样层的梯度。

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    6.5 梯度计算 55

    6.5.1 卷积层的梯度

    我们假定卷积层为l层,子采样层为l + 1层。因为子采样层是下采样操作,l + 1层

    的一个神经元的误差项对应于卷积层(上一层)的相应特征映射的一个区域。l层的第

    k个特征映射中的每个神经元都有一条边和l + 1层的第k个特征映射中的一个神经元相

    连。根据链式法则,第l层的一个特征映射的误差项(l;k)

    ,只需要将l + 1层对应特征映

    射的误差项(l+1;k)

    进行上采样操作(和第l层的大小一样),再和l层特征映射的激活值

    偏导数逐元素相乘,再乘上权重w(l+1;k)),就得到了(l;k)。

    第l层的第k个特征映射的误差项(l;k)

    的具体推导过程如下:

    (l;k)

    , @J(W; b;X; y)

    @Z(l;k)

    (6.18)

    = @X(l;k)

    @Z(l;k)

    

    @Z(l+1;k)

    @X(l;k)

    

    @J(W; b;X; y)

    @Z(l+1;k)

    (6.19)

    = f′

    l (Z(l)) ⊙

    (

    up

    (

    w(l+1;k)

    (l+1)))

    (6.20)

    = w(l+1;k)

    (

    f′

    l (Z(l)) ⊙ up((l+1))); (6.21)

    其中,up为上采用函数(Upsampling)。

    在得到第l层的第k个特征映射的误差项(l;k)

    ,目标函数关于第l层的第k个特征映

    射神经元滤波器W(l;k;p)

    i;j 的梯度

    @J(W; b;X; y)

    @W(l;k;p)

    i;j

    =

    wl ∑

    s=1

    hl ∑

    t=1

    (

    X(lDRAFT

    编译时间:2015-12-11 22:00

    56 第六章 卷积神经网络

    6.5.2 子采样层的梯度

    我们假定子采样层为l层,l +1层为卷积层。因为子采样层是下采样操作,l +1层的

    一个神经元的误差项对应于卷积层(上一层)的相应特征映射的一个区域。

    Z(l+1;k)

    =

    ∑

    p;

    Tp;k=1

    (

    W(l+1;k;p)

    X(l;p))

    + b(l+1;k)

    (6.26)

    第l层的第k个特征映射的误差项(l;k)

    的具体推导过程如下:

    (l;k)

    , @J(W; b;X; y)

    @Z(l;k)

    (6.27)

    = @X(l;k)

    @Z(l;k)

    

    @Z(l+1;k)

    @X(l;k)

    

    @J(W; b;X; y)

    @Z(l+1;k)

    (6.28)

    = f′

    l (Z(l)) ⊙

    0

    B @

    ∑

    p;

    Tp;k=1

    (

    (l+1;p) ?

    rot180(W(l;k;p)))

    1

    C A: (6.29)

    其中,?

    为宽卷积。

    公式6.23也刚好是卷积形式,因此目标函数关于第l层的第k个特征映射神经元滤波

    器W(l;k;p)

    的梯度可以写为:

    @J(W; b;X; y)

    @w(l;k)

    =

    ∑

    i;j

    (

    down(X(lDRAFT

    编译时间:2015-12-11 22:00

    第七章 循环神经网络

    前馈神经网络的输入和输出的维数都是固定的,不能任意改变。当处理序列数据时,前馈神经网络就无能力为了。因为序列数据是变长的。为了使得前馈神经网络能处理变

    长的序列数据,一种方法是使用延时神经网络(Time-Delay Neural Networks,TDNN)

    [Waibel et al., 1989]。

    循环神经网络(Recurrent Neural Network,RNN),也叫递归神经网络。这里为了

    区别与另外一种递归神经网络(Recursive Neural Network),我们称为循环神经网络。在

    前馈神经网络模型中,连接存在层与层之间,每层的节点之间是无连接的。

    循环神经网络通过使用带自反馈的神经元,能够处理任意长度的序列。循环神经网

    络比前馈神经网络更加符合生物神经网络的结构。循环神经网络已经被广泛应用在语音

    识别、语言模型以及自然语言生成等任务上。

    给定一个输入序列x(1:n)

    = (x(1); x(2); : : : ; x(t); : : : ; x(n)),循环神经网络通过下面公

    式更新带反馈边的隐藏层的活性值h(t)

    :

    ht =

    8

    <

    :

    0 t = 0

    f(htDRAFT

    编译时间:2015-12-11 22:00

    58 第七章 循环神经网络

    输出层

    隐藏层 延迟器

    输入层

    xt

    ht

    htDRAFT

    编译时间:2015-12-11 22:00

    7.1 简单循环网络 59

    7.1.1 梯度

    循环神经网络的参数训练可以通过随时间进行反向传播(Backpropagation Through

    Time,BPTT)算法[Werbos, 1990]。图7.3给出了随时间进行反向传播算法的示例。

    假设循环神经网络在每个时刻t都有一个监督信息,损失为Jt。则整个序列的损失为

    J = ∑T

    t=1 Jt。

    损失J关于U 的梯度为:

    @J

    @U

    =

    T ∑

    t=1

    @Jt

    @U

    (7.3)

    =

    T ∑

    t=1

    @ht

    @U

    @Jt

    @ht; (7.4)

    其中,ht是关于U 和htDRAFT

    编译时间:2015-12-11 22:00

    60 第七章 循环神经网络

    J1 J2 J3 J4    JT

    h1 h2 h3 h4    hT

    x1 x2 x3 x4    xT

    图 7.3: 按时间展开的循环神经网络

    经过t DRAFT

    编译时间:2015-12-11 22:00

    7.2 长短时记忆神经网络:LSTM 61

    出一个非常好的解决方案,就是引入门机制(Gating Mechanism)来控制信息的累积速

    度,并可以选择遗忘之前累积的信息。这就是下面要介绍的长短时记忆神经网络。

    7.2 长短时记忆神经网络:LSTM

    长短时记忆神经网络(Long Short-Term Memory Neural Network, LSTM)[Hochre-

    iter and Schmidhuber, 1997]是循环神经网络的一个变体,可以有效地解决简单循环神经

    网络的梯度爆炸或消失问题。

    LSTM模型的关键是引入了一组记忆单元(Memory Units),允许网络可以学习何时

    遗忘历史信息,何时用新信息更新记忆单元。在时刻t时,记忆单元ct记录了到当前时刻

    为止的所有历史信息,并受三个“门”控制:输入门it, 遗忘门ft和输出门ot. 三个门的

    元素的值在[0; 1]之间。

    在时刻t时LSTM的更新方式如下:

    it = (Wixt + UihtDRAFT

    编译时间:2015-12-11 22:00

    62 第七章 循环神经网络

    ctDRAFT

    编译时间:2015-12-11 22:00

    参考文献

    James A Anderson and Edward Rosenfeld. Talking nets: An oral history of neural

    networks. MiT Press, 2000.

    Yoshua Bengio. Learning deep architectures for AI. Foundations and trends R ? in Machine

    Learning, 2(1):1127, 2009.

    Yoshua Bengio, Patrice Simard, and Paolo Frasconi. Learning long-term dependencies

    with gradient descent is di?cult. Neural Networks, IEEE Transactions on, 5(2):157

    166, 1994.

    Yoshua Bengio, Jean-Sébastien Senécal, et al. Quick training of probabilistic neural nets

    by importance sampling. In AISTATS Conference, 2003.

    C.M. Bishop. Pattern recognition and machine learning. Springer New York., 2006.

    P.F. Brown, P.V. Desouza, R.L. Mercer, V.J.D. Pietra, and J.C. Lai. Class-based n-gram

    models of natural language. Computational linguistics, 18(4):467479, 1992.

    Kyunghyun Cho, Bart Van Merri?nboer, Caglar Gulcehre, Dzmitry Bahdanau, Fethi

    Bougares, Holger Schwenk, and Yoshua Bengio. Learning phrase representa-

    tions using rnn encoder-decoder for statistical machine translation. arXiv preprint

    arXiv:1406.1078, 2014.

    Junyoung Chung, Caglar Gulcehre, KyungHyun Cho, and Yoshua Bengio. Empirical

    evaluation of gated recurrent neural networks on sequence modeling. arXiv preprint

    arXiv:1412.3555, 2014.

    Michael Collins. Discriminative training methods for hidden markov models: Theory

    and experiments with perceptron algorithms. In Proceedings of the 2002 Conference

    on Empirical Methods in Natural Language Processing, 2002.

    Hal Daumé III. A course in machine learning. http:ciml.info. [Online].

    John Duchi, Elad Hazan, and Yoram Singer. Adaptive subgradient methods for online

    learning and stochastic optimization. The Journal of Machine Learning Research, 12:

    21212159, 2011.

    R. Duda, P. Hart, and D. Stork. Pattern Classication. Wiley, New York, 2nd edition,2001. ISBN 0471056693.DRAFT

    编译时间:2015-12-11 22:00

    64 参考文献

    Charles Dugas, Yoshua Bengio, Fran?ois Bélisle, Claude Nadeau, and René Garcia. In-

    corporating second-order functional knowledge for better option pricing. Advances in

    Neural Information Processing Systems, pages 472478, 2001.

    Je?rey L Elman. Finding structure in time. Cognitive science, 14(2):179211, 1990.

    Yoav Freund and Robert E Schapire. Large margin classication using the perceptron

    algorithm. Machine learning, 37(3):277296, 1999.

    Xavier Glorot, Antoine Bordes, and Yoshua Bengio. Deep sparse rectier neural networks.

    In International Conference on Articial Intel ligence and Statistics, pages 315323,2011.

    Ian Goodfellow, Aaron Courville, and Yoshua Bengio. Deep learning. Book in preparation

    for MIT Press, 2015. URL http:goodfeli.github.iodlbook.

    T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning. Springer,New York, 2001.

    Geo?rey Hinton, Li Deng, Dong Yu, George E Dahl, Abdel-rahman Mohamed, Navdeep

    Jaitly, Andrew Senior, Vincent Vanhoucke, Patrick Nguyen, Tara N Sainath, et al.

    Deep neural networks for acoustic modeling in speech recognition: The shared views

    of four research groups. Signal Processing Magazine, IEEE, 29(6):8297, 2012.

    Geo?rey E Hinton and Ruslan R Salakhutdinov. Reducing the dimensionality of data

    with neural networks. Science, 313(5786):504507, 2006.

    Sepp Hochreiter and Jürgen Schmidhuber. Long short-term memory. Neural computation,9(8):17351780, 1997.

    Sepp Hochreiter, Yoshua Bengio, Paolo Frasconi, and Jürgen Schmidhuber. Gradient

    ow in recurrent nets: the di?culty of learning long-term dependencies, 2001.

    David H Hubel and Torsten N Wiesel. Receptive elds and functional architecture of

    monkey striate cortex. The Journal of physiology, 195(1):215243, 1968.

    M.I. Jordan. Learning in Graphical Models. Kluwer Academic Publishers, 1998.

    Alex Krizhevsky, Ilya Sutskever, and Geo?rey E Hinton. Imagenet classication with

    deep convolutional neural networks. In Advances in neural information processing

    systems, pages 10971105, 2012.

    Yann LeCun, Léon Bottou, Yoshua Bengio, and Patrick Ha?ner. Gradient-based learning

    applied to document recognition. Proceedings of the IEEE, 86(11):22782324, 1998.

    Ryan McDonald, Keith Hall, and Gideon Mann. Distributed training strategies for the

    structured perceptron. In Human Language Technologies: The 2010 Annual Confer-

    ence of the North American Chapter of the Association for Computational Linguistics,pages 456464. Association for Computational Linguistics, 2010.

    Marvin Minsky and Papert Seymour. Perceptrons. 1969.

    Marvin L Minsky and Seymour A Papert. Perceptrons - Expanded Edition: An Intro-

    duction to Computational Geometry. MIT press Boston, MA:, 1987.

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    参考文献 65

    T.M. Mitchell. Machine learning. Burr Ridge, IL: McGraw Hill, 1997.

    Andriy Mnih and Yee Whye Teh. A fast and simple algorithm for training neural prob-

    abilistic language models. arXiv preprint arXiv:1206.6426, 2012.

    Vinod Nair and Geo?rey E Hinton. Rectied linear units improve restricted boltzmann

    machines. In Proceedings of the 27th International Conference on Machine Learning

    (ICML-10), pages 807814, 2010.

    Albert BJ Noviko?. On convergence proofs for perceptrons. Technical report, DTIC

    Document, 1963.

    F. Rosenblatt. The perceptron: A probabilistic model for information storage and orga-

    nization in the brain. Psychological review, 65(6):386408, 1958.

    David E Rumelhart, Geo?rey E Hinton, and Ronald JWilliams. Learning representations

    by back-propagating errors. Cognitive modeling, 5:3, 1988.

    Ilya Sutskever, Oriol Vinyals, and Quoc VV Le. Sequence to sequence learning with

    neural networks. In Advances in Neural Information Processing Systems, pages 3104

    3112, 2014.

    AlexanderWaibel, Toshiyuki Hanazawa, Geo?rey Hinton, Kiyohiro Shikano, and Kevin J

    Lang. Phoneme recognition using time-delay neural networks. Acoustics, Speech and

    Signal Processing, IEEE Transactions on, 37(3):328339, 1989.

    Paul Werbos. Beyond regression: New tools for prediction and analysis in the behavioral

    sciences. 1974.

    Paul J Werbos. Backpropagation through time: what it does and how to do it. Proceed-

    ings of the IEEE, 78(10):15501560, 1990.

    DE Rumelhart GE Hinton RJ Williams and GE Hinton. Learning representations by

    back-propagating errors. Nature, pages 323533, 1986.

    Matthew D Zeiler. Adadelta: An adaptive learning rate method. arXiv preprint

    arXiv:1212.5701, 2012.

    邱锡鹏:《神经网络与深度学习》讲义 http:nlp.fudan.edu.cndl-bookDRAFT

    编译时间:2015-12-11 22:00

    索引

    修正线性单元, 40

    准确率, 26

    分类器, 14

    前馈神经网络, 41

    卷积, 48

    卷积神经网络, 48

    反向传播算法, 45

    召回率, 27

    多层感知器, 38

    宏平均, 27

    平均感知器, 35

    循环神经网络, 57

    微平均, 27

    感知器, 28

    投票感知器, 35

    数据, 14

    数据集, 15

    样本, 15

    梯度消失问题, 46

    正确率, 26

    泛化错误, 11

    特征映射, 50

    简单循环网络, 58

    语料库, 15

    连接表, 51

    错误率, 26

    长短时记忆神经网络, 61

    门机制, 61

    随时间进行反向传播, 57 ......

您现在查看是摘要介绍页, 详见PDF附件(688KB,70页)