干货 | 清晰易懂的机器学习算法原理介绍

机器学习(ML,Machine Learning)是当前的一个热点话题,人们越来越意识到ML可以在广泛的应用中发挥了关键作用,如数据挖掘,自然语言处理,图形识别和专家系统,机器学习为所有这些领域提供了潜在的解决方案,并将推动着社会发展。

机器学习算法种类繁多,但是算法的核心思想万变不离其中,这篇文章深入浅出的介绍了机器学习算法原理和算法的参数优化过程,机器学习初学者若弄懂了这两个知识点,相信以后在自学机器学习的过程中不容易被复杂的算法带偏或吓跑。

1.什么是机器学习

在拿起书本开始自学机器学习之前,肯定会有这样的疑问——什么是机器学习。最能概括这一概念的是1959年Arthur Samuel的一句经常被引用的话:机器学习是一个研究领域,它能够让计算机在无需明确编程的情况下学习。

Tom Mitchell在1997年对这一概念进行了完善——计算机程序在处理任务T时,根据性能度量P学习到一些有用的经验E,如果经验E越来越丰富,那么计算机在T上的性能也会相应的提高,这是小编认为对机器学习最好的诠释。

因此如果你想让你的程序完成预测目标,例如预测一个繁忙十字路口的交通流量(任务T),你可以根据过去的交通流量数据(经验E),然后利用机器学习对该数据建模,如果模型成功“学习“,那么就可以更好地预测未来的交通流量(性能度量)。

2.机器学习分类

机器学习根据任务类型的不同划分为——监督学习和非监督学习。

监督学习:模型首先在一组预定义的训练数据集上训练,这些训练数据集有助于在给定新数据时得出准确的结论。

非监督学习:直接在给定的数据集上构建模型,非监督学习一个比较重要的步骤是设置好性能度量P。

本文重点讨论监督学习,文末也会简单的介绍下非监督学习,我们在实际项目中遇到的场景更多是监督学习。

3.监督学习

在大多数监督学习的应用中,最终任务是开发一个预测函数(有些书籍也称为假设函数)。机器学习的“学习”包括使用复杂的数学算法来优化这个函数,假设给定输入数据x(如房子面积),它将准确的预测(比如房子的市场价格)。

输入数据x一般是多维的,因为预测任务往往受到多种因素的影响,这里为了更易解释机器学习原理,假设输入数据x是单维的。因此假设预测函数是下面这种形式:

其中,为模型系数,我们学习的目标是找到最优的,使我们的预测器尽可能准确的工作。


我们使用训练集优化预测函数,训练集包含了输入变量x_train和相应的输出y,输入变量的预测值,通过最小化所有训练集和输出y的差异,我们得到模型系数


下面通过机器学习例子来解释这一过程:

假设有以下的数据集,公司员工对自己的满意度进行了1到100的评分,可视化不同薪水的公司员工与满意度的数据集:


乍一看这图,我们注意到这数据有一点噪声,小编在解释如何通过这些数据构建ML模型之前,讲一下机器学习的目标任务,机器学习的目标任务是永远不要做出“完美”的预测,因为ML处理的领域中不存在这样的东西,我们的目标是做出足够好的猜测。若有完美的预测,那么你该怀疑你的模型是否存在过拟合了。

好了回到主题,如何通过上面的数据预测模型,我们首先初始化预测函数的系数,假设初始的预测函数为:

画出训练数据集和预测函数的分布情况:

如果我们预测员工工资¥60K的满意度调查,预测函数给出27的评分:

很明显,这是一个糟糕的预测,模型并不包含训练集的信息。

比较常用的模型优化算法是梯度下降算法,每次模型参数迭代利用梯度下降算法,目标使预测值和真实值的差异越来越小,如下图的迭代过程,预测函数越来越接近真实值。

这一节引出了两个重要问题:

1)如何衡量训练集中预测值和真实值的差异

2)如何降低预测值和真实值的差异

后面两节一一介绍这两个重要问题。

4. 如何衡量训练集中预测值和真实值的差异

机器学习领域常用损失函数表示预测值和真实值的差异,衡量差异的方法有多种,若模型的任务是回归,常用的损失函数是最小均方差;若模型的任务是分类,常用的损失函数是交叉熵。

由于员工的预测值是连续值,因此模型的任务是回归,用最小均方差表示损失函数:

上式表示所有训练数据集的平均训练误差,其中m为训练数据集的大小,表示样本i的预测值。

损失函数如下图:

5. 如何降低预测值和真实值的差异

小编认为机器学习之所以有这么强大的功能,梯度下降法功不可没。高等数学有一句话让我印象深刻,当曲面某点的方向导数与梯度方向一致时,那么该点具有最快的下降方向,考研必考的知识要点。

因此,我们用梯度下降法来迭代的寻找局部最优值,一般来说局部最优就是全局最优的情况,若你不放心,可以多次初始化模型参数,若梯度下降法得到的最优值为同一个点,那么该点即为全局最优值。

梯度下降法过程:

1)初始化参数,学习率,阈值T

2)计算损失函数

3)计算梯度

4)系数迭代:

5)若参数不再变化或损失函数小于阈值时,则迭代终止,反之返回步骤(2)

可视化这一过程:

模型的迭代次数与损失函数值的关系:

5.机器学习分类

常用的分类分法是逻辑斯蒂回归,为了更易于阐述机器学习分类这一过程,我们用逻辑斯蒂回归举例。

假设真实分类结果是1和0,逻辑斯蒂回归的概率含义是:给定输入值x,输出y=1的概率值,即P(y=1|x)。当真实值为1时,我们希望概率值越大越好;真实值为0时,概率值越小越好。损失函数可表示为:

或者用一个式子表示:

根据上一节介绍,用梯度下降法求解最优参数的方法来求解逻辑斯蒂回归的模型参数,

6. 神经网络介绍

神经网络常用于深度学习领域中,现在是大数据时代,传统的机器学习算法处理几百万量级的数据或参数已经显得很吃力,于是神经网络逐渐的开始火了起来,深度学习最常用的两种计算单元是卷积神经网络(CNN)和循环神经网络(RNN),神经网络构建模型的核心还是梯度下降法,前向计算损失函数,然后计算损失函数对模型参数的梯度,反向更新模型参数,直到模型收敛。是不是觉得梯度下降法很强大?哈哈哈!

7. 非监督机器学习

非监督学习的典型任务是寻找数据中的关系,这一过程没有训练阶段。给定一组数据,任务是找出其中的相关性,非监督学习包括K均值聚类算法,特征降维算法等。

8. 结论

文章主要介绍了机器学习算法模型优化的过程,传统的机器学习当然也包括深度学习基本都是这一过程。算法学习是一个不断提升自己解决问题的能力,不要放弃,相信自己终能成功!

一个人自学机器学习算法枯燥吗,欢迎扫码添加小编微信(备注研究方向),拉你入机器学习算法群,一起交流进步:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值