前三四节课讲得是有监督神经网络,这一节课讲得两种神经网络是无监督神经网络,不需要给出类别(标签),只需要给出输入即可。所有神经网络的重点就是阈值b和权值W的生成过程,是根据参数所决定的,可访问函数内部去了解算法。
有监督:需要输入和划分标签,结果是判断是哪一类东西,比如:训练西瓜,苹果等,然后给出新水果告诉你是哪一种水果。
无监督:只需要输入无标签,结果判定属于哪一群体的,这群体是什么不知道。比如:训练一堆水果(什么都有,但是都不知道名字),然后一新水果,判断是一堆中的哪一堆。常见的名词是“聚类”。同类放一块,具体类别不知道。

自组织映射(self-organizing map ,SOM)或自组织特征映射(self-organizing feature map,SOFM)

newc:
– 创建竞争神经网络( competitive layer)
– PR输入的维度,s隐藏层神经元个数,KLR权值学习率,CLR阈值学习率
net = newc(PR,S,KLR,CLR)
newsom:
– 创建SOM
– P输入样本,[D1]网络拓扑结构,TFCN拓扑类型函数,DFCN距离计算方式,STEPS迭代领域变化的大小,IN初始领域
net = newsom(P,[D1,D2,...],TFCN,DFCN,STEPS,IN)

案例实战:

数据样本介绍:water_data.mat

竞争神经网络的创建:

% 1. 创建网络   维度,隐藏层神经元个数,权值学习率,阈值学习率,
% minmax()函数用于获取数组中每一行的最小值和最大值。本案例中为6组【-1,1】
net = newc(minmax(P_train),4,0.01,0.01);

% 2. 设置训练参数
net.trainParam.epochs = 500;%%
% 3. 训练网络
net = train(net,P_train);


SOM神经网络的创建:

%% IV. SOFM神经网络创建、训练及仿真测试
%%
% 1. 创建网络 输入样本 4*4的网络拓扑结构
net = newsom(P_train,[4 4]);

%%
% 2. 设置训练参数
net.trainParam.epochs = 200;%%
% 3. 训练网络
net = train(net,P_train);



综上两个网络,在训练的时候没有用的classes里面的数据,体现了无监督的特性。

%% I. 清空环境变量
clear all
clc%% II. 训练集/测试集产生
%%
% 1. 导入数据
load water_data.mat%%
% 2. 数据归一化【-1,1】
attributes = mapminmax(attributes);%%
% 3. 训练集和测试集划分,没有随机划分,前35训练集,后4测试集% 训练集——35个样本
P_train = attributes(:,1:35);
T_train = classes(:,1:35);
% 测试集——4个样本
P_test = attributes(:,36:end);
T_test = classes(:,36:end);%% III. 竞争神经网络创建、训练及仿真测试
%%
% 1. 创建网络   维度,隐藏层神经元个数,权值学习率,阈值学习率,
% minmax()函数用于获取数组中每一行的最小值和最大值。
net = newc(minmax(P_train),4,0.01,0.01);%%
% 2. 设置训练参数
net.trainParam.epochs = 500;%%
% 3. 训练网络
net = train(net,P_train);%%
% 4. 仿真测试% 训练集
t_sim_compet_1 = sim(net,P_train);
T_sim_compet_1 = vec2ind(t_sim_compet_1);
% 测试集
t_sim_compet_2 = sim(net,P_test);
T_sim_compet_2 = vec2ind(t_sim_compet_2);%% IV. SOFM神经网络创建、训练及仿真测试
%%
% 1. 创建网络 输入样本 网络拓扑结构
net = newsom(P_train,[4 4]);%%
% 2. 设置训练参数
net.trainParam.epochs = 200;%%
% 3. 训练网络
net = train(net,P_train);%%
% 4. 仿真测试% 训练集
t_sim_sofm_1 = sim(net,P_train);
T_sim_sofm_1 = vec2ind(t_sim_sofm_1);
% 测试集
t_sim_sofm_2 = sim(net,P_test);
T_sim_sofm_2 = vec2ind(t_sim_sofm_2);%% V. 结果对比
%%
% 1. 竞争神经网络
result_compet_1 = [T_train' T_sim_compet_1']
result_compet_2 = [T_test' T_sim_compet_2']%%
% 2. SOFM神经网络
result_sofm_1 = [T_train' T_sim_sofm_1']
result_sofm_2 = [T_test' T_sim_sofm_2']

竞争神经网络结果比较:
result_compet_1 =

 1     11     41     41     1                                                 第一列表示T_train'   1*351     1                                                 第二列表示为P—train的变形 T_sim_compet_1  1*351     42     12     12     1                                                因为有四种类型,所以输出是4中,分别用1 2 3 4表示2     1                                                第二列的数字表示对应的神经元,竞争网络隐藏层有4个神经元所以1-42     1                                             前六个第一列为1,表示第一类,后面有1和4表示第一类对应1和4神经元2     12     42     12     12     12     42     13     33     33     33     33     33     33     33     33     34     44     44     44     44     14     14     14     1

result_compet_2 = 上面是训练的过程没这是验证

 1     4                                      1类对应1和4,所以这个结果不完全2     1                                       2类也是1和4,不完全3     3                                       3类值对应3,所以对4     4                                         4类1和4故不完全

SOFM网络结果比较:
result_sofm_1 =

 1     81    111    141     71     3                                                 可根据每一类的对应的神经元和颜色图比较,1    14                                                同一类的颜色浅2    122    122    122    122    122    122    152    122     82     82    152    123     63    103     13     13     53     23     13     23     14    164    144    134    164     44     44     44     4

result_sofm_2 =

 1    112    123     14    16

第五课 竞争神经网络和SO(F)M神经网络——无监督神经网络模型相关推荐

  1. 神经网络编程的34个案例,java调用神经网络模型

    如何用70行Java代码实现神经网络算法 . 如何用70行Java代码实现神经网络算法import.Random;publicclassBpDeep{publicdouble[][]layer;//神 ...

  2. 使用尖峰神经网络和尖峰时间相关可塑性的无监督手写数字分类

    尊敬的读者,您好!我非常高兴能在这里和大家分享一种使用尖峰神经网络和尖峰时间相关可塑性(STDP)进行无监督手写数字分类的方法.本文将尽可能详尽地解释这个主题,提供理论背景,然后指导您通过具体示例来实 ...

  3. 用matlab自己搭建bp神经网络,怎样在matlab里建立一个BP神经网络模型?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 用以下的数据怎样在matlab里建立一个BP神经网络模型?求高手帮忙!!最好是有详细步骤以及代码 年份 WTI(美元/桶) 2007-1 54.26 20 ...

  4. 神经网络算法有哪些模型,常用的神经网络模型

    unet模型属于哪种神经网络 unet模型属于卷积神经网络. 是德国弗莱堡大学计算机科学系为生物医学图像分割而开发的,该网络基于全卷积网络其架构经过修改和扩展,可以使用更少的训练图像并产生更精确的分割 ...

  5. 神经网络方法研究及应用,神经网络算法简单例子

    什么是神经网络,举例说明神经网络的应用 我想这可能是你想要的神经网络吧! 什么是神经网络:人工神经网络(ArtificialNeuralNetworks,简写为ANNs)也简称为神经网络(NNs)或称 ...

  6. 深度神经网络的成功应用,深度神经网络技术赋能

    深度神经网络是什么意思? 深度神经网络是机器学习(ML, Machine Learning)领域中一种技术.在监督学习中,以前的多层神经网络的问题是容易陷入局部极值点. 如果训练样本足够充分覆盖未来的 ...

  7. 基于神经网络的智能诊断,基于神经网络的控制

    机电系统智能控制的毕业论文可以写哪些部分? 基于联合仿真的机电液一体化系统优化设计方法研究,我的题目.并联机器人系统的仿真优化在搭建的仿真优化平台上对并联机器人进行联合仿真和集成优化研究. 通过仿真优 ...

  8. bp神经网络怎么看结果,bp神经网络结果不一样

    BP神经网络误差如何理解 谷歌人工智能写作项目:神经网络伪原创 BP神经网络在线学习的误差计算方法 标准BP算法中,每输入一个样本,都要回传误差并调整权值,这种对每个样本轮训的方法称为"单样 ...

  9. 深度神经网络算法有哪些,深度神经网络主要模型

    有哪些深度神经网络模型? 目前经常使用的深度神经网络模型主要有卷积神经网络(CNN) .递归神经网络(RNN).深信度网络(DBN) .深度自动编码器(AutoEncoder) 和生成对抗网络(GAN ...

最新文章

  1. 远程计算机无法操作,Win10系统下qq远程不能控制对方电脑(点不动)的完全解决方法...
  2. Cisco mode键的作用详解
  3. windows下配置java
  4. C/C++结构体struct 与结构体数组和枚举型enum的结合使用
  5. 在webclient UI page里嵌入external view
  6. 安装应用需要打开未知来源权限_打开安卓这个开关 不让流氓软件肆意妄为
  7. nodejs后台系列--第五篇-购买云服务器,安装宝塔面板
  8. std::numeric_limits的一个使用注意事项
  9. 程序员小故事-战术上的勤奋和战略上的懒惰
  10. Android C++ Parcel
  11. 《从工业化到城市化》
  12. Mac 配置 docker 基本操作
  13. 测试报告(包括测试总结)
  14. 【人工智能】全球老外正跟你同步修仙!AI垂直文本翻译助力国产网文出海,规模将达300亿!...
  15. TRYLIVE CLOTHING:AR个人魔法试衣间,试尽网上任何衣服
  16. Response.Redirect(string url)报错:System.Threading.ThreadAbortException: 正在中止线程。
  17. 360卫士携手“全家桶”入住UOS 应用商店
  18. 双坐标轴echarts
  19. Microsoft Ignite China, Shenyang After Party - Power Platform 低代码应用 活动预告
  20. Vscode——vscode 使用vetur插件

热门文章

  1. 动态规划法求解游艇租用问题C++代码
  2. 按需量子增强密钥增加了针对网络攻击的安全性
  3. win10 网络共享使用net use * /del /y命令无法断开怎么切换账号
  4. 计算机毕业设计Python+uniapp+安卓基于Android健康饮食搭配的设计与实现(WEB+APP+LW)
  5. WordPress如何添加友情链接教程
  6. 计算机一级知识库,怎么做个知识库
  7. 关于物联网平台 你想知道的都在这里!
  8. “书中自有颜如玉”读书打卡计划,大众评审环节,第1周读后感精选
  9. 抖音SEO优化,抖音seo
  10. 基于51单片机多功能酒精浓度检测仪系统设计(毕业课设)