人工智能算法是如何从数据中学习规律的
⾸先我们来看⼀下最常⻅的⼈⼯智能算法是什么样的:
⼈⼯智能算法包括⼏个部分: x是模型的输⼊,y是模型的输出,模型就是对输⼊转化为输出的计算。⽐如输⼊x可以是⼀张图⽚(如 猫的照⽚),模型对图⽚进⾏计算处理,然后输出这张图⽚上对应的物品的类别(猫)。 我们可以把算法理解成⼀个函数:y = f(x),这⾥⾯输⼊是x,输出是y,模型对应的是映射规则f。 对于⼀个具体的问题,我们可以获取到⼤量的(x,y),⼈⼯智能算法就是从这些数据中学习规律,找 到映射规则f。所以,⼈⼯智能算法学习规律就是确定x到y的映射规则f 为了让⼤家能理解⼈⼯智能算法的学习过程,我们⼀起来看⼀个简单的例⼦: 下⾯是某个⼩区的房价和房屋⾯积的数据。
现在要利⽤⼈⼯智能的算法去学习房屋⾯积和房屋价格的规律,也就是根据房屋的⾯积如何计算得到房 屋的价格。 模型的输⼊是房屋⾯积,模型的输出是房屋价格。 我们可以建⽴这样的模型:y = wx + b 其中,w和b是未知的,调整w和b的值可以得到不同的映射规则。 我们知道,y = wx + b 表示的是⼆维平⾯内的⼀根直线,调整w和b的值可以得到不同的的直线。 接下来我们⼀起看⼀下如何去确定w和b的值。 ⾸先,我们先不管w和b取什么值,我们直接把输⼊代⼊模型,可以得到模型的输出值,我们称模型的 输出为预测值。数据如下表:
接着,我们只要调整w和b的值,让预测房价尽量接近真实房价。 那我们怎么调整w和b呢?⼀个个尝试不同的取值吗? 我们知道,不管是w还是b,都是有⽆限种可能取值的,遍历它们的所有可能取值显然是不现实的。 那么有没有⽅法可以指引我们去找到最优的w和b呢?答案是有的。 回忆⼀下,⾼中数学课程⾥⾯我们是不是做过这样⼀件事情:给定⼀个函数,求函数值的最⼩值以及此 时⾃变量的值。 基于这样的思路,我们做下⾯这样的操作:
这⾥我们就得到了⼀个函数,函数的⾃变量是w和b。⼤家观察这个函数, J的值越⼩, ypredict是不是越接近ytrue ?
这时候我们求J 这个函数的值最⼩的时候对应的w和b的取值,是不是就得到了我们需要找的最优的w和 b的值? 答案是肯定的,⼈⼯智能算法就是这样做的。
上⾯我们构造的函数,在⼈⼯智能算法⾥⾯叫损失函数,求损失函数的值最⼩时,可训练参数(w和b)的 值的⽅法是梯度下降。关于损失函数和梯度下降的内容,我们后⾯再深⼊去讲解。这⼀⼩节我们要理解 的是⼈⼯智能算法学习的过程。
寻找最优未知参数的值的⽅法: 构建⼀个损失函数,损失函数满⾜⼀下条件: 1、损失函数是关于所有可训练参数的函数; 2、损失函数的函数值越⼩, ypredict越接近ytrue 。
有了损失函数之后,寻找最优可训练参数的问题就转化成: 求损失函数最⼩值(极⼩值)时,可训练参数的取值 --> 通过梯度下降法可以实现