神经网络与深度学习

第一章 绪论

  • 神经网络:一种以(人工)神经元为基本单元的模型
  • 深度学习:一类机器学习问题,主要解决贡献度分配问题

一、人工智能

神经网络 人工智能关系 人工智能神经网络系统_神经网络

1. 图灵测试

  • “一个人在不接触对方的情况下,通过一种特殊的方式,和对方进行一系列的问答。如果在相当长时间内,他无法根据这些问题判断对方是人还是计算机,那么就可以认为这个计算机是智能的”。
  • —Alan Turing [1950]
    《Computing Machinery and Intelligence》

2. 人工智能(artificial intelligence,AI)

  • 就是让机器具有人类的智能。
  • “计算机控制”+“智能行为”
  • 人工智能这个学科的诞生有着明确的标志性事件,就是1956年的达特茅斯(Dartmouth)会议。在这次会议上,“人工智能”被提出并作为本研究领域的名称。

3. 人工智能的研究领域

  • 让机器具有人类的智能
  • 机器感知(计算机视觉、语音信息处理)
  • 学习(模式识别、机器学习、强化学习)
  • 语言(自然语言处理)
  • 记忆(知识表示)
  • 决策(规划、数据挖掘)

4. 发展历史

神经网络 人工智能关系 人工智能神经网络系统_机器学习_02

二、如何开发一个人工智能系统?

1. 专家知识(人工规则)

神经网络 人工智能关系 人工智能神经网络系统_人工智能_03

  • 这个规则是人能够知道的,比较容易实现
  • 医生看病,体温高于多少就算发烧

2. What’s the Rule?

神经网络 人工智能关系 人工智能神经网络系统_机器学习_04


神经网络 人工智能关系 人工智能神经网络系统_神经网络_05

  • 很难总结规则 -> 机器学习:让计算机自动去总结规则
  • 人不知道怎么做的,但是人完成这个任务很容易

3. 机器学习 ≈ 构建一个映射函数

神经网络 人工智能关系 人工智能神经网络系统_人工智能_06

4. 芒果机器学习 - 如果判断芒果是否甜蜜?

4.1 准备数据
  • 从市场上随机选取的芒果样本(训练数据),列出每个芒果的所有特征:
  • 如颜色,大小,形状,产地,品牌
  • 以及芒果质量(输出变量):
  • 甜蜜,多汁,成熟度
4.2 学习
  • 设计一个学习算法来学习芒果的特征与输出变量之间的相关性模型。
4.3 测试
  • 下次从市场上买芒果时,可以根据芒果(测试数据)的特征,使用前面计算的模型来预测芒果的质量。

三、表示学习

1. 机器学习

  • 当我们用机器学习来解决一些模式识别任务时,一般的流程包含以下几个步骤:
  • 特征工程(Feature Engineering)
  • 浅层学习(Shallow Learning):不涉及特征学习,其特征主要靠人工经验或特征转换方法来抽取。

2. 语义鸿沟:人工智能的挑战之一

  • 底层特征 VS 高层语义
  • 人们对文本、图像的理解无法从字符串或者图像的底层特征直接获得

3. 什么是好的数据表示?

  • “好的表示”是一个非常主观的概念,没有一个明确的标准。
  • 但一般而言,一个好的表示具有以下几个优点:
  • 应该具有很强的表示能力。
  • 应该使后续的学习任务变得简单。
  • 应该具有一般性,是任务或领域独立的。
  • 数据表示是机器学习的核心问题。

4. 表示形式

  • 局部表示
  • 离散表示、符号表示
  • One-Hot向量
  • 分布式(distributed)表示
  • 压缩、低维、稠密向量
  • 用O(N)个参数表示 O(2k)区间
  • k为非0参数,k<N

5. 一个生活中的例子:颜色

神经网络 人工智能关系 人工智能神经网络系统_机器学习_07

6. 语义表示

  • 如何在计算机中表示语义?

7. 表示学习

  • 如何自动从数据中学习好的表示
  • 通过构建具有一定“深度”的模型,可以让模型来自动学习好的特征表示(从底层特征,到中层特征,再到高层特征),从而最终提升预测或识别的准确性。

8. 传统的特征提取

8.1 特征提取
  • 线性投影(子空间)
  • PCA、LDA
  • 非线性嵌入
  • LLE、Isomap、谱方法
  • 自编码器
8.2 特征提取VS表示学习
  • 特征提取:基于任务或先验对去除无用特征
  • 表示学习:通过深度模型学习高层语义特征

四、深度学习

1. 表示学习与深度学习

  • 一个好的表示学习策略必须具备一定的深度
  • 特征重用
  • 指数级的表示能力
  • 抽象表示与不变性
  • 抽象表示需要多步的构造

2. 深度学习

  • 深度学习 = 表示学习 + 决策(预测)学习

五、神经网络

1. 神经网络如何学习?

  • 人脑有两种记忆:长期记忆和短期记忆。短期记忆持续时间不超过一分钟。如果一个经验重复足够的次数,此经验就可储存在长期记忆中。
  • 短期记忆转化为长期记忆的过程就称为凝固作用。
  • 人脑中的海马区为大脑结构凝固作用的核心区域。

2. 人工神经元

神经网络 人工智能关系 人工智能神经网络系统_机器学习_08

3. 人工神经网络

  • 人工神经网络主要由大量的神经元以及它们之间的有向连接构成。因此考虑三方面:
  • 神经元的激活规则
  • 主要是指神经元输入到输出之间的映射关系,一般为非线性函数。
  • 网络的拓扑结构
  • 不同神经元之间的连接关系。
  • 学习算法
  • 通过训练数据来学习神经网络的参数。
  • 人工神经网络由神经元模型构成,这种由许多神经元组成的信息处理网络具有并行分布结构。
  • 虽然这里将 神经网络结构大体上分为三种类型,但是大多数网络都是复合型结构,即一个神经网络中包括多种网络结构。

4. 神经网络

神经网络 人工智能关系 人工智能神经网络系统_神经网络_09

5. 如何解决贡献度分配问题?

神经网络 人工智能关系 人工智能神经网络系统_机器学习_10

六、神经网络发展史

  • 神经网络的发展大致经过五个阶段。

1. 第一阶段:模型提出

  • 在1943年,心理学家Warren McCulloch和数学家Walter Pitts和最早描述了一种理想化的人工神经网络,并构建了一种基于简单逻辑运算的计算机制。他们提出的神经网络模型称为MP模型。
  • 阿兰·图灵在1948年的论文中描述了一种“B型图灵机”。(赫布型学习)
  • 1951年,McCulloch和Pitts的学生Marvin Minsky建造了第一台神经网络机,称为SNARC。
  • Rosenblatt [1958]最早提出可以模拟人类感知能力的神经网络模型,并称之为感知器(Perceptron),并提出了一种接近于人类学习过程(迭代、试错)的学习算法。

2. 第二阶段:冰河期

  • 1969年,Marvin Minsky出版《感知器》一书,书中论断直接将神经网络打入冷宫,导致神经网络十多年的“冰河期”。他们发现了神经网络的两个关键问题:
  • 基本感知器无法处理异或回路。
  • 电脑没有足够的能力来处理大型神经网络所需要的很长的计算时间。
  • 1974年,哈佛大学的Paul Webos发明反向传播算法,但当时未受到应有的重视。
  • 1980年,Kunihiko Fukushima(福岛邦彦)提出了一种带卷积和子采样操作的多层神经网络:新知机(Neocognitron)

3. 第三阶段:反向传播算法引起的复兴

  • 1983年,物理学家John Hopfield对神经网络引入能量函数的概念,并提出了用于联想记忆和优化计算的网络(称为Hopfield网络),在旅行商问题上获得当时最好结果,引起轰动。
  • 1984年,Geoffrey Hinton提出一种随机化版本的Hopfield网络,即玻尔兹曼机。
  • 1986年, David Rumelhart和James McClelland对于联结主义在计算机模拟神经活动中的应用提供了全面的论述,并重新发明了反向传播算法。
  • 1986年,Geoffrey Hinton等人将引入反向传播算法到多层感知器
  • 1989 年,LeCun等人将反向传播算法引入了卷积神经网络,并在手写体数字识别上取得了很大的成功。

4. 第四阶段:流行度降低

  • 在20世纪90年代中期,统计学习理论和以支持向量机为代表的机器学习模型开始兴起。
  • 相比之下,神经网络的理论基础不清晰、优化困难、可解释性差等缺点更加凸显,神经网络的研究又一次陷入低潮。

5. 第五阶段:深度学习的崛起

  • 2006年,Hinton等人发现多层前馈神经网络可以先通过逐层预训练,再用反向传播算法进行精调的方式进行有效学习。
  • 深度神经网络在语音识别和图像分类等任务上的巨大成功。
  • 2013年,AlexNet:第一个现代深度卷积网络模型,是深度学习技术在图像分类上取得真正突破的开端。
  • AlexNet不用预训练和逐层训练,首次使用了很多现代深度网络的技术
  • 随着大规模并行计算以及GPU设备的普及,计算机的计算能力得以大幅提高。此外,可供机器学习的数据规模也越来越大。在计算能力和数据规模的支持下,计算机已经可以训练大规模的人工神经网络。