CNN-卷积神经网络

在这里插入图片描述

卷积运算

卷积运算可划分为三种:Same卷积、Valid卷积、Full卷积(反卷积)。

  1. 为什么要padding
    因为在卷积/池化过程中过滤器可能不能将某个方向上的数据刚好处理完

Same卷积

通过Padding填充0运算保证卷积前后特征图大小不变
在这里插入图片描述

Valid卷积

不补零,忽略边界,特征图会变小

Full卷积

实现反卷积运算的核心步骤是在特征图中padding 0,然后进行卷积运算使得特征图变大。
在这里插入图片描述

FCN反卷积

首先对特征图各神经元之间进行0填充,即上池化;然后再进行卷积运算
在这里插入图片描述

卷积层

作用:提取特征
使用:输入数据与卷积核卷积生成卷积层矩阵
卷积层矩阵shape计算:
padding = SAME

	out_h = ceil(in_h/strides[1])
	out_w =  ceil(in_w/strides[2])

padding = VALID

	out_h = ceil((in_h-f_h+1)/strides[1])
	out_w = ceil((in_w-f_w+1)/strides[2]

pytorch计算公式:https://blog.csdn.net/a132582/article/details/78658155
在这里插入图片描述

特性:参数共享
其他

  1. 卷积时,通常会使用多个卷积核对图片进行卷积,每个卷积核的通道数和输入图片的通道数保持一致,卷积核的个数决定了feature map层的通道数。
  2. 感受野:感受野是卷积神经网络每一层输出的特征图(Feature Map)上的像素点在原始图像上映射的区域大小。
  3. 卷积层需要指定的超参数:filter个数(K)、filter大小(F)、步长(S)、边界填充(P)
  4. 关于卷积核的个数,理论上是初始化套数越多越好,初始化多套卷积核,提取的特征就会多样化,机器学到的东西就更多,有利于提高准确率

激活函数

将卷积层的输出做一次非线性映射,大部分卷积神经网络中,基本都是采用的relu函数
作用

  1. 用来加入非线性因素(实际问题中,样本不一定是线性可分的)
  2. 构建稀疏矩阵:可以去除数据中的冗余,最大可能保留数据的特征

常用激活函数

实际模型中最常用的还是RELU,注意学习率的设置以及死亡节点所占的比例即可
激 活 函 数 应 该 具 有 的 特 性 \color{#6495ED}{激活函数应该具有的特性}

  1. 非线性。
  2. 连续可微。梯度下降法的要求
  3. 范围最好不饱和。当有饱和的区间段时,若系统优化进入到该阶段,梯度近似为0,网络的学习就会停止
  4. 单调性。当激活函数是单调时,单层神经网络的误差是凸的,好优化。
  5. 在原点近似线性。这样当权值初始化为接近0的随机值时,网络可以学习的快,不用调节网络的初始值。

常 用 的 激 活 函 数 \color{#6495ED}{常用的激活函数}
1 、 s i g m o i d 函 数 \color{#8FBC8F}{1、sigmoid函数} 1sigmoid
在这里插入图片描述
缺点:饱和时梯度值非常小。BP算法方向更新时是以连乘的方式传递到前层,当层数较多时就会使得梯度消失
2 、 T a n h 函 数 \color{#8FBC8F}{2、Tanh函数} 2Tanh
在这里插入图片描述
3 、 R E L U 函 数 \color{#8FBC8F}{3、RELU函数} 3RELU
在这里插入图片描述

该函数的提出很大程度上解决了BP算法在优化深层神经网络是的梯度消失问题
优点:x>0时,梯度恒为1,无梯度消失问题,收敛快
增大了网络的稀疏性。x<0时输出为0,稀疏性也大,提取出的特征就越具有代表性,泛化能力越强
缺点:如果后层的某个梯度特别大,导致W更新以后变得特别大,导致该层输出0,成为死亡节点
当学习率比较大时可能会有40%的神经元都会在训练开始就死亡
4 、 L e a k y R e l u 函 数 \color{#8FBC8F}{4、Leaky Relu函数 } 4LeakyRelu
在这里插入图片描述
5 、 M a x o u t 函 数 \color{#8FBC8F}{5、Maxout函数} 5Maxout
在这里插入图片描述

池化层

对输入的特征图进行压缩,一方面使特征图变小,简化网络设计复杂度;另一方面进行特征压缩,提取主要特征
池化操作一般有两种:1、avy pooling ,2、max pooling
作用:池化层往往出现在卷积层的后面,通过池化来降低卷积层输出的特征向量,同时改善结果(不易出现过拟合),那么池化层的作用就是压缩图像
主要功能:通过逐步减小表征的空间尺寸来减小参数量和网络中的计算;池化层在每个特征图上独立操作。使用池化层可以压缩数据和参数的量,减小过拟合
具 体 作 用 \color{#6495ED}{具体作用}

  1. 特征不变性:去掉无关紧要的信息,留下最能表达图像的特征(平移不变性,选择不变性,尺度不变性)
  2. 特征降维:去除冗余信息,提取重要的特征
  3. 在一定程度上防止过拟合,更方便优化
  4. 可以扩大感知野(如何扩大感知野:通过下采样的方法,使得原来的一小块代表更大的区域)

全连接层

连接所有的特征,将输出值送给分类器(比如softmax分类器)

CNN之优缺点

优点:

  1. 共享卷积核,对高维数据处理无压力
  2. 无需手动选取特征,训练好权重,即得特征分类效果最好
  3. 深层次的网络抽取图像信息比较丰富,表达效果好
    缺点:
  4. 需要调参,需要大量样本集,训练最好用gpu
  5. 物理含义不明确(不知道每个卷积层提取的特征是什么)

卷积神经网络之fine-tuning

fine-tuning:就是使用已用于其他目标、预训练好模型的权重或部分权重,作为初始值开始计算
不用随机选取几个数作为初始权重的原因:

  1. 自己从头训练卷积神经网络容易出现问题
  2. fine-tuning能很快收敛到一个较理想的状态,省时又省心
    fine-tuning的具体做法:
  3. 复用相同层的权重,新定义层取随机权重初始值
  4. 调大新定义层的学习率,调小复用层的学习率
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值