面试篇——神经网络高频面试题(下)
Posted AI干货铺
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试篇——神经网络高频面试题(下)相关的知识,希望对你有一定的参考价值。
在《》这一篇中总结了神经网络的综合面试题,这一篇主要总结具体类型的神经网络(CNN、RNN、ResNet、GNN)的面试题,方便我们加深对各个神经网络的理解。本文对各个问题的参考回答是小编整理总结和理解得到的结果,不一定完善和完全正确,同学们可以自行思考并根据自己的理解得到各个问题的回答,不提倡硬背哦,要确保理解每个点的意思。
1.CNN相关面试题和参考回答
1.1 的特征图卷积后的大小如何计算
假设卷积核大小是 ,步长是 ,填充是 ,那么卷积后:
1.2 的特征图池化后的大小如何计算
1.3 一次卷积的计算量是多少?
假设输入是 ,使用一个size为 的卷积核,卷积后的输出特征图size为 ,则乘法计算量为:
具体分析可看图1。
如果使用 个不同的卷积核,则卷积后的输出特征图的size为: ,那么一次卷积的计算量为:
1.4 卷积参数量分析
CNN的参数量主要是卷积核的参数,一次卷积中, 个 大小的卷积核的参数量为 ,如果连bias也算上,则总的参数量为
1.5 2层 的卷积核级联和1层 的卷积核哪个更好?
2层 的卷积核级联更好,理由:
-
两者具有相同的感受野,输出特征图大小是一样的,如图2所示,所以前者可以替代后者。
-
小卷积核的参数量更少:前者参数量为18=2*3*3,后者参数量为25=5*5
-
小卷积级联增强了非线性特征表示,因为Conv层后往往还跟着一层非线性变换激活层,2层小卷积比一层大卷积的多了一层非线性变换,因此一定程度上增强了非线性特征表示,使得决策函数更具区分性,一定程度上提升了精度。
1.6 卷积层相比FC层有哪些优势
FC
-
1*1卷积等价于FC -
跟原特征图一样大小的卷积核等价于FC -
FC参数多且冗余
卷积层
-
不全连接+参数共享,减少参数量同时保留空间位置信息 -
不全连接减少了神经元之间的依赖性,从而促使神经元学习更鲁棒的特征。
1.7 1*1卷积的作用
-
实现跨通道的交互和信息整合 -
实现卷积核通道数的降维和升维 -
实现与全连接层的等价效果 -
实现多个特征图的线性组合 -
不影响卷积层的感受野,增强决策函数的非线性特征表示能力
对上述每点的解释:假设输入为 的特征图,(1,1)的卷积核能把C个通道的信息进行融合(回忆一下输出特征图中每个像素点是怎么计算的)。使用 个不同的(1,1)的卷积核,那么输出通道就会变为 ,当C'小于C时,那么通道数就得到降维,反之,通道数增加。第三点和第四点意思差不多,(1,1)卷积等价于全连接层,全连接层的作用就是对各个特征进行线性组合。对于最后一点,其实是conv层后会跟着一层激活层,所以能增强非线性表达能力。
1.8 卷积层的作用和特性
作用:
-
对原始信号进行特征增强,降低噪声,提取特征 -
不同的卷积核可以提取不同的特征
特性:
-
权值共享,减少参数数量,并利用了图像目标的位置无关性 -
稀疏连接:输出的每个值只依赖于输入的部分值
1.9 池化层的作用
-
压缩特征图、提取主要特征,提高所提取特征的鲁棒性 -
降低模型的过拟合程度
1.10 池化层的反向传播机制
-
mean pool:池化层的每个像素的梯度平均分配给前一卷积层参与该位置像素计算的像素
-
max pool:池化层每个像素的梯度传给前一卷积层中得到该像素的像素,其它梯度为0
1.11 CNN在图像处理上为什么比DNN好呢?
-
CNN保留了位置信息 -
CNN保留了多通道的信息,DNN加权求和后使得通道信息损失掉 -
CNN的池化操作相当于把局部信息整合,突出显示
2. RNN相关面试题和参考回答
2.1 RNN、LSTM、GRU区别、优缺点
2.2 RNN为什么具有记忆功能
NN(神经网络)的前一个数据和后一个数据是独立的,因此不具有记忆能力
将RNN的公式展开,可以看到当前时刻的值除了取决于当前输入之外,还取决于前面的所有输入:
2.3 RNN为什么每个时间步都使用相同的W
-
参数共享减少参数量 -
参数共享可以使得网络变为动态结构,能扩展处理不同长度的样本 -
不同的参数不能在时间上共享不同序列长度和不同位置的统计强度
2.4 RNN正向传播和反向传播过程
正向传播
我们分别计算在 时的隐状态输出,预测输出和损失函数
反向传播
RNN的反向传播也称BPTT(backpropagation through time),第 时间步的误差直接与 有关,而 依赖于前面每一时间步的 和 , 。清楚这个依赖关系之后,按照链式求导法则计算损失函数 对参数 的梯度即可。
的梯度比较容易求:
之后求 和 的梯度:
2.5 RNN梯度消失原因、解决方法
RNN的BPTT求 的梯度时,可以看出梯度项中存在矩阵的连乘项 ,当使用sigmoid或者tanh激活函数时,我们知道,sigmoid的梯度值范围是[0,0.25],tanh的梯度范围是[0,1];当矩阵中的值小于1时,梯度值在反向传播过程中会呈指数级下降,趋于0,出现梯度消失问题。
解决方法一是更换RNN结构为LSTM或者GRU结构,二是使用relu激活函数,relu在小于0时梯度为0,大于0时梯度为1,不会产生梯度消失问题。
2.6 LSTM、GRU如何解决梯度消失问题
具体原因可以从反向传播过程中分析
2.7 LSTM的架构,各个门的作用和公式
网上有很多关于LSTM的介绍,所以此处略
2.8 为什么LSTM记忆时间长
因为LSTM增加了门控和细胞状态,细胞状态贯穿始终,类似传送带,信息在上面流动,通过遗忘门去除不必要的信息,通过更新门来增加信息。而RNN前面的信息则会随着时间步的推移,慢慢减少。
3. ResNet相关面试题和参考回答
3.1 ResNet为什么能解决梯度消失问题
残差网络的残差连接如图5所示,即前面某一层的隐层输出跨层作为某后一层的输入之一:
上式忽略激活函数relu,不过不影响我们的分析。 是 经过L层网络的映射结果,如果没有恒等连接 ,随着网络层数 的加深,梯度在反向传播过程中容易发生梯度消失问题,而有了恒等连接后,我们计算对x的梯度:
即使 ,第二项对x的梯度值等于1,避免梯度消失问题。
3.2 残差块为什么有用?
-
信息在深网络上传播会存在信息丢失、损耗问题,残差能保护信息的完整性 -
残差快的存在避免了过深的网络造成的梯度消失问题,从而可以增加网络深度提升模型性能 -
通过分析残差网络的梯度值,可以知道,当 时,相当于 没有学习能力,但是残差块的存在保证输出结果不会保证比输入结果更差(即更深的网络不会比更浅的网络性能差)
4 GNN相关面试题和参考回答
4.1 GCNGATGraphSAGE等主流的图神经网络的算法原理
略
4.2 DeepWalkNode2vecLine等主流图嵌入算法的原理
略
4.3 GNN的过程,中间的分解,每个变量的意义
问到分解变量的意义一般是问关于频域的GNN,基于频域的GNN总结起来就是三个步骤:傅里叶变换——>卷积——>反傅里叶变换
更具体的内容可以见这篇:
4.4 CNN和GNN的区别
两者的卷积目的都是一样的,即提取特征。CNN一般用于处理欧式空间中的规则数据,比如图像或视频,每个元素的邻居个数是固定的,所以可以使用同样尺寸的卷积核来进行卷积运算。
而图数据比如社交网络、蛋白质相互作用网络属于不规则的数据结构,不能在欧式空间中表示。图中每个节点的邻居个数是不固定的,所以无法使用同样尺寸的卷积核进行卷积计算。GNN一般使用基于频域和基于空域这两种卷积方式提取图的空间特征。
4.5 GCN能用于有向图吗?
GCN是基于频域的卷积方法,需要定义拉普拉斯矩阵,但是有向图的拉普拉斯矩阵没有明确的定义,所以GCN不能应用于有向图上。基于空域的模型可以用于有向图上。
4.6 GCN能用于很深的网络吗?
随着网络层数的加深,GCN的各个节点的嵌入表示趋于相同,即节点间的差异性降低了,出现过平滑现象,导致模型的效果下降。所以GCN不会设置很深的层数,一般不超过3~4层。
4.7 如何使得GCN更深?
GCN过深会出现梯度消失问题,导致过平滑现象。所以可以增加残差连接,避免梯度消失。
- END -
以上是关于面试篇——神经网络高频面试题(下)的主要内容,如果未能解决你的问题,请参考以下文章