前言
记录实习面试经历,有关深度学习在医学图像处理方面的。
电话一面
-
看了项目,为什么使用U-net网络?好处是什么?与FCN网络相比,有什么不同?
回答:U-net的跳跃连接式结构,融合全局和局部信息,多尺度信息;针对医学图像处理(FCN待补充)
-
项目中为什么使用空洞卷积?好处是?
回答:扩大感受野,更好的结合多尺度信息;减少参数,降低训练时间
-
训练中出现过拟合现象的原因?解决的方法?
原因:
- 数据集不够
- 参数太多,模型过于复杂,容易过拟合
- 权值学习迭代次数足够多,拟合了训练数据中的噪声和训练样例中没有代表性的特征
解决办法:数据扩增正则化和dropout等
总结:
- 交叉验证法
- 减少特征
- 正则化
- 权值衰减
- 验证数据
-
分类相关框架:VGGNet的卷积核尺寸是多少?max pooling使用的尺寸?为什么使用$3\times3$的尺寸?
回答:用两个$3\times3$的尺寸卷积核可以相当一个$5\times5$卷积核,并且能够大量减少参数。
面试官进一步让我计算一下$5\times5$卷积核卷积,输入时RGB三通道图像,输出channel为2,计算一共需要多少参数。其中,$25\times3\times2=150$
-
是否了解RESNet的residual block?(不太了解😢)
-
是否了解检测的框架?Faster-RCNN与yolo相比哪个更快?两者区别?one-stage与two-stage检测?(答得不太好)
-
dropout具体的实现原理?随机的还是固定?对于训练过程和测试过程如何控制dropout?
-
dropout是针对sample还是batch?
由于我之前回答dropout原理上面类似于ensemble learning,面试官提示我,可以联系起来,应该是在sample上面dropout?
-
项目中使用的数据库哪些?如何获取的标签?评价指标用的哪些?具体指明?了解DICE吗?
回答:准确性,特异性,敏感性,AUC(还好做了笔记,要不公式真的会忘啊)
-
是否了解BN层?(没太使用)
-
项目中的测试结果有多少?如何牺牲一部分特异性来提高敏感性?医学上的意义更大?
面试官提示我,可以考虑血管像素在图像总像素的比例,进行正负样本的均衡化。
现场二面
首先问了项目细节(主要是图像分割)
有关像素分类的图像分割方法与传统块的分割有什么区别?像素分类的方法的优点?(减少复杂度,块滑动的参数过大)
有关分割网络框架
- 了解其他的分割网络吗?
- FCN网络为什么用全卷积层代替全连接层?
- SegNet的结构原理?去掉跳跃连接为什么会效果好?适用范围?
- 金字塔分割网络(FPN)?
- Deeplab的改进?Deeplab V3结构原理?Deeplab V3 plus改进?(有关加速?Xception等,没答上来)
有关分类网络框架
-
了解常见的分类网络吗?
-
Alexnet和VGGnet的区别?(主要答了卷积核尺寸和池化)
-
了解Inception网络吗?(待学习)
-
了解Densenet网络吗?(没会)
-
了解Resnet网络吗?残差块的原理解释?为什么残差块可以解决梯度消失的问题?
经过面试官提示,从反向传播角度考虑。回答,$F(x)+x$ 求导以后是$g(x)+1$ ,常数项的存在使得梯度不为0。
-
了解ResNext网络吗?(不了解)
-
$1\times 1$ 的卷积核有什么作用?
回答:一方面有降维的作用(其实还有升维作用,降低输入和输出的参数);卷积相当于线性变换,不改变感受野,依靠RELU激活函数进行非线性化。
-
了解几种常见池化方法?
-
global average pooling的原理?(其实就是对整个feature map取平均,映射到一个特征点)
有关检测的框架
-
了解常见的检测网络吗?
-
faster-rcnn算法原理?two-stage和one-stage?rpn网络?Roi pooling?用到的损失函数?
回答:分类损失和框的回归损失。(分类用到交叉熵损失,回归是预测框与真实框的重叠面积)
-
损失函数有哪些?(平方差,指数,交叉熵)交叉熵损失函数的公式?针对多样本多像素?(对每个像素求损失,加和再取平均)
-
YOLO和SSD算法了解吗?为什么速度快?
Python相关
- 遍历一个列表的元素?
- list和元组哪个可变?(list的append)
- 输出列表序号索引内容?(提示:enumerate()函数)
- numpy,pandas,scikit-image,opencv里面处理图像的函数?
基本上总结这些了,小公司的offer也不好拿啊😢