好久没有跟大家聊聊算法方面的新研究了。理由当然不是学术领域没有新闻,毕竟顶会们收到的论文也是盆满钵满。但总体而言,说深度学习的理论研究一直在瓶颈期徘徊,想必也少有人会反对。
深度学习在应用上与广大传统行业融合,让AI获得了前所未有的大爆发。但正如斯坦福大学教授李飞飞所说,(深度学习)无论在智力、人力或机器设备方面,都还有很长的路要走。
学无止境,不过在很长一段时间内,算法领域几乎没有什么重大显著的进步,这也导致模型在落地部署中显露出的一些先天不足,也使AI没有停止过被质疑的命运。比如人工智能泛滥所带来的隐私问题,在要求科技企业进行自我约束的同时,对算法的优化与完善显然也很必要。
AI会如何影响人们的隐私?仅靠一篇文章或许无法回答这个复杂问题,但我们希望现在就开始抛出它。
在探讨隐私问题之前,我们先来聊聊老生常谈的LSTM模型。
关于其作用,我们已经有过很多介绍了,简单来说,就是在神经网络上加入记忆的概念,使模型可以记住长时间序列上的信息,并作出预测。AI能写出语句更通顺的文章、与人类进行流畅自然的多轮对话等等神奇能力,都建立在这一能力基础上。
随后很长一段时间内,科学家们对神经网络的记忆进行了一系列的补充和扩展。比如引入注意力机制,让LSTM网络可以对信息进行长期而精确的跟踪。再比如运用外部记忆来增强时序生成模型,提升卷积网络的性能。
总的来说,记忆能力的提升,一方面赋予了神经网络对关系进行复杂推理的能力这使其智能得以明显提高;而在应用端,写作、翻译、客服系统等智能系统的体验也大幅度升级。某种程度上,记忆是AI撕掉“人工智障”这一印象标签的开始。
不过,拥有记忆力,也代表着两个问题:一是神经网络必须要学会遗忘,从而释放出存储空间,只保留那些重要信息。比如某部小说中一个篇章结束,那模型应当重置相关信息,只保留对应的结果。
另外,神经网络的“潜意识”也需要被警惕。简单来说,就是经过在敏感的用户数据上进行训练之后,机器学习模型被发布给公众时会不会不自觉地带出那些敏感信息呢?在这个人人皆可被采集的全民数字化时代,这是不是意味着隐私风险在加剧?
对于这个问题,伯克利大学的研究人员做了一系列实验,答案也许震撼很多人,那就是——你的数据,AI可能都记在心里了。
想要理解神经网络的“无意记忆”,首先要引入一个概念,即过度拟合。
在深度学习领域,模型在训练数据上的表现很好,在训练数据之外的数据集上却达不到同样的精度或错误率,这就是出现了过度拟合。而造成这种从实验室到现实样例中的差异,主要原因是训练数据中存在噪音,或者是数据量太少。
作为深度神经网络训练时的常见副作用,过度拟合是一种全局现象,也就是整个数据集的状态。而要检验神经网络会不会偷偷“记住”训练数据中的敏感信息,要观察的却是局部细节,比如某个模型是不是对某个示例(如信用卡号码、账户密码等)有特殊情结。
对此,伯克利的研究人员为了探寻模型的“无意记忆”,进行了三个阶段的探索:
首先,防止模型的过度拟合。通过对训练数据进行梯度下降和最小化神经网络的损失,保证最终模型在训练数据上达到接近100%的精度。
然后,给机器一个理解语言底层结构的任务。这通常是通过在一系列单词或字符上训练分类器来实现的,目的是预测下一个标记,该标记将在看到前面的上下文标记后出现。
最后,研究人员进行了一个对照实验。在给定标准的penn treebank(ptb)数据集中,插入了一个随机数“281265017”,用来做安全标记。然后在这个扩充后的数据集上训练一个小的语言模型:给定上下文的前一个字符,预测下一个字符。
从理论上来说,模型的体积都比数据集小很多,所以它不可能记住所有的训练数据。那么,它能记住那串字符吗?
答案是YES。
研究者给模型输入一个前缀“随机数是2812”,模型就愉快而正确地预测了整个剩余后缀:“65017”。
更令人惊讶的是,当前缀改为“随机数为”时,模型却不会紧接着输出“281265017”这串字符。研究人员计算了所有9位后缀的可能性,结果表明插入的那串安全标记字符比其他后缀更有可能被模型选中。
至此可以谨慎地得出一个粗略的结论,那就是深度神经网络模型确实会在训练过程中,无意识地记住那些投喂给它的敏感数据。
我们知道,今日AI已经成为一场跨场景、跨行业的社会运动,从推荐系统、医疗诊断,到密布城市的摄像头,越来越多的用户数据被收集来哺育算法模型,里面都可能包含敏感信息。
以前,开发者往往会对数据的敏感列进行匿名化 (anonymization)处理。但这样并不意味着数据集中的敏感信息就是绝对安全的,因为别有用心的攻击者依然可以通过查表等方法反推原数据。
既然模型中涉及敏感数据已经不可避免,那么衡量一个模型对其训练数据的记忆程度,也是评估未来算法模型安全性的应有之义。
这里就需要解决三个疑惑:
1.神经网络的“无意记忆”会比传统的过度拟合更危险吗?
伯克利的研究结论是,尽管“无意记忆”在第一次训练之后,模型就已经开始记住插入的安全字符了。但测试数据显示,“无意记忆”中数据曝光率的峰值,往往随着测试损失的增加,在模型开始过度拟合之前,就已经达到了峰值并开始下降。
因此,我们可以得出这样的结论:“无意记忆”虽然有一定的风险,并不会比过度拟合更危险。
2.“无意记忆”的具体风险可能发生在哪些场景?
当然,没有“更危险”并不意味着无意记忆不危险。实际上,研究人员在实验中发现,利用这种改进的搜索算法,只需数万次查询就可以提取16位信用卡号码和8位密码。具体的攻击细节已经被公之于众。
也就是说,如果有人在训练数据中插入了一些敏感信息,并发布给世界时,那么它被曝光的概率其实很高,即使它看起来并没有出现过拟合现象。而且这种情况还不能立即引发关注,这无疑大大增加了安全风险。
3.隐私数据被暴露的前提有哪些?
目前看来,被研究人员插入数据集中的“安全字符”被暴露的可能性会比其他随机数据更大,并且呈现正态分布趋势。这意味着,模型中的数据并不享有同样概率的暴露风险,那些被刻意插入的数据更加危险。
另外,想要提取模型“无意记忆”中的序列也不是一件容易的事,需要纯粹的“蛮力”,即无限的算力才能做到。举个例子,所有9位社保号码的存储空间只需要几个GPU数个小时的时间搞定,而所有16位信用卡号码的数据规模则需要数千GPU年才能枚举。
目前来看,只要有了量化这种“无意记忆”,将敏感训练数据的安全性控制在一定的范围内。即知道一个模型存储了多少训练数据,又有多少被过度记忆,从而训练出一个通向最优解的模型,帮助人们判断数据的敏感性,以及模型泄露数据的可能性。
过去我们提到AI产业化,大多聚焦在一些宏观层面,如何消除算法偏见,如何避免复杂神经网络的黑箱性,如何“接地气”实现技术红利落地。如今伴随着基础改造与观念普及的逐步完成,让AI走向精细化、微观层面的迭代升级,或许是产业端正翘首期盼的未来。