1、为什么需要CNN(卷积神经网络)?
CNN其实是一种比FNN(全连接神经网络)要简单的网络结构,也就是说CNN的参数要比FNN少很多。那么,为什么需要这种网络结构呢?假如我们现在要识别一张图片中的一只飞鸟,FNN采用整体策略,把一整只鸟当做目标pattern去识别。CNN呢?CNN在一开始学习的时候就把鸟这个大的目标pattern分成很多小pattern,比如嘴、翅膀、脖子、爪子等,甚至更小的pattern,比如嘴的某个细节、爪子的某个可区分细节等,学习到这些小pattern之后,综合起来就构成了鸟这个大pattern。
另外,这只飞鸟可能存在于一张图片的任何位置,它有两只长得几乎相同的爪子,它的羽毛有很多也是相似的。这就是说,如果用FNN的话,我们可能会用大量的参数学习到很多冗余的pattern。CNN呢?CNN用最少的参数学习这只飞鸟的必要特征,而且空间无关,这也是CNN的价值之一。
还有,我们的目标是识别出这只鸟,只要它轮廓完整就好,所以并不在乎这只鸟的大小,鸟损失一部分细节