当前位置:首页 > 人工智能 >

关于机器学习的一点

2020-06-28 20:05:00

统计学习理论是的重要基础,为许多机器学习算法提供理论支持,通过一些统计学的角度我们试图找出从经验数据中得出有效结论这一过程的数学解释。

简单来说,机器学习主要是将来自输入域的数据经过未知的目标函数映射到输出域的相应数据上。 如果目标函数是已知的,那么我们根本不需要学习,我们只需要按照函数直接计算就好了。 机器学习的基本前提就是使用一组数据来观察和揭示数据中的潜在规律。 机器学习的目标就是从有限的样本数据集中找到一个近似于目标函数的函数。

关于机器学习的一点

以机器学习中的监督学习为例,监督学习是从一组带有的数据中学习。 训练集中的每个点都是输入 - 输出对的形式,将输入映射到已知输出。 学习目标即为能够找到未知控制规则的最佳算法,这些规则通过对样本数据分布的规律探索,构建一个近似于目标函数的假设函数,来根据输入预测未知的输出。 学习模型的性能或泛化性能是根据其对独立数据的预测精度来衡量的。

目前机器学习分为监督学习、无监督学习,其中监督学习又分为分类问题和回归问题,无监督学习则为降维和聚类。每一个分支都包括多种算法,不同算法的思想以及适用范围为我们构建高性能模型提供多种选择。

为了选择最佳模型然后评估其泛化性能,对用于训练算法的样本数据集通常随机分为2组:即训练集、测试集。其中训练集用于算法训练,让算法学习数据中的潜在数据规律,并且通过调整算法的超参数,获得更加准确的算法模型。测试集用于评估不同模型的学习效果,反映模型的性能。

预测误差或泛化误差用来优化模型,在机器学习中,对于任何问题我们建立模型的最终目标都是最小化误差,其中误差主要可以从三个方面来解释:偏差、方差和噪声。噪声也称为“不可避免的误差”,对于噪声我们无能为,因为它仅取决于我们用于训练的数据,我们只能从偏差和方差来改进我们的模型,即寻求偏差-方差的平衡。

如果训练数据集中的数据是由一个固有的随机过程,一个错误的问题,或者特征集是错误的或不完整的,那么任何算法都不会有好的准确率,所以用机器学习算法来解决问题的一个条件就是这个问题是能够解决的,不能是一个未解之谜。这就是为什么数据科学家花费大约19%的时间来寻找好的数据,另外60%的时间用于清理他们收集的数据:数据的质量直接决定机器学习模型准确性,

假设我们正在尝试根据年龄等多个特征的训练数据集来预测人体重量。 年龄可能是预测体重时要考虑的特征之一,但还有许多其他因素表征体重,包括身高,性别,地理位置等。如果仅考虑年龄,那么很可能最终得到一个弱预测器或者一个具有很大泛化误差的学习器。因此,对于给定的一组特征,噪声在真实分布中可能不是真正的噪声。 我们可能根本没有从数据集中选择足够的特征以便能够对真实分布进行建模。

如果算法非常精确地映射给定训练分布的所有数据点,则肯定会对该特定训练数据产生非常小的误差。 然而在对测试数据进行预测时则会有很差的效果,那么你的模型就过拟合了。换句话说,该模型学习能力太强,受到数据中噪声的影响就越大,一般来说,方差可以表示算法对特定训练数据集的敏感性。 高方差表明该算法非常适合数据,并且对于数据分布建立了过于复杂的模型,因此表示模型过度拟合。

另一方面,我们既不能选择过于简单且不够表达的模型来反映事件的数据分布,这时就会出现欠拟合的问题。想象一下,使用线性回归来映射具有非线性模式的训练数据集:线性回归只是一条线而且对于非线性数据集来说太过单一。 通常我们使用偏差来表示机器学习算法无法拟合或不能足够好地表示训练集中数据的分布。 换句话说,偏差给模型所做的简化假设提供了一个维度,使目标函数更容易学习,如果偏差值过大则说明模型欠拟合。因此我们用方差表示过度拟合,偏差表示欠拟合。

从统计学的角度来看,这是一个非常著名的偏差 - 方差平衡问题。能够找到一个能够很好地平衡偏差和方差的算法,我们才能通过最简单的近似模型来获得最佳的泛化性能。为了提高性能,我们可能需要选择不同的算法来得到更大的假设空间和覆盖更广的区域,但是请记住,我们试图接近的目标函数仅来自一组有限的样本数据。 不是来自真实的、完整的。 虽然样本数据是我们学习的全部内容,但有限的数据集只能代表对描述整个现象的实际函数的估计。如果我们非常接近描述样本分布的函数,产生较低的偏差,则风险是当我们使用新建的函数模型预测新的数据就会出现较高的方差。正如我们刚才所说的那样,我们模型的复杂性会影响其性能,我们需要找到一种以定量的方式定义复杂性的方法,其中,Vapnik-Chervonenkis维度是一种广泛使用的方法,可以在偏差和方差两者之间找到适当的平衡点。

VC维与每个模型的参数数量相关,而参数的数量又与模型可以处理的数据点的数量相关联。其主要思想是模型想要近似的数据点数量越多,模型映射它们所需的参数数量就越多,这就增加了复杂性并使模型非常特定于该数据集。 在算法复杂度时,VC维度可以帮助我们估计预测误差,为我们提供关于算法是否可以在给定样本数据集的情况下学习和推广的概率评估:与可用训练数据的数量相比较低的VC维度将建议测试错误不会远离训练错误。

总体来说,机器学习就是通过处理得到好的数据,用数据来训练一个能达到我们预期目标的模型,且模型越简单越好。具体算法的选择则可根据我们的日常喜好,能决定模型效果的还是数据的质量,因此锻炼一个很强的数据分析能力是很重要的。

大善生活网