重新认识ELBO,对“后验失效”(posterior collapse)问题的新理解,探索VAE,pPCA和贝叶斯模型世界

有时一件事做的不够好,不是准备的不够好,只是因为我们不够“聪明”。 —— David 9

神经网络一个有意思的地方是,它的信息容量总是比要处理的问题大,它的复杂度往往是“过剩”的。但是其他传统模型,包括今天聊的贝叶斯概率模型世界,复杂度就不能简单地用“加深层数”和“跳层连接”实现,这些模型,增加模型复杂度就要用其他“聪明”些的方式。

在贝叶斯模型世界(如VAEpPCA),所担心的不是神经网络的梯度消失”或“梯度爆炸,而是“后验失效”(posterior collapse)现象。本质上,任何模型(传统或非传统)都要从每个新样本“汲取信息”,更新自身。当信息无法汲取并用来更新模型,就会出现上述问题。

不同的是,GAN(或神经网络)信息传递是内部“混沌”的,VAE的信息传递在内部总要映射到一个假想的隐变量z的分布上(常见高斯分布)

VAE与GAN结构比较

即,GAN训练的是如何生成一个样本,而VAE训练的是如何生成一个分布(这个分布可以生成样本)。

VAE的变分推断中,直接计算数据x的相似度边际分布log p(x) 非常困难,但是可以用变分分布q(z|x)去估计后验(实际上变分分布就是VAE的编码器encoder),这就引出了VAE的目标函数ELBO,即the Evidence Lower Bound

log p(x)一定是大于ELBO的,那么让ELBO最大就是VAE的最终解了:ELBO的广泛使用使得“后验失效”(posterior collapse)现象的根源看似就是ELBO目标函数。 继续阅读重新认识ELBO,对“后验失效”(posterior collapse)问题的新理解,探索VAE,pPCA和贝叶斯模型世界

CL“信心学习”: 专注样本质量的训练,MIT与谷歌的半监督新方法,Confident learning原理与代码cleanlab

每一次挫败都值得“反复咀嚼”,人类和AI都应如此,而人类似乎从中感受更多的痛苦。也许这种痛苦源于更“高层”的“感知”。 — David 9

人类许多痛苦来源于无法躲避的事物想要躲避的“主观”(潜意识或非潜意识)。所以,懂得和“情绪”好好相处被视为“高情商”;懂得和“失败”好好相处被视为“智慧”。那么,好好和“数据”相处,恐怕也是AI模型的进步。

不得不承认,没有任何数据集是完全干净的。除去人工标注的错误,单个样本的标签也有歧义,下图是ImageNet中的噪声图像:

来自:https://arxiv.org/pdf/1911.00068.pdf

图像中的拼图(PUZZLE)上画着鼓(DRUM),那么这张图像分类应该是“拼图”还是“鼓”?超市(GROCERY STORE)内部的照片有香蕉(BANANA)的货架,那么这张图像应该归为“超市”还是“香蕉”?

同样MNIST也有难分的图像:

来自:https://github.com/cgnorthcutt/cleanlab

这些广泛存在的噪声数据,如果不和这些数据“好好相处”,任何普通的神经网络和传统算法都无可奈何(因为低级感知无法感知语义歧义)。

在不改变模型情况下,MIT和Google的研究人员试图用所谓的“信心学习”(Confident learning)方法,半监督的方式清洗数据

先看一眼整体框架: 继续阅读CL“信心学习”: 专注样本质量的训练,MIT与谷歌的半监督新方法,Confident learning原理与代码cleanlab

【神经网络之黑客攻防】简述攻破神经网络的那些方法,聊聊防范措施,David 9的灰帽子Hacking

前阵子Michael Kissner的神经网络Hacking教程似乎很火,现在David正好空下来聊一下神经网络的黑客攻防。看了一下目录都算简单易懂:

来自:https://arxiv.org/pdf/1911.07658.pdf

方法1,攻击神经网络权重weights

考虑一个简单的瞳孔虹膜安检系统模型:

来自:https://arxiv.org/pdf/1911.07658.pdf

前几层是特征提取层,后几层是比对匹配层。如果你的想冒充CEO的瞳孔通过安检,你就需要有和他匹配的虹膜。让我们试想这样一种场景:你可通过某种途径拿到并篡改这个模型(假设是一个HDF5文件)。那么事情就变的相当简单,你用类似hdfview的工具修改HDF5文件,最直接地修改最后一层全连接层权重w,这样你可以马上得到想要的输出:

缺点与防范

这种攻击过于粗暴,如果没有精心设计权重,很容易让对方察觉(模型异常)。另外,真实情况是很难有获得模型的并重写模型的机会。防范也比较简单,可以对模型文件做加密;可以限制模型“写”权限(防篡改);或者经常做模型更新和MD5校验。

方法2,神经网络后门攻击

这种攻击比方法1中“篡改权重”优雅一些。我们可以试图做到不修改原有神经网络的任何行为,仅仅加入自己的虹膜,让网络认为我的虹膜和CEO的瞳孔一致(嘿嘿,当然前提还是你可以篡改模型)。

有个小问题是,如果你没有瞳孔图像训练集,怎么重新训练模型再篡改呢? 继续阅读【神经网络之黑客攻防】简述攻破神经网络的那些方法,聊聊防范措施,David 9的灰帽子Hacking