详聊CNN的精髓

现在的深度学习发展速度已经超出每个人的想象,很大一部分人只是觉得我用他人的框架去实现自己的目的,并且效果很好就可以了,这也是现在一大部分的一个瓶颈。曾经有一个老教授来我电讲座,就说了这个问题,他还强调的说了现在的deep learning也没有准确的数学或统计理论可以完全证明,只是大家都觉得结果不错,他说他最近在用数学证明之,很期待!

今天就和大家讲讲最普通不过的一个部分吧,那就是卷积神经网络。

CNN的两大优势(降低训练参数):

局部感受野:

就是输出图像某个节点(像素点)的响应所对应的最初的输入图像的区域就是感受野。 权值共享:

比如步长为1,如果每移动一个像素就有一个新的权值对应,那么太夸张了,需要训练的参数爆炸似增长,比如从32x32的原图到28x28经过convolve的图,如果后者的每一个像素对应前面的一个参数,那参数实在是多。权值共享就是将每次覆盖区域的图像所赋给的权值都是卷积核对应的权值。就是说用了这个卷积核,则不管这个卷积核移到图像的哪个位置上,图像的被覆盖区域的所赋给的权值都是该卷积核的参数。

Restricted Boltzmann Machine到CNN:

全连接——->(全连接加上局部感受野了进化成)局部连接层———->(局部连接层加上权值共享了)卷积神经网络。

比如简单点就用2维图像,100x100 到 100x100,那么如果全连接第一层所有点都与第二层所有点相连,就有10e8个连接,加上局部感受野了。不精确的计算(不考虑边缘带来的问题),假设局部为3x3大小。那么第一层的每个点都与3x3的局部有连接,就是说,有(10e4)*3*3个连接,才能得到下一层100x100(假设加了padding)。此时局部连接网络的权值数和连接数是一样的,都是(10e4)*3*3, 如果再加上权值共享,形成卷积神经网络,那么这10e4个点不是每个都有自己独立的3x3个权值,而是这10e4共享这3x3个点。因此最终卷积网络的权值只有3x3大小!

详细讲解地址:https://prateekvjoshi.com/2016/04/12/understanding-locally-connected-layers-in-convolutional-neural-networks/

Feature Map:

同一种滤波器卷积得到的向量组合。一种滤波器提取一种特征,下图使用了6种滤波器,进行卷积操作,故有6层feature map。C1层用了6个5x5的卷积核,这里的步长为1,因此每个feature map是(32-5+1)x(32-5+1)=28x28。

CNN训练的参数:

其实就是卷积核和偏置。 比如上面的6个5x5的卷积核的训练参数是6x(5x5+1),当然咯,每个卷积核对应的偏置自然是不同的。 简单介绍:

可以看出啊,总共三层卷积网络,然后第一层第二层都是直接将输入的进行卷积,这里的Wn就是权值参数,也就是卷积核。外加一个偏置bn.当然每传入下一层要一个激活函数,这里选用的是双曲正切。

Pooling:

就是将一块区域直接变成一个像素,不经过卷积核。一般有2种,max pooling和average pooling.主要是为了防止过拟合,减少训练参数。通过卷积后得到图像的特征,这是因为图像具有一种“静态性”的属性,这也意味着一个图像区域有用的特征极有可能在另一个区域同样适用。因此对于大图像,可以用聚合统计,通过average或是max pooling,可以得到低得多的维度,同事不容易过拟合。这种聚合操作就是pooling(池化)。

stride:

这个就是下采样参数,当然了conv层,则stride=1;如果是pooling层,该pooling层的大小是2x2,那么就stride=2了。

原文发布于微信公众号 - 计算机视觉战队(ComputerVisionGzq)

原文发表时间:2017-04-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Petrichor的专栏

目标检测: RCNN系列

传统的detection主流方法: DPM(Deformable parts models), 在VOC2007上能到43%的mAP,虽然DPM和CNN看起...

16150
来自专栏计算机视觉

空间金字塔池化Spatial pyramid pooling net,用于语义分割

这篇文章属于小笔记类型,了解空间金字塔的作用就好。 金字塔池化层有如下的三个优点,第一:他可以解决输入图片大小不一造成的缺陷。第二:由于把一个feature m...

38360
来自专栏深度学习艺术

深度神经网络反向传播(BP)算法应用技巧

深度神经网络学习算法的核心是误差反向传播(error back-backpropagation)。虽然其本质就是微积分的链式法则,但面对深度神经网络的某一具体层...

25190
来自专栏计算机视觉战队

深度学习---反向传播的具体案例

最近遇到一位小师弟,他让我给他推导一下前向传播和反向传播过程,于是我埋头在白纸上一步一步推导,最后,小师弟特别开心,在此过程中,我也更一步认识了这个知识点,感觉...

359150
来自专栏决胜机器学习

深层神经网络参数调优(五) ——超参数调试、batch归一化、softmax回归

深层神经网络参数调优(五) ——超参数调试、batch归一化、softmax回归 (原创内容,转载请注明来源,谢谢) 一、超参数调试 1、超参数 超参数是不直...

49280
来自专栏机器学习算法与理论

逻辑回归与梯度下降详解

逻辑回归 Sigmoid函数: ? Sigmoid函数 梯度: ? 梯度的表达式 这个梯度是指:沿着x方向移动 ? 个单位,沿着y方向移动 ? 个...

31190
来自专栏机器学习原理

梯度下降算法

最优化算法的一种,解决无约束优化问题,用递归来逼近最小偏差的模型。 关于梯度的概念可参见以前的文章: 从方向导数到梯度 梯度下降法迭代公式为: ...

347110
来自专栏贾志刚-OpenCV学堂

理解CNN卷积层与池化层计算

深度学习中CNN网络是核心,对CNN网络来说卷积层与池化层的计算至关重要,不同的步长、填充方式、卷积核大小、池化层策略等都会对最终输出模型与参数、计算复杂度产生...

25010
来自专栏机器学习原理

深度学习(6)——卷积神经网络cnn层级结构CNN特点卷积神经网络-参数初始化卷积神经网络过拟合解决办法

28110
来自专栏Pytorch实践

Pytorch实现CNN时间序列预测

本公众号曾经推出过PyTorch实现的LSTM时间序列预测,并开源了其源码。细心的童鞋可能发现了,我之前使用的LSTM是生成式模型,而不是使用判别式进行预测。换...

1.1K70

扫码关注云+社区

领取腾讯云代金券