1. 为什么要用 CNN?普通神经网络有什么问题?
想象你是一个小学生,老师给你一张图片,让你判断上面是不是一只猫。
你可能会这样做:
- 看到耳朵,可能觉得像猫。
- 看到胡须,可能更像猫。
- 看到四条腿,再加点自信,应该是猫了!
但如果老师给你一张完全打乱的猫的像素点(就像普通神经网络展开成一维向量的方式),你还能认出来吗?
—— 当然不行! 因为你失去了「位置」的信息,猫的耳朵、鼻子、胡须都变成了无序的数据,你根本不知道谁在哪。
普通神经网络(MLP)的最大问题:
- 它不考虑像素之间的空间关系,而图像恰恰最重要的就是位置关系!
- 计算量爆炸,一张 100x100 的图片有 10,000 个像素,连接到 1,000 个神经元就有 1,000 万个参数,训练太慢!
所以,我们需要 CNN,它能保留空间结构,同时减少计算量。
2. CNN 的核心思想——局部感知和权重共享
CNN 解决问题的方式就像人类识别事物的方式:
- 我们不会一眼看所有像素,而是先看局部,再组合整体。
- 看到「三