0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AI把狗认成猫 只因它在捕捉人类看不到的特征

电子工程师 来源:fqj 2019-05-16 17:06 次阅读

近日,一个来自麻省理工学院(MIT)的团队公开了他们的研究成果。该文章指出,对抗样本(Adversarial Sample)导致图像识别(Image Classification)失效的现象,或许只是人类的一种“自以为是”。识别模型捕捉的,其实是那些不能被人眼察觉的“非稳健特征”(Non-robust Feature)。如果只是基于这些像素层面的特征,模型对对抗样本的识别就不能被认为是失败的。

几乎所有图像识别算法都存在一个弱点——对抗样本问题。对抗样本是指在一张自然图片中,对少部分像素点的数值进行修改,即使修改不足以被人眼察觉,但识别算法却做出完全错误的判断,比如把小狗识别成鸵鸟。这可能成为致命的安全漏洞,比如让自动驾驶的汽车偏离车道,或者让监控探头无法发现罪犯的身影。《给 T 恤印上一个图案,就能在监控下实现“隐身”?》

图|左为自然图片,识别为“小狗”。右为刻意修改后的对抗样本,识别为“鸵鸟”。(来源:Christian Szegedy/Google Inc.)

目前许多研究机构(如谷歌公司、麻省理工学院和腾讯科恩实验室)都在尝试解决对抗样本问题。其中主要的难题存在于三个方面,首先是视觉世界的复杂性,比如一张图片中通常存在上百万个像素点。其次,我们并没有彻底地理解卷积神经网络模型(CNN)实现图像识别的机制。此外,科学家不知道识别模型失效的原因是训练方式的问题还是训练数据量不够大?

麻省理工学院的科研团队发现,目前常用的识别模型其实是通过关注图片中,人眼无法察觉的细节来实现图像识别。就如同人类会对比耳朵的不同,而将狗和猫的照片区分出来一样。但是AI模型却是在像素的层面进行区分。

论文的第一作者,麻省理工学院在读博士生 Andrew Ilyas 说道:“对于那些像素层面的特征,它们最大的特点就是不会被人眼察觉。”

想要弄明白 AI 到底是依据什么特征来识别图像并不容易。Andrew Ilyas等人首先定义了一整套理论框架。他们把图片中的特征分成两类:“稳健特征”(Robust Features),指即使做了像素层面的修改也不会影响识别结果的特征(如耳朵、胡须),和 “非稳健特征”(Non-robust Features),即会被像素修改而影响的特征(通常无法被人类识别)。

其次,他们又定义了两种训练模型的方法,“标准训练”(Standard Training)和“稳健训练”(Robust Training)。稳健训练的损失方程额外考虑了对抗样本的存在,使得模型在训练中可以强化对稳健特征识别。

AI把狗认成猫 只因它在捕捉人类看不到的特征

图|标准训练和稳健训练的损失方程。稳健训练中划线的部分表示修改原始数据,使之成为对抗样本。(来源:Andrew Ilyas/MIT)

他们假设稳健特征和非稳健特征同时存在。并且使用和生成对抗网络(GAN)相似的方法,将原始的训练数据集(D)中的图片进行重新加工,生成了两个新的数据集:将非稳健特征洗刷掉、只含稳健特征的 D_R,和在人类看来错误标注、但非稳健特征符合其标注的 D_NR。

AI把狗认成猫 只因它在捕捉人类看不到的特征

图|左:原始训练数据 D,只含稳健特征的 D_R,和失去特征一致性的 D_NR。右:三种数据集在不同训练方式下的准确率。(来源:Andrew Ilyas/MIT)

研究人员指出,由于只有稳健特征,D_R 所含的信息量少于原始数据 D。实验发现,再以 D_R 为基础,以标准训练的方法得到的识别模型,同样可以抵御对抗样本。以此证明像素层面的修改(人眼无法分辨),并不影响图片中的稳健特征。

另一方面,研究人员对训练数据(D)进行像素层面的修改,并且不断优化,让标准模型尽可能地把图片识别成另一个类型。比如,稳健特征(人眼观察)是“狗”,而非稳健特征和标注(模型认为)则是“猫”。

研究人员将经过修改的图片集计作 D_NR,并找来一张训练数据之外的自然中“猫”图片进行测试。识别器成功把这张外来的图片也识别成了“猫”。说明这张自然的“猫”,和 D_NR 中的“猫”具有可以被模型识别的相同属性,而这个属性就是我们看不到的“非稳健特征”。

图|图中右侧“狗”的图像,和下方“猫”的图像,都被识别成了“猫”,他们有相同的非稳健特征。(来源:Andrew Ilyas/MIT)

通过实验,Andrew Ilyas 和他的团队确定:稳健特征和非稳健特征都存在于图片之中,并且一般的识别模型只会通过非稳健特征进行图像识别,而非稳健特征不能被人眼察觉。所以,对抗样本本身并不是图像识别的漏洞,只是另外一种无法被我们看到的特征而已。

“这并不是模型本身有什么问题,只是那些真正决定识别结果的东西并不能被看到。”该论文第二作者、麻省理工学院在读博士生 Shibane Santurkar 补充道:“如果我们只知道算法的决策取决于一些我们看不见的东西,那我们又怎么能理所当然地以为它做的决定就是正确的?”如果一个人需要在法庭上证明监控视频中的人不是自己就会非常麻烦,因为我们不知道监控识别的错误结果是怎么得来的 。

科学家始终需要面对一个抉择,模型究竟是应该做出“准确”的决定,还是应该做出“人类”的决定?如果模型只是识别稳健特征,它或许就不会那么准确。然而如果决策机制偏向不能被看到的非稳健特征,那么对抗样本就会成为潜在的漏洞。如今,图像识别技术已广泛应用在日常生活中,我们需要在这两个选择之间找到某种平衡。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像识别
    +关注

    关注

    9

    文章

    520

    浏览量

    38265
  • AI
    AI
    +关注

    关注

    87

    文章

    30682

    浏览量

    268848

原文标题:AI把“狗”认成“猫”,只因它在捕捉人类看不到的特征

文章出处:【微信号:deeptechchina,微信公众号:deeptechchina】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问AFE4900EVM看不到ECG波形怎么办?

    我在官网上购买了AFE4900EVM并下载了相关软件,现在测试spo2波形可以看到,但ECG波形怎么设置都看不到,仿真器和人体测试都试了。请问要怎样才能看到ECG 波形。
    发表于 12-11 06:11

    使用寄存器配置测试BIAS_MEAS时,看不了共模电压数据,为什么?

    我现在使用寄存器配置测试BIAS_MEAS时,发现看不了共模电压数据; 我通过测试通道1共模电压,路由到通道8测试,通道8看不到信号,请帮忙看看寄存器配置是否OK?
    发表于 11-22 12:53

    ads1299外接波形发生器看不到信号是怎么回事?

    我使用ADS1299IPG来采集脑电信号,我的硬件电路配置如下 然后我在外部接入波形发生器,负极接REF,正极接IN1N,然后发现输入信号根本看不到波形发生器的信号,请问下我的SRB1
    发表于 11-21 07:49

    TINA虚拟示波器看不到输出波形是为什么?

    TINA虚拟示波器看不到输出波形
    发表于 08-14 07:24

    AT 0.60.0.0看不到我的Wi-Fi网络,为什么?

    我对 AT 0.60.0.0 有一点问题。当我通过 AT CWLAP 显示所有网络时,我看不到我的路由器 AP 网络,但我可以连接到它。当我在智能手机中打开 Wi-Fi 热点时,我可以看到我的热点
    发表于 07-18 08:31

    ESP8266EX使用PC发送AT命令时,看不到板子的任何响应,为什么?

    我有一个ESP8266EX_Demo板。 我将 ESP8266_NONOS_SDK_V2.0.0 中的二进制文件下载到板上以使用 AT 命令。 当连接发生时,我可以看到一些消息,但是当我使用PC发送AT命令时,我看不到板子的任何响应。
    发表于 07-16 08:30

    ESP32-S3-DevKitC-1的SPI时钟达不到80M,示波器看不到时钟,为什么?

    ; } 示波器看SCLK,基本看不到时钟波形 修改时钟频率到40M时SCLK的波形 修改时钟频率到20M时SCLK的波形 请问这个地方应该如何调整,能使用80M时钟? 20M时钟频率波形 40M时钟频率波形 80M时钟频率波形
    发表于 06-13 08:19

    有没有esp日志保存到flash的方法?

    目前使用vscode+esp-idf开发,版本v4.4.2,请问各位大佬有没有esp日志保存到flash的方法?日志如果只通过串口输出,对于物联网设备当出现问题的时候比较难定位问题,主要就是看不到
    发表于 06-13 08:05

    配置Aurix使用DAP mini wiggler对TC377进行编程,进入调试程序时看不到DAP为什么?

    电路板并插入 wiggler 后,进入调试程序时看不到 DAP。 已安装 DAS,可在设备管理器中查看 我有点困惑,不知道下一步该怎么做......我觉得我的 DAS 服务器没有运行,但它已经安装。
    发表于 05-29 07:26

    使用CY8CKIT-002通过EZ-click对CY8CMBR3116-LQXI进行配置, CapSense输出看不到任何信号如何解决?

    我正在研究 CY8CMBR3116-LQXI,并试图使用 CY8CKIT-002 通过 EZ-click 对其进行配置、 我可以连接、生成并应用配置,但 CapSense 输出有问题,我看不到
    发表于 05-28 06:39

    STM32 USART的配置完全按照书上的写的,但是仿真就是看不到波形是为什么?

    高手们帮忙看下,USART的配置完全按照书上的写的,但是仿真就是看不到波形,USART_DR里面也写了数据??
    发表于 05-13 06:59

    STM32F207网络接收数据,为什么看不到接收的数据?

    ) { es->p = p; /* send back received data */ tcp_echoserver_send(tpcb, es); }请问: 实际的接收数据在结构里的啥地方? 咋能一个一个的读出数据呢? 我仿真的时候,观察窗口,看不到接收的数据。
    发表于 05-13 06:23

    XMC440 platform2go在环回模式下进行SPI通信,在CRO中看不到任何时钟和芯片选择信号的原因?

    arduino COOLDIM_PRG_BOARD上存在的 SPI 引脚。 我只选择了直接模式的 SPI_MASTER,并使用 SPI_MASTER_TRANSMIT 函数检查时钟是否正在产生。 问题是我在 CRO 中看不到任何时钟和芯片选择信号。 请告诉我需要遵循哪些步骤,或者我遗漏了什么。
    发表于 03-05 07:11

    为什么在PSoc3 Creator上看不到topDesign.cydwr页面选项卡?

    为什么我在 PSoc3 Creator 上看不到 topDesign.cydwr 页面选项卡?
    发表于 01-25 07:51

    TC387 rdc(解析器)代码不起作用的原因?

    我正在解码解析器信号,我正在使用为 TC38x 电机控制软件下载的 edsadc 和 rdc 库。 当我馈送解析器信号时,我看不到任何转换结果,因为它在 1 到 65536 值之间滑动。 正如你在
    发表于 01-22 06:17