[2] 卷积神经网络CNN 图解

本文详细介绍了卷积神经网络CNN的基础知识,包括卷积层、CNN的三大核心思想:局部感知、权值共享和下采样,以及卷积神经网络的物理意义和工作原理。通过这些概念,CNN能够实现位移、尺度和形变不变性,提高计算效率和准确性。
摘要由CSDN通过智能技术生成

背景

之前在网上搜索了好多好多关于CNN的文章,由于网络上的文章很多断章取义或者描述不清晰,看了很多youtobe上面的教学视频还是没有弄懂,最后经过痛苦漫长的煎熬之后对于神经网络和卷积有了粗浅的了解。

于是在这里记录下所学到的知识,关于CNN 卷积神经网络,需要总结深入的知识有很多:

  • 人工神经网络 ANN
  • 卷积神经网络 CNN
  • 卷积神经网络 CNN - BP算法
  • 卷积神经网络 CNN - LetNet分析
  • 卷积神经网络 CNN - caffe应用
  • 全卷积神经网 FCN

如果对于人工神经网络或者神经元模型不是太了解,建议先去了解《人工神经网络ANN》。

卷积神经网络

卷积神经网络说白了就是神经网络的一种分支,因此看懂神经元尤为重要:

这里写图片描述

卷积神经网络沿用了普通的神经元网络即多层感知器的结构,是一个前馈网络。以应用于图像领域的CNN为例,大体结构如图。

这里写图片描述

根据上图 卷积神经网络 ConvNet 可以分为4大层:

  1. 图像输入Image Input:为了减小后续BP算法处理的复杂度,一般建议使用灰度图像。也可以使用RGB彩色图像,此时输入图像原始图像的RGB三通道。对于输入的图像像素分量为 [0, 255],为了计算方便一般需要归一化,如果使用sigmoid激活函数,则归一化到[0, 1],如果使用tanh激活函数,则归一化到[-1, 1]。

  2. 卷积层(Convolution Layer):特征提取层(C层) - 特征映射层(S层)。将上一层的输出图像与本层卷积核(权重参数w)加权值,加偏置,通过一个Sigmoid函数得到各个C层,然后下采样subsampling得到各个S层。C层和S层的输出称为Feature Map(特征图)。

  3. 光栅化(Rasterization):为了与传统的多层感知器MLP全连接,把上一层的所有Feature Map的每个像素依次展开,排成一列。

  4. 多层感知器(MLP):最后一层为分类器,一般使用Softmax,如果是二分类,当然也可以使用线性回归Logistic Regression,SVM,RBM。

详细地展开2卷积层:

C层:特征提取层。每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来。

S层:特征映射层。网络的每个计算层由多个特征映射组成,每个特征映射为一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。

此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数,降低了网络参数选择的复杂度。卷积神经网络中的每一个特征提取层(C层)都紧跟着一个用来求局部平均与二次提取的计算层(S层),这种特有的两次特征提取结构使网络在识别时对输入样本有较高的畸变容忍能力。

这里写图片描述

1 卷积

卷积层是卷积核在上一级输入层上通过逐一滑动窗口计算而得,卷积核中的每一个参数都相当于传统神经网络中的权值参数,与对应的局部像素相连接,将卷积核的各个参数与对应的局部像素值相乘之和,(通常还要再加上一个偏置参数),得到卷积层上的结果。如下图所示。

这里写图片描述

今天公司学通讯的同事跟我讨论到底卷积是个什么东西,给我说通过卷积后,信号当中特别是时域会放大,https://en.wikipedia.org/wiki/Convolution。因此在FCN当中会通过卷积越变越大,但是这明明违背了图像卷积的概念。

下面这个动图更好地解释:

这里写图片描述

2 CNN三大核心思想

卷积神经网络CNN的出现是为了解决MLP多层感知器全连接和梯度发散的问题。其引入三个核心思想:1.局部感知(local field),2.权值共享(Shared Weights),3.下采样(subsampling)。极大地提升了计算速度,减少了连接数量。

2.1 局部感知

形象地说,就是模仿你的眼睛,想想看,你在看东西的时候,目光是聚焦在一个相对很小的局部的吧?严格一些说,普通的多层感知器中,隐层节点会全连接到一个图像的每个像素点上,而在卷积神经网络中,每个隐层节点只连接到图像某个足够小局部的像素点上,从而大大减少需要训练的权值参数。

对于一个 10001000 的输入图像而言,如果下一个隐藏层的神经元数目为 106 个,采用全连接则有 10001000106=10

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值