激活最大化

参考论文:Visualizing Higher-Layer Features of a Deep Networ

论文讲解连接:https://blog.csdn.net/zouxy09/article/details/10012747

在对深度模型定量的分析上,我们需要一个定性的分析方法去比较不同的深度架构学习到的特征。寻找深度模型所提取到的高级特征的比较好的定性解释,高级特征可视化的方法,虽然这些特征的显示是在单元级别上面的,也许有违于直观理解,但它很容易实现,而且在不同方法上面得到的结果也是一致的。这些方法可以让研究者更清楚的理解深度学习是如何工作和为什么工作的。在《Visualizing Higher-Layer Features of a Deep Network》中介绍了三种可视化的方法:激活最大化、采样和线性组合法。

深度信念网络(Deep Belief Network):https://blog.csdn.net/losteng/article/details/51001247

降噪自动编码机(Denoising Autoencoder): https://blog.csdn.net/zouxy09/article/details/10012747

Maximizing the activation 最大化激活值

第一个思想是很简单的:我们寻找使一个给定的隐层单元的激活值最大的输入模式。因为第一层的每一个节点的激活函数都是输入的线性函数,所以对第一层来说,它的输入模式和滤波器本身是成比例的。

我们回顾下诺贝尔医学奖David Hubel 和Torsten Wiesel 的那个伟大的实验。他们发现了一种被称为“方向选择性细胞(Orientation Selective Cell)”的神经元细胞。当瞳孔发现了眼前的物体的边缘,而且这个边缘指向某个方向时,这种神经元细胞就会活跃。也就是说某个“特定方向神经细胞”只对这个特定方向的图像边缘存在激励或者兴奋。通俗点说就是如果我这个神经元是提取这个特征的,那么如果你这个图像满足这个特征(可以理解为和它很相似),那么神经元的输出就很大,会兴奋。(有资料表明,人的大脑高层会存在“祖母细胞”,这类细胞的某一个细胞只对特定一个目标兴奋,例如你大脑里面有个能记忆你女朋友的细胞,然后一旦你女朋友出现在你面前,你这个细胞就会兴奋,告诉大脑,啊,这个是我的女朋友!)我们如果了解过模板卷积,那么我们知道如果某个卷积模板与图像中模块越相似,那么响应就越大。相反,如果某个图像输入使得这个神经元输出激励值最大,那么我们就有理由相信,这个神经元就是提取了和这个输入差不多的特征。所以我们寻找可以使这个神经元输入最大的那个x就是我们可以可视化并且有意义的表达这个神经元学习到的特征了。

用数学属于来表述就是,一旦完成网络训练后,参数W是确定的了,那么我们就可以寻找使得这个神经元最大化的激活值对应的x了,也就是:

        但这个优化问题通常是一个非凸优化问题,也就是是存在很多局部最小值。最简单的方法就是通过梯度下降去寻找到一个局部最小值。这会出现两种场景:一是从不同的随机值初始化开始最后都迭代得到相同的最小值,二是得到两个或者更多的局部最小值。不管是哪种情况,该神经节点提取的特征都可以通过找到的一个或者多个最小值进行描述。如果有多个最小值,那么可以寻找使激活值最大的或者将所有的进行平均,或者把所有的都显示出来。

这个很明显了。可视化地显示了使得激励值最大的输入特征X,那是怎么用于机器学习模型的检测呢?

你可能感兴趣的:(激活最大化)