训练好的神经网路,如何去解释它的结构和参数,如何将神经网路和实际问题联系起来,让黑箱不那么黑?
我看的论文不太多,但是特别喜欢看解释CNN的一些论文:比如说这一篇:Visualizing and Understanding Convolutional Networks 里面描述自己如何设计CNN的有理有据,让人信服。比如说这里: 他发现对于alexnet来说,我们第一层的图像(左边a)(用的技术是deconv)过滤出来的都是高频率以及低频率的图像,而右边,它缩小了一点窗口,所以得到的边缘图像信息更加多。还有一篇是今年CVPR的这一篇,Understanding Deep Image Representations by Inverting Them具体的一些我就不详细解释,其实你自己看CNN的一些论文,他们都有详细的解释之所以这么做的理由,你一句一句摘抄下来,就会看著不那么「黑」。以前把DL用在图像方面的工作常用的『让黑箱不那么黑』其中一种方法是把『权重』可视化出来,可以看到所谓的提取的『特征』。
涵盖面窄,仅供参考。
这个问题不错,不过神经网路并不算是一个黑箱。它通过不断调整自身内部的参数值,试图达到一个既定目标。如果没有达到目标就换一组参数,不行再换……在有限的资源(时间等)内还是无法完成任务,那就换一个更加复杂的模型,然后接著换参数……(网路结构是事先设计好的,中间参数是为了minimizing cross entropy,再由gradient descent计算出来的。)至于卷积神经网路(CNN),由于被大量用在图像处理领域,所以人们希望将网路内部可视化。假如有一个训练好的用于人脸检测的网路(总共3层),在第一层它将学到一些简单概念(比如边界,颜色),第二层它会学到一些局部特征(比如眼睛,鼻子,耳朵),第三层它就可以学到整个人脸的特征(具体见下图),从而实现人脸检测的功能。
(只是示意图,第二三层的特征不可能这么清晰。图片来源已不可考,非常抱歉)之前人们已经可以清楚地visualize CNN网路的第一层,现在借助DCNN(反卷积神经网路),后几层的参数也可以被带到pixel space,从而整个网路内部都可以被直接观察(见下图)。(右边是原图,左边是visualize之后的网路中间层。图片来源:Zeiler, M. D., Fergus, R. (2014). Visualizing and understanding convolutional networks. In Lecture Notes in Computer Science)当然CNN/DCNN还可以做一些别的事情,比如这个网站deepart.io - become a digital artist. 只要上传一张照片(下图左上)和一张具有一定风格的图片(下图左下),你就可以得到一张风格化(下图右)的照片。他们的演算法参考了Simonyan, K., Zisserman, A. (2015). Very deep convolutional networks for large-scale image recognition. (图片来源已不可考,非常抱歉)感觉上CNN+DCNN也就相当于是个Autoencoder。说到底(其实是扯远了),神经网路并不神奇,它只是计算机对神经系统的简单模拟(simulate而不是emulate)。就像人脑神经系统里神经递质累计到一定数量neuron就会fire,人工神经网路里的activation function超过阈值node就会被激活。我觉得神经网路也快要被开发到极限了,希望研究者多投入精力开发一些新的好用的模型。也多花点时间开发一下unsupervised learning,不管是AI(Artificial Intelligence)和IA(Intelligence Amplification),祝愿早日战胜人类。参考资料:1. Zeiler, M. D., Fergus, R. (2014). Visualizing and understanding convolutional networks. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 8689 LNCS, pp. 818–833).
2. Simonyan, K., Zisserman, A. (2015). Very deep convolutional networks for large-scale image recognition. Iclr, 1–14.
现在,只有少数神经网路的特定层,有比较通俗、靠谱的解释。
举例来说,深度残差收缩网路[1][2]中的软阈值化层,是用于消除杂讯信息的,跟信号处理领域是相同的: