第2章 神经网络计算

本章简要介绍了神经网络的计算方面,尤其是卷积神经网络,强调了理解和使用MatConvNet所需的概念。

2.1概述

神经网络(NN)是将数据x(例如图像)映射到输出向量y(例如图像标签)的函数。函数g = fL … f 1是较简单函数序列fl的组合,称为计算块或层。令x1; x2; :::; xL是网络中每个层的输出,并且令x0 = x表示网络输入。通过应用具有参数wl的函数fl,从先前输出xl-1计算每个中间输出xl = fl(xl-1; wl)。

在卷积神经网络(CNN)中,数据具有空间结构,是3D阵列或张量,其中第一两维H1(高度)和W1(宽度)被解释为空间维度。第三维度C1被解释为特征通道的数量。因此,张量x1表示C1维特征向量的H1 * W1字段,每个空间位置一个。张量中的第四维N1跨越多个数据样本,这些数据样本被打包在单个批次中用于效率并行处理。一个批次中的数据样本N1的数量被称为批量基数。网络被称为卷积,因为函数f1是本地和转换不变操作符(即非线性滤波器),如线性卷积。

还可以设想具有多于两个空间维度的CNN,其中附加尺寸可以表示体积或时间。 事实上,几乎没有先验对神经网络中数据格式的限制。 许多有用的NN包含卷积层与处理其他数据类型(例如文本字符串)的层的混合,或者执行不严格符合CNN假设的其他操作。

MatConvNet包括各种图层,包含在matlab /目录中,例如vl_nnconv(卷积),vl_nnconvt(卷积转置或去卷积)vl_nnpool(最大和平均池),vl_nnrelu(ReLU激活),vl_nnsigmoid(Sigmoid激活),vl_nnsoftmax(softmax运算符),vl_nnloss(分类正常丢失),vl_nnbnorm(分批正规化),vl_nnspnorm(空间规范化),vl_nnnormalize(局部响应规范化LRN)或vl_nnpdist(p距离)。 
有足够多的层来实现许多有趣的最先进的网络开箱即用,甚至从其他工具箱,如caffe导入。 
NNs通常用作分类器或回归。在fig. 1.1的示例中,输出^ y = f(x)是概率的向量,一个用于1000个可能的图像标签(狗,猫,三叶虫,…)中的每一个。如果y是图像x的真实标签,我们可以通过损失函数来测量CNN性能,该损失函数对分类错误赋予惩罚。然后可以调整或学习CNN参数以最小化在标记的示例图像的大数据集上的平均损失。

学习通常使用随机梯度下降(SGD)的变体。 虽然这是一个有效的方法(对于这种类型的问题),但网络可能包含几百万个参数,需要在数百万的图像上进行训练; 因此,效率是MATLAB设计中的一个重要部分,如第1.4节中进一步讨论的。 SGD还需要计算CNN导数,如下一节所述。

2.2网络结构

在最简单的情况下,NN中的层按顺序排列; 然而,更复杂的互连也是可能的,并且事实上在许多情况下非常有用。 本节讨论这种配置,并引入一个图形符号来可视化它们。

2.2.1序列

首先考虑网络中的计算块f。 这可以表示示意性地作为接收数据x和参数w作为输入并且产生数据y作为输出的框: 
 
如上所述,在最简单的情况下,块被链接在序列f1-> f2-> … fL中,产生以下结构: 

给定输入x0,评估网络是评估所有块的简单问题。从左到右,其定义复合函数xL = f(x0; w1;:::; wL)。

2.2 网络结构

2.2.2定向非循环图

一个不限于一个接一个地链接层。 事实上,评估NN唯一的要求是,当必须评估层时,在其之前已经评估了其所有输入。 当层之间的互连形成有向无环图或简称DAG时,这是可能的。 
为了可视化DAG,引入用于网络变量的附加节点是有用的,fig.2.1的示例中那样。这里框表示函数,圆圈表示变量(参数被视为特殊类型的变量)。 在该示例中,x0和x4是CNN的输入,x6和x7是输出。 
函数可以采取任何数量的输入(例如f3和f5取两个)并且具有任何数量的输出(例如f4具有两个)。 这个图的几个值得注意的属性: 
1图表是二分的,在某种意义上,箭头总是从框到圆和 
从圆圈到框。 
2函数可以有任意数量的输入或输出; 变量和参数可以具有任意数量的输出(具有更多一个输出的参数被共享在不同层之间); 变量最多只有一个输入和参数无。 
3没有输入箭头和参数的变量不由网络计算,但必须在评估之前设置,即它们是输入。 任何变量(或甚至参数)可以用作输出,但是这些变量通常是没有输出的变量。 
4由于图是非循环的,因此可以通过对函数和函数进行排序来评估CNN一个接一个地计算它们(在该示例中,评估函数阶f1; f2; f3; f4; f5将工作)。

2.3计算具有反向传播的导数

学习NN需要计算相对于网络的损失的导数参数。使用称为反向传播的算法计算导数,其是用于导数的链规则的存储器有效实现。首先,我们讨论单层的导数,然后讨论整个网络的导数。

2.3.1张量函数的导数

···这一章公式太多,不知道怎么在这个编辑器页面上打公式,暂时放一下,以后有时间再补上···主要是原理,在前面CNN基本模型里已经有分析,做这个主要还是为了用工具包···

MatConvnet工具箱文档翻译理解(3)相关推荐

  1. MatConvnet工具箱文档翻译理解(2)

    1.2 MatConvNet一目了然 MatConvNet具有简单的设计理念. 它不是将CNN包裹在软件的复杂层上,而是暴露了直接作为MATLAB命令的计算CNN构造块的简单函数,例如线性卷积和ReL ...

  2. MatConvnet工具箱文档翻译理解(1)

    概述 MatConvNet是用于MATLAB的卷积神经网络(CNN)的实现.工具箱的设计注重简单性和灵活性.它将CNN的构建块暴露为易于使用的MATLAB函数,提供用于计算具有过滤器组的线性卷积,特征 ...

  3. MatConvnet工具箱文档翻译理解(4)

    第3章 包装器和预训练模型 这是很容易的组合第4章"手动"的计算块,但通常通过一个包装器来使用它们可以实现CNN架构给定一个模型规范通常更方便,可用的包装器总结在3.1节.  Ma ...

  4. Xilinx技术文档翻译理解汇总

  5. 关于Matconvnet中模型发布与共享的思考

    1. 前言 现阶段还坚持使用Matconvnet工具箱的一定是MATLAB的死粉.与TensorFlow.Keras相比,matconvnet的便捷性不够.但是,matlab与matconvnet提供 ...

  6. 如何使用Sheffield大学的Matlab GA遗传算法工具箱

    本文假设阅读本文章的各位已经安装好工具箱,并基于个人对Sheffield工具箱的理解,以1.2版本的工具箱为例,对函数进行简单讲解. SheffieldGA工具箱在CONTENTS.M文件中给出其工具 ...

  7. MATLAB机器人工具箱【1】——建模+正逆运动学+雅克比矩阵

    MATLAB机器人工具箱[1]-- 机械臂建模+正逆运动学+雅克比矩阵 1. 二维空间位姿描述 2. 三维空间位姿描述 3. 建立机器人模型 3.1 Link 类 3.2 SerialLink 类 3 ...

  8. MATLAB机器人工具箱【3】—— 动力学相关函数及用法

    MATLAB机器人工具箱[3]-- 动力学相关函数及用法 1. 查看机器人动力学参数 2. 逆动力学 3. 正动力学 4. 机器人动力学方程 5. 赋予机器人动力学参数 本文在参考B站up主刘海涛大佬 ...

  9. SiamFC代码配置复现 matlab版本

    原创 SiamFC代码配置复现 2019-04-29 22:18:06 ZZXin_ 阅读数 1603更多 分类专栏: 深度学习 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议 ...

最新文章

  1. HDU5443(ST表)
  2. 工程路径网站图片路径的问题 绝对路径
  3. Liferay7 BPM门户开发之5: Activiti和Spring集成
  4. php extract 变量覆盖,extract变量覆盖
  5. 爬虫 spider10——搭建elk平台,开发服务提供者
  6. NandFlash详述
  7. java 编码实现内存拷贝_java提高篇(六)-----使用序列化实现对象的拷贝
  8. 【直通顶会 ICCV2021比赛大揭秘】ICCV2021比赛信息汇总
  9. 基于JAVA+Swing的仓库管理系统
  10. consul java 注册中心_Spring Cloud微服务架构实战之Consul注册中心02:consul入门案例...
  11. 配置使用VCSA自带的备份恢复工具
  12. cf有没有linux版本,急切求助万能的吧友 !!! Linux系统能玩穿越火线吗 好
  13. java jquery怎么取值_jquery 取值
  14. js中对datagrid ,repeater的checkbox进行全选反选
  15. 中兴V889D刷机变砖不用怕 V889D救砖教程发布【转载】
  16. 「PHP基础知识」PHP中的注释+PHP直播源码直播系统源码
  17. 带图像识别的YYS连点器 V2.0
  18. mybatis-plus批量insert效率低下怎么办(mysql)
  19. pip 在c盘的文件路径
  20. 计算机里不显示硬盘图标,Win7不显示硬盘图标怎么办?不显示硬盘图标修复方法...

热门文章

  1. 5 hbase-shell + hbase的java api
  2. 【读书】正则指引-3-括号
  3. iptables 范例
  4. 异步Socket通信总结[转]
  5. ASP.NET3.5 企业级项目开发 -- 第二章(续) 数据访问层(DAL)的开发解决方案提出...
  6. NYOJ 914 Yougth的最大化(二分搜索 + 贪心)
  7. SpringSecurity自定义UsernamePasswordAuthenticationFilter
  8. jmeter(五)几种不同的content-type方式
  9. 遇到的Ajax相关问题
  10. 初学WPF之程序启动几种方式