机器学习概述
机器学习是对能通过经验自动改进的计算机算法的研究.
机器学习三要素
模型、学习准则、优化算法
模型
特征(属性)向量: x
标签标量: y
样本空间(x,y)中根据经验来假设一个函数集合ℱ(假设空间 Hypothesis Space
)
假设空间ℱ 通常为一个参数化的函数族ℱ = {𝑓(𝒙; 𝜃)|
θ
∈
R
D
\theta \in R^D
θ∈RD},
其中𝑓(𝒙; 𝜃)是参数为𝜃 的函数,也称为模型
(Model),𝐷 为参数的数量.
线性模型与非线性模型
f
(
w
,
b
)
=
W
T
+
b
f(w,b)=W^T+b
f(w,b)=WT+b
线性可分 —> 支持向量机 (SVM)
机器学习课程(七)支持向量机(线性模型)数学描述【720P】.qsv.flv
二元分类
前提:两类权重相等
最优:
∣
∣
W
∣
∣
||W||
∣∣W∣∣ 小
学习准则
令训练集 𝒟 = {(𝒙(𝑛), 𝑦(𝑛))}𝑁 𝑛=1 是由 𝑁 个独立同分布的(Identically and Independently Distributed,IID)样本组成,
即每个样本 (𝒙, 𝑦) ∈ 𝒳 × 𝒴 是从𝒳 和𝒴 的联合空间中
按照某个未知分布𝑝𝑟(𝒙, 𝑦)独立地随机产生的.
Pr(x,y)即为机器学习的最终目标函数
一个好的模型 𝑓(𝒙, 𝜃∗) 应该在所有 (𝒙, 𝑦) 的可能取值上都与真实映射函数
𝑦 = 𝑔(𝒙)一致,即|𝑓(𝒙, 𝜃∗) − 𝑦| < 𝜖, ∀(𝒙, 𝑦) ∈ 𝒳 × 𝒴
,
或与真实条件概率分布𝑝𝑟(𝑦|𝒙)一致,即 |𝑓𝑦(𝒙, 𝜃∗) − 𝑝𝑟(𝑦|𝒙)| <𝜖, ∀(𝒙, 𝑦) ∈ 𝒳 × 𝒴,
其中𝜖是一个很小的正数,
f
y
(
x
,
θ
∗
)
f_y(x, \theta ^∗)
fy(x,θ∗)为模型预测的条件概率分布中𝑦对应的概率.
模型好坏的判断标准:期望风险(Expected Risk)ℛ(𝜃)
ℛ(𝜃) = 𝔼(𝒙,𝑦)∼𝑝𝑟(𝒙,𝑦)[ℒ(𝑦, 𝑓(𝒙; 𝜃))],
其中𝑝𝑟 (𝒙, 𝑦)为真实的数据分布,ℒ(𝑦, 𝑓(𝒙; 𝜃))为损失函数,用来量化两个变量之间的差异.
损失函数
损失函数越小,差异越小,建模就越好
- 目的:用来量化模型预测和真实标签之间的差异
损失函数是一个非负实数函数,用来量化模型预测和真实标签之间的差异.
0-1 损失函数:
直接对应分类判断错误的个数
,但是它是一个非凸函数,不太适用.
能够客观地评价模型的好坏,但其缺点是 数学性质不是很好:不连续且导数为0,难以优化 .因此经常用连续可微的损失函数替代.
平方损失函数:
应用于回归问题 ℒ(𝑦, 𝑓(𝒙; 𝜃)) =1/2(𝑦 − 𝑓(𝒙; 𝜃))2
.
交叉熵损失函数:
应用于分类问题 ℒ(𝒚, 𝑓(𝒙; 𝜃)) = −𝒚Tlog 𝑓(𝒙; 𝜃)
比如对于三分类问题,一个样本的标签向量为 𝒚 = [0, 0, 1]T,
模型预测的标签分布为 𝑓(𝒙; 𝜃) = [0.3, 0.3, 0.4]T,
则它们的交叉熵为
−(0 × log(0.3) + 0 × log(0.3) + 1 × log(0.4)) = − log(0.4).
Hinge 损失函数:
应用于二分类问题 ℒ(𝑦, 𝑓(𝒙; 𝜃)) = max (0, 1 − 𝑦𝑓(𝒙; 𝜃))
风险最小化准则
- 源:一个好的模型 𝑓(𝒙; 𝜃) 应当有一个比较小的期望错误,但由于不知道真实的数据分布和映射函数 ,实际上无法计算其期望风险 ℛ(𝜃).
经验风险最小化(Empirical Risk Minimization,ERM)准则:
给定一个训练集D,我们可以计算的是经验风险(Empirical Risk)
,即在训练集上
的平均损失:
ℛ𝑒𝑚𝑝𝒟 (𝜃) = 1/𝑁 ∑ ℒ(𝑦(𝑛), 𝑓(𝒙(𝑛); 𝜃)
- 新的问题:
经验风险最小化原则很容易导致模型在训练集上错误率很低
,但是在未知数据上错误率很高
.这就是所谓的过拟合(Overfitting).
定义 2.1 – 过拟合: 给定一个假设空间 ℱ,一个假设 𝑓 属于 ℱ,如果存在其他的假设 𝑓′ 也属于 ℱ,
使得在训练集上 𝑓 的损失比 𝑓′ 的损失小,
但在整个样本空间上 𝑓′ 的损失比 𝑓 的损失小,
那么就说假设 𝑓 过度拟合训练数据
-
过拟合本质原因:过拟合问题往往是由于训练数据少和噪声以及模型能力强等原因造成的.
-
应对过拟合: 再引入
参数的正则化
(Regularization)来限制模型能力,使其不要过度地最小化经验风险.
结构风险最小化(Structure Risk Minimization,SRM)准则
欠拟合(Underfitting),即模型不能很好地拟合训练数据,在训练集上的错误率比较高.
优化算法
机器学习的训练过程其实就是最优化问题的求解过程.
在确定了训练集 𝒟、假设空间 ℱ 以及学习准则后,如何找到最优的模型𝑓(𝒙, 𝜃∗) 就成了一个最优化(Optimization)问题
模型f(x;𝜃)
参数:𝜃 可以通过优化算法进行学习
超参数: 用来定义模型结构或优化策略的
超参数优化是机器学习的一个 经验性很强的技术 ,通常是按照人的经验设定,或者通过搜索的方法对一组超参数组合进行不断试错调整.
梯度下降法
在机器学习中,最简单、常用的优化算法就是梯度下降法,即首先初始化参
数 𝜃0 ,然后按下面的迭代公式来计算训练集𝒟 上风险函数的最小值:
θ
(
t
+
1
)
−
θ
(
t
)
=
α
θ
′
\theta_(t+1)-\theta(t)=\alpha\theta'
θ(t+1)−θ(t)=αθ′
其中𝜃𝑡 为第𝑡 次迭代时的参数值,𝛼为搜索步长
.在机器学习中,𝛼一般称为学习率(Learning Rate)
.
提前停止
在梯度下降训练的过程中,由于过拟合
的原因,在训练样本上收敛的参数,并不一定在测试集上最优.
因此,除了训练集和测试集之外,有时也会使用一个验证集(Validation Set)
来进行模型选择,测试模型在验证集上是否最优.
在每次迭代时,把新得到的模型 𝑓(𝒙; 𝜃) 在验证集上进行测试,并计算错误率.
如果在验证集上的错误率不再下降,就停止迭代. 这种策略叫 提前停止(Early Stop).
随机梯度下降法
目标函数是整个训练集上的风险函数,这种
方式称为批量梯度下降法(Batch Gradient Descent,BGD)
.
批量梯度下降法在 每次迭代时需要计算
当训练集中的样本数量𝑁 很大时,空间复杂度比较高,每次迭代的计算开销也很大.
为了减少每次迭代的计算复杂度,我们也可以在 每次迭代时只采集
随机梯度下降法(Stochastic Gradient Descent,SGD)
.
随机梯度下降法也叫作增量梯度下降法. 当经过足够次数的迭代时,随机梯度下降
也可以收敛到局部最优解[Nemirovski et al., 2009].
批量梯度下降和随机梯度下降之间的区别在于,每次迭代的优化目标是对所有样本的平均损失函数还是对单个样本的损失函数.
小批量梯度下降法
- 源:随机梯度下降法的一个缺点是无法充分利用计算机的并行计算能力
小批量梯度下降法(Mini-Batch Gradient Descent)
是批量梯度下降和随机梯度下
降的折中. 每次迭代时,我们随机选取
机器学习的简单示例–线性回归
线性回归(Linear Regression)是一种对自变量和因变量之间关系进行建模的 回归分析. 自变量数量为1时称为简单回归,自变量数量大于1时称为多元回归.
线性模型(回归问题):
x∈RD y∈R
𝑓(𝒙; 𝒘, 𝑏) = 𝒘T𝒙 + 𝑏
其中权重向量𝒘 ∈ ℝ𝐷 和偏置𝑏 ∈ ℝ都是可学习的参数
函数𝑓(𝒙; 𝒘, 𝑏) ∈ ℝ也称为线性模型.
参数学习
根据训练集找出最优的参数:W向量
参数估计
经验风险最小化
回归问题采用 平方损失函数 合适
参数含义:
xi:第i个样本的特征向量
yi:第i个样本的标签
y:由所有样本的真实标签组成的列向量
𝑿 ∈ ℝ(𝐷+1)×𝑁 是由所有样本的输入特征 𝒙 (1), ⋯ , 𝒙(𝑁) 组成的矩阵:
风险函数ℛ(𝒘)是关于𝒘的凸函数,其对𝒘的偏导数为:
这种求解线性回归参数的方法也叫最小二乘法(Least Square Method,LSM).
- 分析
在最小二乘法中,𝑿𝑿 T ∈ ℝ(𝐷+1)×(𝐷+1) 必须存在逆矩阵.也就是说,𝑿 中的行向量之间是线性不相关的,即每一个特征都和其他特征不相关.
当 𝑿𝑿 T 不可逆
时,可以通过下面两种方法来估计参数:
-
先使用
主成分分析
等方法来预处理数据,消除不同特征之间的相关性 ,然后再使用最小二乘法来
估计参数; -
使用
梯度下降法
来估计参数.先初始化𝒘 = 0
,然后通过下面公式进行迭代:
𝒘 ← 𝒘 + 𝛼𝑿(𝒚 − 𝑿 T𝒘), (2.42)
其中𝛼 是学习率
.这种利用梯度下降法来求解的方法也称为最小均方(Least Mean Squares,LMS)算法
.
补充 《向量矩阵数学求导》
求导???
首先: ( y − x T w ) ∗ − x T (y-x^Tw)*-x^T (y−xTw)∗−xT 是错误的
y: n*1
x:D+1 * n 维矩阵 (样本有D个特征)
w: D+1 * 1
y − x T W y-x^TW y−xTW: n*1 维 列向量
无法与 x T x^T xT: n* D+1右乘
具体规则:
理解??? 推导??
结构风险最小化
经验风险最小化的优化设计 𝑿𝑿 T 转化为 𝑿𝑿 T+λI
最小二乘法的基本要求是各个特征之间要互相独立,保证 𝑿𝑿 T 可逆
???如果特征之间有较大的多重共线性(Multicollinearity),也会使得
X
X
T
XX^T
XXT 的逆在数值上无法准确计算.
数据集 𝑿 上一些小的扰动就会导致
X
X
T
XX^T
XXT发生大的改变,进而使得最小二乘法的计算变得很不稳定.??*
共 线 性(Collinearity)
是指一个特征可以通过其他特征的线性组合来较准确地预测.
方案:
岭回归(Ridge Regression),给𝑿𝑿 T 的对角线元素都加上一个常数𝜆
使得(𝑿𝑿 T + 𝜆𝐼)满秩,即其行列式不为0.
最优的参数𝒘∗ 为𝒘∗ = (𝑿𝑿 T + 𝜆𝐼)−1𝑿𝒚,
其中𝜆 > 0为预先设置的超参数,𝐼 为单位矩阵
𝜆意义???
最大似然估计
评估的新思路
机器学习任务可以分为两类:
- 样本的特征向量 𝒙 和标签 𝑦 之间存在未知的函数关系 𝑦 = ℎ(𝒙),
- 条件概率 𝑝(𝑦|𝒙) 服从某个未知分布.
最小二乘法是属于第一类,直接建模 𝒙 和标签 𝑦 之间的函数关系.此外,线性回归还可以从建模条件概率𝑝(𝑦|𝒙)的角度来进行参数估计
.
似然函数是关于统计模型的参数的函数.
似 然 𝑝(𝑥|𝑤) 和 概 率𝑝(𝑥|𝑤) 之间的区别在于:
概率 𝑝(𝑥|𝑤) 是描述固定参数 𝑤 时随机变量 𝑥 的分布情况,
似然 𝑝(𝑥|𝑤) 则是描述已知随机变量𝑥时不同的参数 𝑤 对其分布的影响.
最大后验估计
最大似然估计的一个缺点是当训练数据比较少时会发生过拟合。
假设参数𝒘为一个随机向量,并服从一个先验分布𝑝(𝒘; 𝜈).为简单起见,一般令𝑝(𝒘; 𝜈)为各向同性
的高斯分布.
具体。。。
贝叶斯估计是一种参数的区间估计,即参数在一个区间上的分布.如果我们希望得到一个最优的参数值(即点估计),可以使用最大后验估计.
最大后验估计(Maximum A Posteriori Estimation,MAP)
是指最优参数为后验分布𝑝(𝒘|𝑿, 𝒚; 𝜈, 𝜎)中概率密度最高的参数
最大似然估计
和贝叶斯估计
可以分别看作频率学派
和贝叶斯学派
对需要估计的参数𝒘的不同解释.
当𝜈 → ∞时,先验分布𝑝(𝒘; 𝜈)退化为均匀分布,称为无信息先验(Non-Informative Prior),最大后验估计退化为最大似然估计.
偏差-方差分解
权衡 拟合能力与复杂度
复杂度理解? 特征数目的多寡
拟合能力强的模型一般复杂度会比较高,容易导致过拟合.
限制模型的复杂度,降低其拟合能力,又可能会导致欠拟合.
偏差(Bias)
,是指一个模型在不同训练集上的平均性能和最优模型的差异,可以用来衡量一个模型的拟合能力
方差(Variance)
,是指一个模型在不同训练集上的差异,可以用来衡量一个模型是否容易过拟合.
以结构风险最小化为例,我们可以调整正则化系数 𝜆 来控制模型的复杂度.
当 𝜆 变大时,模型复杂度会降低,???可以有效地减少方差,避免过拟合,但
偏差会上升.
一般来说,当一个模型在训练集上的错误率比较高时,说明模型的拟合能力不够,偏差比较高.这种情况可以通过增加数据特征、提高模型复杂度、减小正则化系数等操作来改进.
当模型在训练集上的错误率比较低,但验证集上的错误率比较高时,说明模型过拟合,方差比较高.这种情况可以通过降低模型复杂度、加大正则化系数、引入先验等方法来缓解.