CNN的一些计算方法和知识点

计算方法

卷积层参数个数计算:

p a r a m s = m ∗ m ∗ c h a n n e l s ∗ k e r n e l s + b i a s params = m*m*channels*kernels+bias params=mmchannelskernels+bias
m:卷积核宽度
channels:通道数
kernels:卷积核个数
bias:每个卷积核都有一个bias

卷积操作图片大小计算:

h o u t = ( h i n − h k e r n e l + 2 ∗ p a d d i n g ) / s t r i d e + 1 h_{out} = (h_{in}-h_{kernel}+2*padding)/stride +1 hout=hinhkernel+2padding)/stride+1

知识点

梯度消失:

多个方面去理解:

  1. 从激活函数和梯度计算的方面来理解:
    梯度计算是通过链式求导,梯度是一连串偏导相乘,而以sigmoid激活函数为例,其导数的值域<0.25,则通常求导的结果通常会<1,随着深度增加,求梯度就乘越多的小于1的偏导数,梯度会逐渐变小,甚至消失。相反,若激活函数的导数>1,那么随深度增加梯度就会逐渐变大,出现梯度爆炸。所以出现了ReLU激活函数。
  2. 从激活函数的输入来看
    因为深层神经网络在做非线性变换前的激活输入值(就是那个Wx+b,x是输入)随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动,之所以训练收敛慢,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近(对于Sigmoid函数来说,意味着激活输入值Wx+b是大的负值或正值,在这个区间上其梯度很小),所以这导致反向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因

1x1卷积核作用

  1. 改变维度,若降低维度可以减少参数(本文未改变通道数)
  2. 作用是在不影响输入输出维数的情况下,对输入线进行线性形变,然后通过Relu进行非线性处理,增加网络的非线性表达能力。
  3. 在CNN模型中,我们可能有多个卷积核,在同一空间位置但在不同通道的卷积核的输出结果相关性极高。我们可以使用1*1的卷积很自然的把这些相关性很高的、在同一空间位置但是不同通道的特征连接在一起。

如果卷积网络在靠近输入的层与靠近输出的层之间包含更短的连接,那么卷积网络的深度可以显著增加,准确度更高,并且更易于训练。

新结构的提出过程:

  1. 全连接的级联网络 --CNN–旁路与门路结构,Highway Network—Stochastic depth—增加网路的宽度也是一种提升网络效果的方法(Inception)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值