自联想与异联想实验.doc

上传人:cn****1 文档编号:548362859 上传时间:2022-11-18 格式:DOC 页数:18 大小:263.50KB
返回 下载 相关 举报
自联想与异联想实验.doc_第1页
第1页 / 共18页
自联想与异联想实验.doc_第2页
第2页 / 共18页
自联想与异联想实验.doc_第3页
第3页 / 共18页
自联想与异联想实验.doc_第4页
第4页 / 共18页
自联想与异联想实验.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《自联想与异联想实验.doc》由会员分享,可在线阅读,更多相关《自联想与异联想实验.doc(18页珍藏版)》请在金锄头文库上搜索。

1、自联想与异联想实验摘要:实验分为两部分,第一,验证0-2的线性自联想;第二,实现A-J到0-9的异联想。本次实验利用C语言编程实现,最后通过实验结果分析线性联想器的联想和容错性能。关键词:自联想;异联想;C语言一、 实验目的1. 了解线性联想器的原理与结构2. 实现简单的自联想3. 实现A-J到0-9的异联想4. 通过结果分析线性联想器的性能二、 实验工具与方法1. 自联想简介自联想神经网络(Auto-Associative Neural Network , 缩写为AANN)是1992年Kramer提出的,是BP神经网络的一种特殊情形。其特点是有对称拓扑结构,即输出量等于输入量。2. 异联想简

2、介异联想与自联想类似,不同之处在于输出与输入不等(Pi!=Ti)。3. 线性联想器结构如图1所示图1 线性联想器如图1所示,P为输入向量,维数R*1,W为权值矩阵,维数S*R,a为联想器的输出向量,维数S*1。三、 实验内容1. 验证0-2的自联想1.1 网络的设计与预处理自联想网络的设计如图2所示。图2 实验一自联想网络如图所示,输入向量P的维数是30*1,权值矩阵W是30*30的方阵,网络输出向量a的维数是30*1,选择的激励函数为硬极限函数(取值为1或-1)。预处理主要是实现0-2数字的数字图像化,每个数字用一张6*5的图像表示。下图3给出了0-2对应的数字图像。数字0对应的向量形式为:

3、P030=-1,1,1,1,1,-1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,1,-1,1,1,1,1,-1;-1111-11-1-1-111-1-1-111-1-1-111-1-1-11-1111-1111-1-1-1-1-11-1-1-1-11-1-111-1-1-11-1-1-1-11111-111-1-1-1-11-1-1-1-11-1-1-1-11-1-1-1-11-1-1-1-11-1-1 0 1 2图3 0-2图像表示1.2 实验步骤首先根据下面的公式计算出对应的权值矩阵W,然后将P输入,获取联想器输出的结果a,然后判断a

4、与P是否相等。最后在完成初始验证的情况下,分3组进一步测试,第1组将原图像隐去50%,第2组将原图像隐去67%,第3组进行带噪声的测试。通过实验的结果分析自联想联想器性能。2. A-J到0-9异联想2.1 网络的设计与预处理因为本次实验的异联想实在自联想网络的基础上扩展来的,所以网络的设计不变,预处理的过程也是类似的,只是把0-2扩展到0-9。预处理中需要添加期望输出矩阵T1030,用来存放A-J图像数据。2.2 实验步骤异联想用到了仿逆规则,首先需要根据公式计算出P+,然后求出权值矩阵W,最后验证网络能否实现A-J到0-9的异联想。仿逆规则: 验证: Ti=hardlims(W*Pi)四、

5、实验结果1. 自联想测试结果实验1结果如图4所示。(样本为做处理) 图4 实验1结果实验2结果如图5所示。(隐去原数据50%)图5 隐去50%的结果实验3结果如图6所示。(隐去元数据67%)图6 隐去67%的结果实验4结果如图7所示。(加入噪声测试)图7 加入噪声测试结果2. 异联想测试结果实验1输入未处理的A-J,如图8所示。图8 原始输入数据对应0-9的输出,如图9所示。图9 异联想实验结果实验2输入隐藏50%的A-J,如图10所示。图10 实验1测试数据输入效果对应0-9的输出,如图11所示。图11 隐去50%的异联想结果五、 实验分析通过本次线性联想器实验,可以发现自联想阶段,联想器在

6、隐去50%数据和存在噪声的情况下比较完整的联想出了理想的结果,在隐去67%数据时,联想器只识别出了数字1。因此,线性联想器在一般情况下(数据缺失、损坏较小时)联想比较容易,当数据大量失真时,则难以联想出来。因此可以认为线性联想器具有一定的容错能力,但是它的容错能力比较弱。本次实验中异联想阶段,首先实现了简单的联想,通过实验结果可以看出简单的异联想还是可以完美的实现的。然后进行了隐去50%数据的异联想测试,可以清楚的发现结果并不理想,A-J的10个字母,只识别出D-3,F-5和I-8。最后,我认为可能是学习规模从0-2扩大到0-9的缘故,实验中异联想的容错性能较实验一自联想有所降低。还有本次实验

7、主要模仿了书中的例子,因此实现起来比较容易,唯一的难点就是在异联想实验中需要用到矩阵求逆过程。因为我是用的C语言写的实现程序,之前在网上找可以求逆的库函数没找到,所以就自己写了一个递归求10阶以内逆矩阵的函数,效果还行,效率不高,运行速度有点慢。六、 源程序1. 0-2自联想源代码:#includevoid show_answer(int n, int array330) /输出结果函数int i=0;int j=0;int k=0;int temp65=0; /temp65存放一个数字图像信息for(i=0;in;i+)int q=0;for(j=0;j5;j+)for(k=0;k6;k+)

8、tempkj=arrayiq;q+;for(j=0;j6;j+)for(k=0;k5;k+)if(tempjk=1)printf(*);elseprintf( );printf(n);printf(nn);void compute_answer(int n,int array330,int w3030, int a330)int i,j,k;for(i=0;in;i+)for(j=0;j30;j+)aij=0; /初始化a矩阵for(i=0;in;i+)for(j=0;j30;j+)for(k=0;k0) /计算通过激励函数的实际值aij=1;elseaij=-1;void main()int

9、 w3030=0;int ps330=-1,1,1,1,1,-1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,1,-1,1,1,1,1,-1 ,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,1,-1,-1,-1,-1,-1,1,-1,-1,1,1,1,1,-1,-1,1,-1,1,-1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1; /原始0-2数据int pt_50330=-1,1,1,-1,-1,-1,1,-1

10、,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1; /隐去50%后0-2数据int pt_67330=-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,

11、-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1; /隐去67%后0-2数据int pt_mix330=-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,1,-1,1,1,-

12、1,-1,-1,1,-1,-1,1,-1,1,-1 ,-1,-1,1,-1,-1,1,1,-1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,-1,1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,1; /加入噪声的0-2数据int a330=0;int i,j,k;printf(原标准样本: n); show_answer(3,ps);for(i=0;i3;i+)for(j=0;j30;j+)for(k=0;k30;k+)wjk+=psij*psik; /计算权值矩阵

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号