卷积神经网络尺度敏感性


11

举个例子,假设我们基于一个人的照片建立一个年龄估计器。下面我们有两个穿着西装的人,但第一个显然比第二个年轻。


(来源:tinytux.com

有很多功能可以暗示这一点,例如面部结构。但是,最有说服力的功能是头部大小与身体大小比率


(来源:wikimedia.org

因此,假设我们已经训练了CNN回归来预测人的年龄。在我尝试过的许多年龄预测因素中,孩子的上述图像似乎使预测愚弄了他们以为他长大了,这是由于衣服的原因,并且可能是因为他们主要依靠面部:

我想知道香草CNN架构能很好地推断出头部与躯干的比例吗?

与能够在身体和头部上装上边界框的区域RCNN相比,香草CNN会始终表现得更差吗?

就在原始CNN全局变平之前(即在所有卷积之后),每个输出都有一个对应的接收场,应该具有规模感。我知道,更快的RCNN正是在此阶段通过提出边界框建议来利用这一点,以便所有先前的卷积滤波器自动训练到所有比例。

那么,我认为香草CNN应该能够推断出头部与躯干尺寸的比例?这是正确的吗?如果是这样,使用更快的RCNN框架来利用可能已经在检测人员方面接受过预训练的事实的唯一好处是吗?


1
您知道年龄校正剂在哪里出现故障吗?您为什么认为它的头部尺寸比例?您是否看过中间层的输出?
Aksakal

@Aksakal我认为他没有尝试训练CNN。据我了解,他一直在使用现有的Web服务进行测试:“在我尝试过的许多年龄预测因素中[..]”。
DeltaIV

Answers:


8

首先,感谢您提出了一个非常有趣的问题。

为了简短地回答,经过培训的香草卷积网络的2端到2端通常会根据照片对年龄进行错误分类,例如您发布的图像。其次,请注意,准确估计一个人的年龄几乎是不可能的任务1

与您提出的使用某些对象检测器(例如RCNN,Faster RCNN,YOLO或SSD)的方法的主要区别在于,您正在使用不同的信息来训练模型。CNN仅接受图像训练,并且需要找出所有必要的特征。它很可能会找到各种面部特征,但它也将取决于衣服以及场景特征(孩子可能经常在照片中带有一些玩具,成年人在办公环境中的可能性更大,等等)。这些功能对您的反例而言并不可靠。

另一方面,如果您训练网络以明确地将对象检测为“躯干”和“头部”,则您将提供额外的信息,这些对象对于任务很重要,从而简化了问题2

虽然检测头部和躯干然后评估边界框的大小比例的方法听起来很有趣,但我可以看到一些障碍:

  1. 获取数据:我不知道同时存在年龄和边界框的大型数据集的可用性。
  2. 不完整的视野:在大多数图像(例如,您的两个示例)中,人物并没有完整显示。您将不得不面对这样一个事实,即仅仅因为一部分人不在图像中,躯干边界框并不总是完美的,并且网将不得不猜测有多少部分丢失了(地面真相边界框将最可能无法捕获此信息)。另外,上述物体检测器并不总是正确地处理部分物体的预测。这可能会在模型中引入过多的噪声。
  3. 各种姿势:从正面和侧面观察的人的躯干比将有很大不同。
  4. 成人:该比例似乎可以很好地预测0-21岁之间的年龄,但是我不知道它如何帮助预测成人的年龄(我认为该比例在较高年龄段不会改变)。

所有这些问题表明,头对躯干比率方法也不能完美地起作用,尽管它对于您的特定反例可能更可靠。

我猜想执行此任务的最佳方法是:1)检测面部,2)仅根据面部作物预测年龄(删除可能引起误解的信息)。请注意,可以训练一些使用ROI池的类似R-CNN的体系结构来完成此端2端。


1即使使用非常复杂的医疗方法(可以说比人的照片提供的信息要多得多)也无法准确地做到这一点。有关更多信息,请参见Quora线程

2查看文章知识点:优化优化的先验信息的重要性示例,提供有关该任务的一些中间知识如何可以大大简化学习。


8

CNN太大了,无法回答这个问题。LeNet,AlexNet,ZFNet和VGG16的行为将与GoogLeNet完全不同,后者是专门为完成R-CNN的大部分工作而设计的,具有CNN架构(即使严格说来,Inception只是您可能会知道Inog的名字。 GoogLeNet所基于的基本单元(子网)。最后,ResNets的行为将有所不同。所有这些体系结构并不是为了对年龄类别进行分类,而是针对1000个ImageNet类进行构建的,其中不包含针对人类的年龄类别。一个可以使用转移学习(如果您有足够的训练图像)来训练上述广泛使用的训练模型之一,并查看其性能。但是,总的来说,尤其是较旧的体系结构(比如VGG16之前的版本)很难学习“全局功能”,这需要学习“ head”(已经是一个复杂的功能),“ torso”(另一个复杂的功能)及其相关知识。比率(这也要求这两个特征具有一定的空间关系)。Capsule Networks应该能够做到这种事情。

卷积网络的诞生恰恰相反:对局部特征敏感,对它们的相对位置/规模相对不敏感。一个好的卷积网应该识别“白猫”,无论是特写镜头还是美国镜头。将卷积层(对局部特征敏感)与池化层(消除对比例尺变化或图像平移的部分敏感性)相结合,可以为您提供一种架构,其最基本的形式并不适合学习空间类型您要寻找的对象之间的关系。在某个地方有一个示例(但我现在找不到了),在将猫图像分成各种矩形的非重叠图块并以随机顺序放置在一起后,CNN会继续将其标识为cat。这表明CNN对局部特征(纹理或类似的东西)比对高级特征之间的空间关系更敏感。另请参见Capsule网络论文以对此进行一些讨论。欣顿还在有关卷积网络限制的视频中展示了一个例子。

我的大胆猜测是,最近的一种架构完全有能力(有足够的数据)辨别男人和孩子,但这并不是因为“头”和“躯干”等高级特征之间的度量关系存在“阈值” 。它将学习一些统计规律性,这可能是人类完全不知道的,它将训练集中的成人图像与儿童图像分开。


非常感谢您的回答,但是,我很难同意。RCNN体系结构具有与对象卷积网络(例如VGG和Resnet)基本相同的过滤器结构。并且由于RCNN可以检测到比例尺和相对位置,因此VGG和Resnet也应该能够检测到比例尺。但是,RCNN体系结构依靠盒装提案,每个盒装提案可产生数千个提案,然后评估每个盒装提案。因此,如果我至少结合了其中的一些提议,那么香草CNN应该可以更好地检测出规模。我只是不确定是否有必要这样做。
亚历克斯R.18年

RCNN不是CNN。不仅您会错过对边界框的选择性搜索,而且会错过线性SVM和边界框回归器阶段。此外,AlexAlex(在原始RCNN论文中使用的CNN)或VGG的规模检测能力与GoogLeNet或ResNet的检测能力之间也存在很大差异:GoogLeNet的精确开发是为了实现RCNN的功能。我认为GoogLeNet和ResNet都可以对年龄进行分类,但是无法通过使用对我们有意义的功能(头部与躯干比例)或找到一些统计数字来知道他们是否可以做到这一点1 /
DeltaIV

2 /人类永远不会注意到的规律性。我建议您尝试一下,但是不幸的是,仅建立图像数据库本身就是一个研究项目(除非您在时装公司工作)。
DeltaIV

1
对于造成混乱,我深表歉意。我知道那里有20种不同的RCNN架构,每一种都声称其他的已经过时。
亚历克斯R.18年

1
blog.piekniewski.info/2016/12/29/can-a-deep-net-see-a-cat另外,还有一个不同的问题,但仍然与纹理匹配有关,并且来自倍受尊敬的研究人员arxiv.org/pdf/ 1703.06857
DeltaIV

0

好吧,这完全取决于您的数据集的构造方式。根据我的经验,神经网络倾向于最简单的解释。从服装推断年龄实际上比使用头对身体的比例简单。如果您可以考虑到这一点来扩展数据集,那么您的CNN应该会按预期工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.