当前位置:   article > 正文

谈一谈机器学习的基本原理_机器学习原理

机器学习原理

大家好,今天想再谈一谈机器学习。这次我们期望在不涉及到任何复杂的数学理论的前提下,尽量把机器学习的基本原理讲清楚。使大家对机器学习能有一个更加直观的概念。我们将主要探讨两个问题,一个是机器学习能做什么;另一个是它到底是怎么做的。这两个问题看似简单,但是想用通俗、易懂的语言解释清楚还是有一定难度的。下面的内容是我在搜集、整理了大量的资料后进行的精炼和总结,希望对大家理解能够有所帮助。

那么我们闲话少说,开始进入正题。

1、能做什么?

简单来说我认为主要可以做两件事,一个是预测、一个是聚类

按照输入数据是有监督、还是无监督,可简单的将机器学习要解决的问题分成两类,有监督学习解决的是预测问题、无监督学习解决的是聚类问题。(当然其实并不仅仅局限于此,这样总结只是为了减少介绍和理解的复杂度,实际上机器学习还包括半监督学习、强化学习等等)

有监督是指输入的数据是有标签的(标签表示的是一种先验经验,比如在猫狗图像的识别中,我们需要先标注好什么样的图像是猫、什么样的图像是狗,才能够进一步让机器进行学习),而无监督是指输入的数据是无标签的。

对于有监督问题,如果预测结果是连续的值,则称为为回归问题;如果结果是离散的(比如0、1),则称之为分类问题。常见的算法主要有K-近邻算法、线性回归、逻辑回归、支持向量机、决策树、神经网络等等。

对于无监督问题,目的主要是对数据进行聚类,此时无监督学习的训练数据都是未经标记的,模型需要在没有老师的情况下进行学习。常见的算法有K均值算法、DBSCAN、异常检测、孤立森林、主成分分析(PCA)、关联规则学习等等。

2、怎么做的?

先说说无监督的聚类问题,它的目的就是根据数据内部存在的数据特征,将数据集合划分成不同的类别,使得同类别内的数据是比较相似的。进一步,当我们输入一个新的数据集时,可以判断出这个数据归属于哪一类。实现聚类的核心问题是如何判断数据之间的相似性,常用的方法主要有通过距离、密度、层次划分、网格划分等方法来实现,这些相对比较好理解。

再来说说相对复杂一些的有监督问题。在具体讨论前,我们需要先了解几个概念:

1、模型:模型的概念听起来很神秘,究其原因主要是它是一个抽象的概念,无法直观感受到。其实,我们可以把它暂且理解成某个的机器学习算法+一组设定好的参数所组成的一个结合体。这个结合体就像我们编程中的程序接口一样,当我们按照输入格式输入数据后,他就会给我们返回输出结果,但不同的是我们可以通过调整它参数来影响或是改变它输出的结果。

2、数据集:数据集就是一组输入数据的集合,每一条数据我们称之为一个样本,每个样本又包含多个特征,每个特征都可以表征这个样本的某个维度的特点,比如一个人的样本数据,其特征可能包括名字、性别、出生日期、籍贯等等。对于数据集,在不同的使用场景下有不同的作用,如果在训练模型阶段使用,我们称之为训练集;如果在测试模型阶段使用,又叫做测试集合。

3、假设函数:通常用H(x)表示。如果把机器学习的模型训练过程比作一台小汽车朝着目的地行驶的过程的话。那么假设函数就是这台小汽车的发动机,数据就是燃料。假设函数,顾名思义就是假设我们的数据和结果标签之间存在的某种关系或规则,当然对于不同的算法,它的表现形式也是不尽相同的。机器学习往往需要经历多轮的数据迭代、学习过程才能达到最终目标,那么在每一次迭代中,当每条数据样本输入给假设函数后,假设函数都会为我们返回一个计算后的预测结果。

4、损失函数(目标函数):通常用L(x)表示。同样延续刚才的比喻的话,损失函数就是我们驶向目的地所参照的导航仪,机器学习不是一个一次就能得到最终结果的计算过程,而是不断逼近学习目标的迭代过程。那么损失函数就给我提供了一个用于衡量的工具来判定当前的计算结果距离目标是逼近了还是远离了。比如我们有10个样本,在某轮迭代中,假设函数计算后产生了10个预测值,那么我们就需要逐一计算这10个预测值与真实值之间的总偏差,从而判断距离目标是远离了还是逼近了。当然我们的目标是要求这个总偏差越小越好,偏差越小说明我们的预测值相比真实值更加接近。

5、优化器:损失函数告诉了我们行驶方向是否正确,当我们走错了,如何调整方向呢?此时优化器就发挥作用了,它就行汽车的方向盘一样。当损失函数把损失值告诉优化器后,优化器再反过来告诉假设函数如何进行参数调整(通常假设函数在初始阶段都会随机分配一组参数值),这样就使得下次假设函数计算出来的结果能够朝着总损失偏差更小的方向前进一小步。到这里大家可能觉得优化器很神奇,它是如何实现参数的调整的呢?其实最简单的一种调整方法就是新参数值=旧参数值-损失值。当然在实际应用中并不会这样简单,幸运的是数学家们已经帮我们研究好了这些方法(比如拟牛顿法、梯度下降等等),我们只需要大致了解其实现原理即可,并不需要完全了解其中的数学运算细节。

最后,了解了上述概念后,我们再把几个关键环节串联起来,看看机器学习的一个基本流程原理:

假设函数对于不同的机器学习算法而言千差万别,为了更加形象,我们就以最简单的线性函数作为举例,即假设我们的数据和标签之间存在的是一个线性的关系(虽然在实际应用中很少有这样简单的线性关系),那么我们需要学习的参数就是线性方程y=kx+b中的k和b,在初始化时我们一般会给k和b随机分配一个值。当训练开始后,我们将数据输入假设函数,生成预测值后再将其输入给损失函数,此时损失函数计算出总体误差,然后由优化器选择一个参数调整的方向,使得下一轮迭代,误差向着减少的方向逼近,这样进行多轮的训练、迭代后,当总体的误差值小于某一阈值或达到迭代次数后,训练停止。此时我们学习得到的参数值,也就是k,b的值所生成的线性函数就是我们最终训练好的模型。当我们向模型输入新的数据时,它就能够实现为我们进行结果预测的目标了。

最后我们再做一个简单的总结,机器学习如果简单从数学的角度来看,就是对输入的数据点进行拟合的过程,最终找到一条总体误差最小的拟合曲线。当然机器学习的种类有很多,比如基于概率的朴素贝叶斯算法、基于树模型的决策树算法乃至更加复杂的神经网络算法等等,并不是都是简单的曲线拟合。但是这种通过误差反馈,迭代更新参数的训练过程来找到最优匹配解释模型的算法原理却是相同的。

以上就是我今天给大家分享的内容,如果觉得对你有所帮助,欢迎点赞、评论和转发,谢谢。

AI自研社是一个专注人工智能、机器学习技术的公众平台,目前已发表多篇连载文章,对机器学习领域知识由浅入深进行详细的讲解,其中包含了大量实例及代码参考,对学习交流有很大帮助,欢迎大家关注。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/962252
推荐阅读
相关标签
  

闽ICP备14008679号