聊一聊CNN中的感受野、优化函数、激活函数、Loss函数等

 

目录:

1、感受野

2、优化函数 

3、激活函数 

4、loss 函数。

前言

文章有点长,内容有点丰富,基本涵盖整个深度卷积神经网络,涉及

网络中的感受野、激活函数、loss函数以及各种相关知识。

 

Part 一、 感受野 receptive field

receptive filed 中文叫感受野,是卷积神经网络中最重要的概念之一,各类目标检测任务都是基于不同的感受野而设计的,比如SSD(single shot detection)融合高分辨率的低层特征做检测解决小目标检测问题,因为小物体随着网络层数加深感受野变大在最后的feature maps中消失,又比如YOLO对成群的物体检测效果较差,天上飞的大雁群,地上跑的羊群,由于感受野变大,成群的物体会连成一片进行检测,导致检测异常,回归的boundingbox有可能每次运行的结果都不同。

感受野是什么?

The receptive field is defined as the region in the input space 
that a particular CNN’s feature is looking at (i.e. be affected by).

翻译过来就是,在当前的feature map上,单个像素点对应原始输入图像的区域大小,拿原图来说,感受野就是1,单个像素点对应原图的区域就是这个像素所以是1,现在如果通过一个3*3的卷积核得到新的feature map,那么这个特征图上每个像素点对应原图上一个3*3区域,感受野就是3,原图和第一层卷积后的特征图的感受野比较直白,后面层感受野的计算稍显复杂,但还是有规律可循的。

层层卷积和池化的过程是下采样的过程,这里的小采样是指分辨率逐渐变小的过程,所以无论是卷积或者池化操作后得到的特征图上的特征值虽然在当前空间上位置上是连接在一起的,但是如果对应到原图它们之间都是有一定间隔的这个又叫做jump,这个jump跟进行卷积或池化操作时的步长有关。此外,当前层的感受野是前面所有层感受野堆叠起来的,所以计算当前第n层感受野需要计算前n-1层的感受野,前n-1层的感受野通过计算前n-2层感受野得到,这个计算过程是一个递归过程。

1、原始输入尺寸n,jump j0=1,r0=1,start0=0.5
# r0 表示原始输入图像的感受野
# start0表示当前特征图上的第一个值在原图中的位置
# nout 表示输出特征图的尺寸

特征图宽和高的计算方式:

n_{out}=\left \lfloor (n_{in}+2*p-k)/s \right \rfloor + 1

p 代表padding的规模,可以是1,2等整数也可以是‘valid’或‘same',’valid‘表示padding的规模是0,’same‘表示padding的规模要保证卷积后的特征图和原图一样大小,k是卷积核的尺寸,s代表步长。

当前层的jump在上一层的特征图中,计算公式为:

j_{out} = j_{in} * s

其中,j_{in} 表示当前层的上一层特征图中存在的jump,j_{out} 表示经过当前层的卷积后得到的特征图中的jump,也即为下一层计算感受野所需要引入的jump。

感受野的计算公式:

r_{out} = r_{in} + (k-1)*j_{in}

r_{out}是当前层的感受野大小,  r_{in}是但前层的上一层的感受野大小,k是卷积核尺寸。

最后是关于特征图上第一个元素在原始输入中的空间位置:

start_{out} = start_{in} + \left ( (k-1)/2 - p\right )*j_{in}

图一是这个过程的描述示例。

图一 感受野计算过程

在参考资料[1]中有实现这个过程的python代码,计算的是AlexNet中每一层的上述参数,可以根据实际需要进行更改,代码不复杂。

Part 二、优化函数 optimizer functions

假设你对机器学习或者深度学习有一定了解,二者模型参数的学习方式都是梯度下降,而不同的优化函数改变的是参数的调整方向以及量级,至于为什么是梯度下降这里简单解释一下:

1、假设模型服从函数:y = \theta *x + b 这里的\theta ,x,y是向量

2、假设有大量的训练样本,模型通过不断的调整\theta使得对于样本中的x代入函数中的输出是y或者是无限趋近y

3、如何确定训练得到的模型参数\theta满足2中的要求或者评估模型的效果呢

4、引入loss函数,J(\theta ) = argmin \left | y-\tilde{y}\right |,其中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nobrody

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值