在这里,我将机器学习的问题简化为两种统计学习。由于我认为无监督学习没有明确定义,因此我不使用最常见的监督/无监督分类。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.Dataset你想学习的对象。为了避免过拟合现象,对于判别问题,通常将数据集分为训练集(testset)和测试集(testset)。模型只在训练时接触到训练集,训练后的测试集将用于测试模型的效果。例如,我们假设高考和模拟考试的题目相似,但不完全相同,因此在模拟考试训练之后,高考被用来测试最终的学习水平。如果出现漏题的问题,只要在不理解的情况下强行背高考真题,一个人就可以在高考中取得好成绩。过度拟合将这种现象描述为“死记硬背,而不是类比”。事实上,训练集也应该划分为验证集,但为了简单起见,我们这里不做讨论。4.模型空间中所有可能的概率分布函数是一个巨大的集合。在这里寻找最佳特征就像大海捞针。因此,我们经常选择一些候选函数并在其中进行搜索。这个选择很重要,因为如果我们选择了那些不合适的备选函数,那么即使我们在其中找到了最好的解决方案,也仍然不能很好地解决问题。模型空间的选择几乎决定了机器学习算法的性质。无论是线性回归、各种基于树的方法,还是以隐马尔可夫模型为代表的图形模型,最大的区别之一在于模型空间的选择。一般来说,机器学习算法指的是下面将要描述的模型空间和模型表示。VC维数理论向我们揭示了每个问题最好的模型(空间)来最好地解决问题。模型空间太大很容易导致过拟合,反之亦然。).当我们谈论深度学习时,我们会回到这个问题。5.模型的表示(参数化/架构)这是一个比较模糊的概念,但个人认为对于解释深度学习与传统机器学习的区别有很大的意义。首先,即使我们将模型空间约束到一个比较小的程度,我们仍然需要找到一种方法来表示空间中的每个函数,或者需要给这个备选函数起一个名字。例如,如果我们选择模型空间作为所有二次函数,即S={p(x)=a_1x2+b_1x+c_1,foranya_1,b_1,c_1},我们可以指向一个长度为三的向量via(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_2x+d_2),所以我们也可以用向量(a_2,b_2,c_2,d_2)表示每个候选函数。作为一个集合,这两个函数空间是相同的,但作为帮助我们找到最优函数的指南,不同的表示可能会有很大不同。还有一类非参数模型(non-parametric)不能归约到这种情况,比如kNN(knearestneighbors),但它们不是本文的重点。6.目标函数(object/lossfunction)为了判断哪个函数好,我们需要引入一个量化的标准,通常称为目标函数(objectfunction),通常也称为损失函数(lossfunction),所以记为L。对于每个候选函数p(x),L都会给出一个评价L(p),较小的L(p)意味着更好的p(x)。通常,L与训练集有关,因为L应该反映出p(x)是否包含训练集中包含的信息。对于判别问题,最简单的选择之一可能是训练集上p(y|x)的准确性。准确率越高,训练集中包含的信息p(y|x)越多。但是这里也存在过拟合的危险,因为在训练集上准确率高并不一定意味着在测试集上准确率高,所以p(y|x)可能只是记录了样本中的大部分例子。训练集(内存),仅此而已。除了限制模型空间,我们还可以在目标函数中加入正则化来限制这种情况的发生。简单来说,约定俗成的术语代表了我们对不同车型的偏好。对于性能相似的两个不同模型,我们会根据正则化项的大小进行选择。比如,遵循奥卡姆剃刀原则,我们可以设计一个通用术语,这样在某种意义上我们可以选择一个尽可能简单的模型。最后,除了准确性之外,常见的目标函数还包括均方估计量(L2)、平均绝对估计量(L1)、铰链损失、负对数似然和交叉熵。其中,交叉熵通常可以由KL散度导出。7.优化算法经过前四个步骤的准备,我们可以严格地将机器学习问题定义为优化问题,即寻找最大值/最小值的问题。给定一个数据集,选择一个与该数据集关联的目标函数L,定义一个模型空间S,并用一些参数化表示为S={p_w:foranywinT},其中T通常是一个多维欧几里得子集空间,即w是满足一定条件的向量。那么,我们要解决的优化问题就是min_{winT}L(p_w),即在T中找到w,使L(p_w)的值最小。对于不同的机器学习问题,这个优化问题可能具有非常不同的性质,最适合的优化算法自然也会不同。许多机器学习模型都有特定的优化算法,例如支持向量机(SMO)算法和混合模型(mixturemodel)EM算法。此外,影响优化结果的因素是初始化。许多优化算法可以看作是沿着定义域中的特定路径进行的一系列搜索。对于复杂的优化问题,搜索的起点往往非常重要。初始选择方法可以看作是优化算法的一部分。优化算法本身也是一个很好的研究方向。稍后,我们将继续讨论优化算法与深度学习之间相互作用的话题。以上五个步骤基本上总结了解决机器学习问题或应用机器学习算法的整个过程。其中,优化算法求解的过程就是所谓的训练过程(training)。训练时间取决于数据集和模型大小。在笔记本电脑上,这个过程可能需要几秒钟,但在计算集群上可能需要几天时间。
