1,CNN概述

卷积神经网络由输入层、卷积层、池化层、全连接层和输出层组成。

通过增加卷积层和池化层,可以得到更深层次的网络。

与多层感知器相比,卷积神经网络的参数更少,不容易发生过拟合。

2, 为何CNN更适合图像问题

2.1 管中窥豹

看image的一小部分,就可以识别这个image了,不用看全

2.2 相同模式

同样的pattern ,出现在image的不同地方,但是这些image表达的是同一个东西

2.3 降采样

进行降采样不会影响image的识别(就是说我行和列都等比例地取一部分)

2.4  CNN的解决之道

3 卷积

3.1 卷积层概述

在第一层卷积层对输入样本进行卷积操作后,就可以得到他的特征图(一个卷积层用同一卷积核对每个输入样本进行卷积操作)【一般得到的特征图尺寸小于原图大小】

第二层及之后的卷积层把前一层的特征图作为输入数据,进行卷积操作。(每个位置对应元素乘积之和)

一个卷积层可能有多个卷积核,每个卷积核对应了一个特征图。

共享权值(卷积核)带来的直接好处是减少网络各层之间的连接,同时又降低了过拟合的风险。

filter里面的值是可以被学出来的。某个位置,有几个filter,就会有几个matrix输出。

对上图,输入的channel为3,那么卷积层的每一个filter也有3个channel(这里我们filter的维数为3*3*3),每次卷积的时候channel中27个元素和filter中的27个元素做运算。

3.2 stride 步长

我们可以手动设置stride步长

stride=1的时候:

n-k表示input中的k*k可以向右移动最多几个,再加上原始的1

3.3 卷积层和全连接神经网络之间的联系

卷积相当于一个连接稀疏的前馈神经网络(基于视野的稀疏,只有此时filter看到的元素可以参与前向传播)——减少参数量

每一个filter作用在每一个filter那么大的input矩阵上,权值是共享的——参数量更少了

3.4 理解in_channel和out_channel之间的联系

以下图的feature_map为例,输入是7*7的图像,其中每个位置不再是一个pixel,而是一个三维向量(即in_channel为3)

为了和in_channel对齐,所以我每一个CNN的filter需要有in_channel(3)个channel(在这里,每一个channel是一个3*3的卷积核 )

输入的这3*3*3个点和卷积核的3*3*3个点相乘,得到输出的一个点的值

输出有out_channel(2)个,每个out_channel需要有一个3*3*3的卷积核

所以一个有in_channel(类似于"行数")*out_channel(类似于"列数")个3*3的卷积核

也就是说,参数个数为in_channel*out_channel*kenel_height*kernel_width

3.4.1 CNN对于参数个数的增益

我们拿MLP做对比:

kernel size:K=3

input_channel:C_in=3

output_channel:C_oout=64

CNN需要的参数个数:K*K*C_in*C_out=1728

对于一张32*32的图像,一个MLP需要 (32*32*3)*(32*32*64)=2,0132,6592个参数!

3.5 padding

使用padding,可以让输出和输入尺寸一样

3.5.1 zero-padding

3.5.2 mirror-padding

3.5.3 duplicate padding

用最近的值来填充

3.6 dilation

dilation 的作用是在不增加参数量数量级的情况下,指数级地提升感受野

3.7 卷积层输出的大小

3.8 感受野 perceptive field

输出的一个1*1的格子,可以包含输入的k*k的信息

n-k+1=1——>n=k

与此同时,这一个1*1的格子,可以看到上上层(2k-1)*(2k-1)的信息

n-k+1=k——>n=2k-1

上上上层:

n-k+1=2k-1——>n=3k-2

3.8.1 感受野和分辨率

在图像识别问题的神经网络中,很常见的操作是逐渐降低特征图的分辨率。(这个可以由后面的池化操作实现)

3.9 一维卷积 

4 池化层

n合一操作

经过卷积层的filter之后的输出:

再经过max-pooling之后的结果:

有不同的池化方式,比较典型的有最大池化、平均池化

参数训练也是采用误差反向传播的方法。误差只会传给池化时选定的单元(类似于前面的卷积,filter没看到的部分是没有连接的,这些元素的信息是不会前向传播到后面的元素的;然后没有被池化层选定的单元连接权重为0,这些元素的信息也是不会前向传播到后面的元素的。所以只有被选中的元素的信息会传递,那么反向传播更新参数的时候也只会把误差传递给这几个元素)

4.1 池化操作的输出大小

和卷积操作一样

5 flatten+全连接

6 CNN各参数对结果和性能的影响

6.1 卷积核大小

卷积核大小——不会对识别性能有很大的影响

6.2 卷积核数量

卷积核越多,识别越好

6.3 激活函数

Relu和maxout好于sigmoid和tanh

6.4 其他因素的影响

7 CNN应用:deep dream

把CNN一个层上的参数绝对值变大

这样可以让原来的特征被识别得更加“夸张”。

8 CNN用于 NLP问题中

一般都是一维卷积(时间维度)

9 总结

经过一个卷积层之后,image的深度只取决于这个卷积层的filter数目,和之前卷积层中filter的数目无关

机器学习笔记:CNN卷积神经网络相关推荐

  1. 机器学习笔记三—卷积神经网络与循环神经网络

    系列文章目录 机器学习笔记一-机器学习基本知识 机器学习笔记二-梯度下降和反向传播 机器学习笔记三-卷积神经网络与循环神经网络 机器学习笔记四-机器学习可解释性 机器学习笔记五-机器学习攻击与防御 机 ...

  2. Deep Learning论文笔记之(五)CNN卷积神经网络代码理解

    Deep Learning论文笔记之(五)CNN卷积神经网络代码理解 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但 ...

  3. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现

    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文, ...

  4. 机器学习笔记之前馈神经网络(一)基本介绍

    机器学习笔记之前馈神经网络--基本介绍 引言 从机器学习到深度学习 频率学派思想 贝叶斯学派思想 深度学习的发展过程 引言 从本节开始,将介绍前馈神经网络. 从机器学习到深度学习 在机器学习笔记开始- ...

  5. 【深度学习】基于Torch的Python开源机器学习库PyTorch卷积神经网络

    [深度学习]基于Torch的Python开源机器学习库PyTorch卷积神经网络 文章目录 1 CNN概述 2 PyTorch实现步骤2.1 加载数据2.2 CNN模型2.3 训练2.4 可视化训练 ...

  6. DeepLearning tutorial(4)CNN卷积神经网络原理简介+代码详解

    FROM: http://blog.csdn.net/u012162613/article/details/43225445 DeepLearning tutorial(4)CNN卷积神经网络原理简介 ...

  7. CNN卷积神经网络:权值更新公式推导

    版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/happyer88/article/details/46772347 在上篇<CNN卷积神经网络学习笔 ...

  8. cnn卷积神经网络_5分钟内卷积神经网络(CNN)

    cnn卷积神经网络 Convolutional neural networks (CNNs) are the most popular machine leaning models for image ...

  9. CS224n笔记13 卷积神经网络

    为什么80%的码农都做不了架构师?>>>    本文由码农场同步,最新版本请查看原文:http://www.hankcs.com/nlp/cs224n-convolutional-n ...

  10. cnn(卷积神经网络)比较系统的讲解

    本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之 ...

最新文章

  1. GoogLeNet(从Inception v1到v4的演进)
  2. 学python需要什么基础知识-学习python需要什么基础
  3. 修改linux文件权限命令:chmod
  4. SAP Spartacus 因为 refresh token 刷新令牌过期后显示用户重新登录页面的逻辑
  5. Java-所有类型的Class对象
  6. mac同步linux文件夹在哪里设置,Linux和Mac上的一些特殊文件将不再同步
  7. 织梦缩略图自动补齐绝对路径_[教程]织梦CMS缩略图和文章内容图片自动转化为带域名的绝对路径...
  8. 在Ubuntu 18.04系统上安装和配置DBeaver的步骤
  9. mysql 5.6.21 rpm_centos_mysql5.6.21_rpm安装
  10. linux改狗命令,linux安装安全狗
  11. matdem矩阵维度必须一致_「数据仓库篇」Kimball维度建模方案
  12. 吾很努力了,吾不是关键因素
  13. 【置顶】数字全息干涉测量技术研究现状
  14. vue前端项目上线配置
  15. oracle 11g xdb.,Oracle 11g升级到11.2.0.3过程中XDB.DBMS_XMLSCHEMA相关报错
  16. mac 上装windows系统 win10 没声音 耳机也没声音
  17. Ubuntu18.04 tc指令模拟网络丢包与延时
  18. 校招笔试、面试六十题
  19. STM32的Flash
  20. 最新二开微信表情包小程序+前后端 【去授权版】

热门文章

  1. Linux关机命令总结
  2. Linux 增大Swap
  3. 介绍Windows Server服务器角色、角色服务和功能
  4. linux 在文本模式下(命令模式)下,中文是乱码,如何解决?
  5. 函数中使用栈与使用堆时函数执行效率浅对比
  6. PAT甲级1129 Recommendation System:[C++题解]统计前k个商品
  7. GRE写作-政府官员必须执行人民意愿还是独立决策?
  8. 高等数学-微分方程知识点
  9. java derby 用户安全_Java 7u51安全权限变化,运行derby server被拒,解决方法
  10. 唐筛的准确率这么低为什么还要做_【NT 唐筛 四维】 【唐筛结果通知】...