目录
1.常见图像滤波。
2.常见图像分割算法。
3.常用边缘提取算子。
4.解释一下BN(Batch Normalization)。
5.解释一下L1、L2范数。
6.常用卷积类型。
7.常见的池化。
8.介绍一下卡尔曼滤波。
9.什么是生成式模型和判别式模型。
10.贝叶斯是生成式模型还是判别式模型。
11.介绍一下朴素贝叶斯,为什么朴素?
12.有哪些传统梯度算法?
13.有哪些边缘检测算法。
14.常见的损失函数。
1.常见图像滤波。中值滤波和均值滤波的差别
滤波目的:
消除图像中混入的噪声。
为图像识别抽取出图像特征。
滤波要求:
不能损坏图像轮廓及边缘 。
图像视觉效果应当更好。
滤波器的种类有很多, 基本包含以下6种滤波方法:
盒式滤波:平滑处理1线性滤波之——盒式滤波(方框滤波)
均值滤波:平滑处理2线性滤波之——均值滤波
高斯滤波:平滑处理3线性滤波之——高斯滤波
中值滤波:平滑处理4非线性滤波之——中值滤波
双边滤波:平滑处理5非线性滤波之——双边滤波
导向滤波:平滑处理6——引导滤波/导向滤波(Guided Filter)
均值滤波和中值滤波的内容非常基础。均值滤波相当于低通滤波,容易使图像模糊,对椒盐噪声影响不大。中值滤波的优点是可以滤除椒盐噪声,缺点是容易造成图像的不连续性。通过下面的三幅图,我们可以清楚地看到以上两种滤波方法的区别。
原始图像含有椒盐噪声
中值滤波后,椒盐噪声几乎被完全去除
均值滤波后,椒盐噪声被处理成小气泡,但同时图像开始模糊。
均值滤波器是最常用的线性低通平滑滤波器,它可以抑制图像中的加性噪声,同时也使图像模糊;中值滤波器是最常用的非线性平滑滤波器,它可以消除图像中孤立的噪声点,产生较少的模糊。一般来说,中值滤波的效果优于邻域平均低通滤波,其主要特点是滤波后的图像轮廓清晰。
这篇博客【图像滤波总结(面试经验总结)】的作者写的不错!可以看看。
2.常见图像分割算法。
基于阈值的分割方法
基于区域的分割方法
基于边缘的分割方法
基于特定理论的分割方法
基于基因编码的分割方法
基于小波变换的分割方法
基于神经网络的分割方法
深度学习方向的分割方法,这篇文章【图像分割综述【深度学习方法】】讲的不错,比较全面。
3.常用边缘提取算子。
Sobel算子
Isotropic Sobel算子
Roberts算子
Prewitt算子
Laplacian算子
Canny算子
这篇文章【图像处理常用边缘检测算子总结】总结的很完整,还是可以的。
4.解释一下BN(Batch Normalization)。
Batch Normalization是2015年一篇论文中提出的数据归一化方法,往往用在深度神经网络中激活层之前。其作用可以加快模型训练时的收敛速度,使得模型训练过程更加稳定,避免梯度爆炸或者梯度消失。并且起到一定的正则化作用,几乎代替了Dropout。
BN的基本思想其实相当直观:因为深层神经网络在做非线性变换前的激活输入值(就是那个x=WU+B,U是输入)随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动,之所以训练收敛慢,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近(对于Sigmoid函数来说,意味着激活输入值WU+B是大的负值或正值),所以这导致反向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因,而BN就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,其实就是把越来越偏的分布强制拉回比较标准的分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就会导致损失函数较大的变化,意思是这样让梯度变大,避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快,能大大加快训练速度。
BN的两大收益:
收敛速率增加
可以达到更好的精度
在目标检测算法中,BN已经成为了标配。比如Yolov3引入了BN后,mAP提升了两个百分点。在更多实验中可以看到,BN同时起到了正则化作用,防止模型在训练集上过拟合,通常有BN的网络不再需要Dropout层。
这篇文章【基础算法:六问透彻理解BN(Batch Normalization)】真的挺不错的哦。
5.解释一下L1、L2范数。
这篇文字【机器学习中的范数规则化之(一)L0、L1与L2范数】怎么说呢,还行吧。
6.常用卷积类型。
1、Convolution卷积
2、Deconvolution(transposed Convolutions)反卷积(转置卷积)
3、1x1/Pointwise Convolutions点级卷积
4、Spatial and Cross-Channel Convolutions空间和跨通道卷积
5、Grouped Convolutions组卷积
6、Separable Convolutions可分离卷积
6.1 Spatially Separable Convolutions空间可分离卷积
6.2 Depthwise Separable Convolutions深度可分离卷积
7、Flattened Convolutions扁平化卷积
8、Shuffled Grouped Convolutions混洗分组卷积
9、Pointwise grouped convolution逐点分组卷积
10、Dilated Convolution(Atrous Convolution)空洞卷积(扩张卷积)
11、Deformable Convolution可变形卷积
付详细链接【常见的卷积类型】【形象理解深度学习中八大类型卷积】,不错哦。
7.常见的池化。
(1)最大池化、平均池化、全局平均池化、全局最大池化。
平均池化(average pooling):计算图像区域的平均值作为该区域池化后的值。
最大池化(max pooling):选图像区域的最大值作为该区域池化后的值。
(2)重叠池化(OverlappingPooling):
重叠池化就是,相邻池化窗口之间有重叠区域,此时一般sizeX > stride。
(3)空金字塔池化(Spatial Pyramid Pooling)
空间金字塔池化的思想源自 Spatial Pyramid Model,它将一个pooling变成了多个scale的pooling。用不同大小池化窗口作用于上层的卷积特征。也就是说 spatital pyramid pooling layer就是把前一卷积层的feature maps的每一个图片上进行了3个卷积操作,并把结果输出给全连接层。其中每一个pool操作可以看成是一个空间金字塔的一层。
这样做的好处是,空间金字塔池化可以把任意尺度的图像的卷积特征转化成相同维度,这不仅可以让CNN处理任意尺度的图像,还能避免cropping和warping操作,导致一些信息的丢失,具有非常重要的意义。
【卷积神经网络——输入层、卷积层、激活函数、池化层、全连接层】这一篇讲的很棒,包括CNN其它层都有讲解。
8.介绍一下卡尔曼滤波。
你可以在任何含有不确定信息的动态系统中使用卡尔曼滤波,对系统下一步的走向做出有根据的预测,即使伴随着各种干扰,卡尔曼滤波总是能指出真实发生的情况。
在连续变化的系统中使用卡尔曼滤波是非常理想的,它具有占用内存小的优点(除了前一个状态量外,不需要保留其它历史数据),并且速度很快,很适合应用于实时问题和嵌入式系统。
在Google上找到的大多数关于实现卡尔曼滤波的数学公式看起来有点晦涩难懂,这个状况有点糟糕。实际上,如果以正确的方式看待它,卡尔曼滤波是非常简单和容易理解的,下面我将用漂亮的图片和色彩清晰的阐述它,你只需要懂一些基本的概率和矩阵的知识就可以了。
【从放弃到精通!卡尔曼滤波从理论到实践~】哔哩哔哩里这位大佬讲的很好,值得观看。
【How a Kalman filter works, in pictures】国外大神经典
【详解卡尔曼滤波原理】这一篇对Kalman讲的很详细
9.什么是生成式模型和判别式模型。
生成式模型(Generative Model)与判别式模型(Discrimitive Model)是分类器常遇到的概念,它们的区别在于:
对于输入x,类别标签y:
生成式模型估计它们的联合概率分布P(x,y)
判别式模型估计条件概率分布P(y|x)
生成式模型可以根据贝叶斯公式得到判别式模型,但反过来不行。
【判别式模型与生成式模型】很完美,beautiful!
10.贝叶斯是生成式模型还是判别式模型。
11.介绍一下朴素贝叶斯,为什么朴素?
12.有哪些传统梯度算法?
13.有哪些边缘检测算法。
14.常见的损失函数。