现在的CNN还差很多,未来满是变数。
你看,现在的应用领域也无非merely就这么几类----分类识别,目标检测(定位+识别),对象分割......,但是人的视觉可不仅仅这么几个功能啊!是吧。
先说说CNN中的C,convolution,卷积。从1998年lecun的LEnet到后来alexnet,vgg16,googlenet以及何恺明老师的resnet都是在卷积的基础上搞的。卷积是什么,就是用一个抽象出某种特定特征的矩阵去部分连接乘以我们的图像矩阵,然后输出一个矩阵,输出的矩阵则包含了图像对于某一类特征的情况。filter例如最开始的3*3VED/HED/SOBEL/schorr,当然不得不说最开始发明这个提出这种想法的前辈真的很棒,后来针对这种特征提取方法做改善有了padding。因为当时发现一个问题,我图片的边上的信息提取不全面不充分,然后有人想了个办法,让它也成为内部区域不就完事了。给原图补一圈边,再乘以filter,这就是padding的由来。后来我们常用的padding系数等于2啊3啊往外扩充几条像素,全0填充还是怎么填充都是在这基础上说的。
POOLING池化。就是为了解决图像矩阵数据太大了想出来的一种在基本保存原图信息同时降低图像数据量的简单易操作方法。最开始大家都用avragePooling,可能是当时觉得这样比较好,后来有人用maxPooling,找方块内最大值来代表这个方块的信息,好像是LEnet用的这种方法取得了巨大成功,然后大家就都开始改用maxPOOLING。
convolution和pooling绝对不是唯一的方法,跟他们实现相同目的的更好的方法肯定还有,但是有待开发,如果在这突破了,那又可以开启一个新的时代了。
应用领域的狭窄也有待突破,我们可以做更多的功能,别管有没有前人做过,去试试吧。
另外,我学了RL后感觉RL的思想可以拿到CV领域,改造CNN,这会不会也是一个突破点呢?