(1)二值分类问题:输入空间是一个特征向量,输出空间只有2个值。 (2)多分类问题:输入空间是一个特征向量,输出空间是一个有限的离散的空间。 (3)回归问题:输入是一个特征向量,输出空间是一个实数集。 (4)结构学习:输出是一个结构,例如输入一个句子,标注词性。 (5)还有很多……
(1)监督问题:所使用的数据都是标注好结果的。例如分类,回归,标注问题等。 (2)无监督问题:所使用的数据都没有标注好。例如离群点检测,聚类,密度分析等。 (3)半监督问题:一部分数据是标注好的。例如图像识别。 (4)强化问题:所使用的数据有标注,但可能不是真实的标注,并给出这个标注的好坏指标。 (5)and so on…
(1)batch:一次性喂给系统数据,并给出一个确定的最好的学习结果。 (2)online:一批一批或者一个一个喂给系统数据,每次得到更好的学习结果。 (3)active:使系统能自己指出需要给出标记的关键问题,以寻求在更少的数据下获取更显著的学习效果。 (4)and so on…
(1)concrente Features:很直观的、具有物理意义的特征。 (2)Raw Features:一些不是那么直观的,需要转换的特征。 (3)Abstract Features:非常抽象的特征,需要经过多次特征提取。
机器学习只是针对当前已经有的数据做出学习,不能保证对没有出现过的数据做出完全正确的预测。其原因是对数据的拟合结果有很多种,每种都能对应完全正确的数据,但却不能保证之后的数据符合这个拟合结果。
采样能给出总体中的一些信息,并且通过中心极限定律能给出误差上限。
要保证所拿到的数据是和未知的整体数据同分布,则所学习到的模型在样本上的结果很大可能上和在整体的表现结果上类似。同时我们学习到的模型应该在测试集上进行验证,以确定模型的有效性。
如果假设空间够大的时候,说明可供选择的目标函数变多了,但也意味着选到坏目标函数的几率增加,反之亦然,所以当数据集够大、假设空间有限时可以有效减少偏差。可以用Hoeffding公式说明该问题:
P(BADD)=2Me−2ϵ2N综上所述,机器学习存在两个核心为题,首先是训练集是不是可以和真实数据同分布,其二是我们可以使训练出来的函数无限趋近与所需要预测的函数么? 另外还有一个问题,即是否存在一个方法能从无限的假设空间中提取有限、有效的人工假设空间,使得不那么容易选到坏的目标函数,同时也能保证我们在假设空间中有足够多的选择。
在假设空间无穷的情况下选到不好的结果的概率上限很大的原因是假设可能会从真实世界抽取到各种各样的不好的数据集,而其实很多不好的结果所对应的数据集是大部分重复的,所以希望把假设空间分类,使不同类假设之间的数据集没有那么多重复。 例如二分类问题,如果只有1个实例,则假设空间分为两类,有2个实例分为3类,3个实例分为6类(有两种情况线性不可分),以此类推。而所能分出来的数字就叫Effective Number of Lines
5.3.1 Dichotomies 根据上一节的内容做推广,对于一系列实例输入 x1…xn ,假设空间 H 对其的划分结果的集合记为 H(x1…xn) , H(x1…xn) 与 H 的区别在于 H(x1…xn) 含参,且 H(x1…xn) 的元素是划分结果,如果有 k 种划分结果,则 H(x1…xn) 的元素个数是 k ,后者的元素则是条件概率或者目标函数。 5.3.2 Growth Function 令 mH(N)=max|H(x1…xn)| ,则称 mH(N) 为成长函数,其中 N 是实例的个数。该函数所代表的是特定的假设空间 H 能将 N 个实例划分出的不同结果的最大个数。成长函数的最大值是 2N ,即能完全表示出所有的划分情况,称为N input shattered by H 。
对于每一种 H 有对应的成长函数,对于一部分 H 来说,他们的成长函数之所以不能到达 2N 的上限,是因为在 N 递增的过程中有一个关键性的数字 n ,在这个数字 n 以前,它们(那一部分 H )能完全划分 N 的所有情况,但 n 之后它们不能完全划分了,这个 n 就是Break Point。同样,如果 N=n 时不能完全划分出所有情况,那么 n+1 的时候也不能,故其成长函数不能达到 2N 的上限。 例如在二维的感知机上的 n 是4,也就是说在二维平面上如果有4个节点,则无法用一根直线完全划分出所有的分布情况。 接下来要证明的理论就是,是否成长函数的速度与其Break point相关,即: mH(N)=O(2n) 。
假设存在假设空间H能对数据点进行一些划分,则如果假设 H 的break point是2,即它不能完全打散(shatter)2个以上节点,则 H 对3个点进行划分的最多情况是4种(例如第一种是三个圈,其他三种分别有一个是叉,另外两个是圈,在这4种的基础上添加任意的划分都能打散某两个节点)。如果 H 的break point是1,则它对3个点的划分只能有一种情况。 于是我们可以看到,当 N=1 时, H 能划分2种情况; N=2 时, H 能划分3种情况; N=3 时, H 能划分4种情况,可以看到,其增长函数远小于 N 的增长速度。
本节对成长函数的上限做出基础陈述,令k为break point, N 为实例数, B(N,k) 是成长函数上限。 (1)当 k=1 时 B(N,k)=1 ; (2)当 N<k 时, B(N,k)=2N ; (3)当 N=k 时, B(N,k)=2N−1 ;
通过穷举得出 B(4,3)=11 ,并令 B(4,3)=2α+β ,其中, 2α 代表前3个节点划分相同,第4个节点划分不同的划分,在此处 2α=8 。 Β 则是剩余的划分。可以知道, α+β 代表 B(3,3) , α 代表 B(3,2) ,由递归推断, B(N,k)≤B(N−1,k)+B(N−1,k−1) 。此处可以证明,不等号实际上可以用等号代替。 综上,实际上我们可以得出:
B(N,k)≤∑k−1i=0(Ni) 需要注意的是,这个上界是成长函数的上界,而成长函数是假设空间 H 所能shatter数据集的上界,因此 B(N,k) 是上界的上界。假设存在一个有限的假设集 H 用以替代无限的假设空间,其成长函数是 mH(N) 。又假设存在一个有限的验证集,从 H 选出的模型能在训练集中得到偏差 Ein ,验证集上得出偏差 E′in ,现在用 E′in 替代测试集 Eout (这里认为测试集是无穷的,因此 Eout 不能直接得到)。因此,问题转化为在成长函数为 mH(N) 的有限 H 内选择模型,并使得 E′in≈Ein ,使得Hoeffding公式可以得出结果:
BAD<2mH(2N)P[fixed h s.t.|Ein−E′in|>ϵ2]≤4mH(2N)e−ϵ2N/8 由此,机器学习变得可能。