CN112840353B - 自动生成图像并在训练中输入图像的系统、方法和介质 - Google Patents
自动生成图像并在训练中输入图像的系统、方法和介质 Download PDFInfo
- Publication number
- CN112840353B CN112840353B CN201980064719.2A CN201980064719A CN112840353B CN 112840353 B CN112840353 B CN 112840353B CN 201980064719 A CN201980064719 A CN 201980064719A CN 112840353 B CN112840353 B CN 112840353B
- Authority
- CN
- China
- Prior art keywords
- tensor
- rewrite
- expression
- analysis engine
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012549 training Methods 0.000 title claims abstract description 6
- 230000014509 gene expression Effects 0.000 claims abstract description 89
- 238000004458 analytical method Methods 0.000 claims abstract description 45
- 238000013528 artificial neural network Methods 0.000 claims abstract description 28
- 238000012795 verification Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003042 antagnostic effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000003094 perturbing effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
- G06F18/2178—Validation; Performance evaluation; Active pattern learning techniques based on feedback of a supervisor
- G06F18/2185—Validation; Performance evaluation; Active pattern learning techniques based on feedback of a supervisor the supervisor being an automated module, e.g. intelligent oracle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
自动生成图像并在训练中输入图像的系统、方法和介质。描述了一种自动生成满足特定图像属性的图像的系统。使用代码解析部件产生深度神经网络代码的张量表达式中间表示(IR)。对以固定形式句法描述一组图像属性的规格进行解析。将张量表达式IR和规格输入到重写与分析引擎中。重写与分析引擎查询外部求解器,以获得满足规格的像素值。当能够在固定时间段内找到满足所述规格的像素值时,重写与分析引擎将像素值组合到满足规格的图像中,并且输出所述图像。
Description
相关申请的交叉引用
本申请是于2018年11月1日在美国提交的、名称为“Automatic Generation ofImages Satisfying Specified Neural Network Classifier Properties”的美国临时申请No.62/754,344的非临时申请,其全部内容通过引用并入本文。
技术领域
本发明涉及自动生成满足所提供的约束的图像的系统,并且更具体地涉及基于代码分析和自动求解技术来自动生成满足所提供的约束的图像的系统。
背景技术
基于神经网络的技术被广泛用于先进的计算机视觉和其它应用中。这种计算机视觉任务的最简单的形式之一是对图像进行分类。也就是说,向各个输入图像i分配来自可能标签的固定集合中的标签c(i)。例如,美国国家标准与技术研究所(MNIST)手写图像数据集由手写数字0至9的总共70,000个28×28灰度图像组成,并且分类器c针对每个图像i返回整数0≤c(i)≤9。注意,分类器的意图应是要推广至实际目标数据集之外的图像,因此,在这种情况下,应对一般的28×28灰度图像进行分类。基于神经网络的图像分类器具有许多重要的实际应用(从身份验证到自动驾驶汽车的路标识别)。
到现在为止,众所周知,神经网络分类器通常是脆弱的,因为它们会对人类很容易正确分类的图像进行误分类,即使在这些图像与用于训练分类器的数据集中的图像很接近时(无论是非形式(informal)意义上的还是技术意义上)。最近存在各种各样的研究致力于生成这种所谓的对抗性(adversarial)示例。例如,参见并入的参考文献列表中的参考文献4、6和7。用于生成这种示例的技术本身涉及来自机器学习工具箱中的工具,并且通常是从现有已知图像开始并执行对最近决策边界(空间中所有图像的阈值,超过该阈值图像的分类发生变化)的梯度跟踪。
该现有技术的主要缺点有三重。首先,现有技术集中于产生以下图像示例的受限问题:这些图像被神经网络误分类但是不会被合理的人类观察者误分类。其次,现有技术在大多数情况下需要潜在的大量输入数据(图像)以便能够起作用。最后,现有技术无法针对图像的复杂逻辑属性(相反,它或多或少地直接集中在扰动图像上)。现有技术的最后缺点部分地与以下事实有关:这些方法依赖于函数的连续性(continuity)和可微性(differentiability)属性,而在考虑任意逻辑属性时,该连续性和可微性可能不成立。
因此,持续需要一种不需要机器学习工具而自动生成满足所提供的约束的图像的方法。
发明内容
本发明涉及用于自动生成满足所提供的约束的图像的系统,并且更具体地涉及基于代码分析和自动求解技术来自动生成满足所提供的约束的图像的系统。该系统包括非暂时性计算机可读介质和一个或更多个处理器,该非暂时性计算机可读介质上编码有可执行指令,使得在所述可执行指令被执行时,一个或更多个处理器执行多个操作。该系统使用代码解析部件产生深度神经网络代码的张量表达式中间表示(IR)形式的张量表达式。对以固定形式句法描述一组图像属性的规格进行解析。将张量表达式IR和规格输入到重写与分析引擎中。重写与分析引擎查询外部求解器,以获得满足规格的像素值。当能够在固定时间段内找到满足所述规格的像素值时,重写与分析引擎将像素值组合到满足规格的图像中,并且输出所述图像。
在另一方面,张量表达式IR被实现成归纳数据类型(inductive datatype),使得张量表达式IR能够被递归地遍历。
在另一方面,张量表达式IR的验证是在运行时由代码解析器以及重写与分析引擎执行的。
在另一方面,重写与分析引擎被配置成:将张量表达式IR重写成数学上等效的表达式;根据张量表达式IR生成标量表达式;以及利用所生成的标量表达式的标量属性查询外部求解器。
最后,本发明还包括计算机程序产品和计算机实现的方法。该计算机程序产品包括存储在非暂时性计算机可读介质上的计算机可读指令,该计算机可读指令能够由具有一个或更多个处理器的计算机执行,使得在执行这些指令时,该一个或更多个处理器执行本文列出的操作。另选地,该计算机实现的方法包括使计算机执行这样的指令并执行所得操作的动作。
附图说明
根据以下对本发明多个方面的详细描述,结合参照以下附图,本发明的目的、特征和优点将显而易见,其中:
图1是描绘根据本公开的一些实施方式的自动生成满足所提供的约束的图像的系统的部件的框图;
图2是根据本公开的一些实施方式的计算机程序产品的例示;
图3是例示根据本公开的一些实施方式的自动生成满足所提供的约束的图像的系统的部件的流程图;
图4A例示了根据本公开的一些实施方式的正确分类的“3”;
图4B例示了根据本公开的一些实施方式的误分类的“3”;
图4C例示了根据本公开的一些实施方式的另一误分类的“3”;以及
图5例示了根据本公开的一些实施方式的所产生的具有被网络以高概率分类为零的属性的图像。
具体实施方式
本发明涉及自动生成满足所提供的约束的图像的系统,并且更具体地涉及基于代码分析和自动求解技术来自动生成满足所提供的约束的图像的系统。呈现以下描述以使本领域的普通技术人员能够作出和使用本发明,并将本发明并入到特定应用的背景中。对于本领域技术人员而言,各种修改以及在不同应用中的各种用途将是非常显而易见的,并且本文中限定的一般原理可以被应用于广泛方面。因此,本发明不旨在限于所呈现的方面,而是要与本文公开的原理和新颖特征一致的最广范围相符合。
在以下详细描述中,阐述了许多具体细节,以便提供对本发明的更透彻理解。然而,对于本领域技术人员而言,显而易见的是,可以在不必限于这些特定细节的情况下实践本发明。在其它实例中,以框图的形式而不是详细地示出了公知的结构和设备,以便避免模糊本发明。
读者应留意与本说明书同时提交并且与本说明书一起公开以供公众查阅的所有文件和文档,并且所有这种文件和文档的内容通过引用并入本文。本说明书(包括任何所附权利要求、摘要以及附图)中公开的所有特征可以由用于相同、等同或相似目的的另选特征来代替,除非另有明确说明。因此,除非另有明确说明,否则所公开的各个特征仅仅是一般系列的等同或相似特征的一个示例。
在详细描述本发明之前,首先提供了引用参考文献的列表。接下来,提供了对本发明各个主要方面的描述。最后,提供本发明的各个实施方式的具体细节,以给出具体方面的理解。
(1)所并入的参考文献的列表
贯穿本申请引用且并入了以下参考文献。为了清楚和方便起见,这些参考文献在此被列为读者的中心资源。以下参考文献通过引用并入本文,如同在本文中完全充分阐述一样。在本申请中,通过引用对应的参考文献编号来引用这些参考文献,如下所示:
1.Developers,Google.2018.Protocol Buffers Version 3 LanguageSpecification.April 27.Accessed April 12,2019.https://developers.google.com/protocol-buffers/.
2.Gao,S.,J.Avigad,and E.M.Clarke.2012.″Delta-complete decisionprocedures for satisfiability over the reals.″Logic in Computer Science(LICS).286-300.
3.Gao,S.,S.Kong,and E.M.Clarke.2013.″dReal:An SMT solver fornonlinear theories over the reals.″CADE.
4.Goodfellow,I.J.,J.Shlens,and C.Szegedy.2015.″Explaining andharnessing adversarial examples.″International Conference on LearningRepresentations(ICLR).
5.Katz,G.,C.W.Barrett,D.L.Dill,K.Julian,and M.J.Kochenderfer.2017.″Reluplex:An efficient SMT solver for verifying deep neural networks.″ComputerAided Verification,CAV 2017.97-117.
6.Moosavi-Dezfooli,S.-M.,A.Fawzi,O.Fawzi,and P.Frossard.2017.″Universal adversarial perturbations.″IEEE CVPR.Honolulu,Hawaii.84-94.
7.Su,J.,D.Vasconcellos Vargas,and S.Kouichi.2017.One pixel attack forfooling deep neural networks.arXiv.
(2)主要方面
本发明的各种实施方式包括三个“主要”方面。第一主要方面是自动生成满足所提供的约束的图像的系统。该系统通常采用计算机系统操作软件的形式或采用“硬编码”指令集的形式。该系统可以结合到提供不同功能的各种各样的设备中。第二主要方面是使用数据处理系统(计算机)运行的通常采用软件形式的方法。第三主要方面是计算机程序产品。所述计算机程序产品通常表示存储在诸如光学存储设备(例如,光盘(CD)或数字通用盘(DVD))或磁存储设备(诸如,软盘或磁带)的非暂时性计算机可读介质上的计算机可读指令。计算机可读介质的其它非限制性示例包括硬盘、只读存储器(ROM)以及闪存型存储器。这些方面将在下文进行更详细的说明。
图1提供了描绘出本发明的系统(即,计算机系统100)的示例的框图。计算机系统100被配置成执行与程序或算法相关联的计算、处理、操作和/或功能。在一个方面中,本文讨论的某些处理和步骤被实现为存在于计算机可读存储器单元内并由计算机系统100的一个或更多个处理器执行的一系列指令(例如,软件程序)。在执行时,这些指令使计算机系统100执行特定动作并呈现特定行为,诸如本文所描述的。
计算机系统100可以包括被配置成传送信息的地址/数据总线102。另外,一个或更多个数据处理单元(诸如处理器104(或多个处理器))与地址/数据总线102联接。处理器104被配置成处理信息和指令。在一个方面中,处理器104是微处理器。另选地,处理器104可以是不同类型的处理器,诸如并行处理器、专用集成电路(ASIC)、可编程逻辑阵列(PLA)、复杂可编程逻辑器件(CPLD)或现场可编程门阵列(FPGA)。
计算机系统100被配置成利用一个或更多个数据存储单元。计算机系统100可以包括与地址/数据总线102联接的易失性存储器单元106(例如,随机存取存储器(“RAM”)、静态RAM、动态RAM等),其中,易失性存储器单元106被配置成存储用于处理器104的信息和指令。计算机系统100还可以包括与地址/数据总线102联接的非易失性存储器单元108(例如,只读存储器(“ROM”)、可编程ROM(“PROM”)、可擦除可编程ROM(“EPROM”)、电可擦除可编程ROM(“EEPROM”)、闪存等),其中,非易失性存储器单元108被配置成存储用于处理器104的静态信息和指令。另选地,计算机系统100可以执行诸如在“云”计算中从在线数据存储单元取回的指令。在一个方面中,计算机系统100还可以包括与地址/数据总线102联接的一个或更多个接口(诸如接口110)。所述一个或更多个接口被配置成使得计算机系统100能够与其它电子设备和计算机系统对接。由所述一个或更多个接口实现的通信接口可以包括有线通信技术(例如,串行电缆、调制解调器、网络适配器等)和/或无线通信技术(例如,无线调制解调器、无线网络适配器等)。
在一个方面中,计算机系统100可以包括与地址/数据总线102联接的输入设备112,其中,输入设备112被配置成将信息和命令选择传送至处理器100。根据一个方面,输入设备112是可以包括字母数字键和/或功能键的字母数字输入设备(诸如键盘)。另选地,输入设备112可以是除字母数字输入设备之外的输入设备。在一个方面中,计算机系统100可以包括与地址/数据总线102联接的光标控制设备114,其中,光标控制设备114被配置成将用户输入信息和/或命令选择传送至处理器100。在一个方面中,光标控制设备114使用诸如鼠标、轨迹球、触控板、光学跟踪设备或触摸屏的设备来实现。尽管如此,但在一个方面中,诸如响应于使用与输入设备112相关联的特殊键和键序列命令,光标控制设备114通过来自输入设备112的输入被引导和/或激活。在另选方面中,光标控制设备114被配置成由语音命令来引导或指导。
在一个方面中,计算机系统100还可以包括与地址/数据总线102联接的一个或更多个可选计算机可用数据存储设备(诸如存储设备116)。存储设备116被配置成存储信息和/或计算机可执行指令。在一个方面中,存储设备116是诸如磁或光盘驱动器(例如,硬盘驱动器(“HDD”)、软盘、光盘只读存储器(“CD-ROM”)、数字通用盘(“DVD”))的存储设备。依据一个方面,显示设备118与地址/数据总线102联接,其中,显示设备118被配置成显示视频和/或图形。在一个方面中,显示设备118可以包括阴极射线管(“CRT”)、液晶显示器(“LCD”)、场发射显示器(“FED”)、等离子体显示器或适于显示视频和/或图形图像以及用户可识别的字母数字字符的任何其它显示设备。
本文所呈现的计算机系统100是根据一个方面的示例计算环境。然而,计算机系统100的非限制性示例并不严格限于是计算机系统。例如,一个方面规定了计算机系统100表示可以根据本文所述各个方面使用的一种类型的数据处理分析。此外,还可以实现其它计算系统。实际上,本技术的精神和范围不限于任何单个数据处理环境。因此,在一个方面中,使用通过计算机执行的计算机可执行指令(诸如程序模块)来控制或实现本技术的各个方面的一个或更多个操作。在一个实现中,这样的程序模块包括被配置成执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件和/或数据结构。另外,一个方面提供了通过利用一个或更多个分布式计算环境来实现本技术的一个或更多个方面,诸如,在分布式计算环境中,由通过通信网络链接的远程处理设备执行任务,或者诸如,在分布式计算环境中,各种程序模块位于包括存储器-存储设备的本地和远程计算机存储介质中。
图2示出了实施本发明的计算机程序产品(即,存储设备)的示图。计算机程序产品被示出为软盘200或诸如CD或DVD的光盘202。然而,如先前提到的,计算机程序产品通常表示存储在任何兼容的非暂时性计算机可读介质上的计算机可读指令。如关于本发明所使用的术语“指令”通常指示要在计算机上执行的一组操作,并且可以表示整个程序的片段或者单个可分离的软件模块。“指令”的非限制性示例包括计算机程序代码(源或目标代码)和“硬编码”电子器件(即,编码到计算机芯片中的计算机操作)。“指令”被存储在任何非暂时性计算机可读介质上,诸如存储在计算机的存储器中或软盘、CD-ROM以及闪存驱动器上。在任一种情况下,这些指令被编码在非暂时性计算机可读介质上。
(3)各种实施方式的具体细节
描述了一种基于代码分析和自动求解技术而非机器学习工具来自动生成满足所提供的约束的图像的强大且独特的方法。可以生成的图像种类包括但不限于传统的对抗性示例,其中,固定图像或图像集合的扰动(perturbation)会导致误分类(参见参考文献4)。根据本公开的实施方式的系统明确地将以下数据作为输入:(1)神经网络分类器c的代码;(2)以固定形式句法(syntax)描述要生成的图像种类的规格(specification);以及(3)(可选地)图像的数据集合。
系统的输出由满足规格的图像组成,或者由(在固定时间段内)没有找到这些图像的报告组成。在此,代码应是实际机器学习源代码(例如,TensorFlow源代码)的形式或神经网络的数学描述的形式。规格描述了对于所生成的图像而言所期望的属性。例如,可以要求所生成的图像j应该(在范数上)接近现有图像i、具有修改后的对比度、并接收到与i不同的分类(即,χ(i)≠χ(j))。另选地,可以要求所生成的图像应当使分类器c具有i是“狗”的50%置信度和i是“椅子”的50%置信度(在这样一种情况下:“狗”和“椅子”是分类器的有效标签,并且其中,分类器产生了在标签上的概率分布作为该分类器算法的一部分)。
例如,不是利用随机搜索,也不依赖于在这种特定图像生成任务中有困难的梯度遍历算法,而是利用代码分析和可满足性模理论(SMT:Satisfiability Modulo Theories)求解技术来推动图像搜索。尽管已经使用类似的方法来查找诸如传统软件系统、医疗设备或机器人之类的信息物理系统(cyber-physical system)的属性的反例,但先前不知道它们可以有效地用于推理基于神经网络的计算机视觉算法。对观察至关重要的事实是,神经网络分类器c可以被理解为具有复杂的实向量值的非线性函数。
如图3所示,本文描述的发明由三个主要部件组成,所述部件包括代码解析器300、重写与分析引擎302以及一系列外部求解器/分析器304(例如,Z3、Reluplex、dReal或Yices)。整个过程消耗深度神经网络代码306并生成图像308。代码解析器300是第一个软件部件,在给定神经网络代码306的情况下,该代码解析器300生成呈指定IR格式的中间表示(IR)310。对IR 310执行分析的概念在编译器的领域中是常见的,并且根据本公开的实施方式的许多方法借鉴了与来自传统软件世界的编译器、调试器以及其它代码分析和操纵工具的类比。所依赖的许多外部工具能够推理实数(标量)。然而,用于推理神经网络的适当数学抽象不是单独的标量(individual scalars),而是张量(tensors)。针对本文所述的发明研发的IR 310(被称为张量表达式IR 310)可以在数学上被认为是代数的元素的抽象。特别地,IR 310是用于指定该代数的元素的语法(grammar)。至关重要的是,在IR 310中能够表示在这样的张量范围内的变量,并因此可以说明和推理这些张量的逻辑属性。
在当前的实现中,张量表达式IR 310被实现成归纳类型(例如,在当前的C++实现中,这是使用访问者模式来实现的(参见参考文献3),并且在函数编程语言中,它可以作为归纳类型来直接实现)。此数据结构由用于构造张量表达式的规则来定义,如下所示:
·在任意张量范围内的变量x、y、z、...是张量表达式。变量具有相关联的形状,该形状捕获它们表示的不确定张量的维度数据。
·标量乘法:如果e是张量表达式且λ是标量,则λe是表示执行标量乘法的结果的张量表达式。
·矩阵乘法:当e和f是张量表达式时,ef是张量表达式。
·Hadamard乘法:当e和f是张量表达式时,e⊙f是张量表达式。
·加法:当e和f是张量表达式时,e+f是张量表达式。
·Relu:当e是张量表达式时,ReLU(e)是张量表达式。
关于此表示,有几点需要注意。首先,张量表达式IR 310的定义不涉及任何形状验证。因此,即使当e和f具有不同形状时,也定义了e+f,并且即使当所涉及的张量表达式310不表示矩阵时,也定义了矩阵乘法。张量表达式310的验证是在运行时由代码解析器300以及重写与分析引擎302软件执行的。其次,应将此结构实现成归纳数据类型,这对于效率至关重要,因为这意味着在重写和分析期间,可以递归地遍历该结构。最后,并未详尽地列出定义张量表达式310的所有子句(clauses),因为这些子句对应于通常用于定义神经网络的那些操作(例如,Sigmoids、softmax、双曲正切、张量重新整形(reshaping)、卷积和池化操作),这些操作对于在实践中利用神经网络工作的任何人而言都是熟悉的。数据类型应以这样一种方式实现:所述数据类型易于扩展,以适应其它神经网络操作的添加。
代码解析器300消耗序列化神经网络306(以指定格式,例如,被保存为协议缓冲区的TensorFlow图(参见参考文献2))。代码解析器300遍历序列化网络并产生对应的张量表达式310。取决于所采用的序列化协议,可以将遍历实现成简单的深度优先图遍历(在当前实现中,这是用于序列化TensorFlow模型的方法)。随着结构被遍历,递归地构造对应的张量表达式310(例如,当遍历在序列化数据结构中遇到加法运算时,其构造加法张量表达式并在被加数(summand)上递归地调用其自身)。
重写与分析引擎302将规格312和张量表达式310作为输入。规格被定义成具有附加非线性函数符号(对应于例如正弦、余弦、自然对数、指数等)的实数运算的一阶语言的逻辑公式。读者可以参考有关逻辑或模型理论的任何教科书,以获取有关一阶逻辑的详细信息。这些公式的变量在要产生的图像的像素范围内。在许多情况下,规格312还限制了这些变量的范围,使得像素必须落在指定的范围内,诸如在闭区间[-1,1]中。另选地,在将图像的数据集合提供为程序的输入的情况下,来自数据集合的固定图像的像素可以用作变量范围内的平均值(即,针对来自数据集合的固定图像的各个像素p,可能要求与像素p对应的变量应在p的半径∈>0的固定球内)。在这种情况下,所生成的图像308将永远不会与固定图像相距太远。对公式不存在进一步的限制(尽管典型的规格不涉及量词)。实际上,众所周知,对具有交替(alternating)量词的公式进行推理在计算上更具挑战性。
重写与分析引擎302执行以下任务:
1.根据要生成的图像308的规格将张量表达式310重写为数学上等效的表达式。
2.在可能的情况下,执行对张量表达式310自身的分析。
3.引擎302根据张量表达式310生成标量表达式,并利用所生成的表达式的标量属性来查询外部求解器/分析器304。
对于(1),可以将某些全局有效的重写应用于简单的表达式,并将其置于适当的正规形(normal form)中。可以应用的基本的重写种类的非限制性示例包括:
·重写迭代的ReLU非线性激活单元:
·由零重写标量乘法:
·由一重写标量乘法:
·重写迭代的加法以利于左侧的关联:
·当规格312约束变量X使其所有条目均非负时,直接重写ReLU:
与张量表达式的定义一样,所采用的重写是可扩展的,但在实现中应注意仅执行在所有情况下保留表达式含义的意义上的有效重写。例如,除非X是非负的,否则不能利用所给出的最后示例,以免结果不再准确。可以使用任何常用算法(参见参考文献1)执行重写。
对于(2),当可以直接根据张量表达式310分析规格312的有效性时,应该这样做。当前的实现使用ad hoc程序来这样做,并且仅当属性已经明显无法满足时才避免不必要的搜索。最终将直接在张量表达式IR 310的级别上使用SMT求解技术,以便排除不满足的情况。
对于(3),有必要研发将张量表达式310转换成外部求解器/分析器304的表达式的库。对于在实数表达式级别上工作的SMT求解器,通常通过以下方式将张量表达式310转换成标量值的表达式:
·访问张量中的单元(cell)。这通常是分类器c的输出层,并且通过针对索引i访问c[i]来获得标量表达式。类似地,当张量表示图像时,可以通过这种方式访问像素及其通道。
·取向量的内积或应用范数。这些通常用于约束输出图像距指定参考图像的距离。
在当前的实现中,本身是具有非线性函数符号的一阶实数运算的公式的规格312直接引用从对应的张量表达式310产生的这些标量值。最后,可以调用外部求解工具304来求解变量(像素)值。在当前的实现中,调用外部求解器/工具304的过程由三个部件来居间促成(mediate)。第一个部件是C++模板库,该C++模板库用于对在变量类型T上定义的张量进行操纵(manipulating)。此处考虑的操纵是实际操作(例如,计算矩阵乘法的值或对对张量进行重新整形)。将该操纵作为模板库来实现的基本原理是对各种数据类型执行相同的操作,这些数据类型包括从普通的双(double)值(这对于测试目的而言是有用的)到用于形成外部工具中的表达式的类型。
第二个部件是“适配器”,该适配器将张量表达式310转换成指定T上的张量。在当前的实现中,存在用于双值和dReal 4求解器的适配器。最后,存在来自T至T上的张量的通用标量值函数(例如,范数)库。在该实现中,它们再次针对双值和dReal4中的表达式(Expression)类型。关于使用外部SMT求解器的一个关键点是,因为系统处理非线性函数,所以被调用的求解器应该能够有效地处理所使用的函数。对于sigmoid、softmax等,dReal4是最合理的选择,因为其基础算法是针对推理诸如此类的非线性函数而设计的。
最后,当重写与分析引擎302已成功查询求解器304,以获取满足规格312的像素值时,该重写与分析引擎302将这些像素值组合到图像308中,然后返回图像308。如果无法在固定超时之前找到所有像素的值,重写与分析引擎302则报告无法产生要求的图像。在后一种情况下,无法保证不存在这样的图像。注意,找到满足给定逻辑属性的固定尺寸的图像308是NP完全问题,因为该问题的一般解决方案可以用来解决3-SAT问题。这样,假设P不等于NP,存在以下许多情况:存在满足该属性的图像,但在合理时间内找不到。
在实验研究中使用了深度神经网络代码306。本文描述的发明已被成功测试并且用于生成被进行测试的神经网络误分类的图像308。图4A描绘了正确分类的3。图4B和图4C描绘了由本文所述的发明发现的两个误分类的3,这两个误分类的3具有与正确分类的图像不同(规格)的至多四个像素。图4B和图4C例示了找到与人类不会弄错的正确分类的图像足够相似的误分类的图像的用例。作为另一示例,图5示出了目标要求的结果,其中没有向算法提供输入图像。在这种情况下,所生成的图像以超过固定阈值(在这种情况下为90%)的概率被分类为零。
与全部利用机器学习技术的现有技术相反,根据本公开的实施方式的系统和方法中所依赖的技术出现在形式化方法(formal method)的领域中。另外,形式化方法中的现有工作在很大程度上依赖于决策程序(量词消去)来进行没有非线性函数情况下的实数运算。后一种理论是不可决策的,但是诸如参考文献4和5中的那些非线性求解技术可以用于生成满足指定属性的候选图像308。这些技术先前尚未应用于计算机视觉问题。
不同于在机器学习中尝试使用数值方法来生成满足某些约束的图像,本文描述的发明能够针对用于生成图像的高度详细的规格。此外,由于它基于规格的逻辑结构和神经网络本身结构两者的数学分析,因此在许多情况下,它可以更快地找到(生成)满足规格的图像(例如,将会被深度神经网络代码误分类的图像)。最后,由于不像最新方法那样依赖于梯度跟踪技术,因此不存在限制系统可以处理的约束范围的可微性或连续性考量。提供详细描述图像应如何与分类器相互作用的图像属性的一般规格的能力是本发明提供的独特能力。
交通工具(例如,飞行器、汽车、自主驾驶车辆、直升机、无人飞行器(UAV))制造商正在探索将基于神经网络的机器学习算法用于计算机视觉。最自然的应用是在自主驾驶汽车领域,其中感知算法涉及视觉输入。在飞行器情况下,应用包括自动目标识别、监视、侦察、空中自动加油和自主滑行。
此外,还存在能够实现自动制造或检查的各种计算机视觉/对象识别应用。益处在于,本文所述的发明可以用于标识计算机视觉代码无法正确识别的实例。然后,可以使用这些实例来训练分类器以提高性能,或建议对神经网络架构进行其它修改以提高其鲁棒性。它还可以用于商用现货(COTS:commercial off-the-shelf)或其它供应商的神经网络代码,可以部署这些代码以评估该代码的适应力(resilience)。
最后,虽然已经根据若干实施方式对本发明进行了描述,但本领域普通技术人员应当容易地认识到,本发明可以在其它环境中具有其它应用。应注意,可以有许多实施方式和实现。此外,所附权利要求绝不旨在将本发明的范围限于上述具体实施方式。另外,“用于……的装置”的任何用语旨在援引元素和权利要求的装置加功能的解读,而未特别使用“用于……的装置”用语的任何元素不应被解读为装置加功能元素,即使权利要求以其它方式包括了“装置”一词。此外,虽然已经按特定顺序陈述了特定方法步骤,但这些方法步骤可以按任何期望的顺序进行,并且落入本发明的范围内。
Claims (12)
1.一种自动生成图像并且在图像分类器的训练中输入这些图像的系统,所述系统包括:
非暂时性存储器和一个或更多个处理器,所述非暂时性存储器上编码有指令,使得所述指令在被执行时,所述一个或更多个处理器执行以下操作:
利用代码解析部件,产生深度神经网络代码的张量表达式中间表示IR形式的张量表达式;
对以固定形式句法描述一组图像属性的规格进行解析;
将所述张量表达式IR和所述规格输入到重写与分析引擎中;
由所述重写与分析引擎查询外部求解器,以获得满足所述规格的像素值;并且
当能够在固定时间段内找到满足所述规格的像素值时,由所述重写与分析引擎将所述像素值组合到满足所述规格的图像中,并且输出所述图像。
2.根据权利要求1所述的系统,其中,所述张量表达式IR被实现为归纳数据类型,使得所述张量表达式IR能够被递归地遍历。
3.根据权利要求1所述的系统,其中,所述张量表达式IR的验证是在运行时由所述代码解析部件和所述重写与分析引擎执行的。
4.根据权利要求1所述的系统,其中,所述重写与分析引擎被配置成执行以下操作:
将所述张量表达式IR重写成数学上等效的表达式;
根据所述张量表达式IR生成标量表达式;并且
利用所生成的标量表达式的标量属性来查询所述外部求解器。
5.一种自动生成图像并且在图像分类器的训练中输入这些图像的计算机实现的方法,所述方法包括以下动作:
使一个或更多个处理器执行在非暂时性计算机可读介质上编码的指令,使得在所述指令被执行时,所述一个或更多个处理器执行以下操作:
利用代码解析部件,产生深度神经网络代码的张量表达式中间表示IR形式的张量表达式;
对以固定形式句法描述一组图像属性的规格进行解析;
将所述张量表达式IR和所述规格输入到重写与分析引擎中;
由所述重写与分析引擎查询外部求解器,以获得满足所述规格的像素值;并且
当能够在固定时间段内找到满足所述规格的像素值时,由所述重写与分析引擎将所述像素值组合到满足所述规格的图像中,并且输出所述图像。
6.根据权利要求5所述的方法,其中,所述张量表达式IR被实现为归纳数据类型,使得所述张量表达式IR能够被递归地遍历。
7.根据权利要求5所述的方法,其中,所述张量表达式IR的验证是在运行时由所述代码解析部件和所述重写与分析引擎执行的。
8.根据权利要求5所述的方法,其中,所述方法还包括以下动作:
利用所述重写与分析引擎,将所述张量表达式IR重写成数学上等效的表达式;
利用所述重写与分析引擎,根据所述张量表达式IR生成标量表达式;并且
利用所述重写与分析引擎,利用所生成的标量表达式的标量属性来查询所述外部求解器。
9.一种自动生成图像并且在图像分类器的训练中输入这些图像的非暂时性计算机可读介质,所述非暂时性计算机可读介质存储有计算机可读指令,所述计算机可读指令能够由具有一个或更多个处理器的计算机执行,以使所述处理器执行以下操作:
利用代码解析部件,产生深度神经网络代码的张量表达式中间表示IR形式的张量表达式;
对以固定形式句法描述一组图像属性的规格进行解析;
将所述张量表达式IR和所述规格输入到重写与分析引擎中;
由所述重写与分析引擎查询外部求解器,以获得满足所述规格的像素值;并且
当能够在固定时间段内找到满足所述规格的像素值时,由所述重写与分析引擎将所述像素值组合到满足所述规格的图像中,并且输出所述图像。
10.根据权利要求9所述的非暂时性计算机可读介质,其中,所述张量表达式IR被实现为归纳数据类型,使得所述张量表达式IR能够被递归地遍历。
11.根据权利要求9所述的非暂时性计算机可读介质,其中,所述张量表达式IR的验证是在运行时由所述代码解析部件和所述重写与分析引擎执行的。
12.根据权利要求9所述的非暂时性计算机可读介质,所述非暂时性计算机可读介质还包含指令以用于:
利用所述重写与分析引擎,将所述张量表达式IR重写成数学上等效的表达式;
利用所述重写与分析引擎,根据所述张量表达式IR生成标量表达式;并且
利用所述重写与分析引擎,利用所生成的标量表达式的标量属性来查询所述外部求解器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862754344P | 2018-11-01 | 2018-11-01 | |
US62/754,344 | 2018-11-01 | ||
PCT/US2019/049989 WO2020091893A1 (en) | 2018-11-01 | 2019-09-06 | Automatic generation of images satisfying specified neural network classifier properties |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112840353A CN112840353A (zh) | 2021-05-25 |
CN112840353B true CN112840353B (zh) | 2023-12-29 |
Family
ID=68000118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980064719.2A Active CN112840353B (zh) | 2018-11-01 | 2019-09-06 | 自动生成图像并在训练中输入图像的系统、方法和介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11042779B2 (zh) |
EP (1) | EP3874408A1 (zh) |
CN (1) | CN112840353B (zh) |
WO (1) | WO2020091893A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114092649B (zh) * | 2021-11-25 | 2022-10-18 | 马上消费金融股份有限公司 | 基于神经网络的图片生成方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2175387A1 (en) * | 2008-10-10 | 2010-04-14 | Sigasi B.V.B.A. | Device and method for refactoring hardware code |
CN106611216A (zh) * | 2016-12-29 | 2017-05-03 | 北京旷视科技有限公司 | 基于神经网络的计算方法及装置 |
CN106970819A (zh) * | 2017-03-28 | 2017-07-21 | 清华大学 | 一种基于prdl规则描述语言的c程序代码规范检查装置 |
CN108573257A (zh) * | 2017-03-14 | 2018-09-25 | 奥多比公司 | 基于自然语言短语对图像进行自动分割 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10410098B2 (en) * | 2017-04-24 | 2019-09-10 | Intel Corporation | Compute optimizations for neural networks |
US10748314B2 (en) * | 2018-02-15 | 2020-08-18 | Microsoft Technology Licensing, Llc | Controllable conditional image generation |
US10789288B1 (en) * | 2018-05-17 | 2020-09-29 | Shutterstock, Inc. | Relational model based natural language querying to identify object relationships in scene |
US11886989B2 (en) * | 2018-09-10 | 2024-01-30 | International Business Machines Corporation | System for measuring information leakage of deep learning models |
US20190391796A1 (en) * | 2019-06-28 | 2019-12-26 | Intel Corporation | Control of scheduling dependencies by a neural network compiler |
-
2019
- 2019-09-06 CN CN201980064719.2A patent/CN112840353B/zh active Active
- 2019-09-06 EP EP19773278.7A patent/EP3874408A1/en active Pending
- 2019-09-06 WO PCT/US2019/049989 patent/WO2020091893A1/en unknown
- 2019-09-06 US US16/563,172 patent/US11042779B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2175387A1 (en) * | 2008-10-10 | 2010-04-14 | Sigasi B.V.B.A. | Device and method for refactoring hardware code |
CN106611216A (zh) * | 2016-12-29 | 2017-05-03 | 北京旷视科技有限公司 | 基于神经网络的计算方法及装置 |
CN108573257A (zh) * | 2017-03-14 | 2018-09-25 | 奥多比公司 | 基于自然语言短语对图像进行自动分割 |
CN106970819A (zh) * | 2017-03-28 | 2017-07-21 | 清华大学 | 一种基于prdl规则描述语言的c程序代码规范检查装置 |
Non-Patent Citations (2)
Title |
---|
Inferring Semantic Layout for Hierarchical Text-to-Image Synthesis;Seunghoon Hong;IEEE;7986-7994 * |
Text-to-Image Synthesis via Visual-Memory Creative Adversarial Network;Shengyu Zhang;Springer;417-427 * |
Also Published As
Publication number | Publication date |
---|---|
US11042779B2 (en) | 2021-06-22 |
WO2020091893A1 (en) | 2020-05-07 |
US20200143200A1 (en) | 2020-05-07 |
WO2020091893A8 (en) | 2021-05-27 |
EP3874408A1 (en) | 2021-09-08 |
CN112840353A (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853903B2 (en) | SGCNN: structural graph convolutional neural network | |
US10685462B2 (en) | Automatic data extraction from a digital image | |
CN110073367B (zh) | 用于零样本学习的利用基于soft-max的兼容性函数的多视图嵌入 | |
CN111052144A (zh) | 借由联合稀疏表示的属性感知零样本机器视觉系统 | |
Antanas et al. | Semantic and geometric reasoning for robotic grasping: a probabilistic logic approach | |
US20210279570A1 (en) | Method for proving or identifying counter-examples in neural network systems that process point cloud data | |
EP4040311A1 (en) | Utilizing machine learning and natural language processing to extract and verify vaccination data | |
CN114341880A (zh) | 用于使神经网络的操作可视化的技术 | |
US20230311335A1 (en) | Natural language control of a robot | |
Yu et al. | Efficient euclidean projections onto the intersection of norm balls | |
CN112668607A (zh) | 一种用于目标物体触觉属性识别的多标签学习方法 | |
CN112840353B (zh) | 自动生成图像并在训练中输入图像的系统、方法和介质 | |
US11023639B2 (en) | Systems and methods for providing approximate electronic-structure models from calculated band structure data | |
Shen et al. | StructBoost: Boosting methods for predicting structured output variables | |
CN110717013A (zh) | 文档的矢量化 | |
US9031890B2 (en) | Inverse function method of boolean satisfiability (SAT) | |
US20220269254A1 (en) | Imitation Learning in a Manufacturing Environment | |
Vasu et al. | Explainable, interactive c ontent‐based image retrieval | |
Ranjbar et al. | Complex loss optimization via dual decomposition | |
TWI774324B (zh) | 用於變換黑箱模型以基於自黑箱模型、觀察資料、或合成資料導出之若干組一或多個規則產生白箱模型之電腦實施方法、電腦系統、及裝置及相關的電腦可讀媒體及低功率晶片、及用於白箱模型誘導之裝置及電腦程式產品 | |
Ruiz et al. | Generating attribution maps with disentangled masked backpropagation | |
US20240013028A1 (en) | Processing device, processing method, and non-transitory computer readable medium storing program | |
US20210383226A1 (en) | Cross-transformer neural network system for few-shot similarity determination and classification | |
US20230215155A1 (en) | Label inheritance for soft label generation in information processing system | |
Yao et al. | An Automatic GUI Generation Method Based on Generative Adversarial Network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |