机器学习基础
1. 学习算法
机器学习算法是从数据中学习的算法。
学习定义为:“对于某类学习任务T和性能度量P,一个计算机程序被认为可以从经验E中学习是指,通过经验E改进之后,在任务T上由性能度量P衡量的性能有所提升。”
1.1 任务T
学习过程本身不算任务,学习是我们所谓获取完成任务的能力。
通常机器学习定义任务为机器学习系统应该如何处理样本。样本是从某些机器学习系统处理的对象或事件中收集的已经量化的特征的集合。
常见机器学习任务的分类:
1、分类;
2、输入缺失的分类;
若输入向量的每个度量不被保证,分类任务会很有挑战。一般分类任务只需学习一个从输入向量映射到输出类别的函数。但是输入缺失时,学习算法必须学习一组函数。每个函数对应分类具有不同缺失的输入子集。
有效定义大集合函数的方法是:学习所有相关变量的概率分布,通过边缘化缺失变量解决分类任务。
3、回归;
4、转录:机器学习系统观测相对非结构化的数据,并转录信息为离散的文本形式;
5、机器翻译;
6、结构化输出;任务输出是向量或其他包含多个值的数据结构,构成输出的不同元素具有重要关系。
7、异常值检测;
8、合成和采样;
生成和训练数据相似的新样本。
9、缺失值填补;
10、去燥;
11、密度估计或概率质量函数估计;
算法能隐式的捕获概率分布的结构;
1.2 性能度量P
性能度量P是特定于系统执行的任务T而言。
1.3 经验E
机器学习算法通常分为无监督学习和监督学习算法。
无监督学习算法:训练含有很多特征的数据集,学习数据集有用的结构性质。例如学习生成数据集的概率分布,比如密度估计,合成或去燥;以及聚类。
监督学习算法:训练含有很多特征的数据集,但样本中有标签。
常用数据集的表示方法是设计矩阵。设计矩阵每一行包含不同的样本,每一列对应不同的特征。
对于图像数据,若向量的维度不一致,一般将数据集表示为m个元素的集合 { x ( 1 ) , x ( 2 ) , ⋯   , x ( m ) } \{x^{(1)},x^{(2)},\cdots,x^{(m)}\} { x(1),x(2),⋯,x(m)}。
2.容量、过拟合和欠拟合
训练误差:训练集上得到的标签与预测结果的度量误差;
泛化误差:新输入的误差期望,期望基于不同的可能输入。
若只能观测到训练集,如何影响测试集的性能?
统计学习理论表明,若训练集和测试集的数据是任意收集,那么能做的有限;若数据收集有一定假设,那么能对算法做出一定改进。
数据生成过程的概率分布生成训练集和测试集的数据。
独立同分布假设:数据集中的样本是彼此相互独立的,并且训练集和测试集是同一分布的。
这个假设表明我们能够在单个样本的概率分布描述数据生成过程。这个共享的潜在分布称之为数据生成分布。
这个概率框架和独立同分布假设允许从数学上研究训练误差和测试误差之间的关系。
·训练误差和测试误差之间的直接联系是:随机模型训练误差和测试误差的期望是一样的。
使用机器学习算法时会采样得到训练集,选择模型和参数降低训练误差,采样得到测试集。这个过程中,测试误差期望会大于或等于训练误差期望。一下是决定机器学习算法效果好的因素:
∙ \bullet ∙降低训练误差;
∙ \bullet ∙缩小训练误差和测试误差之间的差距;
也就是说,模型不能在训练集上得到足够的误差——欠拟合;训练误差和测试误差之间的差距太大——过拟合。
通过调整模型的容量可以控制模型是否偏向过拟合或欠拟合。
模型的容量是指其拟合各种函数的能力。
一种控制训练算法容量的方法是选择假设空间,即学习算法选择为解决方案的函数集。
2.1 奥卡姆剃刀原理
奥卡姆剃刀原理:“如无必要,勿增实体”,即简单有效原理。
在同样能解释已知观测现象的假设中,选择“最简单”的一个。
量化模型容量的各种方法。
2.2 VC维
VC维:定义为分类器能够分类的训练样本的最大数目。
Hoeffding不等式:关于一组随机变量均值的概率不等式。若 x 1 , x 2 , ⋯   , x n x_1,x_2,\cdots,x_n x1,x2,⋯,xn是一组独立同分布的参数为 p p p的伯努利分布的随机变量,其均值定义为:
X ˉ = x 1 + x 2 + ⋯ + x n n \bar X=\dfrac{x_1+x_2+\cdots+x_n}{n} Xˉ=nx1+x2+⋯+xn
对于任意 δ > 0 \delta \gt0 δ>0,Hoeffding不等式可以表示为
P ( ∣ X ˉ − E ( X ) ∣ ≥ δ ) ≤ e x p ( − 2 δ 2 n 2 ) P(|\bar X-E(X)|\geq \delta) \leq exp(-2\delta^2n^2) P(∣Xˉ−E(X)∣≥δ)≤exp(−2δ2n2)
从上式中可以看出,当n逐渐变大时,不等式的Upper Bound越来越接近于0,即样本期望越来越接近总体期望。
机器学习的过程是:通过算法A,在假设空间H中,根据样本集D,选择最好的假设g。选择标准是g近似于理想方案f。
E o u t ( h ) E_{out}(h) Eout(h)是理想情况下(已知f),总体(out-of-sample)的损失。称为expected loss。
E i n ( h ) E_{in}(h) Ein(h)是训练样本上(in-of-sample)损失的期望,称为expirical loss。
当样本数量足够大,且样本独立同分布,可以通过样本集上的expirical loss推测总体的expected loss。
假定整个假设空间有m个假设函数,有下面的等式
也就是说,在假设空间中,设定一个较小 ϵ \epsilon ϵ的值,任意一个假设h,其 E i n ( h ) − E o u t ( h ) E_{in}(h)-E_{out}(h) Ein(h)−Eout(h)由该值 2 M e x p ( − 2 ϵ N ) 2Mexp(-2\epsilon N) 2Mexp(−2ϵN)的所约束。这个bound与“样本数n和假设数M”密切相关。
对于一个假设空间,M可能是无穷大的,目标是寻找有限的因子替代不等式bound中的M。
P [ ∣ E i n ( g ) − E o u t ( g ) ∣ > ϵ ] ≤ 2 ⋅ m H ⋅ e x p ( − 2 ϵ 2 N ) \mathbb P[|E_{in}(g)-E_{out}(g)|\gt \epsilon] \leq 2\cdot m_{\mathcal H} \cdot exp(-2\epsilon^2 N) P[∣Ein(g)−Eout(g)∣>ϵ]≤2⋅mH⋅exp(−2ϵ2N)
实时上,多个g之间存在相互重叠,并不是完全独立,因此一些假设可以归为同一类。
假设空间的维度M是很大,但是数据集是有限的,有效的假设安徽省农户数目是有限的。推导有效的假设函数值。如果有N个样本数据,有效假设个数定义为:
effective(N)=H作用于数据集D“最多”能产生多少不同的dichotomy
上式表述为一个成长函数(growth function)
举例说明
对于第一个例子,positive ray,相当于是正向的射线。该假设空间,作用于1个样本点,可以产生2种dichotomies:(–1),(+1);作用于2个样本点,可以产生3种dichotomies:(–1,+1),(–1,–1),(+1,+1);作用于3个样本点,可以产生4种dichotomies。依次类推,可以推导出其成长函数 m_H(N)=N+1;
shatter:当假设空间作用于N个input的样本集时,产生的dichotomy数量等于N个点的总的组合数是2N。
break point:对于给定的成长函数 m H m_H mH,从N=1出发,当增大到k时,出现 m H ( N ) < 2 k m_H(N) \lt 2k mH(N)<2k的情况,则k是成长函数的break point。此时对于任意 N > k N \gt k N>k个输入,假设空间无法继续shatter。
成长函数额上界定义为 B ( N , k ) B(N,k) B(N,k),意思是:当break point=k时,最大可能的 m H ( N ) m_H(N) mH(N)。
对于任意 N > k N>k N>k,类推可以得到, B ( N , k ) ≤ B ( N − 1 , k ) + B ( N − 1 , k − 1 ) B(N,k)\leq B(N-1,k)+B(N-1,k-1) B(N,k)≤B(N−1,k)+B(N−1,k−1)
m H ( N ) ≤ ∑ i = 0 k − 1 ( N i ) m_H(N) \leq\sum_{i=0}^{k-1} \binom{N}{i} mH(N)≤i=0∑k−1(iN