统计学习入门
本系列仅以自己学习过程作为参考,将其学习过的知识与自己的理解用文字的形式记录,希望也能对一同成长的朋友有所帮助,若有错误请各位大佬不吝赐教。
前言
在本文中,对一些0基础的问题进行讲解,但是由于涉及到知识范围太广,难以全部涉及,建议先对线性代数、高数、概率论的部分内容掌握扎实之后再来阅读,会减少一些阅读的障碍
线性代数部分
-
至少先去搞懂矩阵、范数、特征向量和特征值等等
-
推荐资料
高数部分
- 至少搞懂导数/ 微分/ 积分 /梯度 等等,建议都学一下
- 《高等数学》同济版 全程教学视频(宋浩老师)_哔哩哔哩_bilibili
概率论
若想更加深入学习可以自行去找一些优质资源,打好扎实数理基础。
一、什么是统计学习?
- 统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。
- 它的主要特点是:
- 建立在计算机与网络
- 以数据为研究对象
- 对数据进行预测与分析
- 为多学科交叉体系
- 因此统计学习可以称为运用数据及统计方法提高系统性能的机器学习,机器学习的全称往往是指统计机器学习
二、分类
基本分类
统计学习一般包括监督学习、无监督学习、强化学习。有时还会有监督学习和主动学习。
在这里,我们以监督学习为例子,来熟悉统计学习中一些很常见的概念
请注意,可能概念有点多,大家适当理解就行,不用刻意记忆,用的多了自然会熟的。
1. 监督学习
- 监督学习(supervised learning)利用训练数据集学习一个模型,再用模型对测试样本集进行预测,由于过程中需要标注的训练数据集,而标注往往是人工进行,所以也可看做是
被人监督的机器学习
。 - 我们将输入变量写作XX,它对应的每一个取值写作xx,输出变量定义为YY,对应的每一个值看做yy。每一个具体的输入变量xx我们可以认为是一个实例(instance),每一个实例由特征向量(feature vector)表示,且所有特征向量同处于一个空间,称为特征空间(feature space)。
- 另外,由于特征向量具有多个维度(类似于一个实体具有很多不同的属性),因此我们通常将其定义为以下形式:
- x=(x(1),x(2),⋯ ,x(i),⋯ ,x(n))Tx=left(x^{(1)}, x^{(2)}, cdots, x^{(i)}, cdots, x^{(n)}right)^{mathrm{T}}
- 其中:x(i) x^{(i)}表示xx的第 i 个特征,而后文提到的xix_{i}则为多个输入变量中的一个
- 基本假设:X和Y具有
联合概率分布
- 联合概率分布,简单来说就是两个及以上的随机变量组成的关于随机变量的概率分布,并且定义在同一个样本空间
数据集
:我们上文提到监督学习是利用训练数据集学习,并且对测试样本进行预测,要进行预测任务的前提是,需要有对应的真实数据,因此训练数据集由输入输出对组成,通常表示为:- T={(x1,y1),(x2,y2),⋯ ,(xN,yN)}T=left{left(x_{1}, y_{1}right),left(x_{2}, y_{2}right), cdots,left(x_{N}, y_{N}right)right}
假设空间
:这里的假设空间和上述特征空间并不一样,需要区别注意。假设空间是指,所有可能的能满足样本输入与输出映射的集合,也就是所有对应关系的总和,当我们确立了一个假设,那么基于该假设的假设空间及其规模大小就可以确定。例如一个苹果有三种颜色,三种脆度和三种大小,那么一共它有三个属性,若我们的假设红色苹果是一个好苹果,那么假设空间的大小就是3,也就是只有三种可能性,若我们给出的假设是一个瓜是不是好瓜,需要结合三种属性同时判断,那么就有4*4*4种可能性(例如三种颜色+不是这三种颜色的就是好瓜),也就是假设空间的大小为64。过程
:学习 + 预测- 学习:通过训练模型,得到一个条件概率分布P^(Y∣X)hat{P}(Y mid X)或决策变量Y=f^(X)Y=hat{f}(X)
- P(Y | X)是指在满足X的条件下,Y发生的概率,也称为后验概率
- 预测:yN+1=argmaxP^(y∣xN+1)y_{N+1}=a r g max hat{P}left(y mid x_{N+1}right)或yN+1=f(xN+1)y_{N+1}=fleft(x_{N+1}right) 给出相应的输出yN+1y_{N+1}
- argmax(f(x))是使得 f(x)取得最大值所对应的变量点x(或x的集合)
- 学习:通过训练模型,得到一个条件概率分布P^(Y∣X)hat{P}(Y mid X)或决策变量Y=f^(X)Y=hat{f}(X)
概率模型(probabilistic model)
条件概率分布模型形式:P(y∣x)P(y|x),其中x为输入,y为输出。若在无监督学习中则为P(z∣x)P(z|x)或P(x∣z)P(x|z),其中x是输入,z是输出。
- 非概率模型(nonprobabilistic model)
又称确定性模型(deterministic model),取函数形式y=f(x)y=f(x),无监督学习中则为z=g(x)z=g(x)
-
条件概率分布P(y∣x)P(y|x)和函数y=f(x)y=f(x)可以相互转化,前者一般是
生成式
模型,输出某个预测的“概率”,后者一般是判别式
模型,输出某个预测的“得分”,两者在训练时都是最大化正确预测的概率或得分。- 我们现在先使用一下后面会介绍的模型,来简单的引入,看不懂没关系(以下例子参照xSeeker回答)
- 以朴素贝叶斯二分类为例子,条件概率分布最大化后得到函数是指:
- y=f(X)=argmaxP(Y∣X)=argmaxkP(X∣y=k)P(y=k)P(X),k∈{0,1}y=f(X)=arg max P(Y mid X)=arg max _{k} frac{P(X mid y=k) P(y=k)}{P(X)}, k in{0,1}
- 以逻辑斯特回归为例,函数归一化后得到条件概率:
- f(X)=WX+bP(y=1∣X)= Sigmoid (f(X))begin{array}{l}f(X)=W X+b \P(y=1 mid X)=text { Sigmoid }(f(X))end{array}
- 这里可能有朋友不懂什么是归一化,简单说就是将已有数据去除量纲,比如一个样本有多个特征,但可能大部分特征数值集中1~10之间,突然有一个特征平均数值比另外这些特征高得多,那么它就会严重的影响结果,对判定起主导作用,为了杜绝这样的情况可以将所以特征都通过一些合适的归一化函数,将其数值规定到0-1之间,使得每个特征对结果影响相对平等。
-
监督学习的任务就是学习一个模型,并且应用它,给定输入预测相应输出
-
一般形式为:
- 决策函数Y=f(X)Y = f(X)或条件概率分布P(Y∣X)P(Y|X)
-
统计学习方法也可以分为
生成方法(generative approach)
和辨别方法(discriminative approach)
,所学到的模型分别是生成模型(generative model)
和辨别模型(discriminative model)
- 在监督学习中,概率模型是生成模型,非概率模型是辨别模型
-
生成方法关系的是给定了输入X产生输出Y,X与Y之间的关系
- 特点:还原联合概率分布P(X,Y),辨别方法不能,学习收敛速度往往很快,且样本数量足够大时更能收敛于真实模型。
- 典型应用模型有朴素贝叶斯模型和隐马尔卡夫模型..会在今后的文章中提到
-
辨别模型则更侧重于给定输入X,应该预测什么样输出Y
- 直接面对预测的模型,学习准确率往往更高,但因为直接学习的是P(Y|X)或者f(X),可以对数据进行抽象,定义特征并使用特征,因此可以简化学习问题。
- 典型应用包括K-means,感知机,决策树,逻辑斯谛回归模型,最大熵,支持向量机….同样也会在后面进行讲述
2. 无监督学习
- 从监督学习过渡过来,我们可以自然想到无监督学习即是采用无标注数据来学习预测模型的机器学习。
- 本质上是学习数据中的统计规律或潜在结构。
- 学习与预测过程和监督学习类似,数据集通常表示为:
- U={x1,x2,…,xN}U={x_{1},x_{2},…,x_{N}}
- 其中xix_i,i = 1,2,…,N.
- 请注意这里每一个x为一个样本,不要和上面的x(1)x^{(1)}混淆
3. 强化学习
-
智能系统在与环境的连续互动(通常指的是不断试错)中学习最优行为策略的机器学习问题
-
本质:学习最优的序贯决策
-
智能系统与环境的互动如上图,具体解释起来就是,每迭代一步,首先智能系统从环境观察到一个状态(state)sts_{t}与一个奖(reward)rtr_{t},后采取一个动作(action)ata_{t},决定下一步的状态与奖励,大概就是一个动态规划的感觉。设置的目标不是短期最大化,而是长期积累奖励最大化。强化学习就是不断试错(trial and error)以学习到最优策略的过程。
-
一个强化学习的经典案例,是马尔可夫链
-
总而言之,学习通常就是从一个价值函数开始,通过搜索找到更加好的价值函数,用其中叠加的奖励来表示是否更好。
-
4. 半监督学习与主动学习
- 半监督学习(semi-supervised learning)即使用少量标注数据和大量未标记数据,旨在利用未标注数据中信息辅助标注数据,进行监督学习,以较低成本达到较好的学习效果。
- 主动学习(active learning)是指机器主动给出实例让人工来进行标注,目标是找出对学习最有帮助的实例,利用人工来对其特殊标注,从而耗费较少代价达到较好的学习效果。
- 半监督学习和主动学习更接近监督学习
其他分类(部分)
这里为简要介绍,大家快速了解即可。
按算法分类
在线学习(online learning)
- 每次接受一个样本,进行预测,之后学习模型,并不断重复该操作的机器学习
- 在线学习的学习与预测过程在一个系统中,每次接受一个输入xtx_{t},用已有模型给出预测f^(xt)hat{f}left(x_{t}right),之后得到的结果即为该输入对应的输出yty_{t},我们的学习预测系统使用损失函数计算与理论f(xt)fleft(x_{t}right)的差异,更新模型不断重复的过程叫做在线学习。
- 在线学习通常比批量学习更难预测准确率更高的模型,因为迭代过程中可以利用的数据有限。
- 但当数据规模量很大以至于不可能一次处理所有数据,又或者数据采取的学习方式动态变化就必须得使用在线学习。
- 下文提及的利用随机梯度下降的感知机学习算法就是在线学习算法。
批量学习(batch learning)
- 一次接受所有数据,学习模型,之后进行预测。
- 优点
- 效率高,学习可以并行
- 消除样本顺序的影响
- 缺点
- 需要对内存容量宽裕,满足一次性加载所有训练集的条件,很多时候并不适合实际问题
- 不适合高维度问题(同样也是内存溢出问题)
- 优点
按参数数量分类
简而言之,就是看参数个数是否固定,参数个数固定的就是参数化模型,反之就是非参数化
参数化模型(parametric model)
- 假设:模型参数维度固定,可以由有限维度参数完全刻画
- 后续会介绍的感知机、朴素贝叶斯、逻辑斯谛回归…为参数化模型
非参数化模型(nonparametric model)
- 假设:模型维度不固定或者无穷大,随着训练数据量增加不断增加
- 后续会介绍的决策树、支持向量机…是为非参数化模型
按技巧进行分类
贝叶斯学习(Bayesian inference),是利用贝叶斯定理,计算给定数据条件下模型的条件概率,即后验概率,并运用这个模型进行估计,和对数据进行预测
-
既然这里提到了贝叶斯定理,那就简单来介绍一下:事件 A 在事件 B 发生的条件下与事件 B 在事件 A 发生的条件下,它们两者的概率并不相同,但是它们两者之间存在一定的相关性,并具有以下公式(称之为“贝叶斯公式”):
-
P(A∣B)=P(B∣A)P(A)P(B)P(A mid B)=frac{P(B mid A) P(A)}{P(B)}
- 其中:
- P(A)就是在全体数据集的基础上,A事件出现的概率,例如一页书有99个单词,问有多少个how,如果出现3个how,那么P(A)为1/33
- P(B|A)是条件概率的符号,由于我们求得目标是在B发生的情况下,A发生的概率,那么这个就不能简单的叫做概率了,在统计学里可以用”似然度”来称呼他
- P(A|B)是指在B发生的的情况下,A发生的概率,计算结果被称为后验概率
-
这个公式证明也十分简单,这里可以说一下。
- P(A,B)代表AB的联合概率分布,那么P(A,B)可以等于P(A|B)*P(B),也可以等于P(B|A)*P(A),那么
- P(A∣B)∗P(B)=P(B∣A)∗P(A)P(A|B)*P(B)=P(B|A)*P(A),即上述公式
- P(A,B)代表AB的联合概率分布,那么P(A,B)可以等于P(A|B)*P(B),也可以等于P(B|A)*P(A),那么
另外,虽然贝叶斯估计和极大似然估计思想上有很大的不同,但是只要假设,先验概率是均匀分布的,取后验概率最大,就能从贝叶斯估计中得到极大似然估计。
核方法(kernel method),核方法是一种表示和学习非线性模型的机器学习方法,可以用于监督学习和无监督学习。对一些线性模型,也可以使用,直接的做法是,直接从输入空间(低维)到特征空间(高维)的映射,并在特征空间中进行内积计算,将输入空间的线性不可分问题转化为特征空间的线性可分问题。他的具体技巧可以理解为,并不显示的定义一个一个的映射,而是把这些映射都定义为一个函数,称为核函数(即映射之后的内积),这样可以简化计算以及达到同样效果,节省时间空间。
三、统计学习方法三要素
- 统计学习方法由三要素构成:
- 方法=模型+策略+算法方法=模型+策略+算法
- 下面仍然以监督学习进行举例学习三要素,非监督学习,强化学习也同样拥有三要素,可以说,构建一种统计学习方法,就是确定具体的统计学习三要素
策略
- 由于策略中的概念在模型中均有体现,因此我们从策略开始学习三要素
- 统计学习需要考虑按照什么样的准则学习或选择最优的模型,这个准则就是策略
损失函数与风险函数
-
首先引入损失函数(loss function)与风险函数(cost function)的概念。损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。
-
常用损失
- 一般来讲损失函数值越小,模型越好。由于模型的输入、输出(X,Y)是随机变量,且遵循联合分布P(X,Y),所以我们可以得到损失函数的期望:
-
其实就是把每一次迭代的损失,求平均
- 这个期望即是风险函数(risk function)或期望损失(expected loss)
-
另外,这个是理想状态下的损失,如果对应到实际的数据集,那么公式变成如下形式
- Remp就被定义为经验风险(empirical risk)或经验损失(empirical loss)
- 根据大数定律,当N趋于无穷时,经验风险趋近于期望风险,但现实中样本数量有限,常常不能直接这样做,要进行一定的矫正,这里介绍监督学习的两个基本策略:经验风险最小化和结构风险最小化。
基本策略
- 经验风险最小化(empirical riusk minimization, ERM)
- 其中Fmathcal{F}是假设空间,下面模型会介绍到。
- 这个就和经验损失的公式基本类似,他是用于样本足够大的情况,找到能使得损失最小的那一种策略。
- 但样本容量很小的时候,经验风险最小化效果就有待商榷了,可能会产生过拟合(over-fitting)的情况
- 结构风险最小化(structural risk minimization,SRM)
- 结构风险最小化是在经验风险最小化的条件下做出的补充,也就是增加一个表示模型复杂度的正则化项(regularizer)或罚项(penalty term)(后续会介绍)
- 其中:J(f)表示模型复杂度,也称之为泛函,模型越复杂,J(f)就越大,λ>=0,是系数
- 该策略认为,结构风险最小的模型是最优的模型,所以求最优模型就是求解最优化问题
模型
- 在监督学习中,模型就是所要学习的决策函数或者条件概率分布,并且模型的假设空间(hypothesis space)包含所有可能的条件概率分布和决策函数。
- 假设空间用Fmathcal{F}表示,假设空间可以定义为决策函数的集合:
- F={f∣Y=f(X)}mathcal{F}={f mid Y=f(X)}
- 其中:X和Y是定义在输入空间Xmathcal{X}和输出空间Ymathcal{Y}上的变量,此时Fmathcal{F}通常是参数向量决定的函数族(也就是多个在同一级别的函数)。
- F={f∣Y=f(X)}mathcal{F}={f mid Y=f(X)}
- 假设空间也可以定义为条件概率的集合:
- F={P∣Pθ(Y∣X),θ∈Rn}mathcal{F}=left{P mid P_{theta}(Y mid X), theta in mathbf{R}^{n}right}
- 这个θtheta就是1,2,3….这些数嘛,属于Rnmathbf{R}^{n}(n维的欧式空间),这个Rnmathbf{R}^{n}也称作参数空间(parameter space)
- F={P∣Pθ(Y∣X),θ∈Rn}mathcal{F}=left{P mid P_{theta}(Y mid X), theta in mathbf{R}^{n}right}
- 假设空间用Fmathcal{F}表示,假设空间可以定义为决策函数的集合:
模型评估
-
因为,统计学习的主要目的是使学到的模型需要对未知数据也能进行良好预测,所以说当损失函数给定时,基于损失函数的训练误差(training error)和模型的测试误差(test error)就自然成为学习方法好坏的标准,并且,也要注意训练时的损失函数,未必是评估时的损失函数。
-
假设学习到的模型是Y=f^(X)Y=hat{f}(X),这里我们在回忆一下,模型其实就是一个能解决问题的数学函数,那么训练误差就是该模型关于训练数据集的平均损失:
- Remp(f^)=1N∑i=1NL(yi,f^(xi))R_{mathrm{emp}}(hat{f})=frac{1}{N} sum_{i=1}^{N} Lleft(y_{i}, hat{f}left(x_{i}right)right)
- 其中:L(yi,f^(xi))Lleft(y_{i}, hat{f}left(x_{i}right)right)为损失函数的意思,也就是把模型估计的值和真实值比对,并将其好坏抽象成一个函数算得分。N就是训练样本容量。
- Remp(f^)=1N∑i=1NL(yi,f^(xi))R_{mathrm{emp}}(hat{f})=frac{1}{N} sum_{i=1}^{N} Lleft(y_{i}, hat{f}left(x_{i}right)right)
-
测试集误差也是同理:
- Remp(f^)=1N∑i=1NL(yi,f^(xi))R_{mathrm{emp}}(hat{f})=frac{1}{N} sum_{i=1}^{N} Lleft(y_{i}, hat{f}left(x_{i}right)right)
- 其中N‘为测试样本容量
- Remp(f^)=1N∑i=1NL(yi,f^(xi))R_{mathrm{emp}}(hat{f})=frac{1}{N} sum_{i=1}^{N} Lleft(y_{i}, hat{f}left(x_{i}right)right)
模型选择
过拟合(over-fitting)
- 如果一昧仅仅追求对训练数据的预测能力,而使得模型过于复杂(参数十分多,十分复杂的函数),那么往往不能很好的完成对未知数据的预测任务,我们举个例子
- 假设给定一个训练数据集:
- T={(x1,y1),(x2,y2),⋯ ,(xN,yN)}T=left{left(x_{1}, y_{1}right),left(x_{2}, y_{2}right), cdots,left(x_{N}, y_{N}right)right}
- 其中,xi∈Rx_{i} in mathbf{R}是输入x的观测值,yi∈Ry_{i} in mathbf{R}是输入y的观测值,i = 1,2,…,N。其实T就是一个散点集合嘛。
- 现在我们考虑对给定的数据,用函数进行拟合,比如下图中空心原点就是一个数据点,我们采用M次多项式进行拟合。
- 假设给定一个训练数据集:
- 设M次多项式为:
- fM(x,w)=w0+w1x+w2x2+⋯+wMxM=∑j=0Mwjxjf_{M}(x, w)=w_{0}+w_{1} x+w_{2} x^{2}+cdots+w_{M} x^{M}=sum_{j=0}^{M} w_{j} x^{j}
- x为单变量输入,w0、w1…是 M + 1 个权重
- 在这里可以运用策略部分学习到的经验风险最小化策略,将模型与训练数据带入,可得
- L(w)=12∑i=1N(∑j=0Mwjxij−yi)2L(w)=frac{1}{2} sum_{i=1}^{N}left(sum_{j=0}^{M} w_{j} x_{i}^{j}-y_{i}right)^{2}
- 损失函数为上述提到的平方损失,系数12frac{1}{2}仅仅为了方便计算
- L(w)=12∑i=1N(∑j=0Mwjxij−yi)2L(w)=frac{1}{2} sum_{i=1}^{N}left(sum_{j=0}^{M} w_{j} x_{i}^{j}-y_{i}right)^{2}
- 若要求解可用最小二乘法拟合多项式系数唯一解,有兴趣的同学可以去查阅相关资料,不过我们这里主要是为了解释过拟合的情况
- 图1.8给出了M=0,M=1,M=3,M=9,即多项式权重的个数与多项式的次数,不难发现,M的值太大或者太小,都会导致拟合曲线与原曲线严重不符合。通常来讲我们模型的项数不能太高,因为有维度诅咒,感兴趣的同学可以去查找龙格效应,所以,虽然模型的损失L会根据模型的维度提升(越复杂的模型确实能更好的拟合训练数据),不断减小,但我们往往遵循简单的原则,只要Loss基本达标即可采用该模型,根据经验,回归模型的维度一般要控制到6~7次方以内。在这里,当 M = 3 时,多项式曲线对训练数据拟合效果足够好,模型也比较简单,是一个较好的选择。
- 图1.9描述训练误差和测试误差与复杂度的关系。
- 为了选择复杂度适当且测试误差最小的学习目的,下面介绍两种常用模型选择方法:正则化与交叉验证
正则化(regularization)
-
正则化可以来理解为结构风险最小化的实现,一般具有如下形式:
-
minf∈F1N∑i=1NL(yi,f(xi))+λJ(f)min _{f in mathcal{F}} frac{1}{N} sum_{i=1}^{N} Lleft(y_{i}, fleft(x_{i}right)right)+lambda J(f)
- 其中,第一项是经验损失,第二项是正则化项,λ >= 0 为调整两者关系的系数(前面基本策略也有提到)
-
正则化项是有不同形式的,在回归问题中,损失函数是平方损失,正则化项可以是参数w的L2范数、L1范数等等。
-
L(w)=1N∑i=1N(f(xi;w)−yi)2+λ2∥w∥2L(w)=frac{1}{N} sum_{i=1}^{N}left(fleft(x_{i} ; wright)-y_{i}right)^{2}+frac{lambda}{2}|w|^{2}
-
L(w)=1N∑i=1N(f(xi;w)−yi)2+λ∥w∥1L(w)=frac{1}{N} sum_{i=1}^{N}left(fleft(x_{i} ; wright)-y_{i}right)^{2}+lambda|w|_{1}
-
范数:向量的范数可以简单形象的理解为向量的长度,或者向量到零点的距离,或者相应的两个点之间的距离。以后在论文中会常常出现
-
常用的向量的范数:
L1范数: ||x|| 为x向量各个元素绝对值之和。
L2范数: ||x||为x向量各个元素平方和的1/2次方,L2范数又称Euclidean范数或者Frobenius范数
Lp范数: ||x||为x向量各个元素绝对值p次方和的1/p次方L∞范数: ||x||为x向量各个元素绝对值最大那个元素的绝对值,如下:
- limk→∞(∑i=1n∣pi−qi∣k)1/klim _{k rightarrow infty}left(sum_{i=1}^{n}left|p_{i}-q_{i}right|^{k}right)^{1 / k}
-
-
这里可能各位朋友又有疑惑了,这么多范数,怎么选呢?
- 这可能得具体情况具体分析,例如W是有多个维度的特征向量,那么你认为可能它里面哪一个维度是最重要的,就可以单独用那个维度来使用范数(L1),若p个维度都很有用,那么就可以选择Lp范数
-
-
L(w)的第一项经验风险较小的模型可能较复杂(多个非0参数),这时第 2 项模型复杂度较大,就可以使得λ增大,从而loss增加,正则化的用途就是选择经验风险与模型复杂度同时较小的模型
交叉验证(cross validation)
- 当模型足够多时,我们只需要将数据简单随机分配成三部分,
训练集(training set)
、验证集(validation set)
和测试集(test set)
。训练集用来训练模型,验证集用于筛选模型,测试集就是最终对学习方法的评估,一般来讲,训练集和验证集都是会提供问题和答案,而测试集不会提供答案,就用预测结果作为答案。 - 但是当数据量不够多的时候,为了选择到好的模型,我们可以将数据重复使用,就是不断重复同一个数据集,随机切分训练集和测试集,进行迭代,在此基础上反复训练,重复就是交叉验证的本质
- 1、简单交叉验证
- 随机将已给数据分为两部分,一部分训练集,一部分测试集(一般7/3开),然后就是正常的
- 2、S折交叉验证
- 应用最多的是
S折交叉验证(S-fold cross validdation)
,具体方法就是,将数据切分为等大的S个互不相交、大小相同的子集,利用S-1个子集训练数据,1个用来测试,这样的话一共可以训练S次,最终S次测评中平均误差最小的模型即可
- 应用最多的是
- 3、留一交叉验证
- 核心思想是:每一条数据为一个子集。适合于S = N的情况(S为折数,N为总样本数),往往在数据十分缺乏的时候使用
算法
- 算法是指学习模型的具体计算方法
- 统计学习有三步
- ①根据学习策略②从假设空间中选择最优模型③考虑用什么计算方法求解最优模型
- 有时我们利用已有的最优化算法即可,有时需要独自开发最优化算法。
- 下一篇感知机的文章,我们就会提到第一个算法实例:
随机梯度下降法(stochastic gradient descent)
四、泛化能力
泛化能力(generalization ability)
是指方法学习到模型对数据的预测能力
泛化误差(generalization error)
- 现实中,大多评价泛化能力是通过测试数据集的,但是数据集是有限的,这可能导致结果不可靠,因此,统计学习理论试图从理论对学习方法的泛化能力进行分析
- 泛化误差其实就是期望损失下加入真实数据的产物(公式基本完全一样,从训练数据更换为了预测数据)
- Rexp(f^)=EP[L(Y,f^(X))]=∫X×YL(y,f^(x))P(x,y)dx dybegin{aligned}
R_{exp }(hat{f}) &=E_{P}[L(Y, hat{f}(X))] \
&=int_{mathcal{X} times mathcal{Y}} L(y, hat{f}(x)) P(x, y) mathrm{d} x mathrm{~d} y
end{aligned}
- Rexp(f^)=EP[L(Y,f^(X))]=∫X×YL(y,f^(x))P(x,y)dx dybegin{aligned}
泛化误差上界(generalization error bound)
- 学习方法的泛化能力分析往往是通过研究泛化误差的概率上界进行的,简称泛化误差上界
- 具体来说就是比较泛化误差上界的大小从而比较泛化能力的优劣
- 样本容量的函数,当样本容量十分大时,泛化上界趋于0
- 假设空间容量的函数,容量越大,模型越难学,泛化误差上界就越大。
- 下面从有限集合F={f1,f2,⋯ ,fd}mathcal{F}=left{f_{1}, f_{2}, cdots, f_{d}right}中任意选出函数ff(F是一个函数集合)分析他的泛化误差上界
- 对二分类任务而言,每一个函数f的概率至少是1−δ,0<δ<1 1-delta, 0<delta<1,那么,有以下不等式成立:
- R(f)⩽R^(f)+ε(d,N,δ)R(f) leqslant hat{R}(f)+varepsilon(d, N, delta)
- 其中:
- ε(d,N,δ)=12N(logd+log1δ)varepsilon(d, N, delta)=sqrt{frac{1}{2 N}left(log d+log frac{1}{delta}right)}
- 这个我认为了解就好,毕竟证明对于初学也过于复杂了,左端R(f)为泛化误差,右端为泛化误差上界。右端第一项是训练误差,训练误差越小,泛化误差会越小。第二项是 N 的单调递减函数,N趋于无穷(样本数量足够多)该项趋于0;同时该项也是logdlog d阶的函数,F包含的函数越多,其值越大。
五、监督学习应用
分类问题
- 分类问题包括学习和分类两个过程。学习过程中,利用训练数据(x1,y1),(x2,y2)…(xn,yn)学习分类器;分类过程中利用分类器(模型)对测试集数据(xn+1x_{n+1},yn+1y_{n+1})进行预测,即对xn+1x_{n+1}进行分类,预测其类别为yn+1y_{n+1}
- 分类器的性能指标一般是分类准确率(accuracy),其定义是:分类器正确分类的样本数与总样本数之比。
- 对于二分类问题,常用指标是(precision)与召回率(recall)、通常将关注的类称为正类,其余类为负类,根据在测试数据集上预测的正确与否,将总数记作:
- TP—将正类预测为正类数(positive);
- FN—将正类预测为负类数(negative);
- FP—将负类预测为正类数;
- TN—将负类预测为负类数;
- T:true;P:positive;F:false;N:Negative。
- 以0-1问题举例,TP:预测为1,真实值也为1,TN:预测为0,真实值也为0,FP:预测为1,真实为0……
- 精确率定义为:
- P=TPTP+FPP=frac{mathrm{TP}}{mathrm{TP}+mathrm{FP}}
- 即所有预测为 1 的测试集中,预测准确的概率(也就是该样本确实为1)
- 召回率定义为:
- R=TPTP+FNR=frac{mathrm{TP}}{mathrm{TP}+mathrm{FN}}
- 即所有真实为 1 的测试集中,预测也为 1 的概率(预测准确)
- 还有能代表召回率与精确率的调和均值,叫做F1F_{1}
- 2F1=1P+1Rfrac{2}{F_{1}}=frac{1}{P}+frac{1}{R} —-> F1=2TP2TP+FP+FNF_{1}=frac{2 mathrm{TP}}{2 mathrm{TP}+mathrm{FP}+mathrm{FN}}
- 与P和R成正比
- 当精确率和召回率都高时,F1F_{1}也会高。
- 对于二分类问题,常用指标是(precision)与召回率(recall)、通常将关注的类称为正类,其余类为负类,根据在测试数据集上预测的正确与否,将总数记作:
标注问题
- 标注问题包括学习和标注两个过程,
标注(tagging)
可以认为是分类问题的推广,又是复杂结构预测问题的简单形式。 - 并且标注问题与分类问题的评价指标相同,常用的也是标注准确率、精确率和召回率
- 举一个例子方便理解
- 例如我们已经给每一个单词都人工辨别好了他的词性,通过模型训练,预测该句,得到的结果与我们手动的相比较,如果是相同词性,则该单词预测准确,反之则不准确,本质上也可以当成0-1问题
回归问题
回归(regression)
用于预测输入变量(自变量)和输出变量(因变量)之间的关系,回归模型正是表示输入变量到输出变量之间映射的函数。回归也等价于拟合问题,具体可以看模型选择部分的过拟合
- 回归问题按照输入变量个数,可以分为一元回归和多元回归
- 按照输入变量和输出变量之间关系的类型,可以分为线性回归和非线性回归
- 常用的损失函数是平方损失,在此情况下可以用最小二乘法(least squares)求解
尾言
本文为俺第一篇正经的博客,语言组织和表达能力肯定有很多不足之处,可能也会有概念在解释时出现错误,若有大佬看到本篇博客,希望慷慨滴告诉俺有何问题,谢谢大家看到最后,如果可以支持一下,麻烦点个赞吧!
参考资料
[1] 李航.统计学习方法[M].第二版.北京: 清华大学出版社, 2019
[2] 为什么逻辑回归的损失函数叫做交叉熵呢? – 知乎 (zhihu.com)