能否直接使用深度学习的特征?

我们知道使用深度学习可以很精确的分类物体,也可以把这种分类能力用在机器视觉的检测上面,尤其当干扰比较多时,把不同的干扰做成几类,缺陷做成一类,让系统学习,分类效果很理想,不过遇到一个问题,因为干扰的种类千变万化,例如笔迹,可能有各种文字,符号,总不能把所有的都做成样本吧,其他的脏污干扰也是各式各样的。
所以系统过一段时间以后,就不稳定了,因为新的干扰出来,系统识别不了,当成了缺陷,造成误报。
我想,怎样能把深度学习学习到的缺陷的特征提取出来,只是目标缺陷的特征,然后用这些特征建立一个标准模板,再检测时只要计算新目标的特征与模板的相似度就可以了。
不知道谁有知道怎么做,或者有任何想法,都欢迎来答。
已邀请:

PangDeGui - 人脸、主动学习、职场新人

赞同来自: mhaoyang

1.如果确实是特征没学好:系统不能用,说明你学习到的不是或不完全是“缺陷”的特征。
 
举个例子,你把苹果和梨子的图片放进去学习,然后发现网络能分辨了,结果有一天,来个一个生长时光照不足的白色的苹果,发现系统居然认成了梨子。其实是因为系统学到的是通过颜色分辨而不是真正的苹果的特征。
 
就像例子中,你学到的“缺陷”特征只是部分或者表象,比如黑乎乎的颜色,这和之后的来到的污渍特征相近,所以造成了干扰。
 
解决方法就是,增加样本多样性,或者换更好的网络等等。
 
2.可能你误解了检测识别问题中神经网络起的作用
其实在图像识别中,最终用到的神经网络输出不是最后那个softmax的分类类别号,而是之前网络最后一层输出的N维特征向量。
 
这个N维特征向量两两之间的余弦相似度即可用于判断两个样本是否相似,当然还可用其他更高级的分类器,甚至端到端分类。
 
可以理解为,神经网络是个比传统人工设计更牛b的特征提取器。
 
这个向量有没有能力区分不在训练集中的样本呢?应该是有的。
水平有限,不知道详细论证的出处。但在center loss的相关解释中看到过,学习训练集好像是学习了一个箱子(真实数据空间)里的球(训练样本),保证这些球不相交就是分开了两个类,在让两个球远一点,中间就可以空出放第三个球的空间。这些空出的空间就是给其他未训练过的实例准备的。

要回复问题请先登录注册