神经网络计算过程及模型搭建(一)
人工智能三学派
我们常说的人工智能,就是让机器具备人的思维和意识。人工智能主要有三个学派,即行为学派
、符号学派
和连接学派
。
行为学派
:是基于控制论的、构建感知、动作的控制系统。单脚站立是一种行为主义的典型例子,通过感知要摔到的方向,控制两只手的动作,保持身体的平衡。这就构建了一个感知、动作的控制系统,是典型的行为主义。
符号主义
:基于算数逻辑表达式。即在求解问题时,先把问题描述为表达式,再求解表达式。例如在求解某个问题时,利用if-case
等条件语句和若干计算公式描述出来,即使用了符号主义的方法,如专家系统。符号主义是能用公式描述的人工智能,它让计算机具备了理性思维。
连接主义
:仿造人脑内的神经元连接关系,使人类不仅具备理性思维,还具备无法用公式描述的感性思维,如对某些知识产生记忆。
基于连接主义的神经网络模型模仿了人脑的神经元,使计算机具有感性思维。
随着我们的成长,大量的数据通过视觉、听觉涌入大脑,使我们的神经网络连接(也就是神经元连接线上的权重)发生了变化,有些线上的权重增强了,有些线上的权重减弱了。如下图所示:
神经网络的设计过程
我们要用计算机模仿刚刚说到的神经网络连接关系,让计算机具备感性思维。
首先,需要准备数据
,数据量越大越好,要构成特征和标签对。如要识别猫,就要有大量的猫的图片和这个图片是猫的标签,构成特征标签对。
随后,搭建神经网络的网络结构
,并通过反向传播
,优化连线的权重,直到模型的识别准确率达到要求,得到最优的连线权重,把这个模型保存
起来。
最后,用保存的模型,输入从未见过的新数据,它会通过前向传播
,输出概率值,概率值最大的一个,就是分类或预测的结果。下图展示了搭建与使用神经网络模型的流程。
例子:用神经网络实现鸢尾花分类
数据集介绍
本讲中采用鸢尾花数据集,此数据集包含鸢尾花花萼长、花萼宽、花瓣长、花瓣宽及对应的类别。其中前4个属性座位输入特征,类别作为标签,0代表狗尾草鸢尾,1代表杂色鸢尾,2代表弗吉尼亚鸢尾。人们通过对数据进行分析总结出了规律:通过测量花的花萼长、花萼宽、花瓣长、花瓣宽,可以得出鸢尾花的类别。(如:花萼长》花萼宽且花瓣长/花瓣宽>2,则为杂色鸢尾)
由上述可知,可通过if
与case
语句构成专家系统,进行判别分类。在本讲中,采用搭建神经网络的方法对其进行分类,即将鸢尾花花萼长、花萼宽、花瓣长、花瓣宽四个输入属性输入搭建好的神经网络,网络优化参数得到模型,输出分类结果。
网络搭建与训练
本讲中,我们搭建包含输入层与输出层的神经网络模型,通过对输入值乘权值,并于偏置求和的方式得到输出值,图示如下:
由上图可知输出为 ,即所有的输入乘以各自线上的权重 求和加上偏置项 得到输出 。根据我们的数据集可知,输入特征 形状应为(1, 4),即1行4列,输出形状应为(1, 3),即1行3列, 形状应为(4, 3),即4行3列, 形状应为(3, )即有3个偏置项。
搭建好基本网络后,需要输入特征数据,并对线上权重与偏置进行初始化。搭建的神经网络如下图所示
初始化矩阵如下图所示,在这里,我们输入标签为0的狗尾草鸢尾。
有了输入数据与线上权重等数据,即可按照方式进行前向传播,计算过程如图所示
上图中输入中,1.01代表0类鸢尾得分,2.01代表1类鸢尾得分,-0.66代表2类鸢尾得分。通过输入可以看出数值最大(可能性最高)的是1类鸢尾,而不是标签0类鸢尾。这是由于最初的参数和是随机产生的,而现在输出的结果是蒙的。
为了修正这一结果,我们使用损失函数
,定义预测值和标准答案(标签)y_的差距,损失函数可以定量的判断当前这组参数和的优劣,当损失函数最小时,即可得到最优的值和的值.
损失函数的定义有多种方法,均方差就是一种常用的损失函数,它计算每个前向传播输出和标准答案y_的差求平方再求和再除以求平均值,表征了网络前向传播推理结果和标准答案之间的差距.
通过上述损失函数的介绍,其目的是寻找一组参数和使得损失函数最小.为达成这一目的,我们参与梯度下降的方法.损失函数的梯度表示损失函数对各参数求偏导后的向量,损失函数梯度下降的方向,就是损失函数减小的方向.梯度下降法即沿着损失函数梯度下降的方向,寻找损失函数的最小值,从而得到最优的参数.梯度下降法涉及的公式如下:
上式中,表示学习率,是一个超参数,表征梯度下降的速度.如学习率设置过小,参数更新会很慢,如果学习率设置过大,参数更新可能会跳过最小值.
上述梯度下降更新的过程称为反向传播
.