Peterson, J. C., Abbott, J. T., & Griffiths, T. L. (2016). Adapting deep network features to capture psychological representations. arXiv preprint arXiv:1608.02164.
DNN在很多物体识别的任务上,绩效甚至已经超过了人类,一部分原因可能是由于它能够对高维的输入进行特征提取,这也是人所具有的重要能力(Austerweil & Griffiths, 2013)。
很多认知科学家开始研究,DNN学到的这些特征和人是不是一样呢?DNN的学习能否用来预测人的行为结果呢?(Dubey, Peterson, Khosla, Yang, & Ghanem, 2015; Lake, Zaremba, Fergus, & Gureckis, 2015)
DNN的识别正确率固然很高,但是它和人特征提取的过程到底是不是相似的,还存在争议。至少我们在一些例子中看到它和人类的显著差异,比如说对于识别图像的DNN,如果把输入的图片做一点点变形,它就会做出错得离谱的判断(Szegedy et al., 2013),而人对图像的识别是可以对抗一些简单的变形和干扰的。
了解人和DNN在特征提取上的差异,一方面可能可以对AI算法有所启发,一方面也可以推进人脑算法的研究。
这个工作是通过DNN和人分别去做一个“相似度评分”的任务,来比较DNN和人在这个任务上的表现差异。作者还根据人的评分结果,给DNN加上了一个权值矫正的过滤器,让DNN的表现更像人类的结果。
CNN
CNN是做图像识别一个突破性的网络结构,典型网络AlexNet (Krizhevsky, Sutskever, & Hinton, 2012)当你大大提高了ImageNet的识别正确率。2015年微软的150层网络,比非专业的人类正确率都高5.1%。
除了识别结果正确率高,CNN的中间层还可以显示网络对特征的提取。认知科学家利用这个特点来对人类行为进行预测。(看一下这两篇具体的,看不懂这个人写的描述)(Dubey, Peterson, Khosla, Yang, & Ghanem, 2015; Lake, Zaremba, Fergus, & Gureckis, 2015)
神经科学家也用神经网络成功的预测一下视觉皮层的神经活动。但是这并不能表示神经网络和人的神经系统是类似的。Mur et al. (2013)做了个跟这篇文章类似的工作,也是有些东西不能预测,看不懂,看完回来补充。
本文的研究逻辑
如何测量DNN的特征提取和人的心理表征是否类似呢?因为人的心理表征是没法直接测量的,我们只能用间接的指标去评估。对于人,本文采用了相似判断的行为学任务来测量人认为两副图片是否相似;对于DNN,则是把两副输入图片产生的特征向量做内积来评价相似性。然后我们把人和DNN对相似性的评估做一个相关性分析,来判断这两者是否接近。
实验材料 120张彩色的动物图片,图片都被裁剪成300*300的大小,只留下动物的头或者身子。

行为学实验流程 用线上的Amazon Mechanical Turk发布的测试,收集人对两张图片相似性的评分。每个被试要对四对动物图片(一个set)的相似性进行打分(0-10),每个set有2美分的报酬。在做打分之前,会展示8个图片样例,防止最初几张图片的评分偏差。每个被试想做多少个set都可以。一共有7140个图对,每个图对都会有10个不同被试的打分,最后总共是有71400次评分,共有209个不同的被试参与。每个图对的10个评分进行平均,最后120张图片得到一个120*120的相似性矩阵。(算了一下,大概花了人民币2500元的样子)
特征提取 选取了3个现成的CNN,用Caffe写的,并且都是在ImageNet上面预训练好的:
- CaffeNet (based on original AlexNet) 7层
- VGG16 (Simonyan & Zisserman, 2014) 16层
- GoogLeNet (Szegedy et al., 2014) 22层
将图片输入一个网络,我们会得到每一层的value,我们选取倒数第二层(也就是决定分类的那一层的前一层)来代表网络学到的特征。比如对于前两个网络,这一层就是一个4096维的全连接层,而GoogleNet的这一层是1000维的平均池化层。
另外,我们还提取了图片的Histograms of Oriented Gradients (HOG)和Scale-Invariant Feature Transform (SIFT),因为这些指标反映了传统机器学习算法对图像特征的识别。
实验结果

- DNN明显比传统的好
- 并不完全是层数越深越好
Multi-dimensional scaling (MDS) 的结果如下图,虽然类内的图片距离是要更近一些,但是它没有表现出类间的距离更远的特点。

算法修改
我们修改模型的目标是,让DNN 评判的相似度矩阵和人评判的相似度矩阵
尽可能的接近。我们知道
是在亚马逊网站上人的评分给出来的,而
是算出来的,根据之前描述的方法,对每个
中的元素
,表示的是object
和object
直接的相似度,它是由两个object倒数第二层的向量做内积得到的:
我们写成矩阵形式就是:
其中是特征矩阵,也就是它的每一行(或者每一列)是我们一个object对应的那倒数第二层的向量,这样它乘上它的转置就会让每个元素是上面那个求和的结果。那么,我可以需要找到一个线性变化
,使得这个
乘上
,即线性变换后的
更加接近
,也就是求解下式中的
:
又因为W只是对每两个object对应的特征做scaling,所以是一个对角阵。(如果非对角线的元素非0,会使得不同特征维度之间有互相影响),把每个元素写出来也就是求解下式中的:
我们知道虽然方程已经写出来了,但它不一定是有唯一解的,而且由于矩阵很大,常用的方法是去求最优的近似解。这里用到凸优化(还不知道是啥)的方法求这个的近似解,以尽可能保证这个解不要在数据上过拟合。
优化结果
根据上述方法对倒数第二层进行优化,也就是把DNN原本给出的倒数第二层再乘上这个解出来的,得到的相关系数如下:

可以看到,相关程度明显提高,但是即使是拿用户的数据去算出来的这个,也不能保证非常高的相关度。(这里要问,人和人之间的相关能达到多少?)
另一个有趣的结果是,作者还对比了其他网络中间层和人的相关度,如下图所示。可以看到虽然相关度和网络的深度没有直接的关系,但是卷积层明显比全连接层要低,说明人的相似性判断不是单纯基于像素级的feature的。(这里还是有点问题,这个0.69的柱子是你做过reweighted之后的结果,当然接近了,前面都没做过呀。)

讨论
机器和人的选择有结构性的差异,类似研究 (Mur et al., 2013)。
通过作者的方法,确实提升了DNN和人选择的相似度,但是存在的问题是,这个算出来的能不能推广到其他数据集上呢?
作者在一个标注数据集上测试了一下这个tune过的网络,但是发现相关度还没有原来的好(没有看懂它怎么测的相关度?)。
作者还提到一种可能性,正确率和系统的灵活性之间是不是一个tradeoff?人的分类决策是会根据当前的任务context有所改变的,所以CNN的分类结果能不能等同于人类的通用分类能力,还有待商榷。
重要概念
Multidimensional Scaling (MDS)
是一种算法,用来把高维数据表征到低维空间,尽量保持数据之间的相对距离不变。
如果给你给你一些城市的位置信息,让你算城市间距离图,你只需要测量一下就可以了。但是如果只给你这些城市间的距离,让你画出他们的位置,就不是那么简单了,需要进行一些推理。
网友评论