pooling 层的作用?
*本质上,是在精简feature map数据量的同时,最大化保留空间信息和特征信息,的处理技巧;
目的是,(a)对feature map及参数进行压缩,起到降维作用;
(b)减小过拟合的作用。包括Max pooling 和average pooling;
(c)引入不变性,包括平移、旋转、尺度不变性。但CNN的invariance的能力,本质是由convolution创造的;
简而言之,如果输入是图像的话,那么池化层的最主要作用就是压缩图像。
为什么不用卷积步长的压缩:因为pooling layer的工作原理,在压缩上比convolution更专注和易用。
为什么不用BP神经网络去做呢?
(1)全连接,权值太多,需要很多样本去训练,计算困难。应对之道:减少权值的尝试,局部连接,权值共享。
卷积神经网络有两种神器可以降低参数数目。
第一种神器叫做局部感知野,一般认为人对外界的认知是从局部到全局的,而图像的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱。因而,每个神经元其实没有必要对全局图像进行感知,只需要对局部进行感知,然后在更高层将局部的信息综合起来就得到了全局的信息。
第二级神器,即权值共享。
(2)边缘过渡不平滑。应对之道:采样窗口彼此重叠。
归一化的作用?
*幅度归一化到同样的范围。目的:为了让不同维度的数据具有相同的分布规模,方便操作,图像一般不需要。
神经网络激励函数的作用是什么,及线性与非线性的差别?
*在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数 Activation Function。
如果不用激励函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。
如果使用(非线性)的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。
深度学习的深层次问题?
*人工智能最关键的问题是抽象和推理。现如今的监督学习和强化学习需要太多数据,无法像人一样做推理规划,只是在做简单的模式识别。
如果用强化学习的方式,给你的算法一个目标,然后让它自行决定最佳的行动是什么,在计算机学会不同道路情况下躲开汽车之前,可能早已经被车撞死几千次了
常常会犯人们不会犯的错误,比如把牙刷预测成棒球棍。
依赖大量数据。
训练出的结果对相似场景的应用性不好(迁移能力差)。
对特征具备复杂层级关系的应用领域不能自然处理。
开放式推理能力差(意思是无法基于现实知识进行推理,这一点我曾在其他地方看到一篇论文讨论过这种情况,遗憾的是那篇论文仅仅指出人类的推理能力实际上是基于一个现实知识的先验数据库,并未针对深度学习如何提高推理能力做出解释)。
“黑箱”性质。
先验知识难以整合(和第4条基本说的是一回事)。
不能区分数据与结论之间是因果关系还是相关关系(这一点Cliff应该有些体会)。
分析具备潜在前提,比如背景环境的高度稳定性(意思是默认数据和结论之间的联系不受外界干扰)。
只能得到一个近似的答案。
难以工程化(如果深度学习可以工程化了,我个人觉得世界将迎来一个崭新的篇章)。
深度学习训练问题?
*1、欠拟合
2、过拟合
3、梯度消失
4、问题性调参(代码问题)
5、优化性调参
优化性调参可以在三部分进行优化,分别是:数据预处理,模型优化,超参数选择
6、实验及参考
参与别人的参数选择及自己试验得到合理参数。
…
优化器的比较与选择?
*BGD,SGD,MBGD, SGD with Momentum, SGD with Nesterov accelerated gradient,
自适应优化算法:AdaGrad, Adadelta/RMSProp, Adam, NAdam
CV中常用的损失 函数?
*L1 loss 、L2 loss…
1、focal loss(焦点损失)
2、skrinkage loss(收敛损失)
3、lossless Triplet loss一种高效的siamese网络损失函数
4、Repulsion loss
blog.csdn.net
5、sample can be faster Than Optimization采用可以比优化更快收敛
MSE均方误差损失函数
SVM合页损失函数
Cross Entropy交叉熵损失函数
目标检测中常用的Smooth L1损失函数。其中还会涉及到梯度消失、梯度爆炸等问题:
ESM均方误差+Sigmoid激活函数会导致学习缓慢;Smooth L1损失是为了解决梯度爆炸问题
均方差损失函数
ESM均方误差+Sigmoid
交叉损失
svm合页损失
Smooth L1损失
第一,采用sigmoid等函数,算激活函数是(指数运算),计算量大;反向传播求误差梯度时,求导涉及除法,计算量相对大。而采用Relu激活函数,整个过程的计算量节省很多。
第二,对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0),这种情况会造成信息丢失,梯度消失在网络层数多的时候尤其明显,从而无法完成深层网络的训练。
第三,ReLU会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生。
什么是SOFT NMS?
NMS:
soft nms:
但是上面这个公式是不连续的,这样会导致box集合中的score出现断层,因此就有了下面这个Soft NMS式子(也是大部分实验中采用的式子):
IOU LOSS & GIOU LOSS?
没什么好说的,直接上图