第一部分 机器学习
第一章 绪论
人工智能的流派
- 符号主义,又称逻辑主、心理学派或计算机学派,是指通过分析人类智能的功能,然后用计算机来实现这些功能的一类方法
- 连接主义,又称仿生学派或生理学派,是认知科学领域的一类信息处理的方法和理论
符号主义方法的一个优点是可解释性,也是连接主义方法的弊端
机器学习
机器学习是指从有限的观测数据中学习(或“猜测”)出具有一般性的规律,并利用这些规律对未知数据进行预测的方法
主要关注如何学习一个预测模型.一般需要首先将数据表示为一组特征(Feature),特征的表示形式可以是连续的数值、离散的符号或其他形式。然后将这些输入到预测模型,并输出预测结果
这类机器学习都看作浅层学习,它的一个重要特点是不涉及特征学习,其特征主要靠人工经验或特征转换方法来抽取
实际任务中使用机器学习模型一般会包括以下几个步骤
1)数据预处理:经过数据的预处理
2)特征提取:从原始数据中提取一些有效的特征。
3)特征转换:对特征进行一定的加工,比如降温和升维。降维包括特征抽取和特征选择两种途径。
常用的特征转换方法有主成分分析(Principal Component Analysis,PCA)、线性判别分析(Linear Discriminant Analysis,LDA)等
4)预测:机器学习的核心部分,学习一个函数并进行预测
$$原始数据->数据预处理->特征提取->特征转换->预测->结果$$
特征处理一般由人工干预完成,利用人类的经验来选取好的特征,并最终提高机器学习系统的性能.包括数据预处理、特征提取、特征转换
深度学习
构建具有一定“深度”的模型,并通过学习算法来让模型自动学习出好的特征表示(从底层特征,到中层特征,再到高层特征),从而最终提升预测模型的准确率。所谓“深度”是指原始数据进行非线性特征转换的次数。
深度学习的目的是从数据中自动学习到有效的特征表示
$$原始数据->底层特征->中层特征->高层特征->预测->结果$$
深度学习是将原始的数据特征通过多步的特征转换得到的一种特征表示,并进一步输入到预测函数得到最终结果.
深度学习要解决的是贡献度分配问题(Credit Assignment Problem)
神经网络模型使用误差反向传播算法,可以比较好的解决贡献度分配问题
端到端学习
在学习过程中不进行分模块或分阶段的功能,中间过程不需要人为干预.训练数据为”输入-输出”对的模式,无须提供其他额外信息
**梯度消失问题的解决:1)通过无监督学习的方式来逐层训练每一层循环神经网络,即预测下一个输入;2)通过反向传播算法进行精调
第二章 机器学习概述
机器学习就是让计算机从数据中进行自动学习,得到某种知识(或规律),即如何从观测数据(样本)中寻找规律,并利用学习到的规律(模型)对未知或无法观测的数据进行预测
基本概念
- 特征(Feature),标签(Label),样本(Sample)==示例(Instance)
- 数据集(Data Set),训练集(Training Set),测试集(Test Set)
- D维向量$x = [x_1,x_2,…,x_D]^T$表示特征向量(Feature Vector),标签用常量$y$表示
- 独立同分布:独立地从相同的数据分布中抽取的
机器学习三要素
1)模型
机器学习的目标是找到一个模型来近似真实映射函数$g(x)$或真实条件概率分布$p_r(y|x)$
2)学习准则
模型$f(x;\theta)$的好坏可以通过期望风险(Expected Risk)$\mathbf{R}(\theta)$来衡量,其定义为
$$\mathbf{R}(\theta)=\mathbf{E}_{(x,y) \sim p_r(x,y)}[\mathbf{L}(y,f(x;\theta))]$$
其中$p_r(x,y)$为真实的数据分布,$\mathbf{L}(y,f(x;\theta)$为损失函数,用来量化两个变量之间的差距
损失函数
- 0-1损失函数
- 平方损失函数
- 交叉熵损失函数
- Hinge损失函数
风险最小化准则
由于不能直接知道真实的数据分布和映射函数,实际上无法计算其期望风险$\mathbf{R}(\theta)$
所以计算经验风险(Empirical Risk),即在训练集上的平均损失:
$$\mathbf{R}^{emp}_D(\theta)=\frac{1}{N}\sum_{n=1}^{N}\mathbf{L}(y^{(n)},f(x^{(n)};\theta))$$
因此,一个切实可行的学习准则就是找到一组参数$\theta^*$使得经验风险最小,即
$$\theta^*=\mathop{\arg\min}\limits_{\theta}\mathbf{R}^{emp}_D(\theta)$$
这就是经验风险最小化(Empirical Risk Minization,ERM)准则
过拟合
给定同一数据集的训练集、测试集。在训练集上的损失比测试集的损失小,但在整个样本空间上的测试集损失比训练集上的小
过拟合就是损失函数极小但泛化性能差的情况
3)优化算法
参数与超参数
- 参数:模型$f(x;\theta)$中的$\theta$称为模型的参数,可以通过优化算法进行学习
- 超参数:用来定义模型结构或优化策略.常用的包括:聚类算法中的类别个数、梯度下降法中的步长、正则化项的系数、神经网络的层数、支持向量机中的核函数等
1)梯度下降法
2)提前停止
3) 随机梯度下降法
4)小批量梯度下降法
机器学习算法的类型
监督学习
如果机器学习的目标是建模样本的特征x与标签y之间的关系:$y=f(x;\theta)$或$p(y|x;\theta)$,并且训练集中每个样本都与标签,那么这类机器学习称为监督学习(Supervised Learning)
1)回归(Regression)问题中的标签y是连续值(实数或连续整数),$y=f(x;\theta)$的输出也是连续值
2)分类(Classification)问题中的标签y是离散的类别(符号).二分类或多分类
3)结构化学习(Structured Learning)问题是一种特殊的分类问题
无监督问题
从不包含目标标签的训练样本中自动学习到一些有价值的信息.典型的无监督学习问题有聚类、密度估计、特征学习、降维等
强化学习
一类通过交互来学习的机器学习算法。
还有弱监督学习,半监督学习等等
理论和定理
1)PAC学习理论:可能近使正确(Probably Approximately Correct,PAC)学习理论
由于我们不知道真实的数据分布$p(x,y)$,也不知道真实的目标函数$g(x)$,因此期望从有限的训练样本上学习到一个期望错位为0的函数$f(x)$是不切实际的.因此需要降低对学习算法能力的期望,只要求学习算法可以以一定的概率学习到一个近似正确的假设.一个PAC可学习的算法是指该学习算法能够在多项式时间内从合理数量的训练数据中学习到一个近似正确的$f(x)$
2)没有免费午餐定理:证明对基于迭代的最优化算法,不存在某种算法对所有问题(有限的算法空间内)都有效
3)奥卡姆剃刀原理:简单的模型泛化能力更好.如果有两个性能相近的模型,应该选择更简单的模型
4)丑小鸭定理:一切相似性的标准都是主观的
5)归纳偏置:学习算法经常对学习的问题做一些假设,这些假设就称为归纳偏置(先验)
第三章 线性模型
1)Logistic回归
常用的处理二分类问题的线性模型
参数学习
采用交叉熵作为损失函数,使用梯度下降来对参数进行优化
2)Softmas回归
使用交叉熵损失函数来学习最优的参数矩阵W
3)感知器
学习算法是一种错误驱动的在线学习算法.采用随机梯度下降
4)支持向量机
参数学习
为了找到最大间隔分割超平面,将目标函数写为凸优化问题,使用拉格朗日乘数法
核函数
使用核函数隐式地将样本从原始特征空间映射到更高维的空间,并解决原始特征空间中的线性不可分问题
软间隔
如果训练集中的样本在特征空间不是线性可分的,引入松弛变量,将问题优化
第二部分 基础模型
第四章 前馈神经网络
激活函数
目的:增强网络的表示能力和学习能力
激活函数必须具备以下性质:
1. 连续并可导(允许少数点上不可导)的非线性函数.可导的激活函数可以直接利用数值优化的方法来学习网络参数
2. 激活函数及其导函数要尽量简单,有利于提高网络计算效率
3. 激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太小,否则会影响训练的效率和稳定性
激活函数类型
1)Sigmoid型函数
Logistic函数
$$\sigma(x) = \frac{1}{1+e^{-x}}$$
Tanh函数
$$tanh(x) = \frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}$$
Hard_Logistic函数和Hard-Tanh函数
2) ReLU函数
$$ReLU(x) = max(0,x)$$
带泄露的ReLU函数
$$LeakyReLU(x) = max(0,x) + \gamma min(0,x)$$
带参数的ReLU函数
$$PReLU_i(x) = max(0,x) + {\gamma}_i min(0,x)$$
ELU函数
Exponential Linear Unit 指数线性单元
$$ELU_i(x) = max(0,x) + min(0,{\gamma}(e^x-1))$$
Softplus函数
$$Softplus = \log(1+e^x)$$
Swish函数
$$swish(x) = x\sigma(\betax)$$
GELU
Maxout
网络结构
前馈网络
每一层中的神经元接收前一层神经元的输出,并输出到下一层神经元.整个网络中的信息是朝一个方向传播,没有反向的信息传播,可以用一个有向无环图表示
前馈网络包括全连接前馈网络和卷积神经网络.前馈网络可以看做一个函数,通过简单非线性函数的多次复合,实现输入空间到输出空间的复杂映射
记忆网络
也称为反馈网络,网络中的神经元不但可以接收其他神经元的信息,也可以接收自己的历史信息.
和前馈神经网络相比,记忆网络中的神经元具有记忆功能,在不同的时刻具有不同的状态.
包括循环神经网络、Hopfiled网络、玻尔兹曼机、受限玻尔兹曼机等
图网络
定义在图数据结构上的神经网络。图中的每个节点都是由一个或一组神经元构成。节点之间的连接可以是有向的,也可以是无向的。每个节点可以收到来自相邻节点或自身的信息
前馈神经网络
每一层的神经元可以接收前一层神经元的信号,并产生信号输出到下一层。第0层称为输入层,最后一层称为输出层,其他中间层称为隐藏层。整个网络无反馈,信号从输入层向输出层单向传播,可用一个有向无环图表示
每个神经元可以看做一个仿射变换和一个非线性变换
通用近似定理
反向传播算法
含义是:第l层的一个神经元的误差项(或敏感性)是所有与该神经元相连的第l+1层的神经元的误差项的权重和。然后再乘上该神经元的激活函数的梯度
第五章 卷积神经网络
感受野(Receptive Field)机制主要是指听觉、视觉等神经系统中一些神经元的特性,即神经元只接受其所支配的刺激区域内的信号。
卷积神经网络一般由卷积层、汇聚层和全连接层交叉堆叠而成的前馈神经网络。卷积神经网络有三个结构上的特性:局部连接、权重共享以及汇聚。这些特性使得卷积神经网络具有一定程度上的平移、缩放和旋转不变性。和前馈神经网络相比,卷积神经网络的参数更少
卷积
卷积的主要功能是在一个图像(或某个特征)上滑动一个卷积核(即滤波器),通过卷积操作得到一组新的特征.在计算过程中,需要进行卷积核翻转,在具体实现上,一般会以互相关操作来代替卷积,从而减少一些不必要的操作或开销
1. 一维卷积
处理信号
2. 二维卷积
处理图像
一副图像在经过卷积操作后得到结果成为特征映射(Feature Map)
互相关
互相关(Cross-Correlation)是一个衡量两个序列相关性的函数,通常是用滑动窗口的点积计算来实现
互相关与卷积的区别仅仅在于卷积核是否进行翻转
互相关也可以称为不翻转卷积
卷积的变种
引入卷积核的滑动步长和零填充来增加卷积的多样性,可以更灵活地进行特征抽取
步长
卷积核在滑动时的时间间隔
零填充
在输入向量两端进行补零
假设卷积层的输入神经元个数为M,卷积大小为K,步长为S,在输入输出两端各填补P个0(zero padding),那么该卷积层的神经元个数为$(M-K+2P)/S+1$
常用卷积
1. 窄卷积:S=1,P=0,卷积后输出长度为$M-K+1$
2. 款卷积:S=1,P=K-1,卷积后输出长度为$M+K-1$
3. 等宽卷积:S=1,P=(K-1)/2,卷积后输出长度为$M$
卷积层
性质:
1. 局部连接:
2. 权重共享
学习了一段,还难以跟实践挂上钩。