更新时间:2019年09月16日18时36分 来源:传智播客 浏览次数:
首先我们来看一下最常见的人工智能算法是什么样的:
人工智能算法包括几个部分:
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的值越小,是不是越接近?
这时候我们求j这个函数的值最小的时候对应的w和b的取值,是不是就得到了我们需要找的最优的w和b的值?
答案是肯定的,人工智能算法就是这样做的。
上面我们构造的函数,在人工智能算法里面叫损失函数,求损失函数的值最小时,可训练参数(w和b)的值的方法是梯度下降。关于损失函数和梯度下降的内容,我们后面再深入去讲解。
下面我们来总结下人工智能算法学习规律的思路:
1、把问题抽象成数学问题:确定输入是什么,输出是什么;
2、建立个模型:这个模型有很多未知的参数,参数取不不同的值,模型能变成不同的映射规则;
3、用大量的数据去训练模型:确定各个未知参数的值,这时候模型就确定下来了。
寻找最优未知参数的值的方法:
构建一个损失函数,损失函数满足以下条件:
1、损失函数是关于所有可训练参数的函数;
2、损失函数的函数值越小, 越接近 。
有了损失函数之后,寻找最优可训练参数的问题就转化成:
求损失函数最小值(极小值)时,可训练参数的取值 --> 通过梯度下降法可以实现。
推荐了解:python+人工智能课程