神经网络分类

  • 有导师神经网络:

    对于有导师学习神经网络,例如BP神经网络、RBF神经网络,事先需要知道与输入相对应的期望输出,根据期望输出与网络输出间的偏差来调整网络的权值与阈值。

  • 无导师学习神经网络

    与有导师学习神经网络不同,无导师学习神经网络在学习过程中无需知道期望的输出。其与真实人脑中的神经网络类似,可以通过不断地观察、分析与比较,自动揭露样本中的内在规律和本质,从而可以对具有近似特征(属性)的样本进行准确地分类和识别。竞争神经网络和自组织特征映射(SOFM)神经网络属于无导师学习神经网络。

竞争神经网络

  • 竞争神经网络结构

    竞争神经网络一般由输入层和竞争层组成;

    与RBF等神经网络类似,输入层仅实现输入模式的传递,并不参与实际的运算;

    竞争层的各个神经元以相互竞争的形式来赢得对输入模式的响应,最终只有一个神经元赢得胜利,并使与该获胜神经元相关的各连接权值和阈值向着更有利于其竞争的方向发展,而其他神经元对应的权值和阈值保持不变;

    竞争神经网络结构如下图所示:

  • 权值、阈值更新

    获胜神经元kkk对应的权值和阈值分别按以下公式修正,
    IWk1,1=IWk1,1+α(p−IWk1,1)IW_k^{1,1}=IW_k^{1,1}+\alpha(p-IW_k^{1,1})IWk1,1​=IWk1,1​+α(p−IWk1,1​)
    b1=exp⁡(1−log[(1−β)e1−log(b1)+β∗a1])b^1=\exp({1-log[(1-\beta)e^1-log(b^1)+\beta *a^1]})b1=exp(1−log[(1−β)e1−log(b1)+β∗a1])
    其余神经元的权值和阈值保持不变。
    其中α\alphaα表示权值的学习速率,β\betaβ表示阈值的学习速率;
    IWk1,1IW_k^{1,1}IWk1,1​为1,1^{1,1}1,1的第kkk行,即表示与获胜神经元kkk对应的权值;
    a1a^1a1为竞争层神经元的输出,即a1=[a11,a21,...,aS11],ai1={0,i≠k1,i=k,i=1,2,...,S1a^1=[a_1^1,a_2^1,...,a_{S^1}^1],\ \ a_i^1=\{^{1,\ \ i=k}_{0,\ \ i\not=k}, \ \ i=1, 2,...,S^1a1=[a11​,a21​,...,aS11​],  ai1​={0,  i​=k1,  i=k​,  i=1,2,...,S1

  • competlayer函数

    参数numClasses为竞争层神经元个数
    kohonenLR为权值的学习速率(默认为0.01)
    conscienceLR为阈值的学习速率(默认为0.001)

SOFM神经网络

  • SOFM神经网络

    自组织特征映射(self-organizing feature mapping, SOFM)神经网络根据神经元有序的排列可以反映出所感觉到的外界刺激的某些物理特性而提出的。

    其主要思想是在学习过程中逐步缩小神经元之间的作用邻域,并依据相关的学习规则增强中心神经元的激活程度,从而去掉各神经元之间的侧向连接,以达到模拟真实大脑神经系统“近兴奋远抑制”的效果。

  • SOFM神经网络结构

    SOFM神经网络的结构与竞争神经网络的结构类似,是一个由输入层和自组织特征映射层(竞争层)组成的两层网络。

    在竞争神经网络中,每次仅有一个神经元获胜,即只有一个神经元的权值和阈值得到修正。在SOFM神经网络中,不仅与获胜神经元对应的权值和阈值得到调整,其邻近范围内的其他神经元也有机会进行权值和阈值调整,这在很大程度上改善了网络德 学习能力和泛化能力。

  • 权值更新

    根据公式: {IWj1,1=IWj1,1,j∉Nc(t)IWj1,1=IWj1,1+η(t)(p−IWj1,1),j∈Nc(t),\{^{IW_j^{1,1}=IW_j^{1,1}+\eta(t)(p-IW_j^{1,1}), \ \ j\in N_c(t)}_{IW_j^{1,1}=IW_j^{1,1},\ \ j\notin N_c(t)},{IWj1,1​=IWj1,1​,  j∈/​Nc​(t)IWj1,1​=IWj1,1​+η(t)(p−IWj1,1​),  j∈Nc​(t)​,对获胜神经元惊醒权值更新。

  • 学习速率及邻域更新

    η=η(1−NT)\eta=\eta(1-\frac{N}{T} )η=η(1−TN​),
    Nc=「Nc(1−NT)]N_c=「N_c(1-\frac{N}{T})]Nc​=「Nc​(1−TN​)], 「]「 \ ]「 ]表示向上取整

  • selforgmap函数

    参数dimensions为网络的拓扑结构(默认[8 8]);
    coverSteps为邻近距离递减到1的步数(默认100);
    initNeighbor为初始的邻近距离(默认3);
    topologyFcn为网络的拓扑函数(默认’hextop’);
    distanceFcn为网络的距离函数(默认’linkdist’);

  • SOMF模型解释

    左图,是4*4的拓扑结构;右图,16个神经元之间的连接关系:

    神经元编号从下往上,从左往右
    [13141516910111256781234]\begin{bmatrix}13&14&15&16\\9&10&11&12\\5&6&7&8\\1&2&3&4\end{bmatrix}⎣⎢⎢⎡​13951​141062​151173​161284​⎦⎥⎥⎤​
    相邻神经元的距离关系,颜色越深距离越远

    神经元与对应的样本的关系,如某个神经元空白即是“死神经元”

    每个输入样本与对应的神经元的距离关系

代码

水源样本数据下载
链接: https://pan.baidu.com/s/1wpRpILAPT-XLQWidHpJd6Q 提取码: xc2g

%% I. 清空环境变量
clear all
clc%% II. 训练集/测试集产生
%%
% 1. 导入数据
load water_data.mat%%
% 2. 数据归一化
attributes = mapminmax(attributes);%%
% 3. 训练集和测试集划分% 训练集——35个样本
P_train = attributes(:,1:35);
T_train = classes(:,1:35);
% 测试集——4个样本
P_test = attributes(:,36:end);
T_test = classes(:,36:end);%% III. 竞争神经网络创建、训练及仿真测试
%%
% 1. 创建网络
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']

(无导师学习神经网络)竞争神经网络、SOFM神经网络相关推荐

  1. 《MATLAB智能算法30个案例》:第27章 无导师学习神经网络的分类——矿井突水水源判别

    <MATLAB智能算法30个案例>:第27章 无导师学习神经网络的分类--矿井突水水源判别 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法3 ...

  2. 无导师学习_如何找到一位导师并加快学习速度:新手指南。

    无导师学习 by Victor Cassone 由Victor Cassone 如何找到一位导师并加快学习速度:新手指南. (How to find a mentor and accelerate y ...

  3. 《MATLAB智能算法30个案例》:第25章 有导师学习神经网络的回归拟合——基于近红外光谱的汽油辛烷值预测

    <MATLAB智能算法30个案例>:第25章 有导师学习神经网络的回归拟合--基于近红外光谱的汽油辛烷值预测 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MA ...

  4. 《MATLAB智能算法30个案例》:第26章 有导师学习神经网络的分类——鸢尾花种类识别

    <MATLAB智能算法30个案例>:第26章 有导师学习神经网络的分类--鸢尾花种类识别 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30 ...

  5. 人工神经网络英文简称,人工神经网络 英文

    安恩的简介(少一点) . 球员:安恩生日:1986年12月29日身高:188cm体重:90kg球衣号码:1国籍:英格兰效力球队:林肯城场上位置:守门前度效力球队:维尔港曾经效力球队:维尔港安恩是ANN ...

  6. 人工神经网络的发展前景,人工神经网络及其应用

    人工神经网络是哪一年由谁提出来的 人工神经网络是1943年,心理学家W.S.McCulloch和数理逻辑学家W.Pitts提出来. 他们通过MP模型提出了神经元的形式化数学描述和网络结构方法,证明了单 ...

  7. 神经网络的数学表达式,神经网络的数学理论

    神经网络(深度学习)的几个基础概念 从广义上说深度学习的网络结构也是多层神经网络的一种.传统意义上的多层神经网络是只有输入层.隐藏层.输出层.其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底 ...

  8. 人工神经网络设计选择题,人工神经网络设计原则

    人工神经网络是哪一年由谁提出来的 人工神经网络是1943年,心理学家W.S.McCulloch和数理逻辑学家W.Pitts提出来. 他们通过MP模型提出了神经元的形式化数学描述和网络结构方法,证明了单 ...

  9. 人工神经网络和神经网络,什么是人工神经网络?

    1.什么是人工神经网络? 一.一些基本常识和原理 [什么叫神经网络?] 人的思维有逻辑性和直观性两种不同的基本方式.逻辑性的思维是指根据逻辑规则进行推理的过程:它先将信息化成概念,并用符号表示,然后, ...

最新文章

  1. angular代码分析之异常日志设计
  2. cxf开发实践(添加SSL支持)
  3. zcmu-2116一元三次方程求解
  4. 择天记手游的服务器维护世界,1130停服更新公告
  5. 隐私策略-今日头条(纯净版)
  6. 笔记本选购:i5轻薄本和i7轻薄本该如何选择?
  7. sql配置管理器服务是空的_PostgreSQL 12 安装和配置
  8. oracle的服務監聽器,Oracle监听器和服务名的配置
  9. JAVA编程思想——读书笔记 对象的容纳
  10. 手机网络游戏SDK集成指南
  11. 24.root, alias
  12. Spring源码解析一(框架梳理)
  13. 高并发服务器逻辑处理瓶颈,如何解决?
  14. jdbc mysql分层_JDBC和数据库访问层
  15. java实验原理_java实验报告实验原理.doc
  16. Cannot mix different versions of joi schemas解决方案
  17. IE8中text-align:center偏左的解决办法
  18. 实战 | Python爬取B站柯南弹幕+Gephi梳理主线剧情
  19. java爬虫入门第二弹——通过URL下载图片(以下载百度logo为例)
  20. 北京联通光猫WO-36(HG220GS-U)改为桥接模式

热门文章

  1. eja智能压力变送器工作原理_HONEYWEL、 EJA 、罗斯蒙特变送器的工作原理
  2. python中nx_Siemens NX (UG)中对于Python第三方包(函数库)的设置方法
  3. SpringBoot+Mybatis实现图片按用户上传存储和获取用户图片功能
  4. android发送微信请求失败,安卓微信浏览器POST请求发不出去。
  5. 深度揭秘高频交易盈利方式
  6. GTX 295 VS C1060 矩阵乘法测试(cublas)
  7. 开显卡硬件加速和不开的区别
  8. 新手玩转unwallet攻略
  9. Crowding Counter 之 修改ShanghaiTech数据集
  10. sql数据库去重语法_sql数据库查询语句去重