AM(Activation Maximization)

激活值最大化,用来可视化每个神经元的输入偏好,即找到怎样的输入能够最大程度地激活在特定层的特定神经元。可以启发式地认为,每个神经元都负责提取特定特征,假设已知某个神经元提取的特征,给定一个具有该特征的输入,应该能够在该神经元处得到较大的激活值;反过来,在不知道某个神经元能够提取什么样的特征时,可以迭代地调整输入,使得该神经元的激活最大,从而可视化神经元学到的特征。

算法:迭代地改变输入x来最大化神经元的激活函数,其表达式为
x^{*}=\mathop{\arg\max}_{x} \ a_{i,j}(\theta,x) \ \ \ \ \ \ \ \ \ \ \ \ \ (1)

其中a_{i,j}(\theta,x)表示第i层第j个卷积的激活,是关于输入x的函数,通过梯度上升的方法求最优解
x^{'} = x + \eta \ *\ \frac{\partial a_{i,j}(\theta,x)}{\partial x} \ \ \ \ \ \ \ \ \ \ \ \ \ (2)

上述方法的一个问题是求解出的可视化输入往往辨识度不是很高,与真实的图像相支甚远(由于我们是在随机初始的输入x_{0}上进行迭代的,没有任何措施保证能够找到符合真实图像的输入,一些极值像素点,结构化的高频模式等都有可能造成较大的激活值)。为了能够求得与真实图像尽可能想近的解,需要引入相应的正则项。
另外由于训练网络时的「输入图像」是由 原始图像减去整个数据集中样本的均值得到的,所以网络的直接输入x可以认为是零均值的输入。把优化问题定义为
x^{*} = \mathop{\arg\max}_{x}[a_{i}(x)-R_{\theta}(x)]\ \ \ \ \ \ \ \ \ \ \ \ \ (3)

在实际中,通过正则化操作r_\theta(x)将x映射为更合适的形式,而r_\theta(x)不必为R_\theta(x)的导数,x的迭代式为
x^{'} = r_\theta(x+\eta\ * \ \frac{\partial a_i(x)}{\partial x})\ \ \ \ \ \ \ \ \ \ \ \ \ (4)

r_{\theta}的不同表达式有以下几种:

  1. L_{2} \ decay:\ \ \ r_{\theta}(x) = (1-\theta_{decay})*x
    防止出现一些不正常的极值点
  2. Gaussian \ blur:\ \ \ r_{\theta}(x) = GaussionBlur(x,\theta_{b\_width})
    用梯度上升法倾向于求得带有高频信息的解,尽管这些解可以在特定神经元取得高的激活值,但它们既不真实,通常也不具备可解释性,所以有必要对这种高频信息进行惩罚,这里用了高斯模糊(也叫高斯平滑)的方法,该操作在图像上的效果相当于透过毛玻璃观察图像。从数学角度看,图像的高斯模糊是将图像与高斯分布做卷积,由于高斯分布的傅里叶变换是另外一个高斯分布,所以对于图像来说是一个低通滤波。
  3. 将范数值较小的像素设置为0:
    r_{\theta}(x_{i,j})= \begin{cases} r_{\theta}(x_{i,j}) & \text{$norm(x_{i,j})>threshold$}\\ 0& \text{else} \end{cases}
    经过前面两个正则化处理,分别抑制了图像中的高幅值和高频率的信息,已经得到相对小而且平滑的图像,但求得的x^{*}的非零像素基本遍布整个图像,无法突出图像中对激活特定神经元起关键作用的部分,所直觉地认为以范数值小的像素作用小,直接设置为零
    4.将贡献度小的像素设置为零
    \begin{gather} contribution\_image = |\sum_{c}x \odot \triangledown_xa_i(x)|\\ r_{\theta}(x_{i,j})= \begin{cases} r_{\theta}(x_{i,j}) & \text{$contribution\_image_{i,j}>threshold$}\\ 0& \text{else} \end{cases} \end{gather}
    根据范数值来判断像素的作用有点过于粗暴,因为较小的像素有可能有较大的权重,从而对神经元有大的激活。所以转而求像素对激活的贡献程度,一个简单的方法是把单个像素设置为0,看激活值有什么变化,根据变化值大小来确定像素的贡献,即求a_i(x)-a_i(x_{-j}),其中x_{-j}是指将第j个像素值设置为0。但这种方法计算效率太低,需要遍历每一个相素做前向运算。所以这里做了一个近似计算,将x与其激活值的梯度按元素相乘,将三个通道累积,再取绝对值,得到与x相同大小的像素贡献图,以此来将贡献值小的像素值设置为0。

实验表明,单独应用以上正则化方法可以改善可视化结果,得到更自然,更具可解释性的图像;而综合地应用多种正则化方法能够得到更好的结果。

references

Yosinski, Jason, Clune, Jeff, Nguyen, Anh, Fuchs, Thomas, & Lipson, Hod. (2015). Understanding neural networks through deep visualization. Computer Science.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容