盐城网站建设jsxmt,韩国优秀平面设计网站有哪些,铁岭开原网站建设,文字转链接网址(꒪ꇴ꒪ )#xff0c;Hello我是祐言QAQ我的博客主页#xff1a;C/C语言#xff0c;数据结构#xff0c;Linux基础#xff0c;ARM开发板#xff0c;网络编程等领域UP#x1f30d;快上#x1f698;#xff0c;一起学习#xff0c;让我们成为一个强大的攻城狮#xff0…(꒪ꇴ꒪ )Hello我是祐言QAQ我的博客主页C/C语言数据结构Linux基础ARM开发板网络编程等领域UP快上一起学习让我们成为一个强大的攻城狮送给自己和读者的一句鸡汤集中起来的意志可以击穿顽石!作者水平很有限如果发现错误请在评论区指正感谢 一 、必备知识
1.2 BP神经网络简介 BP(back propagation)神经网络是1986年由Rumelhar和McClelland为首的科学家提出的概念是一种按照误差逆向传播算法训练的多层前馈神经网络是应用最广泛的神经网络模型之一它是一种多层前向网络由输入层、输出层、隐含层可以是一层或多层构成一种典型的三层BP神经网络模型如图1所示。反向传播算法的主要思想是把学习过程分为2个阶段第1阶段正向传播过程输入信息从输入层开始逐层计算个单元的实际输出值每一层神经元的状态只对下一层神经元的状态产生影响第2阶段反向传输过程若在输出层未能够得到期望的输出值则逐层递归计算实际输出与期望输出之间的差值根据此误差修正前层权值使误差信号趋向最小。它通过连续不断地在相对于误差函数斜率下降的方向上计算网络权值和偏差变化而逐渐逼近目标。每次权值和误差的变化都与网络误差的影响成正比。 图1 经典三层BP网络模型图
1.2 实验要求 利用BP神经网络的理论知识对图像中人脸朝向判别进行实验研究。实验采用Matlab工具箱进行BP网络设计实现对人脸角度方向的判别讨论输入和目标向量设计BP神经网络结构的设计以及网络参数和训练参数的设定等问题。最终实现BP神经网络可以根据输入图像的二值化等信息对于给出的人脸图像中的人脸是朝向左、左前、前、右前或右进行识别。
二、实验原理
2.1 基本原理
人工神经网络无需事先确定输入输出之间映射关系的数学方程仅通过自身的训练学习某种规则在给定输入值时得到最接近期望输出值的结果。作为一种智能信息处理系统人工神经网络实现其功能的核心是算法。BP神经网络是一种按误差反向传播(简称误差反传)训练的多层前馈网络其算法称为BP算法它的基本思想是梯度下降法利用梯度搜索技术以期使网络的实际输出值和期望输出值的误差均方差为最小。 基本BP算法包括信号的前向传播和误差的反向传播两个过程。即计算误差输出时按从输入到输出的方向进行而调整权值和阈值则从输出到输入的方向进行。正向传播时输入信号通过隐含层作用于输出节点经过非线性变换产生输出信号若实际输出与期望输出不相符则转入误差的反向传播过程。误差反传是将输出误差通过隐含层向输入层逐层反传并将误差分摊给各层所有单元以从各层获得的误差信号作为调整各单元权值的依据。通过调整输入节点与隐层节点的联接强度和隐层节点与输出节点的联接强度以及阈值使误差沿梯度方向下降经过反复学习训练确定与最小误差相对应的网络参数(权值和阈值)训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息自行处理输出误差最小的经过非线形转换的信息。 接下来详细了解下信号的前向传播过程以及误差的反向传播过程 2.1 BP网络的特点 BP网络总括起来具有以下主要优点
1只要有足够多的隐含层和隐节点BP网络可以逼近任意的非线性映射关系;
2BP网络的学习算法属于全局逼近的方法因而它具有较好的泛化能力。 它的主要缺点是:
1收敛速度慢;
2局部极值
3难以确定隐含层和隐节点的个数。 从原理上只要有足够多的隐含层和隐节点即可实现复杂的映射关系但是如何根据特定的问题来具体确定网络的结构尚无很好的方法仍需要凭借经验和试凑。 BP网络能够实现输入/输出的非线性映射关系但它并不依赖于模型。其输入与输出之间的关联信息分散地存储于连接权中。由于连接权的个数很多个别神经元的损坏只对输入/输出关系有较小的影响因此BP网络显示了较好的容错性。
三、实验结果
4.1 训练过程 4.2 测试结果 测试结果 四、实验总结 通过本次实验我们更加深入的学习到BP神经网络的理论知识掌握BP神经网络的算法原理以及如何在MATLAB中实现利用MATLAB完成BP神经网络实现人脸朝向分类的程序编写这也使得我们掌握了在MATLAB中实现一些小型程序的编写能力实验中我们不妨有一些知识是在课本上没有学习到的因此我们在实验初期查阅了很多关于BP神经网络的资料以及如何在MATLAB中实现BP神经网络的代码当然我们也遇到了一些问题比如设置参数问题中到底是运行越多越好呢还是达到目的就好也做了很多查阅和讨论。 更多C/C语言、Linux系统、数据结构和ARM板实战相关文章关注专栏 手撕C语言 玩转linux 脚踢数据结构 系统、网络编程 探索C 6818ARM开发板实战
写在最后
今天的分享就到这啦~觉得博主写的还不错的烦劳 一键三连喔~感谢关注