论文部分内容阅读
一、多层感知机简介
人工智能如今已经成为大街小巷的热议话题,已经深刻的改变了许许多多的行业,人工智能与机器学习在医疗、神经科学、农业、信息安全、监控等领域的应用数不胜数,已经成为我们生活中不可或缺的一部分,而这一切的开端,都要从感知机[1]刚被发明出来说起。1960年,Pedro首次使用Delta学习规则用于感知器的训练步骤,这种方法后来被称为最小二乘方法,这两者的结合创造了一个良好的线性分类器,这个发现引起了第一波的AI浪潮,因为人们认为简单的感知机可以实现分类功能,那通过组合可以实现更复杂的功能,但是后面发现感知机无法模拟异或问题、无法处理非线性问题,第一波浪潮就这样沉入了低谷。但是依然有人在研究,2006年,Hinton提出了DBN,解决了更深层次的网络是可以通过一些策略更好的训练来实现,引起了深度学习的第三波浪潮。神经网络深度学习的发展加快了,越来越多的人开始研究这个领域,并且成果颇丰。
二、MLP算法描述
生物神经元主要由细胞体(神经元主体)、树突(神经元输入信息)、轴突(神经元输出信息)和突触(神经元之间输入输出信息的连接)组成。
2.1神经元模型。人工神经网络的基本成分是人工神经元,将许多个这样的神经元按一定层次连接起来,就得到神经网络。1943年,心理学家W.S.McCulloch和数理逻辑学家W.Pitts基于神经元的生理特征建立的单个神经元的数学模型(MP模型)是大多数神经网络的基础。
2.2感知机模型。感知机是一种早期的神经网络模型,也是作为神经网络的起源的算法,是一种前馈神经网络。感知器是通过模拟人的视觉,接受各种环境的信息,并能进行信息传递的神经网络。
2.2.1单层感知机。感知机由两层神经元组成,输入层接受外界输入信号后传递给输出层,感知机接受多个输入信号,输出一个信号,输入信号被送往神经元时,会被分别乘以固定的权重,神经元会计算传出过来的信息的总和,只有这个总和超过了某个界限值时,才会输出1,这就被称之为“神经元激活”,这个界限值被称为阈值。
2.2.2多层感知机。多层感知器是对单层感知器的推广,它能够成功解决单层感知器所不能解决的非线性可分问题(例如,异或(XOR)问题)。多层感知机在输入层与输出层之间多了隐藏层,每层神经元与下一层神经元全互连,隐藏层也有激活功能的神经元。
多层感知器与单层感知器相比具有2个突出的特点:(1)多层感知器含有一层或多层隐含神经元。隐含神经元逐步从输入模式中获得了更多有用的信息,可以使网络可以完成更复杂的任务。(2)多层感知器的多个突触使得网络更具连通性。网络连接的改变通过改变其突触连接数量或者其权值实现。
2.3反向传播运算
反向传播算法的核心是代价函数也称损失函数对网络中参数(各层的权重w和偏置b)的偏导表达式和。这些表达式描述了代价函数值C随权重w或偏置b变化而变化的程度。反向传播算法的思路比较容易容易理解:如果当前代价函数值距离预期值较远,那么我们通过调整w和b的值使新的代价函数值更接近预期值(和预期值相差越大,则w和b调整的幅度就越大)。一直重复该过程,直到最终的代价函数值在误差范围内,则算法停止。BP算法可以告诉我们神经网络在每次迭代中,网络的参数是如何变化的。
2.3.3算法总结
输入:训练集;
学习率
过程:
1:随机初始化网络所有连接权值和阈值
2:repeat:
3:for all do
4:根据当前参数(权值和阈值)和公式(2.10)计算出当前样本输出
5:根据公式(2.12~2.17)计算出梯度项
6:根据步骤5求的梯度,公式(2.18~2.21)计算出更新的权值和阈值
7:end for
8:until 达到停止条件
输出:连接权值与阈值确定的多层前馈神经网络
三、MLP多层感知机算法实现
下面将通过两个具体的例子,也是最经典的Mnist数据集和IRIS数据集的分类问题来说明这个算法的实验过程。
3.1实例
3.1.1准备数据集。使用数据集有MNIST数据集,它包含10类(对应手写数字:1,2,3,4,5,6,7,8,9,10)共60000张手写数字信息,以及对应的60000个标签分类,每条记录784项特征。数据集被划分为用于训练的50000张手写数字信息,和10000张用于测试的手写数字信息。
IRIS数据集,它包含3类共150条记录,每类记录都有4个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度)。
3.1.2数据预处理。首先对数据进行归一化处理,例如MNST是图片像素0-255映射和为0-1范围。最后输出通过判断概率大小,进而判断当前图片属于哪一类,为此针对每一个标签都重新构造以对应输出的10种情况。
3.1.3构建三层神经网络。构建神经网络对数据集进行训练,对测试集进行预测,查看分类后的精度和误差以反馈此训练模型的泛化能力。同时通过可视化的图像反映出学习率不同、迭代次数不同、隐藏节点不同情况下的效果对比。
3.1.4训练网络。选择学习率,导入训练数据集,定义好训练的次数和最小误差,直到训练达到理想状况,就结束。
3.1.5测试网络。根据测试数据集输出的结果来判断此网络的好坏,也就是最后的分类准确率来评价它的泛化能力。
3.2算法的实现结果
在对训练好的模型进行数据测试时,通过调节迭代次数,学习率,隐含层节点个数,权值初始化值等参数,获得不同的神经网络训练结果。通过图像对比结果。
3.2.1迭代次数的影响。一般来说,在一定范围类,迭代次数越多,模型训练越充分,分类精度就越高;由以下对学习率的实验结果来看,迭代次数越高,精度也会趋于一个稳定的状态。
3.2.2学习率的影响。学习率是控制每次更新参数的幅度的,也称为学习步长,是很重要的模型超参。过高和过低的学习率都可能对模型结果帶来不好的影响,合适的学习率可以加快模型的训练速度。
3.2.3隐含层节点个数的影响。输入由输入向量维数决定,输出由类别决定,而中间的隐藏层数及其节点个数并没有统一的结论。隐藏层单元的个数决定了网络的表达能力。一般隐藏层单元个数越多,网络学习到的东西就越多。
综上所述,一个实验的数据集预测精确度是受迭代次数(迭代次数不够,不能收敛,迭代次数太多,浪费时间)、学习率、隐含层节点个数多方面的因素影响的,并且目前没有一个统一的定论如何调参更优,都需要经过多次重复实验。
参考文献:
[1]张天欣.感知机理论研究综述[J].电子技术与软件工程,2017(22):257-258.
[2]周志华.机器学习[M].北京:清华大学出版社,2016.1.
[3]机器学习及其算法和发展研究[J].张润,王永滨.中国传媒大学学报(自然科学版).2016(02)
[4]Zhiyuan Ma, Wei Zhang, Zhongbing Luo等. Ultrasonic characterization of thermal barrier coatings porosity through BP neural network optimizing Gaussian process regression algorithm[J]. Ultrasonics,2020,100.
[5]孙即祥.现代模式识别(第二版).高等教育出版社.2008.10.
(西华大学 四川省成都市 610039)
人工智能如今已经成为大街小巷的热议话题,已经深刻的改变了许许多多的行业,人工智能与机器学习在医疗、神经科学、农业、信息安全、监控等领域的应用数不胜数,已经成为我们生活中不可或缺的一部分,而这一切的开端,都要从感知机[1]刚被发明出来说起。1960年,Pedro首次使用Delta学习规则用于感知器的训练步骤,这种方法后来被称为最小二乘方法,这两者的结合创造了一个良好的线性分类器,这个发现引起了第一波的AI浪潮,因为人们认为简单的感知机可以实现分类功能,那通过组合可以实现更复杂的功能,但是后面发现感知机无法模拟异或问题、无法处理非线性问题,第一波浪潮就这样沉入了低谷。但是依然有人在研究,2006年,Hinton提出了DBN,解决了更深层次的网络是可以通过一些策略更好的训练来实现,引起了深度学习的第三波浪潮。神经网络深度学习的发展加快了,越来越多的人开始研究这个领域,并且成果颇丰。
二、MLP算法描述
生物神经元主要由细胞体(神经元主体)、树突(神经元输入信息)、轴突(神经元输出信息)和突触(神经元之间输入输出信息的连接)组成。
2.1神经元模型。人工神经网络的基本成分是人工神经元,将许多个这样的神经元按一定层次连接起来,就得到神经网络。1943年,心理学家W.S.McCulloch和数理逻辑学家W.Pitts基于神经元的生理特征建立的单个神经元的数学模型(MP模型)是大多数神经网络的基础。
2.2感知机模型。感知机是一种早期的神经网络模型,也是作为神经网络的起源的算法,是一种前馈神经网络。感知器是通过模拟人的视觉,接受各种环境的信息,并能进行信息传递的神经网络。
2.2.1单层感知机。感知机由两层神经元组成,输入层接受外界输入信号后传递给输出层,感知机接受多个输入信号,输出一个信号,输入信号被送往神经元时,会被分别乘以固定的权重,神经元会计算传出过来的信息的总和,只有这个总和超过了某个界限值时,才会输出1,这就被称之为“神经元激活”,这个界限值被称为阈值。
2.2.2多层感知机。多层感知器是对单层感知器的推广,它能够成功解决单层感知器所不能解决的非线性可分问题(例如,异或(XOR)问题)。多层感知机在输入层与输出层之间多了隐藏层,每层神经元与下一层神经元全互连,隐藏层也有激活功能的神经元。
多层感知器与单层感知器相比具有2个突出的特点:(1)多层感知器含有一层或多层隐含神经元。隐含神经元逐步从输入模式中获得了更多有用的信息,可以使网络可以完成更复杂的任务。(2)多层感知器的多个突触使得网络更具连通性。网络连接的改变通过改变其突触连接数量或者其权值实现。
2.3反向传播运算
反向传播算法的核心是代价函数也称损失函数对网络中参数(各层的权重w和偏置b)的偏导表达式和。这些表达式描述了代价函数值C随权重w或偏置b变化而变化的程度。反向传播算法的思路比较容易容易理解:如果当前代价函数值距离预期值较远,那么我们通过调整w和b的值使新的代价函数值更接近预期值(和预期值相差越大,则w和b调整的幅度就越大)。一直重复该过程,直到最终的代价函数值在误差范围内,则算法停止。BP算法可以告诉我们神经网络在每次迭代中,网络的参数是如何变化的。
2.3.3算法总结
输入:训练集;
学习率
过程:
1:随机初始化网络所有连接权值和阈值
2:repeat:
3:for all do
4:根据当前参数(权值和阈值)和公式(2.10)计算出当前样本输出
5:根据公式(2.12~2.17)计算出梯度项
6:根据步骤5求的梯度,公式(2.18~2.21)计算出更新的权值和阈值
7:end for
8:until 达到停止条件
输出:连接权值与阈值确定的多层前馈神经网络
三、MLP多层感知机算法实现
下面将通过两个具体的例子,也是最经典的Mnist数据集和IRIS数据集的分类问题来说明这个算法的实验过程。
3.1实例
3.1.1准备数据集。使用数据集有MNIST数据集,它包含10类(对应手写数字:1,2,3,4,5,6,7,8,9,10)共60000张手写数字信息,以及对应的60000个标签分类,每条记录784项特征。数据集被划分为用于训练的50000张手写数字信息,和10000张用于测试的手写数字信息。
IRIS数据集,它包含3类共150条记录,每类记录都有4个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度)。
3.1.2数据预处理。首先对数据进行归一化处理,例如MNST是图片像素0-255映射和为0-1范围。最后输出通过判断概率大小,进而判断当前图片属于哪一类,为此针对每一个标签都重新构造以对应输出的10种情况。
3.1.3构建三层神经网络。构建神经网络对数据集进行训练,对测试集进行预测,查看分类后的精度和误差以反馈此训练模型的泛化能力。同时通过可视化的图像反映出学习率不同、迭代次数不同、隐藏节点不同情况下的效果对比。
3.1.4训练网络。选择学习率,导入训练数据集,定义好训练的次数和最小误差,直到训练达到理想状况,就结束。
3.1.5测试网络。根据测试数据集输出的结果来判断此网络的好坏,也就是最后的分类准确率来评价它的泛化能力。
3.2算法的实现结果
在对训练好的模型进行数据测试时,通过调节迭代次数,学习率,隐含层节点个数,权值初始化值等参数,获得不同的神经网络训练结果。通过图像对比结果。
3.2.1迭代次数的影响。一般来说,在一定范围类,迭代次数越多,模型训练越充分,分类精度就越高;由以下对学习率的实验结果来看,迭代次数越高,精度也会趋于一个稳定的状态。
3.2.2学习率的影响。学习率是控制每次更新参数的幅度的,也称为学习步长,是很重要的模型超参。过高和过低的学习率都可能对模型结果帶来不好的影响,合适的学习率可以加快模型的训练速度。
3.2.3隐含层节点个数的影响。输入由输入向量维数决定,输出由类别决定,而中间的隐藏层数及其节点个数并没有统一的结论。隐藏层单元的个数决定了网络的表达能力。一般隐藏层单元个数越多,网络学习到的东西就越多。
综上所述,一个实验的数据集预测精确度是受迭代次数(迭代次数不够,不能收敛,迭代次数太多,浪费时间)、学习率、隐含层节点个数多方面的因素影响的,并且目前没有一个统一的定论如何调参更优,都需要经过多次重复实验。
参考文献:
[1]张天欣.感知机理论研究综述[J].电子技术与软件工程,2017(22):257-258.
[2]周志华.机器学习[M].北京:清华大学出版社,2016.1.
[3]机器学习及其算法和发展研究[J].张润,王永滨.中国传媒大学学报(自然科学版).2016(02)
[4]Zhiyuan Ma, Wei Zhang, Zhongbing Luo等. Ultrasonic characterization of thermal barrier coatings porosity through BP neural network optimizing Gaussian process regression algorithm[J]. Ultrasonics,2020,100.
[5]孙即祥.现代模式识别(第二版).高等教育出版社.2008.10.
(西华大学 四川省成都市 610039)