导图社区 神经网络与深度学习
复旦大学 邱锡鹏教授 著作《神经网络与深度学习》知识点汇总。本书主要介绍神经网络与深度学习中的基础知识、主要模型(卷积神经网络、递归神经网络等)以及在计算机视觉、自然语言处理等领域的应用。
编辑于2021-04-15 10:36:25DNA修饰 DNA甲基化 RNA修饰 蛋白修饰 组蛋白修饰 3D基因组 及其技术。人类每个细胞的基因组一样,但功能、形态、不一样。
测序、转录组测序、单细胞测序、基因调控、NGS、RNA 世界,RNA:存在于生物细胞以及部分病毒、类病毒的遗传信息载体、一般单链。
首都师范大学课程笔记,包括古典精神分析和新精神分析(弗洛伊德、阿德勒、荣格、埃里克森),特质论(奥尔波特、卡特尔)行为主义和社会学习(巴普洛夫、华生、斯金纳、班杜拉),行为主义(罗杰斯、马斯洛),认知流派(凯利、威特金、米歇尔)以及生物流派(艾森克)进化心理学等
社区模板帮助中心,点此进入>>
DNA修饰 DNA甲基化 RNA修饰 蛋白修饰 组蛋白修饰 3D基因组 及其技术。人类每个细胞的基因组一样,但功能、形态、不一样。
测序、转录组测序、单细胞测序、基因调控、NGS、RNA 世界,RNA:存在于生物细胞以及部分病毒、类病毒的遗传信息载体、一般单链。
首都师范大学课程笔记,包括古典精神分析和新精神分析(弗洛伊德、阿德勒、荣格、埃里克森),特质论(奥尔波特、卡特尔)行为主义和社会学习(巴普洛夫、华生、斯金纳、班杜拉),行为主义(罗杰斯、马斯洛),认知流派(凯利、威特金、米歇尔)以及生物流派(艾森克)进化心理学等
《神经网络与深度学习》 --邱锡鹏读书笔记
基本介绍:
神经网络、机器学习和深度学习的基本概念、模型和方法
深度学习的进展
数学分支的简要介绍
第一章 绪论
前言
人工智能领域中比比较成功的例子
本质是机器学习的一个分支,指一类问题以及解决这类问题的方法
1. 深度学习的一个机器学习问题:从有限样本中通过算法中介处一般性规律,并可以应用到新的位置数据上
2. 采用的模型一般比价复杂:样本的原始输入到输出目标之间的数据经过多个线性或非线性的组件,每个组件都会对信息加工,并进而影响后续的组件。所以我们最后得到输出结果是,并不知道每个组件的贡献是多少
贡献度分配问题(credit Assignment Problem,CAP)
3. 神经网络(Artificial Neural Network,ANN)
解决 贡献度分配问题的模型
受人脑神经系统的工作方式启发而构造的数学模型
两类神经元:接收外部信息和输出信息(其中处理的函数可以看成是一种深度的机器学习,及深度学习)
4. 神经网络与深度学习的区别
深度学习:可以采用神经网络模型或者其他模型(如 深度信念网络模型)
神经网络模型:是深度学习中主要采用的模型
人工智能
智能:Intelligence,智力➕能力
人工智能(Artificial Intelligence,AI):将机器具有人类的智能
图灵测试:
定义:一个人在不接触对方的情况下,通过一种特殊的方式和对象进行一些列的问答。如果在相当长时间内,他无法根据这些问题判断对方是人还是计算机,那么可以认为这个特计算机是智能的
如果要通过图灵测试,计算机需要具备理解语言、学习、记忆、推理、决策等能力,这样就延伸出了其他学科:机器感知(计算机视觉、语音信息处理)、学习(模式识别、机器学习、清华学习)、语言(自然语言处理)、记忆(知识表示)、决策(规划、数据挖掘)等
毛特达斯会议:让机器行为看起来就像是人所表现的智能行为一样,包括
感知
学习
认知
发展史
推理期
知识期
学习期(80 年代后)
人工智能的流派
符号主义(symbolism)
两个基本假设
信息可以用符号来表示
符号可以公共显式规则来操作
前期推理期和知识期取的大量成果
连接主义(connectionism)
仿生学派或生理学派,是认知科学领域中的一类信息处理的方法和理论
主要结构有大量简单的信息处理单元组成的互联网络,具有非线性、分布式、并行化、局部性计算以及自适应等特征
机器学习(machine learning,ML)
定义:从有限的观测数据中学习出具有一般性的规律,并利用这些规律对未知数据进行预测方法
浅层学习(shallow learning)
将数据表示为一组特征,特征的表示形似可以是连续的数值、离散的符号或其他形式,将这些特征输入到预测模型,并输出预测结果
不涉及特征学习,主要靠人工经验或特征转换方法来抽取
机器学习
数据形式多样:声音、图像、文本等
步骤 1:数据预处理,包括去除噪声等,如在文本分类中,去除停用词
步骤 2:特征提取,提取有效特征
步骤 3:特征转换:对特征加工,通过降维和升维等方法
降维处理
特征抽取(Feature Extraction)
特征选择(Feature Selection)
特征转换
主成分分析(Principal Components Analysis,PCA)
线性判别分析(Linear Discriminant Analysis,LDA)
步骤 4:预测
表示学习
一种学习算法可以自动学习有效特征,并提高最终学习机器模型的性能,这种学习就是表示学习
表示:为了提高机器学习的准确性,我们需要将输入学习信息转换为有效特征,一般称为表示
语义鸿沟(semanit Gap)
只输入数据的底层特征和高层语义信息之间的不一致性和差异性
两个核心问题
什么是好的表示
要求
具有很强的表示能力,即桐乡大小的向量可以表示更多信息
使得后续任务变得更加简单,需要包含更高层的语义信息
具有一般性,是任务领域独立的,虽然目前大部分表示学习方法还是局域某个任务来学习,但我们希望可以比较容易的迁移到其他任务上
表示特征
局部表示(Local Representation)
一种表示颜色的方法可以以不同名字来命名不同颜色,这中方式叫局部表示
通常为 one-hot 向量的形式
优点:
这种离散的表示方式具有很好解释型,利于人工归纳和总结特征,并公告特征组合进行高效的特征工程
通过多种特征组合得到的表示向量通常是稀疏的二值向量,用于线性模型计算效率高
缺点
one-hot 向量的维度太高,不能扩展,如果有新的颜色,需要增加一个维度来表示
不同颜色之间的相似度为 0,无法知道红色与中国红的相似度高于红色和黑色的相似度
分布式表示(distributed Representation)
用 RGB 表示颜色,不同颜色对应到 RGB 三维空间中的一个点及为分布式表示
分布式表示可以表示为低维的稠密向量
嵌入
使用神经网络将高纬度的局部表示空间映射到一个低维度的分布式表示空间
在低维度的空间中,每个特征不再是坐标轴上的点,而是分散在整个低维空间中
如何学习到好的表示
一般用分布式表示,通常需要从底层特征开始,经过多步非线性展缓才能得到
深层结构优点:可以增加特征的重用性,从而指数级的增加表示能力
方法:主成分分析。线性判别分析、独立成分分析
学习得到的特征不一定可以提升为重罪模型的性能
深度学习
深度:指原始数据进行非线性特征转换的次数,
是机器学习的子问题,主要目的是从数据中自动学习有效的特征
将原始数据通过多步的的特征转换得到亦庄特征表示,并进一步苏入到预测函数得到最终结果
关键问题:贡献度分配问题
模型:神经网络模型,可以使用误差繁星传播算法,可以解决贡献度分配问题
流程
原始数据
底层特征
中层特征
高层特征
表示学习
预测
深度学习
结果
端到端学习(end-to-end learning)
学习过程中不进行分模块或者分阶段训练,直接优化任务的总体目标
不需要明确给出不同模块或阶段的功能,中间过程不要人为干预
需要解决贡献度分配问题
神经网络
定义:在机器学习领域,神经网络指有很多人工神经元构成的网络结构模型,这些人工神经元之间的连接强度是可以学习的参数
人脑神经网络
结构
神经元(Neuron)
携带和传输信息的细胞
结构
细胞体(soma)
神经细胞膜上有各种受体和例子通道,胞膜的受体可与相应的化学物质神经递质结合,引起离子通透性及膜内外电位差发生改变,产生相应的生理活动:兴奋或抑制
细胞突起
树突(dendrite)
可以接受刺激并将兴奋传入到细胞体,每个神经元可以有一个或多个树突
轴突(Axon)
将自身兴奋状态从胞体传送到另个神经元或其他组织,每个神经元只有一个轴突
突触(synapse)
神经元信息传递
神经胶质细胞
神经干细胞
血管
赫布理论(Hebbian Theory)
突触可塑性基本原理:当神经元 A 的一个轴突和神经元 B 很近,足以对它产生影响,并且持续的、重复性的参与对神经元 B 的兴奋,那么这两个神经元或其中之一会发生某种生长过程或者新陈代谢变化,以至神经元 A 作为能使神经元 B 兴奋的细胞之一,它的效能增强了
人保两种记忆
长期记忆
短期记忆
凝固作用
短期记忆持续不超过 1分钟,但如果一个经验重复足够的次数,此经验就可存储为长期记忆,短期记忆转换为长期记忆的过程
核心区域:海马区
人工神经网络
定义
一种模拟人脑神经网络而设置的计算模型,从结构、实现机理和功能还是那个模拟人脑神经网络,由多个节点(人工神经元)相互连接而成,可以对数据之间的复杂关系进行建模,不同节点之间的连接被赋予的不同权重,每个权重代表了一个节点对另一个节点的影响大小,每个接ID你都会一个特定函数,来自其他节点的信息经过相应权重综合计算,输入一个激活函数中并得到一个新的活性值
赫布网络
感知器
反向传播算法
网络容量:理论上,只要有足够的训练数组和神经元数量,人工神经网络就可以学习很多复杂的函数,我们可以把一个人工神经网络塑造复杂函数的能力称为,与可以被存储在网络中昂的信息复杂度以及数量相关
发展历史
第一阶段:模型提出(1943-1969)
MP 模型
Hebbian 法则
感知器
第二阶段:冰河期(1969-1983)
反向传播算法
新知机
第三阶段:反向传播算法引起的复兴(1983-1995)
联想记忆(Associative Memory)
Hopfield 网络
玻尔兹曼机(Boltzmann Machine
反向传播算法
分布式并行处理(Parallel Distributed Processing,PDP)
自动微分:反向传播算法扩展
梯度消失问题(Vanishing Gradient Problem)
阻碍神经网络的发展,特别难是循环神经网络
解决:1)无监督学习来逐层训练每一层循环神经网络,即预测下一个输入;2)反向传播算法
第四阶段:流行度降低(1995-2006)
支持向量机和其他更简单的算法在机器学习领域中的流行度主键炒股了神经网络
第五阶段:深度学习的崛起(2006-今)
常用的深度学习框架
Theano
Caffe
TensorFlow
PyTorch
飞浆(PaddlePaddle)
Chainer
MXNet
第二章 机器学习概述
序
让计算机从数据中进行自动学习,得到某种知识(规律) ,即通常指一类问题以及解决这类问题的方法,如何从观测数据(样本)中寻找规律,并利用学习到的规律对未知或者无法观测 的数据进行预测。
2.1 基本概念
特征(feature)
特征向量(feature vector):所有特征构成的向量

假如训练集D 由 N 个严格不能祖晨个,每个严格不能都是独立同分布的( Identically and Independently Distributed,IID),即独立的从相同数据分布中抽取的,标记为 
标签(label)
样本(sample)\示例(instance)
标记好特征以及标签
数据集(data set)
训练集(training set)\训练样本(training sample)
测试集(test set)\测试样本(test sample)
2.2 三个基本要素
1. 模型
线性模型
线性模型的假设空间为一个参数化的线性函数族
非线性模型
可以写为多个非线性基函数
2. 学习准则
损失函数
是一个非负实数函数,用来量化模型预测和真实标签之间的差异
0-1 损失函数

平方损失函数(Quadratic Loss Function)

交叉熵损失函数(Cross-Entropy loss function)
Hinge 损失幻术
风险最小化准则

过拟合(overfitting)
风险最小化原则很容易导致模型在训练集上错误率很低,但在位置数据上错误率很高,
产生原因:训练数据少、噪声以及模型能力强
解决:在经验风险最小化基础上再引入参数的正则化来限制模型能力
结构风险最小化
过拟合问题往往是由于训练数据少和噪声以及模型能力强等原因造成的. 为了解决过拟合问题, 一般在经验风险最小化的基础上再引入参数的正则化 (Regularization)来限制模型能力,使其不要过度地最小化经验风险.这种准 则就是结构风险最小化(Structure Risk Minimization,SRM)准则:
欠拟合(underfitting)
模型不能很好的拟合训练数据,在训练集上的错误率比较高
原因:模型能力不足
解决:
3. 优化算法
最优化

参数与超参数:
参数:

超参数
除参数外,还有一类参数用于定义模型结构或优化策略的
一般都是组合优化问题
包括
聚类算法中的类别个数
梯度下降法中的步长
正则化项的系数
神经网络的层数
支持向量机中的核函数等
1. 梯度下降法

2. 提前停止
在梯度下降训练过程中,由于过拟合原因,在训练样本上收敛的参数,并不一定在测试集上最优,因此,除了训练集和测试集之外,有时也会使用一个严整治来进行模型选择。当在验证集上从错误率不再下降,就停止迭代
3. 随机梯度下降法
批量梯度下降法,在每次迭代时需要计算每个样本上损失函数的梯度并求和,当训练集中的样本数 N 很大是,空间复杂度较高,每次迭代计算开销也很大。从真实数据中采集 N 个样本(样本独立同分布的从甚至数据中随机抽取),然后计算经验风险的地图来近似期望风险的梯度
4. 小批量梯度下降法
2.3 机器学习简单示例——线性回归
是一种对自变量和因变量之间关系进行建模的回归分析,自变量数量为 1 时为简单回归,自变量数量大于 1 时为多元回归
1. 参数学习
经验风险最小化
平方损失函数
最小二乘法(least square method,LSM)
结构风险最小化
最大似然估计(maximum likelihood Estimation,MLE)
最大后验估计
2.4 偏差-方差分解
让机器学习在模型的拟合能力和负责度之间取的一个较好的平衡
2.5 机器学习算法的类型
监督学习(supervised learning):训练集中每个样本都有标签
回归问题(regression)
分类问题(classification)
二分类(binary classification)
多分类(multi-class classification)
结构化学习问题(structured learning)
无监督学习(unsupervised learning,UL)
不包含目标标签的训练样本中自动学习到一些有价值的信息
典型的无监督学习:聚类、密度估计、特征学习、降维等
强化学习(reinforcement learning,RL)
指从一类通过交互来学习的机器学习算法。
在强化学习中,智能体根据环境的状态做出一个动作,并得到及时或延时降低,智能体在和环境的交互中不断学习并调整策略,以获取最大化的期望总回报
弱监督学习(weakly supervised learning)和半监督学习(semi-supervised learn,SSL)
半监督学习
2.6 数据的特征表示
原始特征 (raw Feature)
图像特征
像素灰度值
直方图
宽高比
纹理特征
边缘特征
文本特征
词袋(bag-of-words,BoW)
我喜欢读书和我讨厌读书,BoW 表示为x1= 【1101】,x2= 【1011】
N元特征(N-Gram Feature)
n 个连续词构成一个基本单元,再用词袋表示,
我、我喜欢、我讨厌、喜欢读书、讨厌读书、读书,6 个特征单元 x1=【110101】,x2=【101011】
表示学习
直接用数据的原始特征进行预测,对机器学习模型能力要求比较高
原始特征直接学习
特征比较单一,需要进行(非线性)组合才能发挥作用
特征之间冗余度比较高
并不是所有的特征都会预测有用
很多特征通常是异变的
特征往往存在一些噪音
需要进行特征提取
特征工程(Feature engineering)
特征学习(Feature learning)\表示学习(Representation learning)
特征学习在一定程度上减少模型复杂性、缩短训练时间、提高模型泛化能、避免过拟合)
传统特征学习
特征选择(Feature Selection)
选取原始特征集合的一个有效自己,使得基于这个特征自己训练出来的模型准去率最高,保留有用的特征,移除冗余或者无关特征
子集搜索(subset search)
目标就是选择一个最优的候选子集,最暴力做法就是测试每个特征子集的准确率最高)
常采用贪心策略
向前搜索(forward search)
从空集合开始,每一轮添加该轮最优的特征
反向搜索(backward search)
从原始特征集合开始,每次删除最无用的特征
方法
过滤式方法(filter method)
不依赖具体机器学习模型的特征选择方法,每次增加最有信息量的特征,或删除最没有信息量的特征
通过信息增益(information gain)衡量
包裹式方法(wrapper method)
使用后续机器学习模型的准确率作为评价来选择一个特征子集的方法,每次增加或删除的最有用或最无用的特征,将机器学习模型包裹到特征选择过程的内部
正则化
特征抽取
构造一个新的特征空间,并将原始特征投影在新的空间中得到新的表示
方法
监督
目标是抽屉对一个特定的预测任务最有用的特征,如线性判别分析 (linear discriminant Analysis,LDA)
无监督
无监督的特征学习与具体任务无关,目标是减少冗余信息和噪音,如主成分分析(principal Component Analysis,PLA)和自编码器(Auto-Encoder,AE)
深度学习方法
2.7 评价指标
准确率(Accuracy)
错误率(Error Rate)
精确率(precision)和召回率(recall)
类别 c
真正例(True Prosive,TP)
假负例(False Negative,FN)
假正例(False Positive,FP)
假阴性
真负例(True Negative,TN)
混淆矩阵(confusion Matrix)
F 值(F measure)
宏平均(macro average)和微平均(micro average)
每一类、每一个严格不能
交叉验证(cross-Validation)
2.8 理论和定理
PAC 学习理论
计算学习理论:希望有一套理论能够分析问题难度、计算模型能力,为学习算法提供理论保证,并指导机器学习模型和学习算法的设计
可能近似正确(Probably Approximately Correct,PAC)
近似正确(Approximately Correct)
可能(probably)
泛化错误(generalization Error)
期望错误和经验错误之间的差异,是衡量机器学习模型是否可以很好泛化到位置数据
没有免费午餐定理(No Free Lunch Theorem,NFL)
对于基于迭代的最优化算法,不存在某种算法对所有问题都有效。如果一个算法对某些问题有效,那么它一定在另外一些问题上比比纯随机算法更差,任何算法都具有局限性
奥卡姆剃刀原理(Occam's Razor)
如无必要,勿增实体
与机器学习中正则很像:简单的模型泛化能力更好;如果两个性能相近的模型,我们应该选择更简单的模型
一种形式化:最小描述长度(Minimum Description Length,MDL)
丑小鸭定理(Ugly Duckling Theorem)
丑小鸭与白大鹅之间的区别和两只白大鹅之间的区别一样大
归纳篇置(inductive bias)
在机器学习中,很多学习算法经常会对学习中的问题做一些假设,这些假设就称为归纳偏执
归纳偏执在贝叶斯学习中经常称为先验
2.9 总结和深入阅读
第三章 线性模型
3.0 定义
是机器学习中应用最广泛的模型,指通过样本特定的线性组合在进行预测的模型
权重向量
决策函数(Decision Function)\判别函数(Discriminant Function)
3.1 线性判别函数和决策边界
线性分类模型(Linear Classification model)或线性分类器 (linear classifier)
由一个或多个线性的判别函数和非线性的决策函数组成
二分类(binary classification)
通常用正例(positive sample)和负例(Negative sample)来分表表示属于+1 和-1 的样本
超平面(hyperplane)\决策边界(decision boundary):将空间一分为二,划成 2 个区域,每个区域对应一个类别。
多分类(multi-class Classification)
常用的模式
“一对其余”方式
“一对一”方式
“argmax”方式

3.2 Logistics 回归(logistic Regression,LR)
基础
一种常用的处理二分类问题的线性墨西哥
激活函数(activation Function):将线性函数的值域从实数区间挤压到(0,1)之间,可以用来表示概率
联系函数(link Function):激活函数的逆函数
增逛特征向量和增广权重向量
参数学习
logistics 回归采用交叉熵作为损失函数,并使用梯度下降法来对参数进行优化
3.3 Softmax 回归 (softmax Regression)
也叫 multinomial 或多类(multi-class)的 logistics 回归,是逻辑回归在多分类问题上的推广
参数学习
使用交叉熵损失函数来学习最优的参数矩阵
3.4 感知器(perceptron)
基础
最简单的人工神经网络,只有一个神经元
对生物神经元的简单数学模拟,有与生物神经元相对应的不见,如权重(突触),偏置(阈值)及激活函数(细胞体),输出为+1 或-1
是一种简单的两类线性分类模型
参数学习
是一个景点的线性分类器的参数学习算法
一种错误驱动的在线学习算法
感知器的收敛性
如果训练集是线性可分的,那么感知器算法可以再有限次迭代后收敛 如果训练集不是线性可分的,那么这个算法则不能保证会收敛
感知器在线性可分数据上保证收敛,但存在以下不足
1. 在数据集线性可分时,感知器虽然可以找到一个超平面把两类数据分开,但并不能保证其泛化能力
2. 感知器对样本顺序比较敏感,每次迭代的顺序不一致时,找到的分割超平面也往往不一致
3. 如果训练集不是线性可分的,就永远不会收敛
参数平均感知器
如果训练数据是线性可分的,那么感知器可以找到一个判别函数来分割不同类的数据,如果间隔越大,收敛越快,但是感知器并不能保障判别函数是最优的(如泛化能力高),会导致过拟合。
机器学习到的权重向量和训练样本的顺序相关。在迭代次序上排在后面的错误样本比前面的错误样本对最终权重影响更大
为了提高感知器的鲁棒性和泛化能力,我们可以将感知器学习过程中的所有 k 个权重向量保存起来。最终分类结果通过这个 k 个不同权重的感知器投票决定,这个模型也称为投票感知器(Voted perceptron)
扩展到多分类
原始感知器是一种二分类模型,但也很容易扩散到多分类问题,甚至是更一般的结构化问题
广义感知器
广义感知器模型一般用来处理结构化问题学习。当广义感知器模型来处理 C 分类


3.5 支持向量机(support vector Machine,SVM)
是一个景点的二分类算法,其找到的分割超平面具有更好的鲁棒性
参数学习
支持向量机的优化问题为凸优化问题,满足强对偶性,即主优化问题可以通过最大化对偶函数来求解
对偶函数是一个凹函数,因此最大化对偶函数是一个凸优化问题,可以通过多种凸优化方法来进行求解
支持向量机的目标函数可以通过 SMO 等优化方法得到全局最优解,因此比其他分类器的学习效率更高。此外,支持向量机的决策函数只依赖于支持向量,与训练样本总数无关,分类速度比较快
核函数(kernel Function)
支持向量机一个重要求点就是使用核函数隐式地将样本从原始特征空间映射到更高维的空间,并解决原始特征空间中的线性不可分问题
软间隔(soft margin)
在支持向量机的优化问题中,约束条件比较严格,如果训练集中的样本在特征空间中不是线性可分的,就无法找到最优解。为了能够容忍部分不满足约束的样本,我们引入松弛变量(slack variable)
引入松弛变量的间隔称为软间隔
Hinge 损失函数
3.6 损失函数对比
logistics 回归、感知器和支持向量机,虽然决策函数相同,但使用了不同损失函数以及相应的优化方法,导致他们在实际任务上的表现存在一定差异
3.7 总结和深入阅读
第四章 前馈神经网络
4.0 前言
人工神经网络:一系列受生物学和神经科学启发的数学模型,通过对人脑的神经元网络进行抽象,构建人工神经元,并按照一定拓扑结构来建立人工神经元之间的连接,来模拟生物神经网络。
神经网络最早是作为一种主要的联结主义模型,分布式并行处理(parallel distriuted processing,PDP)
1. 信息表示是分布式的(非局部的)
2. 记忆和知识是存储在单元之间的连接上
3. 通过主键改变单元之间的连接长度来学习新的知识
联结主义的神经网络有着多种多样的网络结构以及学习方法,早期模型强调模型的生物学合理性,后期更关注对某种特定认知能力的模拟,比如物体识别、语言理解等,在引入误差反向传播改进其学习能力后,神经网络也越来越多的的应用在各种机器学习任务上。
4.1 神经元
定义
是构成神经网络基本单元,主要是模拟生物神经元的结构和特性,接收一组输入信号并产生输出
MP 神经元:激活函数 f 为 0 或 1 的阶跃函数 线代神经元:激活函数要求是连续可到的函数
激活函数
1. 连续并可导(允许少数点上不可导)的非线性函数,可导的激活函数可以直接利用数值优化的方法来学习网络参数
2. 激活函数及其导函数要尽可能的简单,有利于提高网络计算效率
3. 激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太小,否则会影响训练的效率和稳定性
sigmoid 型激活函数
指一类 S 型曲线函数,为两端饱和函数,常用的 sigmoid 函数有 logistics 函数和 tanh 函数
logistics 函数

将实数域的输入挤压到(0,1),当输入值在 0 附近时,sigmoid 型函数近似为线性函数;当输入值靠近两端时,对输入进行抑制,输入越小,越接近于 0,输入越大,月接近 1
装备了 logistics 激活函数的神经元具有以下性质
1. 其输出直接可以看做概率分布,使得神经网络可以更好地和统计学习模型进行结合
2. 可以看做是一个软性门(soft gate),用来控制其他神经元输出信息的数量
tanh 函数
也是一种 sigmoid 函数定义为

输出的是零中心化(zero-centerd),logistics 函数输出恒大于 0,非零中心化的输出会使得其后一次能的神经元的输入 发生偏置偏移(bias shift),并进一步使得梯度下降的收敛速度变慢
Hard-Logistic函数和 Hard-Tanh 函数
嗾使 sigmoid 函数,具有饱和性,但是计算开销较大
ReLUctant 函数
Rectified Linear Unit,修正线性函数,也叫 rectifier 函数,是目前深度神经网络中经常使用的激活函数,实际上是一个斜坡函数(ramp)
优点
采用 ReLUctant 的神经元只需要进行加、乘和比较的操作,计算上更加高效,被认为具有生物学合理性(biological plausibility),比如单侧抑制、宽兴奋边界
sigmoid 函数会导致一个非稀疏的神经网络,而 ReLU却具有很好的稀疏性,大约 50%神经元会处于激活状态
ReLU 函数左饱和函数,且 x>0时,倒数为 1,在一定程度上缓解了神经网络的梯度消失问题,加速梯度下降的收敛速度
缺点
输出是非零中心化的,给后一层的神经网络引入偏置偏移,会影响梯度下降的效率
ReLU 神经元在训练时会比较容易死亡
如果参数在一次不恰当的更新后,第一个隐藏层中的某个 ReLUctant 神经元在所有的训练数据上都不能被激活,那么这个神经元自身参数的梯度永远都会是 0,在以后的训练过程中永远不能被激活,这种现象称为死亡 ReLU问题(Dying ReLU Problem),且也有可能会发生在其他隐藏层
带泄露的 ReLU(Leaky ReLU)
带参数的 ReLU(parametric ReLU,PReLU)
引入一个可学习的参数,不同神经元可以有不同参数
指数线性单元(Exponential Liner Unit,ELU)
softplus 函数
可以看做是 rectifier 函数的平滑版本
switch 函数
定义
是一种自门控激活函数
高斯误差线性函数(Gaussian Error Linear Unit,GELU)
一种通过门控机制来调整其输出值的激活函数,与 Switch 函数比较类似
Maxout 单元
也是一种分段线性函数
4.2 网络结构
定义:单一神经元是远远不够的,需要通过很多神经元一起协作来完成复杂的功能。这样通过一定连接方式或信息传递方式进行协作的神经元可以看做是一个网络,就是神经网络
分类
前馈网络
记忆网络
图网络
图卷积网络
图注意力网络
消息传递神经网络
4.3 前馈神经网络(Feedforward Neural Network,FNN)
介绍
也叫多层感知器(multi-Layer Perceptron)
在前馈神经网络中个神经元分贝属于不同的蹭,每一层神经元都可以接收前一层神经元的信号,并产生信号输出到下一层,低 0 层为输入层,最后一层是输出成,其他的中间层是隐藏层
整个网络无反馈,信号从输入层向输出层单项传播,可用一个有向无循环图表示

通用近似定理

应用到机器学习
根据通用近似定义,神经网络在某种程度上可以作为一个“万能”函数来使用,可以用来进行复杂的特征转换,或逼近一个复杂的条件分布
在机器学习中,输入严格不能的特征对分类器的影响很大
要取的好的分类效果,需要过特征抽取
参数学习
梯度下降法需要计算损失函数对参数的偏导数,如果用过链式法则逐一对每个采纳数进行求偏导比较低效,在神经网络的训练中经常使用反向传播算法来高效的计算梯度
4.4 反向传播算法
第 l 层的一个神经元的误差项(或敏感性)是所有与该神经元相连的第 l+1 层的神经元的误差项的权重和,然后再乘上该神经元激活函数的梯度
4.5 自动梯度计算
神经网络的参数主要通过梯度下降来进行优化。当确定了风险函数以及网络结构后,我们就可以手动用链式法则来计算风险函数对每个参数的梯度,并用代码进行实现。但是手动求导并转换为计算机程序的过程非常琐碎并容易出错,导致神经网络十分低效。实际上,。我们可以让计算机来自动计算参数的梯度。
方法 1:数值微分(numerical differentiation)
用数值方法来计算函数的导数
方法 2:符号微分(symbolic differentiation)
一种基于符号计算的自动求导方法
符号计算,也叫代数计算,指用计算机来处理带有变量的数学表达式
方法 3:自动微分(Atuomatic Differentiation,AD)
是一种可以对一个(程序)函数进行计算导数的方法
符号微分处理对象是数学表达式,而自动微分的处理对象是一个 函数或者一段程序
基本原理
是所有的数值计算可以分解为一些基本操作,包括加减乘除和一些初等函数,然后利用链式法则来自动计算一些复合函数的地图
模式
前向模式
反向模式
反向模式和反向传播的计算梯度的方式相同ß
静态计算图(static computational Graph)
是在编译时构建计算图,计算图在构建好之后的程序运行时不能改变
动态计算图(Dynamic computational graph)
在程序运行时动态构建
符号微分和自动微分
利用计算图和链式法则来自动求解导数
4.6 优化问题
非凸优化问题
梯度消失问题
4.7 总结和深入阅读
第五章 卷积神经网络
5.0 前言
卷积神经网络(Convolutional Neural Network,CNN 或 ConvNet)
是一种具有局部连接、权重共享等特征的深层前馈神经网络ß
问题
1 参数太多
2 局部不变性特征,处理方式:进行数据增强
感受野(receptive field)
指视觉、听觉等神经系统中的一些神经元的特性,即神经元只能接受其所支配的刺激区域内的信号
组成
卷积层
聚会层
全连接层
特征
局部连接
权重共享
汇聚
使得卷积神经网络具有䘺程度上的平移缩放和旋转不变形
5.1 卷积
定义
是分析数学中一种重要的运算,在信号处理或图像处理汇总,经常使用一维或二维卷积
一维卷积
二维卷积
互相关(cross-correlation)
在机器学习和图像处理领域,卷积的功能主要是在一个图形(或某种特征)上滑动一个卷积核(即滤波器),通过卷积操作得到一组新的特征。在计算卷积的过程中,需要进行卷积和翻转
在具体实现上,一般会以相互相关操作来替代卷积,从而减少一些不必要的操作或者开销
互相关就是一个衡量两个序列相关性的函数,通过滑动窗口的点积计算来实现,
互相关与卷积的区别仅仅自安于卷积核是否进行幡状,因此互相关也成为不翻转卷积
卷积的变种
步长和零填充
增加卷积的多样性,更灵活的进行特征抽提
步长(stride):值卷积核在滑动时的时间间隔
零填充(zero padding):在输入向量两端进行补零
分类
窄卷积(narrow convolution)
步长 S=1,两端不补零 P=0,卷积后输出长度为 M-K+1
宽卷积(wide convolution)
步长 S=1,两端补零 P=K-1,卷积后输出长度 M+K-1
等宽卷积(Equal-Width Convolution)
步长 S=1,两端补零 P=(k-1)/2,卷积后输出长度为 M
数学性质
交换性
倒数
5.2 卷积神经网络
同卷积来替代全连接
局部连接
在卷积层中个的每一个神经元都之和下一层的某个局部窗口内的神经元相连,构成了一个局部连接网络,这样卷积层和下一层之间的连接数大大减少
权重共享
子主题
卷积层
作用:
提取一个局部区域的特征,不同的卷积核相当于不同的特征提取器
由于卷积神经网络主要应用在处理图像处理上,而图像为二维结构,因此未来更加充分利用图像的局部信息,通常将神经元组织成三维结构的神经层,其大小为高度 M×宽度 N×深度 D,由D 个 M×N 大小的特征映射构成
特征映射(Feature Map)
为一幅图像在经过卷积提取到的特征,每个特征映射可以作为一类抽取的图像特征。
为了提高卷积网络的表示能力,可以再每一层使用多个不同的特征映射,以更好的表示图像的特征
汇聚层(pooling layer)
也叫子采样层(subsampling layer)
作用是进行特征选择,降低特征数量,以减少参数数据量
卷积层虽然可以显著减少网络中连接的数量,但特征映射组中的神经元个数并没有显著减少,如果右面接一个分类器,分类器的输入维数依然很高,很容易出现过拟合,为了解决这个维他奶可以再卷积层之后机上一个汇聚层,从而降低特征维数,避免过拟合
汇聚: 指对每个区域进行下采样得到一个值,作为这区域的概括
汇聚函数
最大汇聚
平均汇聚
卷积神经网络的整体结构

由于卷积的操作性越来越灵活,汇聚层的作用越来越小,因此目前比价流行的卷积网络中,汇聚层的比例正在逐渐降低,趋向于全卷积网络
5.3 参数学习
在卷积中参数为卷积核中权重以及偏置,和全连接前馈网络类似,卷及网络可以通过误差反向传播法来进行参数学习
卷积神经网络的反向传播算法
卷积层和汇聚层中误差项的计算有所不同,因此分别计算
汇聚层
卷积层
5.4 集中典型的卷积神经网络
LeNet-5
7 层
C1 层卷积层
S2 层汇聚层
C3 卷积层
S4汇聚层
C 5 卷积层
F6 全连接层
输出层
由 10 个径向基函数(Radial Basis Function,RBF)组成
连接表
用于描述输入和输出特征映射之间的连接关系
AlexNet
是一个现代深度卷积网络模型,首次使用了很多现代卷积网络的技术方法,如GPU 进行训练,采用了 ReLU 作为非线性激活函数,使用了 Dropout防止过拟合,使用数据增强来提高模型准确率等
层数
第一个卷积层
第一个汇聚层
第二个卷积层
第二个汇聚层
第三个卷积层为两个路径的融合
第四个卷积层
第五个卷积层
第三个汇聚层
三个全连接层
Inception 网络
在 inception 网络中,一个卷积层含有多个不同大小的卷积操作,称为 inception 模型
inception 网络是由多个 inception 模块和少量的汇聚层堆叠而成
残差网络(Residual Network,ResNet)
通过非线性的卷积层增加直连边(shortcut connection)的方式来提高信息的传播效率
5.5 其他卷积方式
1. 转置卷积
仿射变换(affine transformation)
实现高维向低维的映射
从仿射变换的角度来看,两个卷积操作也是形式上的转置关系,因为,将低维特征映射到高维特征的卷积称为转置卷积(transposed convolution),也叫反卷积(deconvolution)
在卷积网络中,卷积层的前向计算和反向传播也是一种转置关系
微步卷积
2. 空洞卷积
增加输出单元的感受野
1 增加卷积核的大小
2 增加层数
增加函数数据量
3 在卷积之前进行汇聚操作
丢失一些信息
是一种不增加参数数量,同时增加输出单元感受野的一种方法,称为空洞卷积(atrous convolution),也叫膨胀卷积(dilated convolution)
5.6 总结和深入阅读
第六章 循环神经网络
6.0 前言
前馈神经网络
单向传递信息
生物神经网络:
神经元之间的连接关系要复杂得多
有限状态自动机
循环神经网络(recurrent neural Network,RNN)
是一类具有短期记忆能力的神经网络
神经元可以接受其他神经元的信息,也可以接受自身的信息,形成具有循环网络结构
比起前馈神经网络,RNN 更加符合生物神经网络
被广泛应用在语音识别、语言模型以及自然语言生成领域
参数学习可以通过随时间反向传播法来写
随时间反向传播法:按照时间的逆序将错误信息一步步向前传递
长程依赖问题
门控机制(Gating mechanism)
递归神经网络和图网络
6.1 给网络增加记忆能力
前馈网络是一种景泰网络,不具备短期记忆的能力,而处理时序数据并利用其它历史信息
延时神经网络(time daley neural Network,TDNN)
是在前馈网络中的非输出层都添加一个延时器,记录盛江源的最近几次活性值
有外部输入的非线性自回归模型 (nonlinear Autoregressive with exogenous inputs model,NARX)
自回归模型(autoregressive model,AR)
一种常用的时间序列模型
NARX
是自回归模型的扩展
神经网络
通过使用带自反馈的神经元,能够处理任意长度的时序数据
6.2 简单循环网络
简单循环网络(simple recurrent network,SRN)
是个非常简单的循环神经网络,只有一个隐藏层的神经网络
在一个两层的前馈神经网络中,连接存在相邻的层与层之间,隐藏层的节点之间是无连接的,而简单循环网络增加了从隐藏层到隐藏层的反馈连接
循环神经网络的计算能力
循环神经网络的通用近似定理

图灵完备(turing completeness)
是值一种数据操作规则,比如计算机编程语言,可以实现图灵机的所有功能,解决所有的可计算问题,目前主流编程语言(c++,Python)都是图灵完备的

6.3 应用到机器学习
序列到类别模式
用于:
序列数据的分类问题:输入为序列,输出为类别
如:在文本分类中,输入数据为单词的序列,输出该文本的类别
同步的序列到序列模式
用于
序列标注(sequence labeling)任务,即每一个时刻都有输入和输出,输入序列和输出的序列长度相同
如:在词性标注(Part-of-Speech Tagging)中,每一个单词都需要标注其对应的词性标签
异步的序列到序列模式
也叫编码器-解码器(Encoder-Decoder)模型
即输入序列和输出序列不需要有严格的对应关系,也不需要保持相同的长度
如:在机器翻译中,输入为源语言的单词序列,输出为目标语言的单词序列
6.4 参数学习
循环精神网络中存在一个递归调用的函数,因此极速验参数梯度的方式和前馈神经网络不太相同
随时间反向传播(BackPropagation Though Time,BPTT)
通过类似前馈神经网络的错误反向传播算法来计算地图
实时循环学习( Real-Time Recurrent Learing,RTRL)
通过前向传播的方式计算梯度
6.5 长程依赖问题
循环网络神经在学习过程中,主要问题在于梯度消失或者爆炸问题,很难建模长时间间隔(Long Range)的状态之间的依赖关系

避免梯度爆炸或者消失问题,最直接方式就是选取合适的参数,同时使用非饱和的激活函数,
通过改进模型或者优化方法来缓解循环网络的梯度爆炸和梯度小时问题
梯度爆炸
通过权重衰减或梯度阶段来避免
梯度消失
循环网络的主要问题
使用一些优化技巧
改变模型
6.6 基于门控的循环神经系统
引入门控机制来控制信息的积累速度,来改善循环网络神经的长程依赖问题
基于门控的循环网络神经(Gated RNN)
选择性的加入新的信息,并有选择性的遗忘之前积累的信息
长短期极易网络(Long Short-Term Memory Network,LSTM)
门控循环的单元网络(Gated Recurrent Unit,GRU)
长短期极易网络
是循环神经网络的一个变体,可以有效的解决简单循环神经网络的梯度爆炸或者小时问题
改进
新的内部状态
引入一个新的内部状态,专门进行线性的循环信息传递,同时非线性的输出信息给隐藏层的外部状态
门控状态
在数字电路中,门(gate)为一个二值变量{0,1},0 代表关闭,不许任何信息通过,1 代表开放,允许所有信息通过
控制信息传递的路径,
LSTM 的各种变体
主流的 SLTM 用三个门来动态控制内部状态应该遗忘多少历史信息,输入多少新信息,以及处理多少信息,通过门控机制进行改变并获得LSTM 不同变体
无遗忘门的 LSTM 网络
peephole 连接
耦合输入门和遗忘门
门控循环的单元网络
是一种比 LSTM 更加简单的循环神经网络
引入门控机制来控制信息更新的方式,与 LSTM 不同的是,GRU 不引入额外的记忆单元,
GRU 网络也是在公式的基础上引入一更新们(Update Gate)来控制当前状态需要从历史状态中保留多少信息
6.7 深层循环神经网络
如果将深度定义为网络中信息传递路径长度的话,循环神经网络可以看做是既深又浅的网络,以方便如果我们把循环网络按照时间排开,长时间间隔状态之间的路径很懂行,循环网络可以看做是一个非常深的网络;另一方面,如果同一时刻网络输入到输出之间的路径,是非常钱的
因此我们可以增加循环神经网络的深度从而增强循环外昂罗循环网络的能力
堆叠循环神经网络(Stacked Recurrent Neural Network,SRNN)
定义
一种常见的增加循环神经网络深度的方式,将多个循环网络堆叠起来
循环多层感知器(Recurrent Multi-Layer Preceptron,RMLP)
一个堆叠的简单循环网路
双向循环神经网络(Bidirectional Recurrent Neural Network,Bi-RNN)
由两层循环神经王璐组成,输入相同,但信息传递的方式不同
6.8 扩展到图结构
如果将循环神经网络按照时间展开,每个时刻隐藏状态看做一个节点,那么这些节点构成一个链式结构,每个节点都收到其父节点的小时,更新自己的状态,并传给子节点·。而链式结构是一种 特殊的图结构,我们可以比较容易的将这种消息传递的思想扩展到任意的图机构上。
递归神经网络(Recursive Neural Network,RecNN)
循环神经网络在有限循环图上的扩展
一般结构是树状的层次结构
图神经网络(Graph Neural Network,GNN)
将消息传递的思想扩展到图结构数据上的神经网络
6.9 总结和深入阅读
第七章 网络优化与正则化
7.0 前言
当前应用神经网络模型到机器学习的问题
优化问题
神经网络的损失函数是一个非凸函数,找到全局最优解通常比较困难
深度神经网络的参数通常非常多,训练数据也比较大,因此无法使用计算代价很高的二结构化方法,而一阶优化方法的训练效率通常较低
深度神经网络存在梯度小时或者爆炸问题,导致基于优化方法经常失效
泛化问题
由于深度神经网络的复杂度比较高,且拟合能力很强,很容易在训练集上产生过拟合,因此需要在训练升降网络时,同时也需要通过一定的正则化方法来改进网络的泛化能力
7.1 网络优化
定义:
寻找一个网络神经模型舍使得经验(结构)风险最小化的过程,包括模型选择以及参数学习等
深度神经网络是一个高度非线性的模型,其风险函数是一个非凸函数,因此风险最小化就是一个非凸函数
深度神经网络还存在梯度消失问题,
网络结构多样性
种类
卷及网络、循环网络、图网络等
高位变量的非凸优化
低维空间的非凸优化问题主要存在一些局部最优化,基于梯度下降优化方法壶陷入局部最优化,
因此低维度空间中非凸优化的主要难点:如何选择初始化参数和逃离局部嘴有点
鞍点(saddle point)
在高位空间中,非凸优化难点不在于逃离局部最优点,而是如何逃离鞍点
基于梯度下降的优化方法会在鞍点附近接近于停止,很难在这些安点钟逃离,因此随机梯度下降对于高位空间中的非凸优化问题非常重要,通过在梯度方向上引入随机值可以有效逃离鞍点
平坦最小值(Flat Minima)
深度神经网络的参数非常多,且有一定的冗余性,这使得每单个参数对最终损失是影响都比较小,因此会导致函数在局部最小解附近通常是一个平坦的区域,称为平坦最小值
在一个平坦最小值的领域内,所有点对应的训练损失都比较接近,表明我们在训练神经网络时,不需要精确的找到一个局部最小解,只要在一个局部在最小解的领域内就足够了。
平坦最小值通常被认为和模型泛化能力有对应关系,一般而言,当一个模型收敛到一个平坦的局部最小值时,其鲁棒性更高,即,微小的参数变得不会剧烈印象模型能力
而当一个模型收敛到一个尖锐的局部最小值时,其鲁棒性也会比较差,具备良好的泛化能力的模型通常应该是鲁棒的
局部最小解的等价性
在非常大的神经网络中,大部分的局部最小解是等价的,他们在测试集上性能都比较类似
局部最小解对应的训练损失都可能非常接近于全局最小解训练损失
虽然神经网络有一定概率收敛于比较差的局部最小值,但随着网络模型增加,网络陷入比较差的局部最小值概率大大降低,
在驯良神经网络时,我们通常没有必要找全局最小值,这反而会可能导致过拟合
神经网络的改善方法
目标:找打更好的局部最小值和提高优化效率
1. 使用更有效的优化算法来提高梯度下降优化方法的效率和稳定性,比如动态学习率调整、梯度估计修正等
2. 使用更好的参数初始化方法、数据预处理方法来提高优化效率
3. 修改网络结构来得到更好的优化地形(Optimization Landscape),如使用 ReUL 激活函数、残差连接、逐层归一化等
4. 使用更好的超参数优化
7.2 优化算法
梯度下降法
批量梯度下降
随机梯度下降
小批量梯度下降
优化算法
调整学习率,使得优化更稳定
梯度估计修正,优化训练速度
小批量梯度下降
在训练深度神经网络时,训练数据的规模通常比较大,如果在梯度下降时,每次迭代都要计算整个训练数据上的梯度,需要较多的训练资源
大规模训练集中的数据通常会非常冗余,也没有必要在整个训练集上计算梯度
在训练深度神经网络时,经常使用小批量梯度下降法
影响因素
批量大小 K
学习率α
梯度估计
批量大小(Batch Size)
一般而言,批量大小不影响随机梯度的期望,但是会影响随机梯度方差。批量大小越大,随机梯度的方差越小,引入的噪音越小,训练越稳定,可以设计较大的学习率
而批量大小较少是,需要设置较小的学习率,否则模型会不收敛,学习率通常要随着批量大小的增大而相应的增大
线性缩放规则(liner scaling rule)
当批量大小增加 m 倍时,学习效率也增加 m 倍
往往在批量大小较小时使用,当批量大小非常大时,线性缩放会是的训练不稳定

学习率调整
如果过大不会收敛,如果过小则会收敛太慢
调整:学习率衰减、学习率预热、周期性学习率调整以及一些自适应调整学习方法,如 AdaGrad、RMSprop。AdaDelta 等
学习率衰减
学习率在一开始要保持大些来保证收敛速度,在收敛到最优点时要小写,以避免来回震荡
衰减方法
分段常数衰减(Piecewise Constant Decay)
逆时衰减(Inverse Time Decay)
指数衰减(Exponential Decay)
自然指数衰减(Natural Exponential Decay)
余弦衰减(Cosine Decay)
学习率预热
在小批量梯度下降法中,当批量大小的设置比较大时,通常需要比较大的学习率。当刚刚开始训练时,由于参数是随机初始化的,梯度往往也比较大,再加上比较大的初始学习率,会使得训练不稳定
为了提高训练稳定系,可以再最初几轮迭代时,采用较小的学习率,等梯度下降到一定程度后在恢复到初始的学习率,这种方法称为学习率预热
周期性学习率调整
为了使得梯度下降法能够逃离鞍点或者尖锐最小值,可以再训练过程稿周期性的增大学习率。当单数处于尖锐最小值附近时,增大学习率有助于逃过尖锐最小值;当参数处于平坦最小值附近时,增大学习率依然可能在该平坦最小值的吸引域(Basin ofAttraction)内
周期性的增大学习率虽然可能短时间内损害优化过程,使得网络收敛的稳定性变差,但从长期来看有助于更高的局部最优解
循环学习率(Cyclic Learing rate)
让学习率在一个区域内周期性的增大缩小
三角循环学习率(Triangular cyclic Learingrate)
通常可以使用线性缩放来调整学习率
带热重启的随机梯度下降( Stochastic Grdient Descent with Warm Restarts,SGDR)
使用热重启方式来替代学习衰减率的方法
学习率每间隔一定周期后重启初始化为某个预先设定值,然后逐渐衰减,每次重启后模型参数不是从头开始优化,而是重启前的采纳数基础上继续优化
AdaGrad 算法
节点正则化思想,每次迭代时自适应的调整每个参数的学习率
RMSProp 算法
一种自适应学习率的方法,在有些情况下可以避免 AdaGrad 算法中学习率不断单调下降以至于过早衰减的缺点
AdaDelta算法
是 AdaGrad 算法的改进
梯度估计修正
在随机(小批量)梯度下降法中,如果每次选取严格不能数量比较小,损失会呈现震荡的下降方式,也就说,随机梯度下降方法中没地迭代的梯度估计和整个训练集上的最优梯度并不一致,具有一定的随机性
一种有效缓解梯度估计随机性的方式是通过使用最近一段时间内的平均梯度来代替当前时刻的随机梯度作为参数更新的方向,从而提高优化速度
动量法(Momentum Method )
模拟物理的概念,一个物体的动量指该物体在她运行方向保持运动的趋势,该物体的质量和速度的成绩
动量法值得是使用之前积累动量来替代真正的梯度,每次迭代的梯度可以看做加速度
Nesterov 加速梯度(Nesterov Accelerated Gradient,NAT)
是一种对动量发的该您
子主题
Adam 算法(Adaptive Moment Estimate Algorithm)
子主题
梯度阶段(Gradient clipping)
在深度神经网络或循环神经网络中,除了梯度消失外,梯度爆炸也是影响学习效率的主要因素
基于梯度下降的优化过程中,如果梯度突然增大,永达的梯度更新参数反而会导致其原理最优点
为了避免这种情况,当梯度的模大于一定阈值时,就会对梯度进行阶段,称为梯度阶段
方式
按值阶段
按模阶段
小结

7.3 参数初始化
神经网络的参数是学习是一个非凸优化问题,当使用梯度下降法来进行优化网络参数时,参数初始值的选取十分关键,关系到网络的优化效率和泛化能力
参数初始化的方式
1. 预训练初始化(Pre-trained Initialization)
不同参数的初始值会收敛到不同的局部最优解,虽然这些局部最优解在训练集上的损失比较接近,但是他们的泛化能力差异很大
通常情况下,一个已经在大规模数据上训练过的模型可以提供一个好的参数初始值,这种初始值方法称为,预训练初始化
可以为监督学习或者无监督学习,由于无监督学习任务更容易获取大规模的训练数据,因此被广泛使用
精调(Fine-Turning):预训练模型在目标任务上的学习过程
2. 随机初始化(random Initialization)
在线性耐磨性的训练中,我们一般将参数全部初始化为 0,但这在神经网络在训练中会存在一些问题
如果参数为 0,在第一遍前向计算时,所有的隐藏层神经元的激活值都相同;
对称权重
在反向传播时,所有权中的更新也相同,这样会导致隐藏层神经元没有区分性,这种现象称为对称权重
打破平衡:对每个参数都随机初始化,使得不同神经元之间的区分性更好
3. 固定值初始化
对于一些特殊参数,我们可以经验用一个特殊固定值来进行初始化,
比如偏置通常用 0 来初始化,但有时可以设置某些经验值提高优化效率。
在 LSTM 网络的遗忘门中,偏置通常初始化为 1 或 2,使得时序上的梯度变大。
在 ReLU 的神经元,有时可以将偏置设为 0.01,使得 ReLU 神经元在训练初期更容易激活,获得一定的梯度来进行误差反向传播
基于固定方差的参数初始化
一种最简单的随机初始化方法是从一个固定均值(通常是 0)和方差的分布中采样生成参数的初始值,基于固定方差的参数初始化方法主要方法
1. 高斯分布初始化
2. 均匀分布初始化
基于方差缩放的参数初始化
要高效的训练神经网络,给参数选取一个合适的随机初始化区间是非常重要的,
参数初始化区间应该根据神经元性质进行差异化的设置,如果一个神经元的输入连接狠毒哦,那么那么它的每个输入连接的权重应该小写,避免神经元旦输出过大或过饱和
方差放缩(Variance Scaling)
初始化一个深度网络时,为了缓解梯度消失或者爆炸问题,我们尽可能保持每个神经元的输入和输出的方差一致,根据神经元的连接数量自适应的调整初始化分布的方差
Xavier 初始化
He 初始化
正交初始化
7.4 数据预处理
样本特征由于来源记忆度量单位不同,他们的尺度(取值范围)往往差异很大
不同机器学习模型对数据特征尺度的敏感程度不一样
尺度不变性(Scale Invariance)
如果一个机器学习算法在缩放全部或者部分特征后不影响他的学习和测序,我们称为尺度不变性
理论上,神经网络具有尺度不变性,通过调整参数来适应不同特征的尺度,但尺度不同的输入特征会增加训练难度
归一化(Normalization)
把数据特征转换为相同尺度的方法,如将数据特征[0,1],[-1,1]区间内,或者服从均值 0,方差为 1 的正泰分布
最小最大值归一化(Min-Max Normalization)
通过国防将每一个特征的取值范围归一到[0,1],[-1,1]区间内
标准化(Standardization)
也叫 Z 值归一化
将每一个维特征都调整为均值为 0,方差为 1
其中标准差不能为0,如果为 0 的话,说明这一维特征没有区分,可以删除
白化(Whitening)
用来降低输入数据特征之间的冗余性
输入数据经过白化处理后,特征之间相关性较低,且所有特征具有相同的方阿虎
方式:主成分分析(Principal component Analysis,PCA)
7.5 逐层归一化 (Layer-wiseNormalization)
定义
将传统机器学习中的数据归一化方法应用到深度神经网络中,对神经网络中隐藏层的输入进行归一化,从而使网络更加容易训练
逐层归一化可以有效提高训练调率
1 更好的尺度不变性
内部协变量便宜(Internal Covariate Shift):从机器学习角度来看,如果一个神经层的输入分布发生改变,那么其参数需要重新学习的西三星
每个神经层输入分布都归一化为标准正态分布,可以使得每个神经层对其输入具有更好的尺度不变型
无论底层的参数如何变化,高层的输入标尺相对稳定,可以使得我们更加高效的进行参数初始化及超参选择
2 更平滑的优化地形
可以使得大部分神经层的输入处于不饱和区域,从而让梯度变大,避免梯度消失问题
使得神经网络的优化地形更加平滑,以及使梯度变得更加稳定,允许我们使用更大的学习率,并提高收敛速率
批量归一化(Batch Normalization,BN)
对神经网络任意的中间层进行归一化操作
层归一化(Layer Normalization)
对一个中间层的所有神经元进行归一化
权重归一化(Weight Normalization)
对神经网络的连接权重进行归一化,通过在参数化(Reparameterzation)方法,将连接权重分解成铲毒和方向两个参数
由于神经网络中权重经常共享,权重数量往往比神经元少,因此权重归一化开销会比较小
局部响应归一化(Local Response Normalization,LRN)
受生物学启发的归一化方法,基于卷积的图像处理上
与层归一化都是对同层的神经元进行归一化,不同的是局部响应归一化应用在激活函数之后,只对临近的神经元进行局部归一化,而且不减去均值
与生物神经元的侧抑制比较类似,即活跃神经元对相邻神经元具有抑制作用
当使用 ReLU 作为激活函数是,神经元的活性值是没有限制的,局部响应归一化可以起到平衡和约束作用
如果一个神经元的活性非常大,那么和他临近的神经元就近似的归一化为 0 ,从而起到抑制作用,增强模型的泛化能力
最大汇聚也具有侧抑制作用,但他是对同一个特征映射中的临近位置中的神经元进行抑制,而局部响应归一化对用一位置的临近特征映射中的神经元进行抑制
7.6 超参数优化
常见超参数
网络结构
包括神经元之间的连接关系、层数、每层的神经元数量、激活函数的类型等
优化参数
包括优化方法、学习率、小批量的样本数量等
正则化系数
超参数优化的困难
超参数优化是一个组合优化问题,无法像一般参数那样通过梯度下降方法来优化,也没有一种通用的优化方法
评估一组超参数而配置的时间代价非常高,导致一些优化方法付在超参数优化中难以应用
网格搜索 (grid search)
是一种通过尝试所有超参数的组合来寻址合适一种超参数配置的方法
如果超参数是连续的,可以将超参数离散化,选择几个经验值,一般而言,对于连续的超参数,我们不能按等间隔离散化,需要根据超参数自身的特点进行离散化
随机搜索 (random search)
不同超参数对模型性能影响的差异很大,在这种情况下,采用网格搜索会在不用药的参数上进行不必要的尝试
可以对超参数进行随机组合,然后选取一个性能最后的配置,即随机搜索,一般比网格搜索更加有效
网格搜索和随机搜索都没有李彤不同超参数之间的相关性,即如果模型的超参数组合比较类似,其模型性能也比较接近
贝叶斯优化 (Bayesian optimization)
是一种自适应的超参数优化方法,根据当前已经试验的超参数组合,来预测下一个可能带来最大收益的组合
时序模型优化(Sequential Model-Based Optimization,SMBO)
动态资源分配
多臂赌博机问题
在超参数优化中,每组超参数配置的评估代价比较高,如果我们可以再比较早的阶段就估计出一组配置的效果会比较差,那么我们可以终止这组配置的评估,将更更多资源留给其他配置
最优臂问题(Best-Arm Problem)
在给定有限的机会次数下,如何玩这些赌博机并找到最大收益的臂。
和多臂赌博机问题类似,最有逼问题也是在利用和搜索之间找到最佳平衡
早期停止
目前神经网络优化一般都是采用随机梯度下降,因此我们可以通过一组超参数的学习曲线来预估这组超参数配置是否有希望得到比较好的结果。如果一组超参数配置的学习曲线不收敛或者收敛差,我们可以应用早期停止策略来中期当前的训练
动态资源分配关键是将优先的资源分配给更有可能带来优势的草参数组合,一种有效方法是逐次减半(Successive Halving)方法
神经架构搜索 ( Neural architecture search,NAS)
是一个较新的有前景的研究方向,通过神经网络来自动实验网络架构的设计
一个神经网络架构可以用一个边长的字符串来描述,利用元学习的思想,神经架构搜索利用一个控制器来生成另一个子网络的架构描述,
控制器可以由一个循环神经网络来实现,其训练可以通过强化学习来完成,其奖励信号为生成的子网络在开发集上 的准确率
7.7 网络正则化
机器学习模型的关键是泛化问题,及在样本真实分布上的期望风险最小化,而训练数据集上的经验风险最小化和期望风险并不一致
因此神经网络的拟合能力非常强,其在训练数据上的错误率往往都可以降到非常低,甚至可以到 0,从而导致过拟合,因此如何提高神经网络的泛化能力反而成为影响模型能力的最关键因素
正则化(Regularization)
是一类通过限制模型复杂度,从而避免过拟合,提高泛化能力的方法,比如引入约束,增加先验,提前停止等
l1 和 l2 正则化
是机器学习常用的正则化方法,用过约束参数l1和 l2 的范围来减小模型在训练数据集上的过拟合现象
弹性网络正则化
权重衰减(Weight Decay)
在每次参数更信息,引入一个衰减系数
提前停止(Early Stop)
由于深度神经网络拟合能力非常强,因此很容易在训练集上出现过拟合,在使用梯度下降法进行优化师,我们可以使用一个和训练集独立的样本集合,称为验证集,并用验证集上的错误来替代期望错误,当验证集上的错误率不再下降,就停止迭代
然而在实际操作中,验证集上的错误率变化曲线并不是一定是个平衡曲线,很可能是先升高再降低,因此提前停止的标准需要根据实际任务进行优化
丢弃法(Dropout Method)
当训练一个深度神经网络时,我们可以随机丢弃一部分神经元(同时丢弃其对应的连接变)来避免过拟合,称为丢弃法
每次选择丢弃的神经元是随机的,最建档的方法是这顶一个固定的概率 p,对于每个神经元都已概率 p 来判断要不要保留
引入一个掩蔽函数
丢弃法一般是针对神经元进行随机丢弃,但是也可以对神经元之间的连接进行随机丢弃,多每一层进行随机丢弃
解释
集成学习角度
没做一次丢弃,相当于从原始的网络中采样得到一个子网络,如果一个神经网络有 n 个神经元,那么总共可以采样出 2 的 n 次方个子网络,每次迭代都相当于训练一个不同的子网络,这些子网络都共享原始网络参数,那么最终的网络可以进行看做是继承了指数级个不同网络的组合模型
贝叶斯学习角度
循环神经网络的丢弃法
当在循环神经网络上应用丢弃法时,不能直接对每个时刻的隐藏状态进行随机丢弃,这样会损害循环网络在时间维度上的记忆能力
对非时间温度的连接进行随机丢失
变分丢弃法(Variational Dropout)
需要对参数矩阵的每个元素进行随机丢弃,并在所有时刻都适用相同的丢弃掩码,这种方法称为变分丢弃法
数据增强 (Data Augmentation)
深度神经网络一般需要大量的训练数据才能获得比较理想的小姑,在数据有限的情况下,可以通过数据增强在增加数据量,提高模型鲁棒性,避免过拟合
目前主要应用于图像数据上,在文本等其他类型大数据上还没有太好办法
在图像数据上通过算法对图像进行转变,引入噪声等方法来增加数据多样性
方法
旋转(rotation)
将图像按照逆时针或顺时针防线随机旋转一定角度
翻转(flip)
将图像沿水平或垂直线方法随机翻转一定角度
缩放(zoom in/out)
将图像放大或缩小一定比例
平移(shift)
将图像沿水平或垂直方法平移一定补偿
加噪声(Noise)
计入随机噪声
标签平滑 (label smoothing)
在数据增强中,我们可以给样本特征加入随机噪音避免过拟合,同样我们可以给样本的标签引入一定的噪声
假设训练数据集中有一些样本的标签是被错误标注的,那么最小化这些样本上损失函数会导致过拟合,一种改善的方法就是标签平移
集在输出标签中添加噪声来避免模型过拟合
教师网络
学生网络
知识蒸馏
7.8 总结和深入阅读
第八章 注意力机制与外部记忆
8.0 绪论
根据通用近似定理,前馈网络和循环网络有着很强的能力,但由于优化算法和计算能力的限制,在实践中很难达到通用的近似能力,特别是在处理复杂人恩物是,需要处理大量的输入信息和复杂的计算流程时,木爱情鸟计算机的计算能力依然是限制神经网络发展的瓶颈
为了减少复杂度,我们引入局部连接、权重共享以及汇集操作来简化色号南京网络结构
网络容量(nNetwork Capacity)
神经网络中国可以存储的信息量
利用一组神经元来存储信息时,其存储容量和神经元的数量以及网络的复杂度呈正比
人脑生物神经网络同样存在网络容量 entity,人脑每个时刻接受的外界输入信息非常多,包括来自视觉、听觉、触觉的各种各样信息,人脑子啊有限资源下,并不能同时处理这些过载的输入机制,达到有两个重要机制可以解决信息过载问题:注意力和记忆机制
注意力
通过自上而下的信息选择机制来过滤掉最大的无关信息
外部记忆
引入额外的外部记忆,优化数据网络的记忆机构可以提高神经网络存储信息的容量
8.1 认知神经学中的注意力
注意力
在日常生活中,我们可以通过视觉、听觉、触觉等方式接受大量 的输入,但人脑还能再这些外界信息轰炸中有条不紊的工作,是以为人脑可以有意无意的将这些大量输入信息选择小部分有用信息来重点处理,并忽略其他信息
可以作用在外部的刺激(如听觉视觉触觉),也可作用在内部的任务(如思考回忆等)
分类
聚焦式注意力(fucus attention)
自上而下有意识的注意力,指有预定目的,依赖任务的,主动有意识的聚焦于某一对象的注意力
也叫选择性注意力
基于显著性的注意力(Saliency-Based Attention)
自下而上的无意识的注意力,是有外界刺激驱动的注意,不需要主动干预,和任务无感
如果一个对象的刺激信息不同于其周围信息,一种无意识的”赢者通吃“或门控机制就可以把注意力转向这个对象,不管是有意还是无意,大部门的人脑有活动都需要依赖注意力,如记忆信息,阅读或思考等
鸡尾酒效应:聚焦式注意力和显著性注意力
8.2 注意力机制(attention mechanism)
是一种资源分配机制,将有限资源用来处理更加重要的信息,是解决信息超载问题的主要手段
目前神经网络用来处理大量的输入信息时,可以将最大汇聚、门控机制近似的看做是自下而上的基于显著性的注意力机制
注意力机制
加权平均
注意力机制的变体
硬性注意力(Hard Attention)
方式
选取最高概率的输入向量
通过在注意力分布上的随机采样的方式
键值对注意力(Key-Value Attention)
多头注意力(Multi-Head Attention)
我们假设所有的输入信息是同等主要的,是一种扁平结构,注意力分布实际上是在所有输入信息上的多项人不
但如果输入信息本身具有层次机构,我们可以使用层次化的注意力来进行更好的选择
指针网络(Point Network)
子主题
8.3 自注意力模型
当使用神经网络来处理一个边长的向量序列式,我们通常可以使用卷积网络或者循环网络进行编码来得到一个相同长度的输出向量序列
基于卷积或者循环的序列编码都是一种局部的变麻烦按时,只建模 了输入信息的局部依赖关系,虽然循环网络理论上可以建立长距离医疗关系,但是由于信息传递的容量以及梯度消失问题,实际上只能建立短距离依赖关系
建立长距离依赖关系
增加网络层数,通过一个深层网络来获取远距离的 信息系交互
使用全连接网络,他是一种非常直接的建模远距离依赖模型,但是无法处理边长的输入序列
定义:不同输入长度,其权重的大小也是不同观点,这样我们就可以利用注意力机制俩“动态”的生成不同连接的群众
为了提高模型能力,经常使用查询-键-0 值的模式 (Query-Key-Value)模式
8.4 人脑中的记忆
信息是作为一种整体效应(Collective Effect)存储在大脑组织中,当大脑皮层不同部位损伤是,导致的不同行为表现私服取决于损伤的程度而不是损伤的却迭位置
大脑组织的每个部分似乎都携带一些导致相似行为的信息,记忆在大脑皮层是分布式存储的,而不是存储于某个局部区域
人脑中记忆具
周期性
分类
长期记忆
也叫机构记忆或者知识记忆
体现为神经元之间的连接形态,其更新速度较慢
类比于人工神经网络的权重参数
短期记忆
体现为神经元的活动,更新较快,维持时间为几秒或者几分
是神经连接的暂时性强化,通过不断巩固、强化课形成产期记忆
类比于人工神经网络的隐状态
演化
短期记忆、长期记忆的动态更新过程称为演化
联想性
工作记忆
在执行某个认知行为是,是一个记忆 的临时存储和处理系统,维持时间通常为几秒钟
算一种短期记忆,但与他的内含不同,短期记忆是值从外界输入的信息在人脑中的表示和短期存储,不关心记忆如何被使用;工作记忆是一个和任务相关容器,可以临时存放和某项任务相关的短期记忆和其他相关的内在记忆,
容量较小,
4 组项目
联想记忆(associative memory)
大脑记忆的主要特点是通过联想进行检索的
是指一种学习和记住不同对象之间关系的能力,指一种可以通过内容匹配的方法进行寻址的信息存在方式
基于内容寻址的存储(Content-Addressable Memory,CAM)
子主题
对应计算机的——随机访问存储(random access memory,RAM)
长短期极易网络(Long Short-Term Memory Network,LSTM)
记忆单元
对比寄存器
外部记忆
对比内存
借鉴人脑工作记忆,可以在神经网络中引入一个外部记忆单元来提高网络容量
结构化记忆
和计算机的信息存储方法比较类似,可以分为多个记忆片段,按照一定结构来存储
记忆神经动力学的联想记忆
更好的生物学解释

8.5 记忆增强神经网络
记忆增强神经网络 (Memory Augmented Neural Network,MANN)
为了增去昂网络容量,可以引入一个辅助记忆单元,将一些和任务相关的信息保存在辅助记忆中,需要时进行读取,称为外部记忆(Exernal Memory)
与内部记忆不同(即隐状态)
这种装有外部记忆的神经网络即为记忆增强神经网络,简称记忆网络(Memory Network,MN)
结构

主网络 C
也叫控制器,负责信息处理,以及与外界的交互,接受外界的输入信息并产生输出到外界
通过读写模块和外部记忆进行交互
外部记忆单元 M
用来存储信息,可以分为很多记忆片段(Memory Segment),这些片段按照一定的结构进行组织,一边用向量表示
读取模块 R
根据主网络生成查询向量
从外部记忆单元中读取相应的信息
读写模块 W
根据主网络生成查询向量和要写入的信息来更新外部记忆 i
说明
这种结构化的外部记忆是带有地址的,即每个记忆判断都可以按照地址读取和写入,
要实现类似人脑神经网络的联想记忆能力,就需要按照内容地址的方式进行定位,然后进行读取和吸入操作
按照内容寻址使用注意力机制来进行
端到端记忆网络(End-To-End Memory Network,MemN2N
采用一种可微的网络结构,可以多次从外部记忆中读取信息,
在端对端记忆网络中,外部记忆单元是可读的
神经图灵机
图灵机构成
一条无限长的纸带:纸带上有一个个方格,每个方格可以存储一个符号
一个符号表:纸带上可能出现的所有符号表的集合,包含一个特殊的空白符
一个读写头:指向纸带某个方格的指针,每次可以左右移动一个位置,并可以读取、擦除、吸入当前方格中的内容
一个状态寄存器:用来保存图灵机单签所处状态,其中包括两个特殊状态:起始状态和终止状态
一套控制规则:根据当前机器所处的状态以及当前读写头说只的方格上的符号来确定读写头下一步的动作,令机器进入一个新的状态
神经图灵机(Neutral Turing Machine,NTM)
构成
控制器
为一个前馈或者循环神经网络
外部记忆
8.6 基于神经动力学的联想记忆
将基于神经动力学(Neurodynamics)的联想记忆模型引入到神经网络以增强网络容量
联想记忆模型(Associative Memory Model)
主要通过神经网络的动态演化来进行联想
应用场景
自联想模型(Auto-Associative Model)
输入的模式和输出的模式在同一空间
可以通过前馈神经网络或者循环神经网络实现,也常称为字码编译( Auto-Encoder,AE)
异联想模式(Hetero-Associative Model)
输入和输出的模式不在同一空间
大部分的机器学习问题都可以被看成异联想,因此异联想可以作为分类器使用
Hopfield 网络
定义
是一种循环神经网络模型,有一组互相连接的神经元组成
可以认为是所有神经元都相互连接 的不分层的信息网络,
每个神经元既是输入单元,又是输出单元,没有隐藏神经元
一个神经元和自身没有反馈连接,不同神经元之间连接权重是对称的
更新模式
异步更新
指每次更新一个神经元,神经元的更新顺序可以是随机或事先固定的
同步更新
一次更新所有神经元,需要一个时钟进行同步
能量函数(Energy Function)
在 hopfield 网络中,我们给每一个不同网络状态定义一个标量属性,称为能量
定义:
hopfield 网络是稳定的,即能量函数经过多次迭代后会达到收敛状态,权重对称是一个重要特征,保证了能量函数在神经元激活时单调递减,而不对称的权重可能导致周期性震荡或者混乱
吸引点
给定一个外部输入,网络经过演化,会达到某个稳定状态,称为吸引点
在 hopfield 中通常有多个吸引点,每个吸引点为一个能量的局部最优点
联想记忆
hopfield 网络存在有限的吸引点(Attractor),及能量函数的局部最小点
我们把吸引点看做网络中存储的模式
将网络输入作为起始状态,随时间收敛到吸引点上的过程称为检索过程。当输入向量只包含部分信息或包含噪音,只要其位置对应存储模式的吸引区域内,那么随着时间的演化,网络最终会收敛到期对应的存储模式,因此 hopfield 的检索是基于内存寻址的检索,具有联想记忆能力
信息存储
存储过程主要是调整神经元之间的连接权重,因此可以看做是一种学习过程,
hopfield 网络的学习规则有很多种
赫布规则
存储容量
对于联想记忆模型来说,存储容量为其能够可靠的存储和检索模式最大数量
使用联想记忆增加网络容量
联想记忆具有存储和检索功能,我们可以利用联想记忆增加网络容量
与结构化的外部记忆相比,联想记忆具有更好的生物解释型
8.7 总结和深入阅读
第九章 无监督学习
9.0 前言
无监督学习(Unsupervised Learning,UL)
指从无标签的数据中学习出一些有用的模式
一般直接从原始数据中学习,不借助于任何人工给出的标签或者反馈等知道信息
分类
无监督特征学习(unsupervised feature learning )
从无标签的训练数据中挖掘有效的特征或表示
一般用于进行降维、数据可视化或监督学习的前期数据预处理
概率密度估计(Probabilistic Density Estimation)
根据一组训练严格不能来估计样本空间的概率密度
分为
参数密度估计
从假设数据服从某个已知概率密度参数形式的分布,然后根据训练样本取估计概率密度函数的参数
非参数密度估计
不假设服从某个已知分布,只利用训练样本对密度进行估计,可以进行任意密度的估计
包括:直方图、核密度估计等
聚类(Clustering)
将一组样本根据一定的准则划分到不同的组(簇)
通用准则是:组内样本的相似性高于组件样本相似性
算法:K-Means 算法、谱聚类等
要素
模型
学习准则
优化算法
9.1 无监督特征学习
值从无标注的数据中自动学习有效的数据表示,从而能够帮助后续的机器学习模型更快的达到更好的性能
主要方法
主成分分析(Principal Component Analysis,PCA)
是一种常用的数据降维方法,使得在转换后的空间中的数据方法最大’
稀疏编码(Sparse Coding)
稀疏性
受哺乳动物视觉系统中简单细胞感受野启发的模型
哺乳动物的触及视觉皮层(Primary Visual Contex),每个神经元仅对处于其感受野中特定的刺激信号做出响应,即具有空间局部性、方向性和带通性
外界信息通过编码后仅有一小部分神经元激活,即外界刺激在视觉神经系统的表示具有很高的稀疏性,编码的稀疏性在一定程度上符合生物学的低功耗特点
训练方法
优点
稀疏编码的每一维都可以看做是一种特征,和基于稠密向量的分布式表示相比,稀疏编码具有更小的计算量和很好的可解释性等优点
1. 计算量:极大地降低了计算量
2. 可解释性:只有少数的非零元素,相当于将一个输入样本表示为少数几个相关特征
3. 特征选择:可以实现特征的自动选择
自编码器
通过无监督的方式来学一组数据的有效编码
组成
编码器(Encoder)
解码器(Decoder)
学习目标
最小化重构错误(reconstruction error)
稀疏自编码器(Sparse Atuo-Encoder)
堆叠自编码器(Stacked Auto-Encoder,SAE)
对于很多数据来说,仅使用两层神经网络的自编码器还不足以获取一种好的 数据表示,
为了获取好的数据表示,可以使用更深层的神经网络,但是作为自编码器提取表示遗憾会更加抽象,更好的捕捉到数据的语义信息
在时间中经常使用逐层堆叠的方式来训练一个深层的自编码器,称为堆叠自编码器
一般采用逐层驯良来学习网络参数
降噪自编码器(Denoising Auto-Encoder)
我们使用自编码器是为了得到有效是数据表示,而有效是护具表示出来具有最小重构错误和稀疏性等特点后,还要求对数据的部分损害的鲁棒性
搞卫生护具一般都具有一定的信息冗余,比如我们可以根据一张部分破损的图像联想出其完整内容,
因此我们希望自编码器也能欧从部分损坏的数据中得到有效的数据表示,并能够恢复出完整的原始信息
降噪自编码器就是一种通过引入噪声来增加编码鲁棒性的自编码器
9.2 概率密度估计
定义
是基于一些观测样本来估计一个随机变量概率密度函数
分类
参数密度估计(Parametric Density Estimation)
根据先验知识假设随机变量服从某种分布,然后通过训练样本来估计分布的参数
正态分布
多项分布
非参数密度估计(Nonparametric Density Estimation)
是不假设数据服从某种分布,通过样本空间划分不同的区域斌估计每个区域的概率来近似数据的概率密度函数
直方图法(Histogram Method)
核方法
核密度估计(Kernel Density Estimation)
也叫 parzen 窗方法,是一种直方图方法的改进
K 近邻方法
9.3 总结和深入阅读
第十章 模型独立的学习方式
10.0 前言
模型独立:这些学习方法不限于具体模型,不管前馈神经网络、循环圣经网络还是其他强罗,
一种学习方式往往会对符合某种特性的模型更加亲来
10.1 集成学习 (Ensemble Learning)
定义:通过某种策略将多个模型集成起来,通过群体决策来提高决策准确率
首要问题
如何集成多个模型
最直接集成学习策略就是直接平均,即“投票”
集成模型的期望错误大于等于所有模型的平均期望错误的 1/M,小于等于所有模型的平均期望错误
为了更好的集成效果,每个模型之间具备一定的差异性,随着模型数量的增多,错误率也会下降,并与趋近于 0
增加模型间差异性
Bagging 类方法
通过随机构造训练样本、随机选择特征等方法来提高每个基模型的独立性
bagging(Bootstrap Aggergation)
通过不同模型的训练数据集的独立性来提高不同模型之间的独立性
我们在原始训练集上进行又放回的随机采样,得到 M 个比较小的训练集并训练 M个模型,在通过投票的方式进行模型集成
随机森林(Random Forest)
在 bagging 基础上引入随机特征,进一步提高每个基模型的独立性,
在随机森林中
Boosting 类方法
按照一定顺序来先后训练不同的基模型,每个模型都针对前序模型的错误进行专门训练
根据前序模型的结果来调整训练样本的权重,从而增加不同基模型之间的差异性
只要基模型的准确率被随机猜测高,就可以通过集成方法来显著提高集成模型的准确率
AdaBoost 算法
学习一个加性模型(Additive Model)

关键:
如何训练每个弱分类器及其权重,
为了提高集成效果,尽可能使得每个弱分类器的差异尽可能大
采用迭代方法来学习每个弱分类器,即按照一定的顺序一次训练每个弱分类器,通过改变数据分布来提高弱分类器的差异
统计学解释
10.2 自训练和协同训练
半监督学习(Semi-supervised Learing,SSL)
监督学习标注数据成本较高,
利用少量标注数据和大量无标注数据进行学习的方法交半监督学习
两种半监督学习算法
自训练
协同训练
自训练(Self-Train)
也叫自举法(Bootstrapping)
首先使用标注数据来训练一个模型,并使用这个模型来预测无标记严格不能的标签,把预测置信度比较高的严格不能及其预测的伪标签加入训练集,然后重新训练新的模型。不断重复
与密度估计的 EM 算法有一定相似处,通过不断迭代来提高模型能力
但无法保证每次加入的伪标签都是正确的,如果加入了错误的,反而会损害模型的预测能力
协同训练(Co-Training)
通过给予不同视角的分类器来相互促进
10.3 多任务学习
当几个任务比较相关存在一定的共享知识(特征、模型参数、学习方法),这些共享知识对多个任务都会有所帮助,主要关注表示层面的共享
定义
指同时学习多个相关任务,让这些任务在学习过程中共享知识,利用多个任务之间的相关性来进行模型在每个任务的性能和泛化能力
一种归纳迁移学习(Inductive Transfer Learing),即利用包含相关任务中的信息作为归纳偏执来提高泛化 English
共享机制
硬共享模式
让不同任务的神经网络模型共同使用一些贡献模块来提取一些通用特征,在针对不同惹怒设置一些私有模块来提取这些任务特定的特征

软共享模式
不显式的设置共享模块,但每个任务都可以从其他任务中窃取一些信息来提高自己能力,
窃取方式:直接复制使用其他任务隐私状态或使用注意力机制来主动选取有用信息

层次贡献模式
一般神经网络中不同层抽取的特征类型不同,低层抽取一些低级的局部特征,高层抽取一些抽象语义特征
如果多任务学习中不同任务也有级别高低之分,那么一个合理的共享模式就是让底层任务在低层输出,高层任务在高层输出

共享-私有模式
共享模块捕获一些跨任务的共享特征,私有模块捕捉和特定任务相关的特征,最终的表示有共享特征和私有特征共同构成

学习步骤
1 联合训练阶段
每次迭代时,随机挑选一个任务,然后从这个任务中随机选择一些训练严格不能,计算梯度并更新参数
2 单任务精调阶段
基于多任务学习得到的参数,分别在每个单独任务进行精调
单任务精调阶段为可选阶段
优点
1 多任务学习在多个任务是数据集上进行训练,比单任务学习的训练集更大,由于多个任务指甲有一定相关性,因此多任务学习相当于一种隐式数据增强,可以提高模型泛化能力
2 多任务学习中共享模块需要兼顾所有任务,这一定程度上避免了模型过拟合到单个任务的训练集,可以看做是一种正则化
3 既然一个好的表示通常徐亚适用于多个不同任务,多任务学习的机制会使得他比单任务学习获得更好的表示
4 在多任务学习中,每个任务都可以选择性的利用其它任务中学习到的隐藏特征,提高自己能力
10.4 迁移学习
定义
机器学习前提假设是训练数据和测试数据的分布是相同的,如果不满足的话,在训练计上学习到的模型在测试集上的表现会比较差,在很多实际场景中,经常碰到的问题是标注数据成本过高,无法为一个目标任务准备足够的相同分布的训练数据
如果有一个相关人为奴已经哟了大量的训练数据,虽然这些训练数据的分布目标都不同,但由于训练数据的规模比较大,我们假设可以从学习某些可以泛化的知识,那么这些知识对目标任务有一定版主
迁移学习:两个不同领域的知识的迁移过程,利用源领域(Source Domain)中学到的知识来帮助目标领域(Target Domain)上的学习任务,源领域的训练样本数量一般远大于目标领域
归纳迁移学习(Inductive Transfer Learing)
归纳学习
一般机器学习都是指归纳学习,即希望在训练数据集上学习到使得期望风险(即真实数据分布上的错误率)最小的模型
要求源领域和目标领域是相关的,并且源领域有大量的训练样本,这些样本是否有标注都可以
当源领域只有大量无标注数据是,源任务可以转化为无监督学习任务,如自编码和密度估计任务,通过无监督任务学习一种可迁移的表示,然后将其迁移到目标学习上。这种方式和自学习以及半监督学习比较类似(如自然语言学习)
当源领域有大量标注是,可以直接将源领域上训练过的模型迁移到目标领域中(如计算机视觉领域)
迁移方式
基于特征的方式
将预训练模型的输出或者中间隐藏层的输出作为特征直接加入到目标任务的学习模型中
目标任务的学习模型可以是一般的浅层分类器(如支持向量机)或一个新的神经网络模型
精调的方式
在目标任务上复用训练模型的部分组件并对其进行精调(Fine-Tuning)
归纳迁移学习优势
1 初始模型的性能一般比随机初始化的模型更好
2 训练时模型的学习速度比从零开始更快,收敛性更好
3 模型的最终性能更好,具有更好的泛化性
归纳迁移学习与多任务学习的区别
多任务学习是同时学习多个任务,而归纳迁移学习通常分为两个阶段,即原任务上的学习阶段和目标任务上的迁移学习阶段
归纳迁移学习是单向的知识迁移 ,希望提高模型在目标任务上的性能,而多任务学习是希望提高所有任务性能
转导迁移学习(Transductive Transfer Learing)
转导学习
目标为学习一种给定测试集上错误率最小的模型,在训练阶段可以利用测试集的信息
从样本到样本的迁移,直接利用源领域和目标领域的样本进行迁移学习
可以看做是特殊的转到学习,通常假设源领域有大量的标注数据,而目标领域没有或只有少量标准数据,但有大量的无标注数据,
目标领域的数据在训练阶段是课件的
例子
领域适应(Domain Adaptation)
在领域适应问题上,一般假设源领域与目标领域具有相同的样本空间,但数据分布不同
数据分布不同的原因
协变量迁移(Covariate Shift)

概念偏移(concept shift)
先验偏移(Prior shift)
10.5 终身学习
也叫持续学习(continuous Learing),指向人类一样具有持续不断学习能力,根据历史人物中学到的经验和知识来帮助不断出现的新任务,并且浙西经验和知识是持续累计的,不会因为新的任务忘记旧的知识
与归纳迁移学习区别
归纳迁移学习目标是优化目标任务性能
终身学习目标是持续的学习和知识积累,
与多任务学习的区别
多任务学习:在使用所有任务的数据进行联合练习
终身学习:不一定在所有任务上同时学习
灾难性遗忘(Catastrophic Forgeting)
方法:弹性权重巩固(Elastic Weight Consolidation)
10.6 元学习(meta-Learing)
没有免费午餐定理:没有一种通用的学习算法可以在所有任务 上都有效,因此,使用机器学习实现某个任务是,我们通常需要就事论事,根据任务特点来选择合适的模型、损失函数、优化算法以及超参数
面对一个新的任务,人们往往可以很快找到其学习方式,这种可以动态调整学习方式的能力,称为元学习
目的:从已有任务中学习一种学习方法或者元知识,可以加速新任务的学习,类似于归纳迁移学习,但元学习更侧重从多种不同甚至不相关的任务中归纳出一种学习方法
基于优化器的元学习
目前神经网络的学习方法主要是定义一个目标损失函数,并通过梯度下降算法来最小化
模型无关的元学习 Model-Agnostic Meta-Learnging,MAML)
元学习的目标之一就是快速学习的能力,即在多个不同任务上学习一个模型,让其在新任务上经过少量的迭代,甚至单步迭代,就可以达到一个非常好的性能,且避免在新任务上的过拟合
是一个简单的模型无关的,任务无关的元学习算法
10.7 总结和深入阅读
第十一章 概率图模型(进阶)
11.1 模型表示
11.2 学习
11.3 推断
11.4 变分推断
11.5 基于采样法的近似推断
11.6 总结和深入阅读
第十二章 深度信念网络(进阶)
12.1 玻尔兹曼机
12.2 受限玻尔兹曼机
12.3 深度信念网络
12.4 总结和深入阅读
第十三章 深度生成模型(进阶)
13.1 概率生成模型
13.2 变分自编码器
13.3 生成对抗网络
13.4 总结和深入阅读
第十四章 深度强化学习(进阶)
14.1 强化学习问题
14.2 基于值函数的学习方法
14.3 基于策略函数的学习方法
14.4 演员-评论员算法
14.5 总结和深入阅读
第十五章 序列生成模型
15.1 序列概率模型
15.2 N元统计模型
15.3 深度序列模型
15.4 评价方法
15.5 序列生层模型中的学习问题
15.6 序列到序列模型
15.7 总结和深入阅读
附录
A 线性代数
B 微积分
C 数学优化
D 概率论
E 信息论
主题
主题
浮动主题