CNN学习笔记:卷积神经网络
CNN学习笔记:卷积神经网络
卷积神经网络
基本结构
卷积神经网络是一种层次模型,其输入是原始数据,如RGB图像、音频等。卷积神经网络通过卷积(convolution)操作、汇合(pooling)操作和非线性激活函数的映射等一系列操作的层层堆叠,将高层语义信息逐层由原始信息中抽取出来,逐层抽象。
将信息逐渐抽象出来的过程称为前馈运算(Feed-Forward)。通过计算预测值与真实值之间的误差和损失,凭借反向传播算法(Back-Propagation algorithm)将误差或损失由最后一层逐层向前反馈,更新每层参数,并在更新参数后再次前馈,如此反复,知道网络模型手链,从而达到模型训练的目的。
减少参数
在图像处理中,往往把图像表示为像素的向量,比如一个1000*1000大小的图像,可以表示为一个1000000的向量。如果隐藏层数目和输入层一样的话,那么输入层到隐藏层的参数数据为10的12次方,数据量太大,几乎无法训练。所以图像处理第一步首先必须减少参数。
感受野
降低参数数目的第一种方法叫做局部感知野。一般认为人对外界的认识是从局部到全局的,而图像的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱。因为,每个神经元其实并没有必要对全局图像进行感知,只需要对局部进行感知,然后在更高层将局部的信息总和起来就得到了全局信息。
如下图的3*3步长为1卷积操作为例,相邻两层中后层神经元在前层的感受野仅为3×3,但随着卷积操作的叠加,第L+3层的神经元在第L层的感受野可扩增至7×7。
也就是说,小卷积核通过多层叠加可取得与大卷积核同等规模的感受野,此外还有两个优势:
1、由于小卷积核需要多层叠加,加深了网络深度进而增强了网络容量。
2、增加了网络容量的同时减少了参数的个数。
前馈运算
反馈运算
卷积神经网络依赖最小化损失函数来学习模型参数,神经网络模型不仅是非凸函数而且异常复杂,该情形下,一般采用随机梯度下降法和误差反向传播进行模型参数更新。
具体来讲,在卷积神经网络求解时,常采用批处理的随机梯度下降法,批处理的随机梯度下降法在训练模型阶段随机选取n个样本作为一批样本(batch),先通过前馈运算得到预测并计算器其误差,后通过梯度下降法更新参数
CNN学习笔记:卷积神经网络的更多相关文章
- CNN学习笔记:神经网络表示
CNN学习笔记:神经网络表示 双层神经网络模型 在一个神经网络中,当你使用监督学习训练它的时候,训练集包含了输入x还有目标输出y.隐藏层的含义是,在训练集中,这些中间节点的真正数值,我们是不知道的,即 ...
- TensorFlow 深度学习笔记 卷积神经网络
Convolutional Networks 转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Is ...
- 卷积神经网络(CNN)学习笔记1:基础入门
卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01 | In Machine Learning | 9 Comments | 14935 Vie ...
- 深度学习之卷积神经网络(CNN)
卷积神经网络(CNN)因为在图像识别任务中大放异彩,而广为人知,近几年卷积神经网络在文本处理中也有了比较好的应用.我用TextCnn来做文本分类的任务,相比TextRnn,训练速度要快非常多,准确性也 ...
- CNN学习笔记:卷积运算
CNN学习笔记:卷积运算 边缘检测 卷积 卷积是一种有效提取图片特征的方法.一般用一个正方形卷积核,遍历图片上的每一个像素点.图片与卷积核重合区域内相对应的每一个像素值乘卷积核 .内相对应点的权重,然 ...
- 深度学习之卷积神经网络(CNN)的应用-验证码的生成与识别
验证码的生成与识别 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/10755361.html 目录 1.验证码的制 ...
- 深度学习之卷积神经网络CNN及tensorflow代码实例
深度学习之卷积神经网络CNN及tensorflow代码实例 什么是卷积? 卷积的定义 从数学上讲,卷积就是一种运算,是我们学习高等数学之后,新接触的一种运算,因为涉及到积分.级数,所以看起来觉得很复杂 ...
- 深度学习之卷积神经网络CNN及tensorflow代码实现示例
深度学习之卷积神经网络CNN及tensorflow代码实现示例 2017年05月01日 13:28:21 cxmscb 阅读数 151413更多 分类专栏: 机器学习 深度学习 机器学习 版权声明 ...
- 【神经网络与深度学习】卷积神经网络(CNN)
[神经网络与深度学习]卷积神经网络(CNN) 标签:[神经网络与深度学习] 实际上前面已经发布过一次,但是这次重新复习了一下,决定再发博一次. 说明:以后的总结,还应该以我的认识进行总结,这样比较符合 ...
随机推荐
- c++11线程池实现
咳咳.c++11 增加了线程库,从此告别了标准库不支持并发的历史. 然而 c++ 对于多线程的支持还是比較低级,略微高级一点的使用方法都须要自己去实现,譬如线程池.信号量等. 线程池(thread p ...
- iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- windows hosts 作用以及常见问题解决
借用百度百科的解释 Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统 ...
- CentOS安装python setuptools and pip
安装setup-tools wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg --n ...
- android动画效果(转载)
一.动画基本类型: 如下表所示,Android的动画由四种类型组成,即可在xml中定义,也可在代码中定义,如下所示: XML CODE 渐变透明度动画效果 alpha AlphaAnimation 渐 ...
- vue-cli 打包(npm run build) 出现 ERROR in xx..js from UglifyJs Unexpected token: punc (()
之前打包还没问题,这次就报错了,后来发现原来是少了 .babelrc 文件, 网上找了好多方法都不行,后来看了之前的项目,原来是少了 .babelrc 文件, 只要在根目录下建立这个文件, 文件内容 ...
- 苹果手机输入中文不会触发onkeyup事件
今天同事的项目有这个问题,用我的安卓手机输入中文是ok的,但是苹果手机就不行 使用keyup事件检测文本框内容: $('#keyup_i').bind('keyup', function(){ ...
- flask渲染模板
Flask自身使用了jinja2模板,可以使用render_template()方法来渲染模板,只需要将模板名和关键字的参数传入. 该渲染模板的模块(views.py)会在 templates 文件夹 ...
- Python_selenium之窗口切换(二)
Python_selenium之窗口切换(二)一.思路拆分1. 之前有介绍窗口切换,这里加上断言部分2. 这里还是以百度新闻为例,获取百度新闻网址http://news.baidu.com/3. 同样 ...
- python技巧之下划线(一)
1.python的moudles文件中__all__作用 Python的moudle是很重要的一个概念,我看到好多人写的moudle里都有一个__init__.py文件.有的__init__.py中是 ...