请问怎样用CNN对不同位置,角度,大小的 圆,三角形与矩形进行检测与分类( 二 )

一个典型的鱼眼镜头照片
其实,即便是由人工选出的 ImageNet,其内部图像在物体位置上也存在很多差异,所以神经网络为何能处理的很好?部分奥秘就是在训练模型过程中,通常会向输入中添加人工制造的偏移,让神经网络必须学习如何处理这些差异。
在每张图像输入神经网络之间,它会被随机裁切。由于所有的输入都会压缩成标准尺寸(一般为 200 x 200 或 300 x 300),所以这就能让每张图像内的物体的位置和大小具有了随机性,而且有些物体部分还会被剪切掉。神经网络依然会根据处理图像的表现得到“奖赏”或“惩罚”,所以为了能表现良好,不管这些差异如何,它都必须能正确猜测出来。这就解释了为何神经网络能学习处理位置差异问题,但是怎么处理的呢?
要想深入讲解这个问题,我不得不说点口口相传的说法和类比。虽然没有专门的研究支持我下面的解释,但在我个人的试验以及同其他开发者的探讨中效果不错,大家也都能接受。
自从开创性的神经网络 AlexNet 问世以来,CNN 的工作方式就是用一系列连续的网络层来传输数据,最终完成图像分类。我们将最开始的层看作边缘检测器,它们负责查看非常基本的像素模式,然后每个后续的层会将得到的像素模式作为输入,猜测更高级别的模式,如此向后推进,随着网络越来越深,处理的像素模式层次也越来越高。我们来看一个典型的 CNN 的第一层的过滤器,很容易能直观感受到:
上图中展示的就是每个过滤器正在寻找的细小像素模式。有些是不同方向的边缘部分,另外一些是颜色或边边角角。遗憾的是,我们这里无法简明地可视化出靠后的网络层,如果你想深入了解这个话题,可以看看 Jason Yosinski 等人提供的不错的资源:
http://yosinski.com/deepvis
我们用下图来解释这其中涉及的概念:
这里想要展示的是,第一个网络层正在寻找图像中非常简单的像素模式,比如水平边缘、角落和纯色块。这和上面 CaffeNet 示意图中展示的过滤器是相同的。过滤器会遍历输入图像,然后输出一张热度图,高亮显示每个匹配的模式。
这里比较难理解的地方是第二层所发生的事情。
第一层中每个简单的过滤器所生成的热度图会分别输入到该激活层中的通道中,所以第二层的输入通常有超过一百个通道,而不是一般图像的三四个通道。第二层所做的就是在这些热度图混合后的图像中寻找更复杂的模式。以我们开头所示的图像为例,我们想识别出太阳图案的一个花瓣。我们知道这样一个花瓣图案一端有一个尖角,旁边就是一条直线,中心部位为黄色。这些特征中的每个特征在输入激活层中都会表示为一个通道,第二层中负责寻找“朝左花瓣”的过滤器就会寻找图像中同时具备这三个通道的部分。而在图像中只具有其中一个或两个通道的部分,不会有输出,而同时具备三个通道的部分,第二层会给出呈高度激活状态的输出。
和第一层一样,第二层中也有很多过滤器,你可以将每个过滤器看作表示为一个高级概念,比如“花瓣朝上”,“花瓣朝右”等等。这里将其可视化会困难得多,但是会得到一个有很多通道的激活层,每个通道表示一个高级概念。
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 银行高管的薪酬结构图表最新的,请问在哪里可以收集
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 在上海陆家嘴附近工作,请问去哪边租房会比较好
- 坐标合肥,请问在哪里能捕捉到程序员这种生物他们大都出现在哪里呢
