解析卷积神经网络——基础理论篇

第一章 卷机神经网络基础知识

1.1发展历程

卷积神经网络发展历史中的第一件里程碑事件发生在上世纪60年代左右的神经科学中,1959 年提出猫的初级视皮层中单个神经元的“感受野”概念,紧接着于1962年发现了猫的视觉中枢里存在感受野、双目视觉和其他功能结构,标志着神经网络结构首次在大脑视觉系统中被发现。

1980年前后,日本科学家福岛邦彦在之前两个人工作的基础上,模拟生物视觉系统并提出了一种层级化的多层人工神经网络,即“神经认知”,以处理手写字符识别和其他模式识别任务。神经认知模型在后来也被认为是现今卷积神经网络的前身。在福岛邦彦的神经认知模型中,两种最重要的组成单元是“s型细胞”和“c型细胞”,两类细胞交替堆叠在一起构成了神经认知网络。其中,s型细胞用于抽取局部特征,c型细胞则用于抽象和容错,如图所示,不难发现这与现今卷积神经网络中的卷积层和汇合层可一一对应。

随后,Yann LeCun等人在1998年提出基于梯度学习的卷积神经网络算法,并将其成功用于手写数字字符识别,在那时的技术条件下就能取得低于1%的错误率。

2012年,在有计算机视觉界“世界杯”之称的ImageNet图像分类竞赛四周年之际,Geoffrey E. Hinton等人凭借卷积神经网络Alex-Net力挫日本东京大学、英国牛津大学VGG组等劲旅 ,且以超过第二名近12%的准确率一举夺得该竞赛冠军,霎时间学界业界纷纷惊愕哗然。自此便揭开了卷积神经网络在计算机视觉领域逐渐称霸的序幕,此后每年竞赛的冠军非深度卷积神经网络莫属。
直到2015年,在改进了卷积神经网络中的激活函数后,卷积神经网络在ImageNet 数据集上的性能(4.94%)第一次超过了人类预测错误率(5.1%)。深度卷积神经网络自2012年的一炮而红,到现在俨然已成为目前人工智能领域一个举足轻重的研究课题,甚至可以说深度学习是诸如计算机视觉、自然语言处理等领域主宰性的研究技术,同时更是工业界各大公司和创业机构着力发展力求占先的技术奇点。

1.2 基本结构

卷积神经网络是一种层次模型,其输入是原始数据,如图像、原始音频数据等。卷积神经网络通过卷积操作、汇合操作和非线性激活函数映射等一系列操作的层层堆叠,将高层语义信息逐层由原始数据输入层中抽取出来,逐层抽象,这一过程便是“前馈运算”。其中,不同类型操作在卷积神经网络中一般称作“层”:卷积操作对应“卷积层”,汇合操作对应“汇合层”等等。最终,卷积神经网络的最后一层将其目标任务(分类、回归等)形式化为目标函数 。通过计算预测值与真实值之间的误差或损失(loss),凭借反向传播算法将误差或损失由最后一层逐层向前反馈,更新每层参数,并再次前馈,如此往复,直至网络模型收敛,从而达到训练模型的目的。
计算机视觉应用中,卷机神经网络的数据层通常是:H行,w列,3个通道(RGB)的图像,记为x1。对应的第一层操作参数记为w1。

损失函数为

其中,函数 L(·) 中的参数即 ω L 。事实上,可以发现对于层中的特定操作,其参数 ω i 是可以为空的,如汇合操作、无参的非线性映射以及无参损失函数的计算等。实际应用中,对于不同任务,损失函数的形式也随之改变。
对于回归问题,常用的L2损失函数即可作为卷积网络的目标函数,

对于分类问题,网络的目标函数常采用!交叉墒损失函数,
其中C 为分类任务类别数。
显然,无论回归问题还是分类问题,在计算 z 前,均需要通过合适的操作得到与 y 同维度的x L ,方可正确计算样本预测的损失/误差值。

1.3前馈运算

无论训练模型时计算误差还是模型训练完毕后获得样本预测,卷积神经网络的前馈运算都较直观。同样以图像分类任务为例,假设网络已训练完毕,即其中参数 ω 1 , … , ω L−1 已收敛到某最优解,此时可用此网络进行图像类别预测。预测过程实际就是一次网络的前馈运算: 将测试集图像作为网络输入 x 1 送进网络,之后经过第一层操作 ω 1 可得 x 2 ,依此下去……直至输出x L ∈ R C 。上一节提到,x L 是与真实标记同维度的向量。在利用交叉墒损失函数训练后得到的网络中,x L 的每一维可表示 x 1 分别隶属 C 个类别的后验概率。

1.4反馈运算

同其他许多机器学习模型(支持向量机等)一样,卷积神经网络包括其他所有深度学习模型都依赖最小化损失函数来学习模型参数。不过需指出的是,从凸优化理论来看,神经网络模型不仅是非凸函数而且异常复杂,这便带来优化求解的困难。该情形下,深度学习模型采用随机梯度下降法(SGD)和误差反向传播进行模型参数更新。
具 体 来 讲, 在 卷 积 神 经 网 络 求 解 时, 特 别 是 针 对 大 规 模 应 用 问 题,常采用批处理的随机梯度下降法。批处理的随机梯度下降法在训练模型阶段随机选取 n 个样本作为一批(batch)样本,先通过前馈运算得到预测并计算其误差,后通过梯度下降法更新参数,梯度从后往前逐层反馈,直至更新到网络的第一层参数,这样的一个参数更新过程称为一个“批处理过程”(mini-batch)。不同批处理之间按照无放回抽样遍历所有训练集样本,遍历一次训练样本称为“一轮”(epoch)。其中,批处理样本的大小(batch size)不宜设置过小。过小时,由于样本采样随机,按照该样本上的误差更新模型参数不一定在全局上最优(此时仅为局部最优更新),会使得训练过程产生振荡。而批处理大小的上限则主要取决于硬件资源的限制,如GPU显存大小。一般而言,批处理大小设为32,64,128或256 即可。
下面我们来看误差反向传播的详细过程。假设某批处

1.5 小结

  1. 本章回顾了卷积神经网络自 RN8N 年至今的发展历程;
  2. 介绍了卷积神经网络的基本结构,可将其理解为通过不同种类基本操作层的“堆叠”将原始数据表示不经任何人为干预直接映射为高层语义表示并实现向任务目标映射的过程——这也是为何深度学习被称作“端到端”学习或作为“表示学习”中最重要代表的原因;
  3. 介绍了卷积神经网络中的两类基本过程:前馈运算和反馈运算。神经网络模型通过前馈运算对样本进行推理和预测,通过反馈运算将预测误差反向传播逐层更新参数,如此两种运算依次交替迭代完成模型的训练过程。

[读书笔录]解析卷积神经网络(魏秀参)——第一章相关推荐

  1. 深度学习笔记之《解析卷积神经网络》附下载地址

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 <解析卷积神经网络>是 @魏秀参 博士撰写的深度学习实践手册,主要以卷积神 ...

  2. 实用卷积神经网络 运用python pdf_解析卷积神经网络—深度学习实践手册 中文pdf高清版...

    解析卷积神经网络-深度学习实践手册从实用角度着重解析了深度学习中的一类神经网络模型--卷积神经网络,向读者剖析了卷积神经网络的基本部件与工作机理,更重要的是系统性的介绍了深度卷积神经网络在实践应用方面 ...

  3. 《解析卷积神经网络—深度学习实践手册》—学习笔记

    书籍链接 百度网盘 谷歌云盘 绪论 机器学习是人工智能的一个分支,它致力于研究如何通过计算的手段,利用经验(experience)来改善计算机系统自身的性能.通过从经验中获取知识(knowledge) ...

  4. 吴恩达深度学习课程-Course 4 卷积神经网络 第一周 卷积神经网络编程作业(第一部分)

    时隔三个月终于有时间更新了-在ppt的夹缝中练习. 期待圣诞节!!! 卷积神经网络:Step by Step 1 - 导入相关包 2 - 作业大纲 3 - 卷积神经网络 3.1 - 零填充 3.2 - ...

  5. 作业答案解析:尚学堂Java300集 第一章

    写在前面:大家好,我是草莓橙须圆.毕业之前在CSDN和微信公众号活跃 欢迎关注我的公众号:草莓橙须圆 , 微信号(cmcxy8w) 微信公众号主要就是更新一些日常和有用的小工具 CSDN主要就是学习J ...

  6. 读书笔记《疯狂人类进化史》,第一章,双脚走出来的进化史

    前一阵听罗振宇将 有效行动的逻辑的时候,有一大段是讲<疯狂人类进化史>的细节的,听着觉得很有意思,就从kindle上淘了一本来翻翻,结果拿起来就放不下了,一口气读完.有一阵没有完整的读完一 ...

  7. 【读书笔记】《waht is mathematic》第一章补充——数论

    第一章补充--数论 地位: 数学是科学的皇后,而数论是数学的皇后 1 素数 1.1 基本事实 讨论的对象: 数论中的多数命题(如同数学是一整体那样)不是涉及单个的对象(例如数5,数32)而是涉及某些有 ...

  8. 解析深度学习:卷积神经网络原理与视觉实践

    解析深度学习:卷积神经网络原理与视觉实践 魏秀参 著 ISBN:9787121345289 包装:平装 开本:16开 正文语种:中文 出版社: 电子工业出版社 出版时间:2018-11-01

  9. DL之CNN优化技术:学习卷积神经网络CNN的优化、实践经验(练习调参)、从代码深刻认知CNN架构之练习技巧

    DL之CNN优化技术:学习卷积神经网络CNN的优化.调参实践.从代码深刻认知CNN架构之练习技巧 目录 卷积神经网络CNN调参学习实践 练习技巧 1.练习攻略一 2.VGG16练习攻略二 卷积神经网络 ...

  10. 【干货】卷积神经网络Alex-Net、VGG-Nets、Network-In-Network案例分析

    目录 Alex-Net 网络模型 VGG-Nets 网络模型 Network-In-Network 本文将以 Alex-Net.VGG-Nets.Network-In-Network 为例,分析几类经 ...

最新文章

  1. Android/Java 中线程(Thread)的使用
  2. 《评人工智能如何走向新阶段》后记(再续12)
  3. 那些好用的小工具——Total Commander
  4. 8 pycharm 快捷键_Pycharm自动添加文件头注释和函数注释参数
  5. webpack插件机制
  6. Nginx URL 重写
  7. 按钮 每一行_word跨页表格如何重复设置表头?单击“重复标题行”按钮来设置多页表格重复标题行显示。...
  8. 结构化查询语言包含哪些方面?
  9. python自己创建模块路径_python之本地模块/包使用和创建
  10. 旧服务器如何虚拟化,4个步骤教你如何重复利用旧虚拟化主机
  11. linux apache php.ini,Linux Apache的.htaccess控制php.ini 与MIME类型
  12. 经典游戏IP:传统端游大厂的成功“捷径” ARPU值更高
  13. cdLinux显示“没有发现无限网卡!”
  14. 奥斯汀计算机专业排名,德克萨斯大学奥斯汀分校计算机工程类专业排名
  15. 小米笔记本Air 13.3 i5-8250U macOS黑苹果efi引导文件
  16. 《大话计算机》动图一则展示
  17. 基于ssm+jsp的大学生体能训练营管理系统毕业设计源码211633
  18. 电脑有时突然黑屏,过一两秒就好了的问题解决
  19. 多角度解析特斯拉电动车技术到底领先了多少?|厚势
  20. I2S总线学习:I2S数据格式

热门文章

  1. Django-ftpserver 的两个坑
  2. Character-level recurrent sequence-to-sequence model (翻译)
  3. php redis菜鸟教程,PHP 使用 Redis
  4. eclipse加载jdbc驱动(mysql)
  5. (二)以太网与WiFi协议
  6. Java项目开发-基于Java的宠物领养管理系统(附源码)
  7. 如何关闭访达窗口_UG NX软件基础操作,如何自定义软件快捷键
  8. python导入鸢尾花数据集_决策树分类鸢尾花数据集python实现
  9. m语言常用函数和命令
  10. intersystem-M语言基础语法