机器学习的一般范式
在这里,我将机器学习的问题简化为两种统计学习。 因为我认为无监督学习没有明确的定义,所以我不使用最常见的有监督/无监督分类。
1. 生成模型
训练集是一些数据{x_1,x_2,…,x_n},目标是表示这些数据的概率分布p(x)。 例如,给定许多猫的照片,我们的目标是找到这些猫的照片整体的规律,以便获得可以生成看起来像猫的照片的生成功能。 如何画猫。 同样,我们希望使用人工制作的示例来教机器如何讲话,如何写作以及如何撰写文章。
2. 判别模型
训练集是一对数据和标签{(x_1,y_1),(x_2,y_2),…,(x_n,y_n)},其中x_i是数据,y_i是标签,并且 目的是在给定数据的情况下表达标签的条件概率,即p(y | x)。 例如,我们有很多照片x_i,每张照片都有一个标签,告诉我们该照片是猫还是狗。 然后,y_i有两个可能的值,y_i = cat或y_i = dog。 我们希望机器学习如何区分猫和狗,以便当我们有了新图片x 时,机器还可以通过计算p(y = cat | x )和p(y = dog | x * )是猫还是狗。 这些问题也被广泛使用,例如图像识别,语音识别,医学诊断等。
尽管在某些情况下无法同时包含这两种模型,但通常可以在进行较小的更改的情况下将它们包括在内。 在这里,我们将不讨论这些次要问题。
通常,我们的目标是从某个数据集中找到一个好的函数,以表示所需的概率分布p(x)或p(y | x)。 但是,许多问题仍未解决。 有无数种概率分布。 我们应该选择哪些功能? 函数空间是无限维的,应该以哪种方式有限地表示这些函数? 对于两个候选人的概率分布,我们如何判断它们? 如何找到这些功能中最好的。 这些问题将在下面一一回答。 我们将解决机器学习问题的过程概括为以下几部分。
3. 数据集
您要学习的对象。为了避免过度拟合的现象,对于歧视问题,通常将数据集分为训练集(测试集)和测试集(测试集)。模型仅在训练过程中接触训练集,而训练后的测试集将用于测试模型的效果。例如,我们假设高考和模拟考试的问题相似,但并不完全相同,因此在模拟考试训练之后,高考用于测试最终的学习水平。如果存在遗漏问题的问题,只要在不理解的情况下强行记住高考的真实问题,一个人就能在高考中取得良好的成绩。过度拟合将这种现象描述为"死记硬背,而不是类推"。实际上,训练集也应该分成一个验证集,但是为了简化问题,我们这里不再讨论。
4. 模型空间
所有可能的概率分布函数都是一个巨大的集合。在这里找到最佳功能就像在大海捞针。因此,我们经常选择一些候选函数并在其中搜索。这个选择非常重要,因为如果我们选择的这些替代功能不合适,那么即使我们在其中找到了最佳解决方案,也仍然无法很好地解决问题。模型空间的选择几乎决定了机器学习算法的本质。无论是线性回归,各种基于树的方法还是由隐马尔可夫模型表示的图形模型,最大的区别之一在于模型空间的选择。一般来说,机器学习算法是指模型空间和以下将要描述的模型表示。 VC维数理论向我们揭示了每个问题的最佳模型(空间)可以最好地解决问题。太大的模型空间很容易导致过度拟合,反之亦然。 )。当我们谈论深度学习时,我们将回到这个问题。
5. 模型的表示(参数化/体系结构)
这是一个相对模糊的概念,但是我个人认为,它对于解释深度学习与传统机器学习之间的差异具有重要意义。首先,即使我们将模型空间限制在相对较小的程度,我们仍然需要找到一种方法来表示空间中的每个函数,或者需要为该替代函数命名。举个例子,如果我们选择模型空间作为所有二次函数,即S = {p(x)= a_1 x²+ b_1 x + c_1,对于任何a_1,b_1,c_1},我们可以指向通过长度为三的向量(a_1,b_1,c_1)在每个S中使用该函数。但是,S可以写为不同。例如,对于任何a_2,b_2,c_2,d_2},S也可以表示为S = {p(x)=(a_2 * x + b_2)(c_2 x + d_2),这样,我们可以也用向量(a_2,b_2,c_2,d_2)表示每个候选函数。作为一个集合,两个函数空间完全相同,但是作为帮助我们找到最佳函数的指南,不同的表示形式可能会有很大的不同。还有一类非参数模型(非参数)无法简化为这种情况,例如kNN(k最近邻),但它们不是本文的重点。
6. 目标函数(object / loss function)
为了判断哪种函数是好的,我们需要引入一个可量化的标准,通常称为目标函数(object function),也通常称为损失函数(loss function)。 ,因此表示为L。对于每个候选函数p(x),L将给出评估L(p),L(p)越小意味着p(x)越好。通常,L与训练集有关,因为L应该反映p(x)是否包含训练集中包含的信息。对于判别问题,最简单的选择之一可以是训练集上p(y | x)的准确性。精度越高,训练集中包含的信息p(y | x)就越多。但是这里也存在过度拟合的危险,因为训练集的高精度不一定意味着测试集的高精度,所以p(y | x)可能只是记录了样本中的大多数示例。训练集(记忆),仅此而已。除了限制模型空间外,我们还可以向目标函数添加正则化以限制这种情况的发生。简单来说,常规术语代表我们对不同模型的偏好。对于具有相似性能的两个不同模型,我们将根据正则项的大小进行选择。例如,根据奥卡姆(Occam)的剃刀原则,我们可以设计一个常规术语,以便在某种意义上可以选择一个尽可能简单的模型。最后,除了准确性外,常见的目标函数还包括均方估计(L2),均值绝对估计(L1),铰链损失,负对数似然和交叉熵。其中,交叉熵通常可以从KL散度导出。
7. 优化算法
在准备的前四个步骤之后,我们可以严格地将机器学习问题定义为优化问题,即找到最大值/最小值的问题。给定数据集,选择与数据集相关的目标函数L,定义模型空间S,并通过一些参数化将其表示为S = {p_w:对于T中的任何w},其中T通常是多维欧几里得的子集空间,即w是满足某些条件的向量。那么,我们需要解决的优化问题是min_ {w in T} L(p_w),即找到T中的w以使L(p_w)的值最小。