0. 我的思考
两个可供突破的大方向:
- 是否能推动深度学习的训练数据规模减小?
- 怎么使得训练模型的结果更加精确。
资源:
- kaggle机器学习竞赛
1. 机器学习和深度学习关系概述
人工智能、机器学习和深度学习三者的关系如下所示:
机器学习:机器学习系统是训练出来的,而不是明确用代码编写出来的。人们通过输入数据和从这些数据中预期得到的答案,系统输出相应的规则。
深度学习:深度学习里面的"深度"不是指通过学习获得更深层次的理解,而是指通过一系列连续的表示层来获得更有效果的数据特征。一个深度学习模型有多少层就被称为模型的深度是多少。一般来说,现代深度学习通常包含数十个甚至上百个连续的表示层。这些层也被称为神经网络
1.2 深度学习的指标
在上面我们已经知道,深度学习是通过各层对输入数据不断提取特征,提取方式的具体操作就是每层都是对输入数据进行权重计算,其本质就是一串数字,
如下图所示,\(X_i\)是从图片拉伸出来的像素,它是不会变的,无法对其进行操作。而\(W\)矩阵就是参数矩阵,\(b\)是神经元偏置。因此对于深度学习,对于参数矩阵的选择是一项艰巨的任务,参数的好坏决定了输出结果的优劣。但是我们不能糊里糊涂的对参数进行更改,这样可能适得其反,必须借助某一个评估指标来更改,这就是接下来要介绍的损失函数
1.2.1 损失函数
损失函数:损失函数的任务,就是通过一定数学式子衡量出该深度学习的实际输出与预期标准值之间的距离。
通过损失函数计算的损失值作为反馈信号来对参数矩阵中的权值进行微调,来降低对应的损失值。这种调节右优化器来完成,它实现了所谓的反向传播算法。
一般来说,一开始神经网络的权值是随机赋值的,那么第一次的输出也就通常与预期值相差甚远,但随着权重值的不断微调,损失在也在降低,这就是为什么说学习模型是训练出来的。
1.2.2 softmax分类器
上面我们经过各层神经网络最终得到一个输入的得分值,但我们想一想如果结果给与我们一个概率不是更好,那么把得分值转化为概率就是softmax
的作用。
softmax
分类器将各个得分值进行放大然后归一化后再计算概率
1.3 卷积神经网络
神经网络本质上就是将我们的输入信息转换为特征矩阵。卷积神经网络就是对同一个区域可以提取多个特征值,传统的神经网络一般只提取单个特征值,这样卷积更加全面稳实。
卷积神经网络右输入层、隐含层、输出层组成:
输入层:卷积神经网络的输入层可以处理多维数据,常见地,一维卷积神经网络的输入层接收一维或二维数组,其中一维数组通常为时间或频谱采样;二维数组可能包含多个通道;二维卷积神经网络的输入层接收二维或三维数组;三维卷积神经网络的输入层接收四维数组。由于使用梯度下降算法进行学习,卷积神经网络的输入特征需要进行标准化处理。具体地,在将学习数据输入卷积神经网络前,需在通道或时间/频率维对输入数据进行归一化,若输入数据为像素,也可将分布于的原始像素值归一化至\([0,1]\)区间
隐含层:隐含层包含卷积层、池化层和全连接层3类常见构筑。卷积层中的卷积核包含权重系数,而池化层不包含权重系数
卷积核:卷积层的功能是对输入数据进行特征提取,其内部包含多个卷积核,组成卷积核的每个元素都对应一个权重系数和一个偏差量(bias vector)。卷积核就是图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核。
激励函数:卷积层中包含激励函数以协助表达复杂特征,卷积神经网络通常使用线性整流函数
Rectified Linear Unit, ReLU
,它的作用就是对于上一层经过卷积后的数据经过relu
的max(0,x)
筛选- 池化层:在卷积层进行特征提取后,为避免特征量太多计算缓慢,对其进行特征值压缩,输出的特征图会被传递至池化层进行特征选择和信息过滤。池化层包含预设定的池化函数,其功能是将特征图中单个点的结果替换为其相邻区域的特征图统计量。
全连接层:卷积神经网络中的卷积层和池化层能够对输入数据进行特征提取,全连接层的作用则是对提取的特征进行非线性组合以得到输出,即全连接层本身不被期望具有特征提取能力,而是试图利用现有的高阶特征完成学习目标
2. 机器学习
当我们用机器学习来解决实际任务时,会面对多种多样的数据形式,比如声音、图像、文本等.不同数据的特征构造方式差异很大.对于图像这类数据,我们可以很自然地将其表示为一个连续的向量. 将图像数据表示为向量的方法有很多种,比如直接将一幅图像的所有像素值(灰度值或RGB 值)组成一个连续向量.而对于文本数据,因为其一般由离散符号组成,并且每个符号在计算机内部都表示为无意义的编码,所以通常很难找到合适的表示方式.因此,在实际任务中使用机器学习模型一般会包含以下几个步骤
- (1)数据预处理:对数据的原始形式进行初步的数据清理(比如去掉一些有缺失特征的样本,或去掉一些冗余的数据特征等)和加工(对数值特征进行缩放和归一化等),并构建成可用于训练机器学习模型的数据集.
- (2)特征提取:从数据的原始特征中提取一些对特定机器学习任务有用的高质量特征.比如在图像分类中提取边缘、尺度不变特征变换(Scale InvariantFeature Transform,SIFT)特征,在文本分类中去除停用词等.
- (3)特征转换:对特征进行进一步的加工,比如降维和升维. 很多特征转换方法也都是机器学习方法.降维包括特征抽取(Feature Extraction)和特征选择(Feature Selection)两种途径.常用的特征转换方法有主成分分析(Principal Components Analysis,PCA)、 线性判别分析(Linear Discriminant Analysis,LDA)等.
- (4)预测:机器学习的核心部分,学习一个函数并进行预测
上述流程中,每步特征处理以及预测一般都是分开进行的.传统的机器学习模型主要关注最后一步,即构建预测函数.但是实际操作过程中,不同预测模型的性能相差不多,而前三步中的特征处理对最终系统的准确性有着十分关键的作用.特征处理一般都需要人工干预完成,利用人类的经验来选取好的特征,并最终提高机器学习系统的性能.因此,很多的机器学习问题变成了特征工程(Feature Engineering)问题.开发一个机器学习系统的主要工作量都消耗在了预处理、特征提取以及特征转换上.
2.1 机器学习类型
常见的机器学习有监督学习、无监督学习和强化学习。
- 监督学习:训练集有标签,学习准则为期望风险最小化,进行最大似然估计
- 无监督学习:训练集没有标签,学习准则为最大似然估计和最小重构错误
- 强化学习:智能体和环境交互的规矩t和累积奖励G,学习准则中会使用策略评估和改进。
总的来说学习的分类有,有监督主要是回归、分类问题;无监督学习问题主要为聚类、降维和密度估计
2.2 机器学习要素
机器学习的主要四要素是数据、模型、学习准则和优化算法。
2.2.1 模型
- 模型:以回归问题为例,输入空间\(X\)和输出空间\(Y\)构成了一个样本空间.对于样本空间中的样本\((x, y) ∈ X × Y\),假定x和y 之间的关系可以通过一个未知的真实映射函数\(y =g(x)\)或真实条件概率分布\(P_r(y|x)\)来描述.机器学习的目标是找到一个模型来近 似真实映射函数\(g(x)\)或真实条件概率分布\(p_r(y|x)\).
2.2.2 学习准则
- 学习准则:这里使用了损失函数,损失函数是一个非负实数函数,用来量化模型预测和真实标签之间的差异.下面介绍几种常用的损失函数:
- 平方损失函数:平方损失函数(Quadratic Loss Function)经常用在预测标签\(y\)为实数值的任务中,定义为 \[L(y,f(x;θ))={1 \over 2}(y-f(x;θ))^2\]
- 交叉熵损失函数:交叉熵损失函数(Cross-Entropy Loss Function)一般用于分类问题.假设样本的标签 \(y ∈ {1, ⋯ , C}\) 为离散的类别,模型\(f(x; θ) ∈ [0, 1]^C\)的输出为类别标签的条件概率分布。如下:比如对于三分类问题,一个样本的标签向量为 \(y = [0, 0, 1]^T\),模型预测的标签分布为 \(f(x; θ) = [0.3, 0.3, 0.4]^T\),则它们的交叉熵为 \[ L(y,f(x;θ))=−(0 × log(0.3) + 0 ×log(0.3) + 1 × log(0.4)) = − log(0.4)\]
- Hinge损失函数:对于二分类问题,假设\(y∈{−1, +1},f(x; θ)∈ℝ\),Hinge损失函数(Hinge Loss Function)为: \[L(y,f(x;θ))=max(0,1-yf(x;θ))\]
2.2.3 风险最小化准则
一个好的模型 \(f(x;θ)\)应当有一个比较小的期望错误,但由于不知道真实的数据分布和映射函数,实际上无法计算其期望风险 ℛ(θ).给定一个训练集 \(D ={(x^{(n)}, y^{(n)})}_{n=1}^N\),我们可以计算的是经验风险(Empirical Risk),即在训练集上的平均损失: \[R_D^{emp}(θ)={1\over N} \sum_{n=1}^NL(y^{(n)},f(x^{(n)};θ))\]
因此,一个切实可行的学习准则是找到一组参数\(θ^*\) 使得经验风险最小,即: \[θ^*=argminR_D^{emp}(θ)\] 这就是经验风险最小化(Empirical Risk Minimization,ERM)准则
过拟合:
根据大数定理可知,当训练集大小 |𝒟| 趋向于无穷大时,经验风险就趋于期望风险。然而通常情况下,我们无法获取无限的训练样本,并且训练样本往往是真实数据的一个很小的子集或者包含一定的噪声数据,不能很好地反映全部数据的真实分布.经验风险最小化原则很容易导致模型在训练集上错误率很低,但是在未知数据上错误率很高.这就是所谓的过拟合(Overfitting)
过拟合问题往往是由于训练数据少和噪声以及模型能力强等原因造成的.为了解决过拟合问题,一般在经验风险最小化的基础上再引入参数的正则化(Regularization)来限制模型能力,使其不要过度地最小化经验风险。这种准则就是结构风险最小化(Structure Risk Minimization,SRM)准则: \[θ^*=argminR_D^{struct}(θ)=argminR_D^{emp}(θ)+{1\over 2}λ||θ||^2\] 其中\(‖θ‖\)是\(ℓ2\) 范数的正则化项,用来减少参数空间,避免过拟合;\(λ\)用来控制正则化的强度.正则化项也可使用其他函数,比如$ ℓ1\(范数.\)ℓ1 $范数的引入通常会使得参数有一定稀疏性,因此在很多算法中也经常使用. 从贝叶斯学习的角度来讲,正则化是引入了参数的先验分布,使其不完全依赖训练数据
注:所有损害优化的方法都可称为正则化
2.2.4 最优化
在确定了训练集\(X\)、假设空间\(ℱ\)以及学习准则后,如何找到最优的模型\(f(x, θ^∗)\) 就成了一个最优化(Optimization)问题.机器学习的训练过程其实就是最优化问题的求解过程。
参数与超参数 在机器学习中,优化又可以分为参数优化和超参数优化.模型\(f(x; θ)\)中的\(θ\)称为模型的参数,可以通过优化算法进行学习.除了可学习的参数\(θ\)之外,还有一类参数是用来定义模型结构或优化策略的,这类参数叫作超参数(Hyper-Parameter)
常见的超参数包括:聚类算法中的类别个数、梯度下降法中的步长、正则化项的系数、神经网络的层数、支持向量机中的核函数等.超参数的选取一般都是组合优化问题,很难通过优化算法来自动学习.因此,超参数优化是机器学习的一个经验性很强的技术,通常是按照人的经验设定,或者通过搜索的方法对一组超参数组合进行不断试错调整.
- 优化算法:
梯度下降法:为了充分利用凸优化中一些高效、成熟的优化方法,比如共轭梯度、拟牛顿法等,很多机器学习方法都倾向于选择合适的模型和损失函数,以构造一个凸函数作为优化目标.但也有很多模型(比如神经网络)的优化目标是非凸的,只能退而求其次找到局部最优解。在机器学习中,最简单、常用的优化算法就是梯度下降法,即首先初始化参数\(θ_0\),然后按下面的迭代公式来计算训练集\(D\)上风险函数的最小值: \[θ_{t+1}=θ_t-α{δR_D(θ)\over δθ}=θ_t-α{1\over N}\sum{_{n=1}^N}{δL(y^{(n)},f(x^{(n)};θ)\over δθ}\] 其中\(θ_t\)为第\(t\)次迭代时的参数值,\(α\)为搜索步长.在机器学习中,\(α\)一般称为学习率(Learning Rate)
提前停止:针对梯度下降的优化算法,除了加正则化项之外,还可以通过提前停止来防止过拟合.在梯度下降训练的过程中,由于过拟合的原因,在训练样本上收敛的参数,并不一定在测试集上最优.因此,除了训练集和测试集之外,有时也会使用一个验证集(Validation Set)来进行模型选择,测试模型在验证集上是否最优. 在每次迭代时,把新得到的模型 \(f(x; θ)\) 在验证集上进行测试,并计算错误率.如果在验证集上的错误率不再下降,就停止迭代.这种策略叫提前停止(EarlyStop).如果没有验证集,可以在训练集上划分出一个小比例的子集作为验证集
随机梯度下降法:上面的梯度下降法的目标函数是整个训练集上的风险函数,批量梯度下降法在每次迭代时需要计算每个样本上损失函数的梯度并求和.当训练集中的样本数量\(N\)很大时,空间复杂度比较高,每次迭代的计算开销也很大。批量梯度下降法相当于是从真实数据分布中采集\(N\)个样本,并由它们计算出来的经验风险的梯度来近似期望风险的梯度.为了减少每次迭代的计算复杂度,我们也可以在每次迭代时只采集一个样本,计算这个样本损失函数的梯度并更新参数,即随机梯度下降法(Stochastic Gradient Descent,SGD).当经过足够次数的迭代时,随机梯度下降 作增量梯度下降法.也可以收敛到局部最优解[Nemirovski et al., 2009]
批量梯度下降和随机梯度下降之间的区别在于,每次迭代的优化目标是对所有样本的平均损失函数还是对单个样 本的损失函数.由于随机梯度下降实现简单,收敛速度也非常快,因此使用非常广泛.随机梯度下降相当于在批 量梯度下降的梯度上引入了随机噪声.在非凸优化问题中,随机梯度下降更容易逃离局部最优点.
- 小批量梯度下降法:随机梯度下降法的一个缺点是无法充分利用计算机的并行计算能力.小批量梯度下降法(Mini-Batch Gradient Descent)是批量梯度下降和随机梯度下降的折中.每次迭代时,我们随机选取一小部分训练样本来计算梯度并更新参数,这样既可以兼顾随机梯度下降法的优点,也可以提高训练效率: \[θ_{t+1}←θ_t-α{1\over k}\sum_{(x,y)∈δ_t}{δL(y,f(x;θ))\over δθ}\]
2.3 线性回归
本节通过一个简单的模型(线性回归)来具体了解机器学习的一般过程,以及不同学习准则(经验风险最小化、结构风险最小化、最大似然估计、最大后验估计)之间的关系.线性回归(Linear Regression)是机器学习和统计学中最基础和最广泛应用的模型,是一种对自变量和因变量之间关系进行建模的回归分析.自变量数量为1时称为简单回归,自变量数量大于1时称为多元回归。如下: \[f(x;w,b)=w^Tx+b\] 其中权重向量\(w∈ ℝ^D\) 和偏置\(b∈ ℝ\)都是可学习的参数,\(f(x;w,b)=w^Tx+b\)即为线性模型
2.3.1 参数学习
给定一组包含 𝑁 个训练样本的训练集 \(D = {(x^{(n)}, y{(n)})}_{n=1}^N=1\),我们希望能够学习一个最优的线性回归的模型参数\(w\).我们介绍四种不同的参数估计方法:经验风险最小化、结构风险最小化、最大似然估计、最大后验估计.
2.4 经验风险最小化
由于线性回归的标签𝑦和模型输出都为连续的实数值,因此平方损失函数非常合适衡量真实标签和预测标签之间的差异.根据经验风险最小化准则,训练集\(w\)上的经验风险定义 \[R(w)=\sum_{n=1}^NL(y^{(n)},f(x^{(n)};w)\\ ={1\over 2}\sum_{n=1}^N(y^{(n)}-w^Tx^{(n)})^2 \\ ={1\over 2}||y-X^Tw||^2 \]
风险函数\(ℛ(w)\)是关于𝒘的凸函数,其对\(w\)的偏导数为: \[ {δR(w)\over δw}={1\over 2}{δ||y-X^Tw||^2\over δw}\\ =-X(y-X^Tw) \] 令其等于0,则可得\(w^*=(XX^T)^{(-1)}Xy\) 上述求解线性回归参数的方法为最小二乘法。在最小二乘法,\(XX^T∈R^{(D+1)×(D+1)}\)必须存在逆矩阵。
2.5 结构风险最小化
最小二乘法的基本要求是各个特征之间相互独立,保证\(XX^T\)可逆,且即使可逆,如果特征值之间有较大的多重共线性,也会使得\(XX^T\)在的逆在数值上无法准确计算。因此此时给\(XX^T\)的对角线加上一个常数\(λ\),使其满秩 \[R(w)={1\over 2}||y-X^Tw||^2+{1\over 2}λ||w||\]
2.6 最大似然估计
一类是样本的特征向量\(x\)和标签\(y\) 之间存在未知的函数关系 \(y = ℎ(x)\),另一类是条件概率$ p(y|x)$ 服从某个未知分布.最小二乘法是属于第一类,直接建模 \(x\) 和标签 \(y\) 之间的函数关系.此外,线性回归还可以从建模条件概率\(p(y|x)\)的角度来进行参数估计。
假设标签\(y\)为一个随机变量,并由函数\(f(x; w) = w^Tx\) 加上一个随机噪声\(ε\)决定,即\(f(x; w) = w^Tx+ε\) 其中\(ε\)服从均值为0,方差为\(δ^2\)的高斯分布,则\(y\)服从均值为\(w^Tx\),方差为\(δ^2\)的高斯分布: \[ p(y|x;w,δ)={1\over \sqrt{2\piδ}}exp(-{(y-w^Tx)^2\over2δ^2}) \]
接下来计算\(w\)在训练集上的似然函数,后对似然函数取对数方便计算,令其导等于0,求出解得: \[w^{ML}=(XX^T)^{-1}Xy\]
2.7 最大后验估计
最大似然估计的一个缺点是当训练数据比较少时会发生过拟合,估计的参数可能不准确.为了避免过拟合,我们可以给参数加上一些先验知识.略,详看书
2.8 偏差-方差分解
为了避免过拟合,我们经常会在模型的拟合能力和复杂度之间进行权衡.拟合能力强的模型一般复杂度会比较高,容易导致过拟合.相反,如果限制模型的复杂度,降低其拟合能力,又可能会导致欠拟合.因此,如何在模型的拟合能力和复杂度之间取得一个较好的平衡,对一个机器学习算法来讲十分重要.偏差-方差分解(Bias-Variance Decomposition)为我们提供了一个很好的分析和指导工具.
2.9 机器学习算法类型
机器学习算法可以按照不同的标准来进行分类.比如按函数\(f(y; θ)\)的不同,机器学习算法可以分为线性模型和非线性模型;按照学习准则的不同,机器学习算法也可以分为统计方法和非统计方法.
但一般来说,我们会按照训练样本提供的信息以及反馈方式的不同,将机器学习算法分为以下几类:
- 监督学习:如果机器学习的目标是建模样本的特征\(x\)和标签\(y\)之间的关系:\(y =f(x; θ)\)或\(p(y|x; θ)\),并且训练集中每个样本都有标签,那么这类机器学习称为监督学习(Supervised Learning).根据标签类型的不同,监督学习又可以分为回归问题、分类问题和结构化学习问题.
- 回归(Regression)问题中的标签\(y\)是连续值(实数或连续整数),f(x; θ)$的输出也是连续值.
- 分类(Classification)问题中的标签\(y\)是离散的类别(符号).在分类问题中,学习到的模型也称为分类器(Classifier)。分类问题根据其类别数量又可分为二分类(Binary Classification)和多分类(Multi-class Classification)问题.
- 结构化学习(Structured Learning)问题是一种特殊的分类问题.在结构化学习中,标签𝒚通常是结构化的对象,比如序列、树或图等.由于结构化学习的输出空间比较大,因此我们一般定义一个联合特征空间,将\(x, y\)映射为该空间中的联合特征向量\(\phi(x, y)\),预测模型可以写为: \[y=arg max f(\phi(x,y);θ)\] 计算\(argmax\)s得过程也称为解码Decoding过程
无监督学习:无监督学习(Unsupervised Learning,UL)是指从不包含目标标签的训练样本中自动学习到一些有价值的信息.典型的无监督学习问题有聚类、密度估计、特征学习、降维等.
强化学习:强化学习(Reinforcement Learning,RL)是一类通过交互来学习的机器学习算法.在强化学习中,智能体根据环境的状态做出一个动作,并得到即时或延时的奖励.智能体在和环境的交互中不断学习并调整策略,以取得最大化的期望总回报
3. 线性模型
线性模型(Linear Model)是机器学习中应用最广泛的模型,指通过样本特征的线性组合来进行预测的模型。本节我们主要介绍四种不同线性分类模型:Logistic回归、Softmax回归、感知器和支持向量机,这些模型的区别主要在于使用了不同的损失函数
3.1 线性判别函数和决策边界
一个线性分类模型(Linear Classification Model)或线性分类器(Linear Classifier),是由一个(或多个)线性的判别函数\(f(x; w) =w^T + b\) 和非线性的决策函数\(g(⋅)\)组成.我们首先考虑二分类的情况,然后再扩展到多分类的情况.
3.1.1 二分类
二分类问题是最简单得,其类别标签只有两个值,通常设为\({+1,-1}\)。因此只需要一个线性判别函数\(f(x; w) =w^T + b\)。在特征空间\(R^D\)中所有满足\(f(x;w)=0\)得点组成一个分割超平面,也称为决策边界或决策平面,它将特征空间一分为二,两个区域各对应一个类边。特征空间中样本点到决策平面得距离为: \[ \gamma={f(x;w)\over||w||} \]
3.1.2 多分类
多分类(Multi-class Classification)问题是指分类的类别数\(C\)大于 2.多分类一般需要多个线性判别函数,但设计这些判别函数有很多种方式。一个多分类问题常用以下三种:
- 一对其余方式:把多分类问题转换为 C个“一对其余”的二分类问题.这种方式共需要\(C\)个判别函数,其中第c个判别函数\(f_c\) 是将类别c的样本和不属于类别c的样本分开
- “一对一”方式:把多分类问题转换为 \(C(C − 1)/2\)个“一对一”的二分类问题.这种方式共需要\(C(C − 1)/2\)个判别函数,其中第\((i, j)\)个判别函数是把类别i和类别j的样本分开
- “argmax”方式:这是一种改进的“一对其余”方式,共需要\(C\)个判别函数: \[ f_C(x;w_c)=w^T_cx+b_C \] 表示对于样本\(x\),如果存在一个类边\(c\),相对于所有其他类边\(\tilde{c}(\tilde{c}≠c)\)有\(f_c(x;w_c)>f_{\tilde{c}(x,w_{\tilde{c}})}\)。那么\(x\)属于类边\(c\)
上述得三种分类判别函数中前两个都有缺陷,那就是会存在一些难以区分得区域,二argmax方式很好得解决了这个问题
3.2 Logistic回归
Logistic 回归(Logistic Regression,LR)是一种常用的处理二分类问题的线性模型.在本节中,我们采用\(y ∈ [0, 1]\)以符合Logistic回归的描述习惯。为解决连续线性函数不适合分类问题,引入非线性函数g来预测后验概率\(p(y=1|x)\): \[ p(y=1|x)=g(f(x;w)) \] 上面\(g\)也被称为激活函数,它得作业其实就是将通过\(f(x;w)\)得出得值进行(0,1)间的压缩,使其成为概率。反函数\(g^{-1}\)称为联系函数。
因此使用LR作为激活函数时,相应的后验概率为(为简单起见,\(w\)和\(x\)均为增广矩阵): \[ p(y=1|x)={1\over 1+exp(-w^Tx)}; p(y=0|x)=1-p(y=1|x) \]
3.2.1 参数学习
Logistic 回归采用交叉熵作为损失函数,并使用梯度下降法来对参数进行优化.
给定\(N\)个训练样本\((x^{(n)},y^{(n)})_{n=1}^N\),使用LR回归模型对每个样本进行预测,输出其标签为1的后验概率,记为\(\tilde{y}^{(n)}\)。则交叉熵损失函数后,其风险函数为: \[ R(w)={-1\over N}\sum_{n=1}^N(p_r(y^{(n)}=1|x^{(n)}))log\tilde{y}^{(n)}+p_r(y^{(n)}=0|x^{(n)}))log(1-\tilde{y}^{(n)}))\\ ={-1\over N}\sum_{n=1}^N(y^{(n)}log\tilde{y}^{(n)}+(1-y^{(n)})log(1-\tilde{y}^{(n)})) \qquad式3.2.1 \]
然后对其进行求导的\({δR(w)\over δw}=-{1\over N}\sum x^{(n)}(y^{(n)}-\tilde{y}^{(n)})\)。然后使用梯度下降法进行迭代更新进行优化: \[ w_{t+1}=w_t+α{δR(w)\over δw} \]
由式子\(3.2.1\)可知,其风险函数是关于参数\(w\)连续可导的凸函数,因此除了使用梯度下降,LR回归还可以用高阶的优化方法,如牛顿法。
3.3 softmax回归
Softmax 回归(Softmax Regression),也称为多项(Multinomial)或多类(Multi-Class)的Logistic回归,是Logistic回归在多分类问题上的推广。对于多类问题,类别标签\(y∈ {1, 2, ⋯ , C}\)可以有\(C\) 个取值.给定一个样本\(x\),Softmax回归预测的属于类别\(c\)的条件概率为: \[ \tilde{y}=p(y=c|x)=softmax(w^T_cx)\\ ={exp(w_c^Tx)\over \sum ^C_{\tilde{c}=1}exp(w^T_\tilde{c}x)} \]
其决策函数为: \[ \{y=[I(C=c]\}=arg max_{c=1}^C p(y=c|x) \]
3.3.1 参数学习
给定\(N\)个训练样本\({(x^{(n)}, y^{(n)})}_{n=1}^N\),Softmax回归使用交叉熵损失函数来学习最优的参数矩阵\(W\).为了方便起见,我们用\(C\)维的one-hot向量\(y ∈(0, 1)^c\) 来表示类别标签.对于类别\(C\),其向量表示为: \[ y=[I(1=c),I(2=c),...,I(C=c)] \]
采用交叉熵损失函数时,softmax的风险函数为: \[ R(w)=-{1\over N}\sum_{n=1}^N\sum_{c=1}^C y_c^{(n)}log\tilde{y}_c^{(n)} \\ =-{1\over N}\sum_{n=1}^N (y^{(n)})^Tlog\tilde{y}^{(n)} \]
利用梯度下降法,对其求导可得梯度: \[ {δR(W)\over δW}=-{1\over N}\sum_{n=1}^N x^{(n)}(y^{(n)}-\tilde{y}^{(n)})^T \] 然后进行迭代更新: \[ w_{t+1}=w_t+α{δR(w)\over δw} \]
4.深度学习简述
为了学习一种好的表示,需要构建具有一定“深度”的模型,并通过学习算法来让模型自动学习出好的特征表示(从底层特征,到中层特征,再到高层特征),从而最终提升预测模型的准确率.所谓“深度”是指原始数据进行非线性特征转换的次数
深度学习是将原始的数据特征通过多步的特征转换得到一种特征表示,并进一步输入到预测函数得到最终结果.和“浅层学习”不同,深度学习需要解决的关键问题是贡献度分配问题(Credit Assignment Problem,CAP)[Minsky,1961],即一个系统中不同的组件(component)或其参数对最终系统输出结果的贡献或影响.从某种意义上讲,深度学习可以看作一种强化学习(Reinforcement Learning,RL),每个内部组件并不能直接得到监督信息,需要通过整个模型的最终监督信息(奖励)得到,并且有一定的延时性
深度学习采用的模型主要是神经网络模型,其主要原因是神经网络模型可以使用误差反向传播算法,从而可以比较好地解决贡献度分配问题.
4.1 表示学习
为了提高机器学习系统的准确率,我们就需要将输入信息转换为有效的特 征,或者更一般性地称为表示(Representation)。如果有一种算法可以自动地学习出有效的特征,并提高最终机器学习模型的性能,那么这种学习就可以叫作表示学习。
表示学习的关键是解决语义鸿沟(Semantic Gap)问题.语义鸿沟问题是指输入数据的底层特征和高层语义信息之间的不一致性和差异性.比如给定一些关于“车”的图片,由于图片中每辆车的颜色和形状等属性都不尽相同,因此不同图片在像素级别上的表示(即底层特征)差异性也会非常大.但是我们理解这些图片是建立在比较抽象的高层语义概念上的.如果一个预测模型直接建立在底层特征之上,会导致对预测模型的能力要求过高.如果可以有一个好的表示在某种程度上能够反映出数据的高层语义特征,那么我们就能相对容易地构建后续的机器学习模型
4.1.1 局部和分布式表示
在机器学习中,我们经常使用两种方式来表示特征:局部表示(Local Representation)和分布式表示(Distributed Representation).
- 局部表示:离散表示,one-Hot向量,单一值表示一个东西。
- 优点:
- 这种离散的表示方式具有很好的解释性,有利于人工归纳和总结特征,并通过特征组合进行高效的特征工程
- 通过多种特征组合得到的表示向量通常是稀疏的二值向量,当用于线性模型时计算效率非常高
- 缺点:
- one-hot向量的维数很高,且不能扩展.如果有一种新的颜色,我们就需要增加一维来表示
- 不同颜色之间的相似度都为0,即我们无法知道“红色”和“中国红”的相似度要高于“红色”和“黑色”的相似度
- 优点:
- 分布式表示:压缩、低维的稠密向量,使用多个值表示一个东西,如表示颜色的方法是用RGB值来表示颜色,不同颜色对应到R、G、B三维空间中一个点,这种表示方式叫作分布式表示
- 分布式表示的表示能力要强很多,分布式表示的向量维度一般都比较低.我们只需要用一个三维的稠密向量就可以表示所有颜色.并且,分布式表示也很容易表示新的颜色名.此外,不同颜色之间的相似度也很容易计算
4.2 端到端学习
端到端学习(End-to-End Learning),也称端到端训练,是指在学习过程中不进行分模块或分阶段训练,直接优化任务的总体目标.在端到端学习中,一般不需要明确地给出不同模块或阶段的功能,中间过程不需要人为干预.端到端学习的训练数据为“输入-输出”对的形式,无须提供其他额外信息.因此,端到端学习和深度学习一样,都是要解决贡献度分配问题.目前,大部分采用神经网络模型的深度学习也可以看作一种端到端的学习