目录

  • 前言
  • 神经元输出计算公式
  • 在MATLAB中获取network对象的相关属性
    • 激活函数
    • 权值矩阵
    • 偏置
    • 输入
  • 计算隐层输出
  • 注意

前言

好久没发博客了,最近一直在忙于毕设…
说到毕设,最近在用神经网络做一些东西,用的是MATLAB自带的神经网络工具箱去训练,毕竟和其他平台相比比较熟悉。MATLAB用工具箱训练出来的神经网络是一个network类型,里面包含了这个网络的所有参数。出于研究需要,我需要将神经网络的隐含层的输出提取出来,但是发现并没有直接提取的办法。查了一些资料,算是搞懂了,写一篇东西记录一下,也顺便分享给有需要的人。

其实这个操作并不难,只是因为MATLAB自动帮我们完成了一些数据处理操作,所以导致我们无法直接通过节点输出计算公式算得隐含层的输出。

神经元输出计算公式

众所周知,神经元节点的输出由下式计算可得

其中向量x为上一层节点的输出,也就是当前神经元的输入,w为权值矩阵,b是偏置,z为输出的加权和,σ为激活函数,a为神经元的输出。
所以可以看到,只要确定好了输入、权值、偏置以及激活函数,就可以算出任意一层的输出。下面分别介绍怎么获取这些属性。

在MATLAB中获取network对象的相关属性

介绍之前先生成一个单隐层的前向全连接网络作为后面的素材。

net1 = feedforwardnet(10);

上述语句生成了一个隐层节点数为10的BP网络

激活函数

首先是激活函数,MATLAB中network对象有一个layers属性,是一个cell数组,数组的元素数量等于网络的层数(输入不算一层),因此本文的net1网络的layers对象应有2个元素,利用

length(net1.layers)

命令可查看其元素数量

可以看到元素数量为2,而激活函数则在layers数组的元素的transferFcn成员里面,使用命令

net1.layers{1}.transferFcn

可查看第一层的激活函数,在单隐层BP网络中第一层即为隐层

可以看到本隐层的激活函数为tansig函数,顺便附上tansig函数的图像

权值矩阵

接下来是权值矩阵,对于network类型的网络对象,有专门的IW和LW成员来存放矩阵,其中IW(input weight)存放的是从输入节点到各层的权值矩阵,而LW(layers weight)存放的是层与层之间的权值矩阵。因此,要获取BP网络从输入节点到隐层的权值,可查看成员

net1.IW{1, 1}


可以看到,它是一个10x0的矩阵,行数10是因为隐层有10个节点,列数为0是因为我们还没给这个网络配置输入。
而要查看隐层到输出层的权值,可查看成员

net1.LW{2, 1}


可以看到,它是一个0x10的矩阵,这是因为还没有配置输出。

偏置

network对象有一个b成员,也是一个cell数组,存放的就是各层的偏置(当然输入也不算一层)。

输入

最后是输入的获取,相比于前三个要素,输入的获取要稍微复杂一点,因为利用MATLAB训练神经网络时,它会自动地对训练集施加归一化,也就是将实际的输入到输出的映射变为n维的[-1, 1]到m维的[-1, 1]的映射,其中n,m分别为输入输出维数,并且将归一化的操作参数存储在一个结构中。训练完后,所有的输入在输入之前需要进行归一化,而输出则需要反归一化。因此,要自己计算网络的输出,我们首先要把归一化的操作给自己完成了。
首先我们模拟MATLAB对输入的归一化,我们可以通过

[trainSetInput_nml, NmlInput] = mapminmax(trainSetInput, -1, 1)

来将原始训练集的输入数据trainSetInput归一化为范围在[-1, 1]的trainSetInput_nml,而归一化的相关参数则存储在NmlInput中。同样,通过

[trainSetOutput_nml, NmlOutput] = mapminmax(trainSetOutput, -1, 1)

来将原始训练集的输入数据trainSetOutput归一化为范围在[-1, 1]的trainSetOutput_nml,而归一化的相关参数则存储在NmlOutput中。

计算隐层输出

经过前面的操作,我们就分别获得了计算节点输出所需的四要素,接下来就是按照公式进行计算了

trainHidden = zeros(10, num);  % 假设训练集中有num个样本,则就有对应num个隐层输出
for m = 1: numtrainHidden( : , m) = net1.IW{1, 1} * trainSetInput_nml( : , m) + net1.b{1};  % 计算加权和
end
trainHidden = tansig(trainHidden);  % 经过激活函数得到最后输出

这样,我们就可以把训练集trainSetInput所对应的隐层输出给求出来了。

注意

本文中使用单隐层BP网络来举例,所以只有输入到隐层以及隐层到输出的权值。对于其他结构的网络,IW和LW的具体元素需要各位读者自行探索。

如何获取由MATLAB神经网络工具箱训练得到的神经网络的隐含层输出相关推荐

  1. 人工神经网络的训练步骤,人工神经网络建模步骤

    BP人工神经网络方法 (一)方法原理人工神经网络是由大量的类似人脑神经元的简单处理单元广泛地相互连接而成的复杂的网络系统.理论和实践表明,在信息处理方面,神经网络方法比传统模式识别方法更具有优势. 人 ...

  2. 神经网络的训练与测试,神经网络显著性检测

    除了MATLAB能做BP神经网络,还有其他什么软件能做 . 除了MATLAB能做BP神经网络,还有其他什么软件能做理论上编程语言都可以,比如VB,C语言,过程也都是建模.量化.运算及结果输出(图.表) ...

  3. 神经网络一般训练多少次,神经网络训练时间太长

    卷积神经网络训练mnist时间多久 谷歌人工智能写作项目:神经网络伪原创 一般神经网络要训练多久 tensorflow 训练一个神经网络 需要多长时间 . 基本使用使用TensorFlow,你必须明白 ...

  4. 深度神经网络的训练过程,深度神经网络训练方法

    深度学习和神经网络的区别是什么 . 这两个概念实际上是互相交叉的,例如,卷积神经网络(Convolutionalneuralnetworks,简称CNNs)就是一种深度的监督学习下的机器学习模型,而深 ...

  5. 双隐藏层BP网络的matlab仿真,求遗传算法优化含有两个隐含层的BP神经网络的matlab程序...

    怎样用遗传算法优化含有两个隐含层的BP神经网络的matlab程序啊,这个代码是错的,可不知道错在哪,求高手帮忙解答,非常感谢! FieldD=[repmat(PRECI,1,N);repmat([-0 ...

  6. bp神经网络的训练过程,BP神经网络图像识别

    MATLAB中BP神经网络的训练算法具体是怎么样的 BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成.正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层. 若输 ...

  7. 深度神经网络的训练过程,深度神经网络训练

    深度学习与神经网络有什么区别 深度学习与神经网络关系2017-01-10最近开始学习深度学习,基本上都是zouxy09博主的文章,写的蛮好,很全面,也会根据自己的思路,做下删减,细化. 五.DeepL ...

  8. 卷积神经网络的训练过程,卷积神经网络如何训练

    深度神经网络是如何训练的? Coursera的Ng机器学习,UFLDL都看过.没记错的话Ng的机器学习里是直接给出公式了,虽然你可能知道如何求解,但是即使不知道完成作业也不是问题,只要照着公式写就行. ...

  9. 卷积神经网络的训练算法,卷积神经网络算法实现

    卷积神经网络算法是什么? 一维构筑.二维构筑.全卷积构筑. 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feed ...

最新文章

  1. Linux下Apache+Tomcat 负载均衡
  2. Kali Linux 2017.3发布了
  3. 使用NetFlow分析网络异常流量
  4. OpenCV图像形态 image morphology的实例(附完整代码)
  5. Log4j线程死锁–案例研究
  6. PyTorch 分布式训练DDP 单机多卡快速上手
  7. 重新学习Ubuntu -- 截图软件的选择和安装
  8. 敏捷开发系列学习总结(11)——Scrum敏捷开发流程的三个角色、四个会议和三个物件
  9. UHDTV (超高清电视)的色域与取样精度及格式
  10. 汽车显示服务器出现异常,领克06车机网络异常怎么办?我们梳理了四种处理方法,建议牢记...
  11. 北京思科CCNP和思科 CCIE考试常见问题GRE虚拟专用网络详解
  12. 计算机微信接收excel打不开怎么回事,电脑端微信打不开怎么解决
  13. 判断二极管导通例题_从120分到140分:高考数学解答题五大答题策略
  14. 海云安应用安全测试、移动应用安全、开发安全再次上榜
  15. android10 三星升级计划,三星公布Android 10.0国行升级计划:规模庞大
  16. 【2018慢性病与信息大会】周脉耕:信息化助力基层慢病管理
  17. 加州大学圣地亚哥分校计算机科学排名,2020年加州大学圣地亚哥分校排名TFE Times美国最佳计算机科学硕士专业排名第17...
  18. 主目录中文路径名转英文
  19. [已解决] c#签名时出错
  20. MySQL#Update语句

热门文章

  1. 安全经过广州火车站攻略(去广州的必看)
  2. 【Comsol学习】一维传热问题仿真
  3. vb中DoEvents是什么意思
  4. 「读书笔记」《如何阅读一本书》 | 随笔 |摘抄 |未完待续
  5. 大前端涉猎之前后端交互总结2:使用PHP进行表单数据上传与更新
  6. 2018秋招blibli算法工程师
  7. iMeta | 北中药李晓骄阳组综述解码免疫T细胞的作用-改善代谢相关脂肪性肝病的新领域...
  8. 【AI创新者】TensorFlow贡献者黄文坚:解读对比13个深度学习框架后的选择
  9. 《刑法》关于拐卖妇女儿童犯罪的规定
  10. gun c语言教程,(转)GUN make指南