关于卷积神经网络的一点总结

对CNN写一点总结,好记性不如烂笔头!

1. 对于神经网络而言,层数越多参数量就越大,则需要更多的数据来防止过拟合,而CNN具有权值共享、稀疏连接的特点,有效的减少了参数量防止过拟合。

2. 卷积核(kernal)也可称作过滤器(filter)

3. 相比图像中的卷积计算,深度卷积神经网络就是把kernal当作参数来训练

4. 如果只使用卷积操作,图像在卷积后size会缩小,使用same padding在原图周围填0,可以保持卷积后图像size不变

5. kernal通常是奇数的原因:奇数方便padding、奇数有中心点方便滑动

6. 计算卷积后Feature map尺寸的公式:size = (n+2p-f)/s +1

7. Feature map的深度只和kernal的数量有关,和原图的深度无关

8. CNN的参数量只和kernal的size及数量有关,和图片的size无关

9. pooling有很多种,现在常用max pooling,且pooling layer没有参数,只有超参,一般也不用padding

10.CNN的特点:权值共享(一个kernal的参数能用于全图)、稀疏连接(Feature map中一个值只和原图f*f个值相关)

11. CNN有天生的平移不变性,但是没有天生的尺度不变性和旋转不变性(数据增强后训练获得)

12. 1*1的kernal能做什么?可以压缩深度(channel)、相当于一个全连接层

还有一些必备知识点,只做记录不详细写了

13. 激活函数的求导

14. 交叉熵的求导

15. 梯度下降的计算过程,包含链式求导法则

16.写代码少用for循环,提升代码速度

17. 少用(5,)这样的维度,用reshape修正,多用assert来检验维度是否正确

你可能感兴趣的:(编程学习)