原文:https://mp.weixin.qq.com/s/7nycshlXqHB22Tb3OulWGw
目录
对于没有在学校里学习过机器学习和深度学习的同学,在谈论人工智能时,常常会听到一些专有名词,比如机器学习,深度学习、深度神经网络、梯度下降法、BP算法、损失函数、欠拟合、过拟合、训练集、验证集和测试集,经常会被整懵了,别人聊的时候只能在旁边呵呵。想去学习,发现网上书上的介绍全是公式。怎么办?
本文用初中和小学的课本知识,来介绍机器学习和深度学习最本质的含义,希望能帮到这部分同学。
延伸阅读:本文只介绍有监督学习,因为在图像检测、分割和分类,语音识别和自动驾驶应用中,绝大部分实践都是有监督学习;第二,有监督和无监督学习的概念比较容易理解,后续会介绍。
小学三年级我们就开始学习人工智能了
让我们来看一道小学三年级的数学应用题:
一艘轮船4小时行驶了100千米,如果用同样的速度行驶5小时,行驶了多少千米?
我们的计算方法是,首先求出速度v=100/4=25千米/小时。然后,对于任意时间长度的行驶时间,我们都能“预测”出行驶的距离。
如果按“机器运用根据示例数据得出的公式解决特定问题”的定义[1],这就是最简单的机器学习的例子。
图1:模型1
由于我们人为的发明的平均速度这个概念,在这个模型当中只有一个参数,那就是平均速度。上面的我们通过一组示例数据:(4小时,100千米),就学习到了这个参数,这个模型的参数是25千米/小时,它的物理含义是平均速度。
如果我们把上面的解题方法,编写成程序,就是“专家系统”,即运用人类对客观世界的抽象,形成逻辑,用电脑实现,解决预测问题。
逻辑上,一个轮船行驶的距离,还受到其他的参数的影响,比如说水流的速度。
为了让我们的预测更准确,我们把水流速度考虑进去。我们根据物理含义,我们认为这是一个线性方程。记轮船速度为a,水流速度为b,行驶时间为x1,有水流动的时间是x2,行驶距离为y,则
a*x1 + b*x2 = y (公式1)
众所周知,方程个数必须和未知数个数相等,才能够求出唯一的解。所以,要求出a和b,需要有2组观测数据(训练数据)。
注:这是我们在初中一年级学到的知识,二元一次方程。
观测值1 |
观测值2 |
预测1 |
|
行驶时间x1 |
4 |
5 |
3 |
水流时间x2 |
0 |
5 |
2 |
行驶距离y |
100 |
150 |
? |
通过表格中观测值1和2,我们可以求解得到a等于25公里每小时,b等于5公里每小时。
求出a和b后,我们就建立了模型,对于任意的x1和x2,都能“预测”出行驶距离y了。
我们把上面的公式,画成图形的形式。是不是就有点神经网络的图形的感觉了。这是因为它们都用到了“乘加”建模的。
图2:模型2
延伸阅读:在其他介绍机器学习的地方,会看到模型的输入超过2个,且用累加符号∑(西格玛)[2]、或者把输入x用向量矩阵的的表达方法[3],来记录上面的公式,虽然样子变了,但是含义和“公式1”并没有区别。
初中二年级的知识解释机器学习求解思路
在实际生活当中,我们知道,一艘轮船的速度,不可能在任何时刻都是绝对的25千米每小时,实际上,这是我们对现实世界的一个抽象。再加上测量误差,所以,多次测试四小时行驶的距离,大概率会比100 km多一点或少一点。
以模型1为例,只考虑参数“速度”:
理想的观测值 |
初始值 |
实际观测值1 |
实际观测值2 |
实际观测值3 |
|
行驶时 |