深度卷积网络自带数数的BUFF?

如今有许多疾病的诊断,需要依据病灶的数目来判断患有疾病的严重程度。而目前的CNN网络主要解决的是疾病的分类分级问题;病灶的定位分割问题等,但对于病灶数量直接数数的网络结构,目前还没有很多的文献进行相关尝试。

正好寻找看有没有一些利用深度学习数数的网络结构,尝试进行重现与迁移至不同的病灶上。碰巧看到了机器之心的推送,其主要介绍了一篇发表在《Science Advances》上的文章:《Number detectors spontaneously emerge in a deep neural network designed for visual object recognition》。(虽然看完文章之后发现,并没有提供一个可以用来数数的网络结构,但还是学习了大佬们思考问题的方法)

先放上机器之心的原文解读:《不用挨个数数,DNN也能「一眼看出」目标数量》,其将文章的主体思想与脉络说得非常的详细了,但是对网络以及实现的细节部分没有进行过多的说明。因此在本篇博客中,主要补充一些自己对文章细节部分的理解。

后面部分图片还参考了:An AI Has Spontaneously Developed a Human-Like ‘Sense’ For Numbers.


文章概述与方法细节

文章中主要说明了我们使用的深度卷积网络,就比如下面图中最简单的一个用于做分类的卷积网络结构(卷积+池化组成):只要输入一张图像,便能够对这张图像作出分类判断。
深度卷积网络自带数数的BUFF?
我们用Image-Net数据集来训练网络,将训练好的网络去掉最后的全连接层,并将最后一层卷积层拉直,具体网络结构如下图所示,拉直的卷积层为紫色框框住的区域。
深度卷积网络自带数数的BUFF?
由于feature map为7×77\times7,因此,所有节点数为:7×7×768=376327\times7\times768=37632个节点个数。

这时,我们通过改变输入图像点的数量、刺激类型,来观测不同节点的值(每种类型有7张图,这样一共测试图片就如文中所述的7×16×3=3367\times16\times3=336张),然后使用对每个节点进行 two-way ANOVA 检验,将p值小于0.01的节点进行保留,最后分析这些保留节点,此时保留下来的节点约占9.6%,也就是3601个。

下图为16种点的数量(1, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30),以及三种不同刺激类型(a. 点半径相对一致;b. 总面积相等;c. 随机形状与大小)
深度卷积网络自带数数的BUFF?
保留下来的3601个节点中,每个点数量的图都会有一些神经网络显著节点,针对16种不同点数量的图,可以划分为16种情况的节点,每一种情况的节点数如***意到,每一种情况输入时,所有节点都会有值,这3601个节点对应到16种情形,然后每次输入不同的图,其神经网络节点归一化的平均值也在下图展示出来,数量选择单元的**值表现出清晰的调谐模式(tuning pattern),对应值高,两边逐步降低):

深度卷积网络自带数数的BUFF?
通过计算16类图中,每个类别的**节点数,可以得到下图D中的图,得到一个十分有意思的发现,其与E图表现出高度的相似。而E图恰恰是猴子大脑做实验得出的**神经元的数目。这表现出我们的神经网络与真实生物大脑思考问题的相似性,也间接说明了神经网络的正确性。

深度卷积网络自带数数的BUFF?


思考

如果文中仅仅只是说明了我们的卷积神经网络的内在结构,能够自发产生数量感,这或许只是一篇比较普通的论文,因为我们可以直接使用卷积神经网络进行图像的分割或目标检测,然后直接数连通域的个数或检测框的个数,就能达到数数的目的。

那么可以这样理解:前几层卷积网络的卷积池化来做分割或检测,后面几层用来数数,也可体现出数量感

但这篇文章牛就牛在,使用了之前对猴子进行测试的模式,对卷积神经网络进行了相同的测试,并且表现出了极高的相似度。这也暗示着,我们或许正走在通往更全面、更人性化的人工智能的正确道路上。把这种学习应用到其他任务中,也许把它应用到一段时间内发生的信号上,而不是图像中的像素上,可能会产生更像人类的机器。

随着我们不断发现更多有关构建人工学习技术的知识,并找到理解生物体大脑的新方法,我们解开了更多有关智能、适应性行为的谜团。我们还有很长的路要走,还有很多其他方面我们需要探索,但很明显,观察世界并从经验中得出其结构的能力是使人类适应环境的关键基础所在。它也将是任何人工智能系统的必要组成部分,有潜力完成人类能够完成的各种复杂任务。我们能够相信,也有理由相信,AI依旧还具有着极其广阔的发展前景。