卷积神经网络中的两个重要概念——感受野receptive filed和损失函数loss function
理解感受野的作用和计算公式才能计算出每一次卷积之后的图像尺寸大小,我们可以了解网络中每个层级对原始输入图像的覆盖范围,从而对网络的深度和特征提取能力有一个直观的理解,感受野的大小决定了神经元对输入图像的理解能力和特征提取能力,便于设计出合理的网络。
平时在网络训练时经常会绘制损失函数曲线来判断网络的收敛程度,因此有必要了解损失函数,同时区分损失函数和激活函数的作用
感受野的概念及作用
感受野(Receptive Field)的定义:卷积神经网络某一层输出的特征图(feature map)上的像素点映射回输入图像上的区域大小。通俗点的解释是,特征图上一点,相对于原图的大小,也是卷积神经网络特征所能看到输入图像的区域。
感受野的大小和形状直接影响到网络对输入图像的感知范围和精度,进而调整网络结构、卷积核大小和步长等参数,以改善网络的性能。
感受野的性质:
1.越靠近感受野中心的区域越重要
2.各向同性
3.由中心向周围的重要性衰减速度可以通过网络结构控制
具体参考如下博客内容
深度理解CNN中的感受野(大杀器)-CSDN博客
注意区分:理论感受野、训练前感受野、训练后感受野,参考如下博客内容
Torch 模型 感受野可视化-CSDN博客
感受野的计算公式
感受野的计算公式参考如下博客内容
深度理解CNN中的感受野(大杀器)-CSDN博客
通用计算公式:
第一层感受野为1,R表示感受野,k表示卷积核大小,s表示步长
R当前层=R前一层+(k-1)*(前一层之前包括前一层的所有步长之积)
对于感受野计算公式的理解:
1.初始图像感受野为1
2.每经过一个conv(k*k) s1的卷积层,感受野是r=r+(k-1)
3.每经过一个conv(k*k) s2的卷积层或者maxpooling/avgpooling,感受野是r=(r*2)+(k-2)
4.每经过一个maxpooling/avgpooling2*2 s2的下采样层,感受野r=r*2
5.ReLu,BN,Dropout,conv1*1 s1不改变感受野
6.经过全连接层之后,感受野为整个图像
参考博客如下
.卷积神经网络里面的感受野计算_cnn_CVplayer111-讯飞AI开发者社区
损失函数的作用及其在网络中的位置
损失函数(loss function)是用来度量模型的预测值f(x)与真实值Y的差异程度的运算函数,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。
损失函数使用主要是在模型的训练阶段,每个批次的训练数据送入模型后,通过前向传播输出预测值,然后损失函数会计算出预测值和真实值之间的差异值,也就是损失值。得到损失值之后,模型通过反向传播去更新各个参数,来降低真实值与预测值之间的损失,使得模型生成的预测值往真实值方向靠拢,从而达到学习的目的。
参考博客内容
损失函数(Loss Function) - 知乎
损失函数可以用梯度下降法来求解
关于梯度下降法的内容介绍如下博客内容
Gradient-Descent(全世界最通俗易懂的梯度下降法详解-优化函数大法) - 知乎
小白零基础学习:详解梯度下降算法:完整原理+公式推导+视频讲解_标准梯度下降算法 损函数-CSDN博客
激活函数的作用及其在网络中的位置
激活函数是神经网络中的核心组件,其主要作用是为模型引入非线性特性,从而使网络能够学习和表达复杂的特征与关系。如果没有激活函数,神经网络的输出将只是简单的线性变换,无论网络有多少层,其本质上等同于一个线性模型,无法处理复杂的非线性问题。
深度学习笔记:如何理解激活函数?(附常用激活函数) - 知乎
由于激活函数有用到softmax函数,损失函数也会用到该函数,导致容易将激活函数和损失函数混淆,现在根据二者的作用不同可以区分。