深度学习100问
1、为什么倾向于使用3*3 小卷积核堆叠代替大卷积核
- 3x3 是最小的能够捕获像素八邻域信息的尺寸。
- 两个 3x3 的堆叠卷基层的有限感受野是 5x5 ;三个 3x3 的堆叠卷基层的感受野是7x7,故可以通过小尺寸卷积层的堆叠替代大尺寸卷积层,并且感受野大小不变。
- 多个 3x3 的卷基层比一个大尺寸 filter卷基层有更多的非线性(更多层的非线性函数),使得判决函数更加具有判决性。(we incorporate three non-linearrectification layers instead of a single one, which makes the decision function more discriminative)
- 多个 3x3的卷积层比一个大尺寸的 filter 有更少的参数,假设卷基层的输入和输出的特征图大小相同为 C,那么三个 3x3 的卷积层参数个数 3x(3x3xCxC)=27C ^2;一个7x7的卷积层参数为49C ^2;所以可以把三个3x3的filter看成是一个7x7 filter的分解。
2个3x3的感受野为什么等效于1个5*5?
例:
网络输入28x28
3x3的核
第一层3x3卷积:(28-3)/1+1=26
第二层3x3卷积:(26-3)/1+1=24
5x5的核
第一层5x5卷积:(28-5)/1+1=24
2、caffe底层是如何实现卷积的?
3、感受野的计算
两层卷积层:stride*(kernel_size-1)+kernel_size
两层55的卷积核,步长为2,感受野多大?
2(5-1)+5 = 13
两层33的卷积核,步长为1,感受野多大?
1(3-1)+3 = 5
4、BatchNormalization的深入理解
5、简述应该从哪些方向思考和解决深度学习中出现的over fitting问题?
(1)选择合适的损失函数
神经网络的损失函数是非凸的,有多个局部最低点,目标是找到一个可用的最低点。非凸函数是凸凹不平的,但是不同的损失函数凸凹起伏的程度不同,例如下述的平方损失和交叉熵损失,后者起伏更大,且后者更容易找到一个可用的最低点,从而达到优化的目的。
Square Error(平方损失)
Cross Entropy(交叉熵损失)
(2)选择合适的Mini-batch size
采用合适的Mini-batch 进行学习,一方面可以减少计算量,一方面有助于跳出局部最优点。batch取太大会陷入局部最小值,batch取太小会抖动厉害,选择合适的batch size 很重要。
(3)选择合适的激活函数
6、为什么分类用交叉熵而不用MSE?
参考博客1:https://blog.csdn.net/scythe666/article/details/78393821
参考博客2:https://blog.csdn.net/liuweiyuxiang/article/details/90707375
7、DenseNet和ResNet的对比
8、为什么深度学习中的图像分割要先编码再解码?
参考文章1:https://www.zhihu.com/question/322191738
9、深入理解Regularization(正则化)
参考博客:https://blog.csdn.net/TeFuirnever/article/details/100670119
10、深入理解Batch Normalization(批归一化)
参考博客1:https://www.cnblogs.com/guoyaohua/p/8724433.html
参考博客2:https://www.jianshu.com/p/a9a4ddc2fcc4
参考博客3:https://blog.csdn.net/weixin_42398658/article/details/84560411