博舍

人工神经网络练习小实验 人工智能实验三神经网络的编程实现

人工神经网络练习小实验

Lie群和Lie代数在雅克比矩阵推导中的总结

D192837465:开头的反对称矩阵G1G2G3是不是写错了,感觉符号正好反过来了

卡尔曼滤波器和优化的本质理解

flora_hanfu:“而滤波法是把x和一个正太分布之间用一个变换矩阵联系起来”这只是卡尔曼滤波,其它的滤波并不一定用正态分布和变换矩阵

图像分辨率和帧率对视觉SLAM(ORB-SLAM)性能影响研究

weixin_44591761:请问这个图片resize之后是不是还要调整内参

kalibr标定实践

#板板#:给你点个赞

Matlab版本的ORB-SLAM开发

憨憨家的涛:matlab的新版本已经集成了ORBSLAM2,给了一个接口,但是对于slam来说远远不够

基于BP神经网络的人脸识别

一、实验要求

采用三层前馈BP神经网络实现标准人脸YALE数据库的识别,编程语言为C系列语言。

二、BP神经网络的结构和学习算法

实验中建议采用如下最简单的三层BP神经网络,输入层为,有n个神经元节点,输出层具有m个神经元,网络输出为,隐含层具有k个神经元,采用BP学习算法训练神经网络。

BP神经网络的结构

BP网络在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对BP网络加以训练,网络就具有输入输出对之间的映射能力。

BP网络执行的是有教师训练,其样本集是由形如(输入向量,期望输出向量)的向量对构成的。在开始训练前,所有的权值和阈值都应该用一些不同的小随机数进行初始化。

BP算法主要包括两个阶段:

(1)向前传播阶段

①从样本集中取一个样本(Xp,Yp),将Xp输入网络,其中Xp为输入向量,Yp为期望输出向量。

②计算相应的实际输出Op。

在此阶段,信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络在完成训练后正常运行时执行的过程。在此过程中,网络执行的是下列运算:

                   

(2)向后传播阶段

①计算实际输出Op与相应的理想输出Yp的差;

②按极小化误差的方法调整权矩阵。

这两个阶段的工作一般应受到精度要求的控制,定义

                                            (1)

作为网络关于第p个样本的误差测度(误差函数)。而将网络关于整个样本集的误差测度定义为

                                                     (2)

如前所述,之所以将此阶段称为向后传播阶段,是对应于输入信号的正常传播而言的,也称之为误差传播阶段。

为了更清楚地说明本文所使用的BP网络的训练过程,首先假设输入层、中间层和输出层的单元数分别是N、L和M。X=(x0,x1,…,xN-1)是加到网络的输入矢量,H=(h0,h1,…,hL-1)是中间层输出矢量,Y=(y0,y1,…,yM-1)是网络的实际输出矢量,并且用D=(d0,d1,…,dM-1)来表示训练组中各模式的目标输出矢量。输出单元i到隐单元j的权值是Vij,而隐单元j到输出单元k的权值是Wjk。另外用θk和Φj来分别表示输出单元和隐单元的阈值。

于是,中间层各单元的输出为:

                                (3)            

而输出层各单元的输出是:

                                            (4)

其中f(*)是激励函数,采用S型函数: 

                                                (5)

在上述条件下,网络的训练过程如下:

(1)选定训练集。由相应的训练策略选择样本图像作为训练集。

(2)初始化各权值Vij,Wjk和阈值Φj,θk,将其设置为接近于0的随机值,并初始化精度控制参数ε和学习率α。

(3)从训练集中取一个输入向量X加到网络,并给定它的目标输出向量D。

(4)利用式(3)计算出一个中间层输出H,再用式(4)计算出网络的实际输出Y。

(5)将输出矢量中的元素yk与目标矢量中的元素dk进行比较,计算出M个输出误差项:对中间层的隐单元也计算出L个误差项:

(6)依次计算出各权值和阈值的调整量:

      

(8)当k每经历1至M后,判断指标是否满足精度要求:E≤ε,其中E是总误差函数,且。如果不满足,就返回(3),继续迭代。如果满足,就进入下一步。

(9)训练结束,将权值和阈值保存在文件中。这时可以认为各个权值已经达到稳定,分类器形成。再一次进行训练时,直接从文件导出权值和阈值进行训练,不需要进行初始化。

YALE数据库是由耶鲁大学计算视觉与扼制中心创立,包括15位志愿者,每个人有11张不同姿势、光照和表情的图片,共计165张图片,图片均为80*100像素的BMP格式图像。我们将整个数据库分为两个部分,每个人的前5幅图片作为网络的训练使用,后6副图片作为测试使用。

测试样例:

输入输出:

资源链接:https://download.csdn.net/download/qq_35685675/10420470

源码资源链接:https://download.csdn.net/download/qq_35685675/10420470

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇