神经网络实验指导书2013版[1]

合集下载

自组织竞争神经网络SOM

自组织竞争神经网络SOM
第四章 自组织竞争型神经网络
本章主要介绍自组织竞争型神经网络的结构 学习算法;及相关理论
1
第四章自组织竞争型神经网络
§4 1 前言 §4 2 竞争学习的概念和原理 §4 3自组织特征映射神经网络 §4 4自组织特征映射神经网络的设计 §4 5 对偶传播神经网络 §4 6小结
2
§4 1 前言
在生物神经系统中;存在着一种侧抑制现象;即一 个神经细胞兴奋以后;会对周围其他神经细胞产生 抑制作用 这种抑制作用会使神经细胞之间出现竞 争;其结果是某些获胜;而另一些则失败 表现形式 是获胜神经细胞兴奋;失败神经细胞抑制
在网络结构上;它一般是由输入层和竞争层构成的 两层网络 两层之间各神经元实现双向连接;而且网 络没有隐含层 有时竞争层各神经元之间还存在横 向连接
4
在学习算法上;它模拟生物神经元之间的兴奋 协调 与抑制 竞争作用的信息处理的动力学原理来指导 网络的学习与工作;而不像大多数神经网络那样是 以网络的误差或能量函数作为算法的准则
X1
0.8 0.6
X2
00.1.9783468
X3
00..770077
X4
00..3943297
X5
0.6 0.8
解:为作图方便;将上述模式转换成极坐标形式 :
X113.68o9X2180oX314.4 5X4170oX515.31o3
竞争层设两个权向量;随机初始化为单位向量:
W1(0)1010o W2(0)01118o0
7
24 -130
8
34 -130
w2
9
34 -100
10
44 -100
11
40.5 -100
12
40.5 -90

神经网络 实验报告

神经网络 实验报告

神经网络实验报告神经网络实验报告引言:神经网络是一种模仿人脑神经元网络结构和功能的计算模型,它通过学习和训练来实现模式识别、分类和预测等任务。

本次实验旨在探索神经网络的基本原理和应用,并通过实践验证其效果。

一、神经网络的基本原理1.1 神经元模型神经元是神经网络的基本单元,它接收来自其他神经元的输入信号,并通过激活函数进行处理后输出。

我们采用的是Sigmoid函数作为激活函数,它能够将输入信号映射到0到1之间的值。

1.2 神经网络结构神经网络由输入层、隐藏层和输出层组成。

输入层接收外部输入的数据,隐藏层用于处理和提取特征,输出层给出最终的预测结果。

隐藏层的数量和每层神经元的数量是根据具体问题而定的。

1.3 反向传播算法反向传播算法是神经网络中最常用的训练算法,它通过计算误差和调整权重来不断优化网络的预测能力。

具体而言,它首先进行前向传播计算得到预测结果,然后计算误差,并通过链式法则将误差反向传播到每个神经元,最后根据误差调整权重。

二、实验设计2.1 数据集选择本次实验选择了一个手写数字识别的数据集,其中包含了大量的手写数字图片和对应的标签。

这个数据集是一个经典的机器学习数据集,可以用来评估神经网络的分类能力。

2.2 神经网络参数设置为了探究神经网络的性能和泛化能力,我们设置了不同的参数组合进行实验。

主要包括隐藏层数量、每层神经元数量、学习率和训练轮数等。

2.3 实验步骤首先,我们将数据集进行预处理,包括数据归一化和标签编码等。

然后,将数据集划分为训练集和测试集,用于训练和评估网络的性能。

接下来,根据不同的参数组合构建神经网络,并使用反向传播算法进行训练。

最后,通过测试集评估网络的分类准确率和损失函数值。

三、实验结果与分析3.1 参数优化我们通过对不同参数组合的实验进行比较,找到了在手写数字识别任务上表现最好的参数组合。

具体而言,我们发现增加隐藏层数量和神经元数量可以提高网络的分类准确率,但同时也会增加训练时间。

实验七基于神经网络的模式识别实验

实验七基于神经网络的模式识别实验

实验七基于神经网络的模式识别实验一、实验目的利用神经网络实现模式识别,并验证其性能。

掌握基于神经网络的模式识别方法。

二、实验原理1.神经网络神经网络是一种模仿生物神经系统的计算模型,它由大量的神经元节点相互连接而成。

在模式识别中,我们一般采用多层前向神经网络进行模式的训练和识别。

2.神经网络的训练过程神经网络的训练过程可以分为两步:前向传播和反向传播。

前向传播是指将输入样本通过网络的各个层传递到输出层,并计算输出结果。

反向传播是指根据输出结果和目标结果之间的误差,将误差反向传播到网络的各个层,并根据误差调整网络中的权值。

3.模式识别对于模式识别问题,我们首先需要将输入模式转化为特征向量,然后通过神经网络来训练这些特征向量,并将其与已知类别的模式进行比较,从而进行模式的识别。

三、实验步骤1.数据准备选择适当的模式识别数据集,例如手写数字识别的MNIST数据集,将其分为训练集和测试集。

2.特征提取对于每个输入模式,我们需要将其转化为一个特征向量。

可以使用各种特征提取方法,例如像素值,轮廓等。

3.神经网络设计设计合适的神经网络结构,包括输入层、隐藏层和输出层,并确定各层的神经元数目。

4.神经网络训练使用训练集对神经网络进行训练,包括前向传播和反向传播过程。

可以使用各种优化算法,例如梯度下降法。

5.模式识别使用测试集对训练好的神经网络进行测试和验证,计算识别的准确率和性能指标。

6.性能评估根据得到的结果,评估神经网络的性能,并分析可能的改进方法。

四、实验结果通过实验我们可以得到神经网络模式识别的准确率和性能指标,例如精确度、召回率和F1-score等。

五、实验总结在本次实验中,我们利用神经网络实现了模式识别,并验证了其性能。

通过实验,我们可以掌握基于神经网络的模式识别方法,了解神经网络的训练和识别过程,以及模式识别中的特征提取方法。

实验结果表明,神经网络在模式识别问题中具有较好的性能,并且可以根据需要进行改进和优化。

神经网络设计课程设计

神经网络设计课程设计

神经网络设计课程设计一、课程目标知识目标:1. 学生能理解神经网络的基本概念,掌握其结构和工作原理。

2. 学生能描述神经网络在图像识别、自然语言处理等领域的应用。

3. 学生能掌握神经网络的训练和优化方法,了解超参数调整对网络性能的影响。

技能目标:1. 学生能运用编程工具(如Python、TensorFlow等)搭建简单的神经网络模型。

2. 学生能通过调整网络结构、参数等手段优化模型性能,解决实际问题。

3. 学生能运用所学知识,对神经网络进行调试、评估和改进。

情感态度价值观目标:1. 学生对神经网络技术产生兴趣,培养探究精神和创新意识。

2. 学生在团队合作中学会相互尊重、沟通与协作,提高解决问题的能力。

3. 学生认识到神经网络技术在现实生活中的价值,关注其对社会发展的影响。

课程性质:本课程为选修课,旨在拓展学生的知识视野,提高实践操作能力。

学生特点:学生具备一定的编程基础和数学知识,对新技术充满好奇心。

教学要求:结合理论讲解与实践操作,引导学生主动探究,注重培养学生的动手能力和创新能力。

通过课程学习,使学生能够独立完成神经网络模型的搭建和优化,解决实际问题。

二、教学内容1. 神经网络基本概念:介绍神经元模型、网络结构,理解全连接网络、卷积神经网络、循环神经网络等不同类型的神经网络。

- 教材章节:第二章 神经网络基础2. 神经网络应用场景:分析图像识别、自然语言处理等领域的神经网络应用案例,探讨神经网络的优势和局限性。

- 教材章节:第三章 神经网络应用3. 神经网络搭建与训练:学习使用Python、TensorFlow等工具搭建神经网络,掌握前向传播和反向传播算法,了解损失函数和优化器的选择。

- 教材章节:第四章 神经网络搭建与训练4. 神经网络优化策略:研究超参数调整、正则化、批量归一化等方法,探讨如何提高神经网络性能。

- 教材章节:第五章 神经网络优化5. 实践项目:结合所学知识,开展图像分类、文本情感分析等实践项目,培养学生解决实际问题的能力。

BP神经网络实验报告

BP神经网络实验报告

BP神经网络实验报告一、引言BP神经网络是一种常见的人工神经网络模型,其基本原理是通过将输入数据通过多层神经元进行加权计算并经过非线性激活函数的作用,输出结果达到预测或分类的目标。

本实验旨在探究BP神经网络的基本原理和应用,以及对其进行实验验证。

二、实验方法1.数据集准备本次实验选取了一个包含1000个样本的分类数据集,每个样本有12个特征。

将数据集进行标准化处理,以提高神经网络的收敛速度和精度。

2.神经网络的搭建3.参数的初始化对神经网络的权重和偏置进行初始化,常用的初始化方法有随机初始化和Xavier初始化。

本实验采用Xavier初始化方法。

4.前向传播将标准化后的数据输入到神经网络中,在神经网络的每一层进行加权计算和激活函数的作用,传递给下一层进行计算。

5.反向传播根据预测结果与实际结果的差异,通过计算损失函数对神经网络的权重和偏置进行调整。

使用梯度下降算法对参数进行优化,减小损失函数的值。

6.模型评估与验证将训练好的模型应用于测试集,计算准确率、精确率、召回率和F1-score等指标进行模型评估。

三、实验结果与分析将数据集按照7:3的比例划分为训练集和测试集,分别进行模型训练和验证。

经过10次训练迭代后,模型在测试集上的准确率稳定在90%以上,证明了BP神经网络在本实验中的有效性和鲁棒性。

通过调整隐藏层结点个数和迭代次数进行模型性能优化实验,可以发现隐藏层结点个数对模型性能的影响较大。

随着隐藏层结点个数的增加,模型在训练集上的拟合效果逐渐提升,但过多的结点数会导致模型的复杂度过高,容易出现过拟合现象。

因此,选择合适的隐藏层结点个数是模型性能优化的关键。

此外,迭代次数对模型性能也有影响。

随着迭代次数的增加,模型在训练集上的拟合效果逐渐提高,但过多的迭代次数也会导致模型过度拟合。

因此,需要选择合适的迭代次数,使模型在训练集上有好的拟合效果的同时,避免过度拟合。

四、实验总结本实验通过搭建BP神经网络模型,对分类数据集进行预测和分类。

实训神经网络实验报告

实训神经网络实验报告

一、实验背景随着人工智能技术的飞速发展,神经网络作为一种强大的机器学习模型,在各个领域得到了广泛应用。

为了更好地理解神经网络的原理和应用,我们进行了一系列的实训实验。

本报告将详细记录实验过程、结果和分析。

二、实验目的1. 理解神经网络的原理和结构。

2. 掌握神经网络的训练和测试方法。

3. 分析不同神经网络模型在特定任务上的性能差异。

三、实验内容1. 实验一:BP神经网络(1)实验目的:掌握BP神经网络的原理和实现方法,并在手写数字识别任务上应用。

(2)实验内容:- 使用Python编程实现BP神经网络。

- 使用MNIST数据集进行手写数字识别。

- 分析不同学习率、隐层神经元个数对网络性能的影响。

(3)实验结果:- 在MNIST数据集上,网络在训练集上的准确率达到98%以上。

- 通过调整学习率和隐层神经元个数,可以进一步提高网络性能。

2. 实验二:卷积神经网络(CNN)(1)实验目的:掌握CNN的原理和实现方法,并在图像分类任务上应用。

(2)实验内容:- 使用Python编程实现CNN。

- 使用CIFAR-10数据集进行图像分类。

- 分析不同卷积核大小、池化层大小对网络性能的影响。

(3)实验结果:- 在CIFAR-10数据集上,网络在训练集上的准确率达到80%以上。

- 通过调整卷积核大小和池化层大小,可以进一步提高网络性能。

3. 实验三:循环神经网络(RNN)(1)实验目的:掌握RNN的原理和实现方法,并在时间序列预测任务上应用。

(2)实验内容:- 使用Python编程实现RNN。

- 使用Stock数据集进行时间序列预测。

- 分析不同隐层神经元个数、学习率对网络性能的影响。

(3)实验结果:- 在Stock数据集上,网络在训练集上的预测准确率达到80%以上。

- 通过调整隐层神经元个数和学习率,可以进一步提高网络性能。

四、实验分析1. BP神经网络:BP神经网络是一种前向传播和反向传播相结合的神经网络,适用于回归和分类问题。

神经网络的BP算法实验报告

神经网络的BP算法实验报告

计算智能基础实验报告实验名称:BP神经网络算法实验班级名称:341521班专业:探测制导与控制技术姓名:***学号:********一、 实验目的1)编程实现BP 神经网络算法;2)探究BP 算法中学习因子算法收敛趋势、收敛速度之间的关系;3)修改训练后BP 神经网络部分连接权值,分析连接权值修改前和修改后对相同测试样本测试结果,理解神经网络分布存储等特点。

二、 实验要求按照下面的要求操作,然后分析不同操作后网络输出结果。

1)可修改学习因子2)可任意指定隐单元层数3)可任意指定输入层、隐含层、输出层的单元数4)可指定最大允许误差ε5)可输入学习样本(增加样本)6)可存储训练后的网络各神经元之间的连接权值矩阵;7)修改训练后的BP 神经网络部分连接权值,分析连接权值修改前和修改后对相同测试样本测试结果 。

三、 实验原理1BP 神经网络算法的基本思想误差逆传播(back propagation, BP)算法是一种计算单个权值变化引起网络性能变化的较为简单的方法。

由于BP 算法过程包含从输出节点开始,反向地向第一隐含层(即最接近输入层的隐含层)传播由总误差引起的权值修正,所以称为“反向传播”。

BP 神经网络是有教师指导训练方式的多层前馈网络,其基本思想是:从网络输入节点输入的样本信号向前传播,经隐含层节点和输出层节点处的非线性函数作用后,从输出节点获得输出。

若在输出节点得不到样本的期望输出,则建立样本的网络输出与其期望输出的误差信号,并将此误差信号沿原连接路径逆向传播,去逐层修改网络的权值和节点处阈值,这种信号正向传播与误差信号逆向传播修改权值和阈值的过程反复进行,直训练样本集的网络输出误差满足一定精度要求为止。

2 BP 神经网络算法步骤和流程BP 神经网络步骤和流程如下:1) 初始化,给各连接权{},{}ij jt W V 及阈值{},{}j t θγ赋予(-1,1)间的随机值;2) 随机选取一学习模式对1212(,),(,,)k k k k k k k n k n A a a a Y y y y ==提供给网络;3) 计算隐含层各单元的输入、输出;1n j ij i j i s w a θ==⋅-∑,()1,2,,j j b f s j p ==4) 计算输出层各单元的输入、输出;1t t jt j t j l V b γ==⋅-∑,()1,2,,t t c f l t q ==5) 计算输出层各单元的一般化误差;()(1)1,2,,k k t t tt t t d y c c c t q =-⋅-=6) 计算中间层各单元的一般化误差;1[](1)1,2,,q kk jt jt j j t e d V b b j p ==⋅⋅-=∑7) 修正中间层至输出层连接权值和输出层各单元阈值;(1)()k jt jt t j V iter V iter d b α+=+⋅⋅(1)()k t t t iter iter d γγα+=+⋅8) 修正输入层至中间层连接权值和中间层各单元阈值;(1)()kk ij ij j i W iter W iter e a β+=+⋅⋅(1)()kj j j iter iter e θθβ+=+⋅9) 随机选取下一个学习模式对提供给网络,返回步骤3),直至全部m 个模式训练完毕;10) 重新从m 个学习模式对中随机选取一个模式对,返回步骤3),直至网络全局误差函数E 小于预先设定的一个极小值,即网络收敛;或者,当训练次数大于预先设定值,强制网络停止学习(网络可能无法收敛)。

神经网络_实验报告

神经网络_实验报告

一、实验目的与要求1. 掌握神经网络的原理和基本结构;2. 学会使用Python实现神经网络模型;3. 利用神经网络对手写字符进行识别。

二、实验内容与方法1. 实验背景随着深度学习技术的不断发展,神经网络在各个领域得到了广泛应用。

在手写字符识别领域,神经网络具有较好的识别效果。

本实验旨在通过实现神经网络模型,对手写字符进行识别。

2. 神经网络原理神经网络是一种模拟人脑神经元结构的计算模型,由多个神经元组成。

每个神经元接收来自前一个神经元的输入,通过激活函数处理后,输出给下一个神经元。

神经网络通过学习大量样本,能够自动提取特征并进行分类。

3. 实验方法本实验采用Python编程语言,使用TensorFlow框架实现神经网络模型。

具体步骤如下:(1)数据预处理:从公开数据集中获取手写字符数据,对数据进行归一化处理,并将其分为训练集和测试集。

(2)构建神经网络模型:设计网络结构,包括输入层、隐藏层和输出层。

输入层用于接收输入数据,隐藏层用于提取特征,输出层用于输出分类结果。

(3)训练神经网络:使用训练集对神经网络进行训练,调整网络参数,使模型能够准确识别手写字符。

(4)测试神经网络:使用测试集对训练好的神经网络进行测试,评估模型的识别效果。

三、实验步骤与过程1. 数据预处理(1)从公开数据集中获取手写字符数据,如MNIST数据集;(2)对数据进行归一化处理,将像素值缩放到[0, 1]区间;(3)将数据分为训练集和测试集,比例约为8:2。

2. 构建神经网络模型(1)输入层:输入层节点数与数据维度相同,本实验中为28×28=784;(2)隐藏层:设计一个隐藏层,节点数为128;(3)输出层:输出层节点数为10,对应10个类别。

3. 训练神经网络(1)定义损失函数:均方误差(MSE);(2)选择优化算法:随机梯度下降(SGD);(3)设置学习率:0.001;(4)训练次数:10000;(5)在训练过程中,每100次迭代输出一次训练损失和准确率。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

神经网络实验指导书2013版[1]北京信息科技大学自编实验讲义神经网络实验指导书许晓飞陈雯柏编著找其映射是靠学习实践的,只要学习数据足够完备,就能够描述任意未知的复杂系统。

因此前馈神经网络为非线性系统的建模和控制提供了有力的工具。

输入层隐层输出层图1 前馈型神经网络结构2.BP算法原理BP(Back Propagation)神经网络是一种利用误差反向传播训练算法的前馈型网络,BP学习算法实质是求取网络总误差函数的最小值问题[2]。

这种算法采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权系数,它是梯度下降法在多层前馈网络中的应用。

具体学习算法包括两大过程,其一是输入信号的正向传播过程,其二是输出误差信号的反向传播过程。

1.正向传播输入的样本从输入层经过隐层单元一层一层进行处理,通过所有的隐层之后,则传向输出层;在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。

在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。

2.反向传播反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个隐层的各个神经元的权系数进行修改,以望误差信号趋向最小。

网络各层的权值改变量,则由传播到该层的误差大小来决定。

3.BP算法的特点BP神经网络具有以下三方面的主要优点[3]:第一,只要有足够多的隐含层和隐层节点,BP 神经网络可逼近任意的非线性映射关系;第二,BP学习算法是一种全局逼近方法,因而它具有较好的泛化能力。

第三,BP神经网络具有一定的容错能力。

因为BP神经网络输入输出间的关联信息分布存储于连接权中,由于连接权的个数总多,个别神经元的损坏对输入输出关系只有较小影响。

但在实际应用中也存在一些问题,如:收敛速度慢,极有可能陷入最优陷阱(局部极值),而且典型的BP网络是一个冗余结构,它的结构及隐节点数的确定往往有人为的主观性,而且一旦人工决定之后,不能在学习过程中自主变更。

其结果是隐节点数少了,学习过程不收敛;隐节点数多了,则网络的学习及推理的效率较差。

实验步骤:(1)建立控制模型神经网络训练数据来源于MATLAB6.5自带的一阶T-S型模糊控制slcp.mdl。

如图2所示。

图2 一级倒立摆的模糊控制仿真在上面的控制系统中提取摆角、角速度、位移、速度初始条件为分别为0. 5rad,1rad/s, 0和0,在此条件下响应的输入输出对,(2) 提取训练数据如图3所示,利用【Signal To Workspace】模块获取一阶T-S型模糊控制仿真过程的控制器输入输出数据对,并保存到工作区中,可以直接用到神经网络的训练中。

摆杆角度摆杆角速度小车位移小车速度图3 数据提取(3) BP神经网络控制器的训练首先将提取出的训练数据变为标准的训练数据形式,标准的训练数据分为输入和目标输出两部分。

输入部分是一个形式为输入个数⨯训练数据个数的矩阵,这里输入个数为4。

目标输出为一个输出个数⨯训练数据个数的矩阵,这里输出个数为1。

而经signal to workspace模块提取出的数据为一个训练数据个数⨯输入(或输出)个数的矩阵,因此分别将p、t转置后就得到标准训练数据p’,t’。

接着选择要训练的步数,训练步数的选择可由下面语句定义:net.trainParam.epochs=250这一语句定义了一个500步的训练步数。

做完上面的工作后就可以对网络进行训练了,按照上一节中的选择和定义初始化网络后,在没有输入延迟和输出延迟的条件下,并设训练后的网络还为NET,便可用下面语句对网络训练:[net,tr]=train(net,P,T,[ ],[ ])使用下面语句初始化BP神经网络控制器并进行训练:P=p';T=t';net=newff([-0.35 0.35;-1 1;-3 3;-3 3],[12 1],{'tansig','purelin'},'trainlm','learngdm');net.trainParam.show=25;net.trainParam.epochs=250;[net,tr]=train(net,P,T,[ ],[ ]);系统提示如下:TRAINLM, Epoch 0/250, MSE 10.1011/0, Gradient 2554.35/1e-010TRAINLM, Epoch 50/250, MSE 4.78751e-008/0, Gradient 0.00983832/1e-010TRAINLM, Epoch 75/250, MSE 4.1262e-008/0, Gradient 0.00475103/1e-010TRAINLM, Epoch 100/250, MSE 3.76953e-008/0, Gradient 0.00278629/1e-010TRAINLM, Epoch 125/250, MSE 3.52016e-008/0, Gradient 0.00194476/1e-010TRAINLM, Epoch 150/250, MSE 3.32444e-008/0, Gradient 0.00150103/1e-010TRAINLM, Epoch 175/250, MSE 3.16423e-008/0, Gradient 0.00121143/1e-010TRAINLM, Epoch 200/250, MSE 3.02987e-008/0, Gradient 0.000996205/1e-010TRAINLM, Epoch 225/250, MSE2.91493e-008/0, Gradient 0.000826085/1e-010TRAINLM, Epoch 250/250, MSE 2.81489e-008/0, Gradient 0.000687935/1e-010TRAINLM, Maximum epoch reached, performance goal was not met.图4 训练误差曲线可以看出,经过250步训练控制器输出与期望输出间的误差已经很小了。

提示:如训练程序有错,请在help文档搜索BP神经网络函数newff,查看语法调用;P=p';T=t';net=newff([0.35 0.35;-1 1;-3 3;-3 3],[12,1],{'tansig' 'purelin'});net.trainparam.show=25;net.trainparam.epochs=300;[net,tr]=train(net,P,T);神经网络的结构用语句gensim(net,-1)可以在simulink里生成控制器并使用其进行控制,其中-1的意思是系统是实时的,生成的神经网络控制器结构如图5所示。

神经网络控制器(a) 神经网络控制器外部结构(b) 内部结构(c)隐层结构(d)输出层结构图5 BP神经网络结构(4) 神经网络控制的实现使用训练后的BP神经网络控制器代替原模糊控制器控制器便可进行仿真试验。

控制结构如图6所示。

图6 直线一级倒立摆神经网络控制仿真单击模型窗口上的’run’,运行以上的仿真实验,可以看出训练后的BP神经网络能成功的实现倒立摆的控制.<<SOM神经网络>>实验指导实验目的:(1)熟悉Matlab/Simulink的使用. (2)掌握SOM神经网络的基本原理和基本的设计步骤.(3) 熟悉SOM神经网络在实际中的应用.实验原理:通过自动寻找样本中的内在规律和本质属性,自组织、自适应地改变网络参数与结构。

自组织网络的自组织功能是通过竞争学习(competitive learning)实现的。

1981年芬兰Helsink大学的T.Kohonen教授提出一种自组织特征映射网,简称SOM网,又称Kohonen网。

Kohonen认为:一个神经网络接受外界输入模式时,将会分为不同的对应区域,各区域对输入模式具有不同的响应特征,而且这个过程是自动完成的。

自组织特征映射正是根据这一看法提出来的,其特点与人脑的自组织特性相类似。

SOM网共有两层,输入层模拟感知外界输入信息的视网膜,输出层模拟做出响应的大脑皮层。

Kohonen学习算法程序流程:示例:产生100个(0,0.5pi)之间的角度,用其sin和cos值作为输入向量,利用输出为二维平面阵的SOM网络对其进行聚类。

参考程序如下:angles = 0:0.5*pi/99:0.5*pi;P = [sin(angles); cos(angles)];plot(P(1,:),P(2,:),'+r')net = newsom([0 1;0 1],[10]);net.trainParam.epochs = 10;net = train(net,P);plotsom(net.iw{1,1},yers{1}.distances)p = [1;0];a = sim(net,p)实验内容:人口分类是人口统计中的一个重要指标,现有1999共10个地区的人口出生比例情况如下表所示,建立一个自组织神经网络对上述数据分类,给定某个地区的男、女出生比例分别为0.5,0.5,测试训练后的自组织神经网络的性能,判断其属于哪个类别。

实验步骤:(1)确定输入模式;(2)确定网络的结构,设计参数;(3)编辑相应的M文件实现SOM对数据进行聚类,运行M文件,在命令窗口察看结果。

课下扩展实验:利用SOM网络对动物属性特征映射1989年Kohonen给出一个SOM网的著名应用实例,即把不同的动物按其属性特征映射到两维输出平面上,使属性相似的动物在SOM网输出平面上的位置也相近。

该例训练集种共有16种动物,每种动物用一个29维向量来表示,其中前16个分量构成符号向量,对不同的动物进行“16取1”编码;后13个分量构成属性向量,描述动物的13种属性,用1或0表示某动物该属性的有或无。

表2中的各列给出16种动物的属性列向量。

实验步骤(1)准备输入模式;(2)设计SOM网络:SOM网的输出平面上有10 10个神经元(3)SOM网络的训练:用16个动物模式轮番输入进行训练,考察输出平面上所示情况。

注意事项(1)输入:P为29×16的矩阵,其中29维输入向量,16为动物的个数---归一化(2)输出:10×10(3)网络的设计:建立新的网络:net = newsom(AA,[10 10],'gridtop');'hextop'网络训练参数设定:net.trainParam.epochs = 1000;网络训练:net = train(net,P);(4)训练后的运行:a = sim(net,P)由a的值可以得到SOM的哪个输出节点对输入有所响应,即归为哪一类(4)画出输出示意图。

相关文档
最新文档