AI算法岗面试八股面经【超全整理】
- 概率论【AI算法岗面试八股面经【超全整理】——概率论】
- 信息论【AI算法岗面试八股面经【超全整理】——信息论】
- 机器学习【AI算法岗面试八股面经【超全整理】——机器学习】
- 深度学习【AI算法岗面试八股面经【超全整理】——深度学习】
- NLP【AI算法岗面试八股面经【超全整理】——NLP】
- CV
目录
- 1、图像处理中一般用最大池化而不用平均池化
- 2、计算感受野
- 3、特征图大小计算
- 4、Resnet
- 5、空洞卷积和1*1卷积
- 6、VIT
- 7、图像质量评价指标
1、图像处理中一般用最大池化而不用平均池化
池化的主要目的:
- 保持主要特征不变的同时减少了参数
- 保持平移、旋转、尺度不变性,增强了神经网络的鲁棒性
- 池化操作也可以在一定程度上控制过拟合,通过减小特征图的尺寸,池化可以减小模型中的参数数量,并降低模型的复杂度。这有助于防止模型过度拟合训练数据,提高模型的泛化能力
最大池化更能捕捉图像上的变化、梯度的变化,带来更大的局部信息差异化,从而更好地捕捉边缘、纹理等特征。平均池化会淡化或错过特征是否存在的信息。
2、计算感受野
卷积层和池化层都会影响感受野,而激活函数层通常对于感受野没有影响,当前层的步长并不影响当前层的感受野,感受野和padding没有关系,计算当前层的感受野的公式如下:
R
F
i
+
1
=
R
F
i
+
(
k
−
1
)
×
S
i
RF_{i+1}=RF_i+(k-1) \times S_i
RFi+1=RFi+(k−1)×Si
其中,
R
F
i
+
1
RF_{i+1}
RFi+1表示当前层的感受野,
R
F
i
RF_i
RFi表示上一层的感受野,k表示卷积核的大小,例如
3
∗
3
3*3
3∗3的卷积核,则
k
=
3
k=3
k=3,
S
i
S_i
Si表示之前所有层的步长的乘积(不包括本层),公式如下:
S
i
=
∏
i
=
1
i
S
t
r
i
d
e
i
S_i=\prod_{i=1}^i Stride_i
Si=i=1∏iStridei
感受野:卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小;(如果每个特征受到原始图像的
3
∗
3
3*3
3∗3区域内的影响,则感受野为2)。
3、特征图大小计算
输入
W
×
H
W \times H
W×H,卷积核大小:k,Padding大小:p,步长大小:S
输出:
W
o
=
(
W
−
k
+
2
∗
p
)
/
S
+
1
W_o=(W-k+2*p)/S+1
Wo=(W−k+2∗p)/S+1
H
o
=
(
H
−
k
+
2
∗
p
)
/
S
+
1
H_o=(H-k+2*p)/S+1
Ho=(H−k+2∗p)/S+1
4、Resnet
在深度神经网络中,当网络很深时,除了增加计算资源消耗以及模型过拟合问题外,还会出现梯度消失/爆炸问题,导致网络参数无法更新。
而且深层的网络还有一个问题,假设我们的初始设定网络是M层,而其实最优化模型对应的层数可能是K层,那么多出来的(M-K)层网络结构,不仅不会提升模型的表达能力,反而会使得模型的效果变差(表现为Loss先下降并趋于稳定值,然后再次上升),这就产生了网络退化问题。
网络的一层可以看做
y
=
H
(
x
)
y=H(x)
y=H(x)
H
(
x
)
=
F
(
x
)
+
x
F
(
x
)
=
H
(
x
)
−
x
H(x) = F(x)+x\quad F(x)=H(x)-x
H(x)=F(x)+xF(x)=H(x)−x
其中,
F
(
x
)
F(x)
F(x)是残差。
- 残差连接可以防止梯度消失
- 解决网络退化。假设某层是冗余的,在引入ResNet之前,我们想让该层学习到的参数能够满足 H ( x ) = x H(x)=x H(x)=x,即输入是x,经过该冗余层之后,输出仍为x。但是要想学习 H ( x ) = x H(x)=x H(x)=x恒等映射时的参数是很难的。ResNet让 H ( x ) = R e L U ( F ( x ) + x ) H(x)=ReLU(F(x)+x) H(x)=ReLU(F(x)+x);我们发现,要想让该冗余层能够恒等映射,只需要学习 F ( x ) = 0 F(x)=0 F(x)=0。学习 F ( x ) = 0 F(x)=0 F(x)=0比 H ( x ) = x H(x)=x H(x)=x要简单,因为一般每层中的参数初始化偏向于0,而且ReLU能够将负数激活为0,这样能够更快收敛。
5、空洞卷积和1*1卷积
空洞卷积(扩张卷积)
与正常的卷积不同的是,空洞卷积引入了一个称为“扩张率(dilation rate)”的超参数,该参数定义了卷积核处理数据时各值的间距。扩张率中文也叫空洞数(Hole Size),空洞卷积可以增加感受野,同时可以不改变图像输出特征图的尺寸(分辨率,resolution)。
- 扩大感受野
- 捕获多尺度上下文信息
1*1卷积
- 对通道数实现升维/降维
- 实现跨通道的信息交互与融合
6、VIT
- 将图像转换为Patch序列。 假设有一张图像 x ∈ R H ∗ W ∗ C x \in R^{H*W*C} x∈RH∗W∗C,Patch大小为p,那么可以创建N个图像Patches;
- 将Patches铺平。 原论文作者选用patch大小为16,那么一个Patch的shape为(3,16,16),维度为3,将它铺平之后大小为 16 × 16 × 3 = 768 16\times 16\times 3=768 16×16×3=768。此时可以使用一个线性映射层,将Patch的维度映射到我们指定的embedding的维度,这样就和NLP的词向量类似了。
- 添加Position embedding。 与CNNs不同,此时模型并不知道序列数据中的patches的位置信息。所以这些patches必须先追加一个位置信息,也就是图中的带数字的向量。
- 添加class token。 在输入到Transformer Encoder之前,还需要添加一个特殊的class token,这一点主要是借鉴了BERT模型。添加这个class token的目的是因为VIT模型将这个class token在Transformer Encoder的输出当作是模型对输入图片的编码特征,用于后续输入MLP模块中与图片label进行Loss计算。
- 输入Transformer Encoder。
7、图像质量评价指标
MSE(Mean Squared Error)均方误差
M
S
E
=
∑
i
=
0
m
∑
j
=
0
n
(
I
(
i
,
j
)
−
K
(
i
,
j
)
)
2
m
∗
n
MSE=\frac{\sum_{i=0}^m\sum_{j=0}^n{(I(i,j)-K(i,j))}^2}{m*n}
MSE=m∗n∑i=0m∑j=0n(I(i,j)−K(i,j))2
即两张图像对应像素点数的差的平方求平均。
PSNR(Peak Signal-to-Noise Ratio)峰值信噪比(
↑
\uparrow
↑)
PSNR衡量对应像素的相近程度
P
S
N
R
=
10
⋅
l
o
g
10
(
M
A
X
I
2
M
S
E
)
=
20
⋅
(
M
A
X
I
M
S
E
)
PSNR=10\cdot log_{10}(\frac{MAX_I^2}{MSE})=20\cdot(\frac{MAX_I}{MSE})
PSNR=10⋅log10(MSEMAXI2)=20⋅(MSEMAXI)
MSE即上图的均方误差,
M
A
X
I
MAX_I
MAXI为图像中像素颜色可以取到的最大数值(即255)。
SSIM(Structural Similarity Index)结构性相似指标(
↑
\uparrow
↑)
评价一张图片的亮度(luminance)、对比度(contrast)、结构(structure)
S
S
I
M
(
x
,
y
)
=
(
2
μ
x
μ
y
+
c
1
)
(
2
σ
x
y
+
c
2
)
(
μ
x
2
+
μ
y
2
+
c
1
)
(
σ
x
2
+
σ
y
2
+
c
2
)
SSIM(x,y)=\frac{(2\mu_x\mu_y+c_1)(2\sigma_{xy}+c_2)}{(\mu_x^2+\mu_y^2+c_1)(\sigma_x^2+\sigma_y^2+c_2)}
SSIM(x,y)=(μx2+μy2+c1)(σx2+σy2+c2)(2μxμy+c1)(2σxy+c2)
同时,SSIM只是计算一个小窗口内图像的亮度、对比度、结构的值的相似程度,通过像素滑窗求平均,可以得到整幅图像的MSSIM。
M
S
S
I
M
(
X
,
Y
)
=
1
M
∑
j
=
1
M
S
S
I
M
(
x
j
,
y
j
)
MSSIM(X,Y)=\frac{1}{M}\sum_{j=1}^MSSIM(x_j,y_j)
MSSIM(X,Y)=M1j=1∑MSSIM(xj,yj)
LPIPS(Learned Perceptual Image Patch Similarity)感知图像块相似性(
↓
\downarrow
↓)
其主要思想是用CNN网络学到一些深层特征,再求得两张图片的深层特征之间的距离。
过了网络之后得到不同层的特征图
y
y
y,将这些特征图在通道维度进行单位归一化,然后对特征维的不同通道乘上一个缩放因子,再将两张图的特征做
l
2
l2
l2损失,最后不同层的特征求得损失求平均得到一个距离。
d
(
x
,
x
0
)
=
∑
l
1
H
l
W
l
∣
∣
w
l
θ
(
y
^
h
w
l
−
y
^
o
h
w
l
∣
∣
2
2
d(x,x_0)=\sum_l\frac{1}{H_lW_l}||w_l\theta(\widehat{y}_{hw}^l-\widehat{y}_{ohw}^l||_2^2
d(x,x0)=l∑HlWl1∣∣wlθ(y
hwl−y
ohwl∣∣22
FID(Fréchet Inception Distance)(
↓
\downarrow
↓)
基于两个图像分布之间的特征向量空间的Fréchet距离,测量生成图像与真实图像分布之间的差异。
F
I
D
(
P
,
G
)
=
∣
∣
μ
P
−
μ
G
∣
∣
2
+
T
r
(
∑
P
+
∑
G
−
2
∗
∑
P
∑
G
)
FID(P,G)=||\mu_P-\mu_G||^2+Tr(\sum_P+\sum_G-2*\sqrt{\sum _P\sum_G})
FID(P,G)=∣∣μP−μG∣∣2+Tr(P∑+G∑−2∗P∑G∑)
NIQE(Natural Image Quality Evaluator)自然图像质量评估器(
↓
\downarrow
↓)
无参考图像质量指标