统计学习(1)--定义速查
摘要
统计学习/机器学习基本名词解释
人工智能(Artificial Intelligence, AI)
人工智能指拥有类似与人类的自主思考甚至学习的计算机程序或系统。可分为弱人工智能和强人工智能。
统计学习(Statistical Learning)
统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。也被称为统计机器学习(statistical machine learning)。
统计学习是机器学习的数学基础。
机器学习分类
机器学习流程
- 获取数据
- 数据洞见与可视化
- 数据清洗与预处理
- 模型选择与训练
- 调整模型
- 启动监控与维护系统
输入空间、输出空间、特征空间
输入与输出所有可能取值的集合分别称为输入空间(input space)与输出空间(output space)。这里的空间通常属于欧式空间。
输入空间的具体输入是一个实例(instance),通常使用特征向量(feature vector)表示。特征向量所在的空间称为特征空间(feature space)。
输入变量与输出变量均为连续变量的预测问题称为回归问题;输出变量为有限个离散变量的预测问题称为分类问题;输入变量与输出变量均为变量序列的预测问题称为标注问题。
符号表示
在习惯上将输入变量记作X,输出变量记作Y,输入输出变量的取值用小写字母x/y表示。向量通常为列向量
输入实例x的特征向量记作
\[ x=\left(x^{(1)}, x^{(2)}, \cdots, x^{(i)}, \cdots, x^{(n)}\right)^{\mathrm{T}} \]
其中\(x^{(i)}\)表示\(x\)的\(i\)个特征,如果是下标\(x_i\)则表示这是第\(i\)个变量。
监督学习训练数据由输入(或特征向量)与输出对构成,通常表示为 \[ T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\} \]
统计学习三要素
方法=模型+策略+算法
模型
称由决策函数表示的模型为非概率模型,由条件概率表示的模型为概率模型。
所有模型构成的空间称为假设空间(hypothesis space)
策略
损失函数,使用损失函数(代价函数)度量模型一次预测的好坏 (loss function / cost function)
常用的损失函数有以下几种: 1. 0-1损失函数
\[ L(Y, f(X))=\left\{\begin{array}{ll} 1, & Y \neq f(X) \\ 0, & Y=f(X) \end{array}\right. \]
- 平方损失函数
\[ L(Y, f(X))=(Y-f(X))^{2} \]
- 绝对损失函数
\[ L(Y, f(X))=|Y-f(X)| \]
- 对数损失函数/对数似然损失函数
\[ L(Y, P(Y \mid X))=-\log P(Y \mid X) \]
损失函数值越小,模型就越好。因此可以计算以下损失函数的数学期望
\[ R_{\exp }(f)=E_{P}[L(Y, f(X))]=\int_{xy} L(y, f(x)) P(x, y) \mathrm{d} x \mathrm{~d} y \]
其中\(P(x,y)\)服从\((X,Y)\)的联合概率分布,\(R_{\exp }(f)\) 被称为风险函数(risk function)或 期望损失(expected loss)或期望风险。
但由于联合分布未知,这里需要使用训练集的平均损失\(R_{\text {emp }}\)来近似估计期望风险,公式如下
\[ R_{\text {emp }}(f)=\frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right) \]
它被称为经验风险
算法
算法是指学习模型的具体计算方法,习可以利用已有的最优化算法,有时也需要开发独自的最优化算法。
经验风险最小化(empirical risk minimization,ERM)
当样本容量足够大时,经验风险最小化能保证有很好的学习效果,在现实中被广泛采用。公式为
\[ \min _{f \in \mathcal{F}} \frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right) \]
其中\(\mathcal{F}\)为假设空间
结构风险最小化(structural risk minimization,SRM)
经验风险最小化的准确度取决于样本,为了防止过拟合,提出了结构风险最小化,结构风险最小化等价于正则化(regularization),定义为
\[ R_{\mathrm{sm}}(f)=\frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right)+\lambda J(f) \]
其中\(J(f)为模型的复杂度\)$是系数通常大于0
模型的训练与评估
训练误差与测试误差
数据集通常分为训练集和测试集,在选定损失函数后,训练误差和测试误差成为学习方法评估的标准。
训练误差的大小,对判断给定的问题是不是一个容易学习的问题是有意义的,但本质上不重要。测试误差反映了学习方法对未知的测试数据集的预测能力,是学习中的重要概念。显然,给定两种学习方法,测试误差小的方法具有更好的预测能力,是更有效的方法。通常将学习方法对未知数据的预测能力称为泛化能力(generalization ability)
过拟合
如果一味追求提高对训练数据的预测能力,所选模型的复杂度则往往会比真模型更高。这种现象称为过拟合(over-fitting)。过拟合是指学习时选择的模型所包含的参数过多,以致于出现这一模型对已知数据预测得很好,但对未知数据预测得很差的现象。
正则化
为对抗过拟合的情况,一个典型的方法是引入正则化(regularization),正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。一般形式如下
\[ \min _{f \in \mathcal{F}} \frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right)+\lambda J(f) \]
其中第一项是经验风险,第二项是正则化项,\(\lambda\)是两者关系系数,其值大于0
通常会使用2范数来作为正则项
\[ L(w)=\frac{1}{N} \sum_{i=1}^{N}\left(f\left(x_{i} ; w\right)-y_{i}\right)^{2}+\frac{\lambda}{2}\|w\|^{2} \]
其中\(w\)是特征向量,\(\|w\|^2\)是向量\(w\)的2范数
交叉验证
如果给定的样本数据充足,进行模型选择的一种简单方法是随机地将数据集切分成三部分,分别为训练集(training set)、验证集(validation set)和测试集(test set)。
但是,在许多实际应用中数据是不充足的。为了选择好的模型,可以采用交叉验证方法。可以重复多少使用数据。
简单交叉验证 随机将数据分为训练集(通常为70%)和测试集(通常为30%)。
S折交叉验证(S-fold cross validation) 首先随机地将已给数据切分为S个互不相交的大小相同的子集;然后利用S-1个子集的数据训练模型,利用余下的子集测试模型;将这一过程对可能的S种选择重复进行;最后选出S次评测中平均测试误差最小的模型。
留一交叉验证(leave-one-out cross validation) 将S折的S取为N,这里N是数据集的总容量。
生成模型与判别模型
- 生成模型
生成方法(generative approach)由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:
\[ P(Y \mid X)=\frac{P(X, Y)}{P(X)} \]
模型表示了给定输入X产生输出Y的生成关系。典型的生成模型有:朴素贝叶斯法和隐马尔可夫模型
- 判别模型
判别方法(discriminative approach)直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。
典型的判别模型包括:k近邻法、感知机、决策树、逻辑斯谛回归模型、最大熵模型、支持向量机。
问题分类
分类问题
算法从数据中学习一个分类模型或分类决策函数,称为分类器(classifier)。分类器对新的输入进行输出的预测(prediction),称为分类(classification)。可能的输出称为类(class)。
评价分类器性能的指标一般是分类准确率(accuracy)也就是损失函数为0-1损失函数时测试集上的准确率。
分类最常见的是二分问题,当然其他分类其实也可以归为多个二分问题。对于二类分类问题常用的评价指标是精确率(precision)与召回率(recall)。将关注的类记为正类,其他类为负类,根据模型判别的对错可以分为四种情况,将他们出现的总是记为如下符号
TP——将正类预测为正类数; FN——将正类预测为负类数; FP——将负类预测为正类数; TN——将负类预测为负类数。
精准率的定义为
\[ P=\frac{T P}{T P+F P} \]
召回率的定义为
\[ R=\frac{T P}{T P+F N} \]
\(F_1\)值是,精准率和召回率的调和均值
\[ \frac{2}{F_1}=\frac{1}{P}+\frac{1}{R} \]
\[ F_1=\frac{2 T P}{2 T P+F P+F N} \]
混淆矩阵(Confusion Matrix),又称为可能性矩阵或错误矩阵。是分类结果的一个可视化表现。形如
标注问题
标注(tagging)可以认为是分类问题的一个推广,输入是一组序列,输出也是一组序列。
回归问题
回归(regression)用于预测输入变量(自变量)和输出变量(因变量)之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化。
回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以由著名的最小二乘法(least squares)求解。
梯度下降法
梯度下降法(Gradient descent)是迭代法的一种,利用求偏导的方法更新参数,实现找到极值。公式如下
\[ w_{i+1}=w_{i}-\alpha * \frac{d L}{d w_{i}} \]
其中\(\alpha\)是学习率,其值影响迭代的速度,过大可能导致不收敛,过小收敛速度慢,且可能会陷入局部最优解。
批量梯度下降(Batch Gradient Descent,BGD)每一次迭代会对所有样本进行计算,具有全局性,但计算量大
随机梯度下降(Stochastic Gradient Descent,SGD)随机梯度下降是每次迭代使用一个样本来对参数进行更新,速度快但准确度可能会下降
小批量梯度下降(Mini-Batch Gradient Descent, MBGD)中和上述两者特性
感知机
感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,其通过一个超平面分离,输出取+1和–1二值。
单个感知机不能处理异或问题,多个感知机可以构成神经网络。
支持向量机
支持向量机的学习的目标也是在特征空间中找到一个分离超平面,能将实例分到不同的类。不同与感知机的解有无穷多个,线性可分支持向量机利用间隔最大化求最优分离超平面,解是唯一的。
支持向量机可以通过变换处理非线性分类问题。
k近邻算法
k近邻法(k-nearest neighbor,k-NN)是一种基本分类与回归方法。
k近邻法的输入为实例的特征向量,对应于特征空间的点;输出为实例的类别,可以取多类。
具体对于新的实例x,在训练集中找到与之相邻的k个实例,这k个实例的多数属于哪一类,就把这个实例分到哪一类中。当k为1时,称为最近邻算法。
k-mean
k-means是一种聚类算法,是无监督学习算法。它将训练数据分为k组,每一组是一个簇,随机选择k个实例作为初始的聚类中心点,对于每一个实例,计算它和这k个聚类中心的距离,然后把它分配到与它距离最近的聚类中心所在的簇中去;计算每个簇中所有实例的平均值,作为新的聚类中心点,以此往复,直至聚类中心点不再发生明显变化。
朴素贝叶斯
朴素贝叶斯对实际问题进行了简化假设,利用概率最大这一符合人脑对事物的判断的方法实现对输入实例的分类。
决策树
分类决策树从根节点开始对实例的某个特征进行测试判别,然后将实例分配到对应节点,反复递归最终实现实例的全部分类。
决策树的特性决定了它会倾向于多分类,为此需要使用剪枝或修改判别依据来优化模型。
逻辑斯谛回归
逻辑斯谛回归模型利用了逻辑斯谛方程的对数特性,将特征参数映射到[0,1]之间,将问题转换为概率预测,从而实现判别。
最大熵
最大熵原理是概率模型学习的一个准则。其观点认为熵最大的模型就是最好的模型。