安能辨我是雄雌:半对抗神经网络如何迷惑性别分类器

2018 年 8 月 9 日 论智
作者:Sebastian Raschka
编译:weakish

编者按:UW-Madison统计学助理教授Sebastian Raschka简明扼要地概述了他的最新研究SAN(半对抗神经网络)。SAN基于卷积自动编码器进行受限优化:最大化某一分类器表现的同时最小化另一分类器表现。

简要总结手头的项目,和包括同事、学生在内的更一般的受众分享,我觉得这是一个不错的主意。因此,我给自己的挑战是用不到1000个单词完成总结,避免让具体细节和技术术语分散注意力。

本文主要讨论了我最近和iPRoBe实验室合作的研究项目,研发隐藏面部图像的特定信息的技术。本文谈论的是关于“保持可用性的同时最大化隐私”的研究(这一目标和差分隐私研究的目标有些类似)。

如果你对本文讨论的研究项目感兴趣,可以参考以下两篇论文获取更多信息:

  • Semi-Adversarial Networks: Convolutional Autoencoders for Imparting Privacy to Face Images(半对抗网络:赋予面部图像隐私的卷积自动编码器,ICB 2018,arXiv:1712.00321)

  • Gender Privacy: An Ensemble of Semi Adversarial Networks for Confounding Arbitrary Gender Classifiers(性别隐私:对抗任意性别分类器的半对抗网络集成,BTAS 2018,arXiv:1807.11936)

保持可用性的同时改善隐私

我们处理的研究问题可以看成一个更一般的受限优化问题:我们希望在保持计量生物学可用性的同时隐藏面部图像的特定信息。具体来说,我们有三个目标:

  1. 扰乱性别信息

  2. 确保面部图像看起来真实

  3. 保留计量生物学识别可用性

计量生物学识别包括两种子任务:在一对多匹配中识别未知人物的身份(A)和在一对一匹配中验证某人的身份(B):

这里,“扰乱”性别信息意思是给定的性别分类器不再能够可靠地预测某人的性别。我们可以设想很多为什么需要防止自动提取个人属性的理由。这里给出三个典型的例子:

  1. 基于性别的画像

  2. 窃取身份(通过结合众多可以公开获取的资源)

  3. 在用户不知情的情况下提取数据

无论何时,只要拍摄、上传、(在中央数据库中)储存面部图像,就可能引起上面提到的问题。作为反制措施,在销售给第三方前,系统(例如,超市监控摄像头)可以预配性别扰乱技术,使得最终用户更难侵犯用户的隐私,防止出于未经许可的目的收集数据。比如,隐藏面部图像数据库中的信息可能同时有助于确保GDPR合规。

半对抗网络的一般用途

当然,我们轻而易举就能隐藏性别数据,只需增加图像噪声或加扰到一定程度。然而,我们需要牢记的是显著改动图像可能同时让面部图像变得无用(计量生物学识别)。

尽管我在上一节中突出了研发SAN的主要动机(保持可用性的同时改善隐私),SAN背后的主要思路可以看成更一般的方法,受限优化任意损失函数。这意味着SAN可以用于任何我们希望在最大化某一分类器的表现的同时最小化另一分类器的表现的问题。因此,即使你处理的不是面部识别问题,SAN同样可能有助于解决你面临的受限优化任务。

下一节将描述我们在ICB 2018提交的论文中的SAN总体架构。

半对抗网络架构

根据我们在论文中提供的图像,SAN的架构可能看起来有点晦涩,不过,如果我们将它分成三个主要部分,就比较直截了当:

  1. 扰乱输入图像的自动编码器,确保图像看起来接近原图

  2. 能够给出精确预测的面部匹配器

  3. 不能给出精确预测的性别分类器

SAN的训练过程可以总结为以下的PyTorch(伪)代码:

  
  
    
  1. ae = AutoEncoder()

  2. gc = GenderClassifier()

  3. fm = FaceMatcher()

  4. gc.load_state_dict(torch.load('saved_fm_model.pkl'))

  5. fm.load_state_dict(torch.load('saved_gc_model.pkl'))

  6. for fixed_model in (gc, fm):  

  7.    for param in fixed_model.parameters():  

  8.        param.requires_grad = False  

  9. optimizer = torch.optim.Adam(ae.parameters(), lr=learning_rate)

  10. for epoch in range(num_total_epochs):  

  11.    # ...  

  12.    cost = loss_reconstruction + loss_gender_classification + loss_face_matching  

  13.    cost.backward()  

  14.    optimizer.step()

(完整代码发布在GitHub仓库iPRoBe-lab/semi-adversarial-networks) 注意,在评估SAN模型时,不仅使用了未见面部图像数据集,同时还丢弃了训练中使用的性别分类器和面部匹配器,使用了一组未见面部匹配器和性别分类器。

致好奇名字由来的读者,下图解释了为何我们将这一配置称为半对抗:


多样性和概括性

正如我们的BTAS 2018论文提到的,我们最近致力于通过增强数据集等措施改善原SAN模型的概括性表现。例如,为了避免Buolamwini等在Gender shades: Intersectional accuracy disparities in commercial gender classification(性别阴影:商业性别分类器的区际差异)中讨论的偏差,我们过采样了深肤色个体的随机样本(在大多数面部数据集中为少数类别),以缓解潜在的偏差。此外,我们扩展了评估组合,引入了更多的未见性别分类器和面部匹配器。

后续

正如论文中提到的,目前还有很多方面有待探索,比如不同的集成方案,多属性扩展等。

本文大致介绍了我们在SAN和差分隐私方面的一些研究。更多研究成果即将发表。同时,我们很兴奋,能在今年秋季的BTAS 2018(10月22日-25日,洛杉矶)会议上呈现我们的最新结果,以及在ODSC West 2018(10月31日-11月3日)上报告我们的研究。

我很乐意收到关于本文的反馈,你可以发推(rasbt)给我,也可以给我写信(https://sebastianraschka.com/email.html)。

原文地址:https://sebastianraschka.com/blog/2018/semi-adversarial-nets-1.html

登录查看更多
0

相关内容

分类是数据挖掘的一种非常重要的方法。分类的概念是在已有数据的基础上学会一个分类函数或构造出一个分类模型(即我们通常所说的分类器(Classifier))。该函数或模型能够把数据库中的数据纪录映射到给定类别中的某一个,从而可以应用于数据预测。总之,分类器是数据挖掘中对样本进行分类的方法的统称,包含决策树、逻辑回归、朴素贝叶斯、神经网络等算法。
少标签数据学习,54页ppt
专知会员服务
198+阅读 · 2020年5月22日
【Amazon】使用预先训练的Transformer模型进行数据增强
专知会员服务
56+阅读 · 2020年3月6日
推荐 :如何改善你的训练数据集?(附案例)
数据分析
3+阅读 · 2019年6月19日
真正的神经网络,敢于不学习权重
极市平台
4+阅读 · 2019年6月14日
我是怎么走上推荐系统这条(不归)路的……
全球人工智能
11+阅读 · 2019年4月9日
已删除
AI科技评论
4+阅读 · 2018年8月12日
教程 | 如何使用TensorFlow实现音频分类任务
机器之心
5+阅读 · 2017年12月16日
从零开始:教你如何训练神经网络
机器之心
5+阅读 · 2017年12月11日
Arxiv
4+阅读 · 2019年4月17日
Arxiv
4+阅读 · 2018年3月30日
Arxiv
10+阅读 · 2018年3月22日
Arxiv
9+阅读 · 2018年1月30日
VIP会员
相关资讯
推荐 :如何改善你的训练数据集?(附案例)
数据分析
3+阅读 · 2019年6月19日
真正的神经网络,敢于不学习权重
极市平台
4+阅读 · 2019年6月14日
我是怎么走上推荐系统这条(不归)路的……
全球人工智能
11+阅读 · 2019年4月9日
已删除
AI科技评论
4+阅读 · 2018年8月12日
教程 | 如何使用TensorFlow实现音频分类任务
机器之心
5+阅读 · 2017年12月16日
从零开始:教你如何训练神经网络
机器之心
5+阅读 · 2017年12月11日
Top
微信扫码咨询专知VIP会员