前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI入门| 微软ATP带你看机器学习怎么“训练”?

AI入门| 微软ATP带你看机器学习怎么“训练”?

作者头像
叶锦鲤
发布2023-03-21 18:14:46
2680
发布2023-03-21 18:14:46
举报
文章被收录于专栏:悦思悦读悦思悦读

机器学习的整个流程分为训练、测试、预测三个要素,上次分享了机器学习目的是利用训练出的模型来预测新的结果。

本期文章带你看看“训练”的内在逻辑流程,即通常所谓的算法。

▍本次我们会用一个例子来说明训练的流程是怎么运作的。

举个“栗子”:看一个最简单的机器学习模型——线性回归。

例如:A公司员工的2项数据,工作年限(Experience)和薪水(Salary)之间存在着近似线性的关系。

也就是说,如果我们将工作年限设为 x,将工资额度设为 y,则 x 和真实值 y 的关系可以用线性函数 y = a + bx 来表示。此处 a 和 b 是函数 f(x) = a + bx 的参数,x 是 f(x)的自变量,而 y 是 f(x) 的因变量。

那么,a 和 b 分别取怎么样的值,才能使得对应的 f(x) 最合适表达A公司的员工工作年限(Experience)与收入(Salary)的关系呢?衡量的标准是什么呢?这就要请损失函数出场了!

损失函数(loss function)是用来估量模型的预测值f(x)与真实值Y的不一致程度。

因为损失值有正有负,为了不让它们相互抵消,我们将每个样本点损失的平方相加,这样就不会因为取值正负的关系掩盖实际损失了。

我们当然是希望我们求出的a和b使得样本的整体损失最小,也就是希望能够找到让 损失函数J(a,b) 尽量小的a 和 b的取值。

因为找到 J(a,b) 的最小值是我们的目标,因此 J(a,b) 在此又被称为目标函数。

如何找到让目标函数最小化的取值呢?首先应该确定目标函数是凸函数,也就是说在目标函数的值域空间中,存在着一个点,这个点对应的因变量的值达到全域最小。

▍确定这个最小点存在后,怎么找到它呢?

这里就需要用到高等数学中的最优化方法了。最优化方法有很多种,最常用的一种是——梯度下降算法。

梯度同样是一个微积分中的概念,函数的梯度可以简单理解为函数的导数。

梯度下降法是用来计算函数最小值的。它的思路很简单,想象在山顶放了一个球,一松手它就会顺着山坡最陡峭的地方滚落到谷底。

凸函数图像看上去就像上面的山谷,如果运用梯度下降法的话,就可以通过一步步的滚动最终来到谷底,也就是找到了函数的最小值。

这个梯度下降的过程既然已经明白,我们就可以通过编程(写成伪代码的形式)来实现它了。

▍训练程序

当我们选定实现语言后则可以将伪代码改写为程序。这个程序就叫做训练程序,它可以用来训练线性回归模型。

假设我们有 1000 个样本数据,我们也就有了 1000 对 xi 和yi 的值。

我们将这 1000 对样本值带入到这个程序里面,经过两层循环的若干次运行,达到目标函数值收敛。

我们也就得出了a 和 b 的取值,

f(x) = a + bx。

这条直线也就有了具体的斜率和偏移量,我们就可以用它进行预测了,以后新有一个 x 值,我们只需要带入进 f(x) 就能得到一个 y 值,这个 y 值就是这个新样本的预测值。

当我们用其他目标函数替代 J(a,b) 后,这个程序也可以训练其他的模型。

如上就是训练一个线性回归模型从数学推导到代码实现的全过程。这个训练程序的内在逻辑,就是我们通常所说的算法。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智汇AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档