卷积神经网络如何运用到图片分类问题
感受野 Receptive Field
步长Stride
填充Padding
参数共享share parameter
最大池化MaxPooling
CNN全过程
仅个人理解学习
引言
CNN卷积神经网络最初主要是用于计算机视觉和图像处理中,比如图像分类:
![](https://img-blog.csdnimg.cn/img_convert/f6c27d231a5929dd87c448074aa1fb36.webp?x-oss-process=image/format,png)
最终的分类数绝对维度:
![](https://img-blog.csdnimg.cn/img_convert/2f63c9617538350b0401db25e381c427.jpeg)
在模型中交叉熵的使用:最终通过概率分布求得每个类的概率值,最大值所在类作为最终的输出。
![](https://img-blog.csdnimg.cn/img_convert/7cc85c7a5fd1bfdbf214f1299909a304.jpeg)
图片组成
图片一般是有RGB组成的,通常是3维:(height, width,channels)。
![](https://img-blog.csdnimg.cn/img_convert/9e57d6ce819959acdb6a515d83a4e53a.webp?x-oss-process=image/format,png)
在喂入卷积神经网络之前需要将3维的向量拉直,变成一维向量(flatten操作):
![](https://img-blog.csdnimg.cn/img_convert/b24327dc02dfc5e0adf5bc3cc1f72396.webp?x-oss-process=image/format,png)
拉直之后喂入全连接层:
![](https://img-blog.csdnimg.cn/img_convert/1f610c7c5df9ffcedd7ed23fba08a270.webp?x-oss-process=image/format,png)
问题1:如果隐藏层有1000个神经元,每个样本的输入是100*100*3,仅仅单层的总weights数是。参数增加的时候,模型表达能力更强,但是也增加了模型过拟合overfitting的风险。
在实际处理中,每个神经元(Neuron)不必和输入input的每个维度都有一个权重weight,也就是说部分维度可忽略。
图像识别:找准突出点Pattern
在一张图片中我们识别出几个特殊点(Pattern)就能够对这个进行判断,将它归属于某个类,而不需要扫描整张图片。
案例中识别鸟嘴、鸟爪、鸟眼睛。一般人类也是抓住物件的重要来进行判断
![](https://img-blog.csdnimg.cn/img_convert/e53639fa6662c0bbb4de6846ea7c55d5.webp?x-oss-process=image/format,png)