面试问题总结——深度学习
-
卷积如何加速?
img2col和winograd算法。img2col将卷积转化为矩阵乘,通过重排内存,用空间换时间。wingrad是考虑到卷积运算的卷积核固定,通过算法降低计算量提高效率。 -
卷积和反卷积的原理
卷积就是正常的滑窗求和计算输出,在步长大于1时会降低输入特征图分辨率。反卷积也就是转置卷积,主要用于上采样输入特征图的分辨率,而且相比于直接无参的插值方式,反卷积拥有可学习的卷积核参数
- Dropout层的原理和用法
dropout主要用于防止模型过拟合,是在训练过程中随机剪短某些神经元连接,以降低模型对某些连接产生强依赖,从而提高模型对各种特征的适应性。
Dropout只在训练阶段生效,在test节点不需要。但是为了保持不进行dropout时候网络输出的值与进行dropout时,网络输出值的期望相同。需要进行输出值的比例缩放。例如pytorch中如果设置dropout(0.9),那么在train模式下,输出的值会直接除以0.1。在test的时候,就会直接关闭dropout。
-
ResNet的优缺点。
用残差连接的方式解决了深层网络训练存在的梯度消失问题。让浅层特征可以直接与深层相连。 -
Inception模型结构
inception系列结构在一定程度上和残差连接类似,通过设置较宽的不同卷积核类型的通路,提高模型的特征提取能力 -
SENet模型
通道注意力和空间注意力。通过输入提取不同通道或空间位置的权重,然后再给输入加权,从而激活重要特征、抑制不重要的特征 -
DenseNet模型
每一层的输入都来自于它前面所有层的特征图,每一层的输出均会直接连接到它后面所有层的输入 -
常用数据增强手段
常用的几何变换方法:翻转,旋转,裁剪,缩放,平移,抖动
像素变换方法:加椒盐噪声,高斯噪声,进行高斯模糊,调节亮度饱和度等等。
其他:cutOut(随机擦除)、Mixup(数据融合)DropBlock -
ROIPooling和ROIAlign的区别。