CN116635852A - 通过模糊神经网络操作和架构来保护神经网络 - Google Patents

通过模糊神经网络操作和架构来保护神经网络 Download PDF

Info

Publication number
CN116635852A
CN116635852A CN202180085805.9A CN202180085805A CN116635852A CN 116635852 A CN116635852 A CN 116635852A CN 202180085805 A CN202180085805 A CN 202180085805A CN 116635852 A CN116635852 A CN 116635852A
Authority
CN
China
Prior art keywords
node
output
model
activation function
fuzzy
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.)
Pending
Application number
CN202180085805.9A
Other languages
English (en)
Inventor
M·E·马森
M·A·汉布格尔
H·汉德舒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cryptography Research Inc
Original Assignee
Cryptography Research Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cryptography Research Inc filed Critical Cryptography Research Inc
Priority claimed from PCT/US2021/063880 external-priority patent/WO2022140163A1/en
Publication of CN116635852A publication Critical patent/CN116635852A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Analysis (AREA)

Abstract

本公开的各方面涉及可以用于通过对神经网络操作和架构进行模糊来保护神经网络模型免受对抗性攻击的实施方式。模糊技术包括对神经网络节点的权重和偏差进行模糊,对神经网络所使用的激活函数进行模糊,以及通过将虚拟操作、虚拟节点和虚拟层引入神经网络对神经网络架构进行模糊。

Description

通过模糊神经网络操作和架构来保护神经网络
技术领域
本公开涉及神经网络计算应用,更具体地,涉及保护神经网络模型免受对抗性攻击。
附图说明
从下面给出的详细描述和本公开的各种实施方式的附图中,将更全面地理解本公开。
图1示出了本公开的各种实施方式可以在其中操作的示例网络架构。
图2A示出了根据本公开的一个或多个方面的使用权重和偏差模糊来保护神经网络操作的示例操作。
图2B示意性地描绘了根据本公开的一个或多个方面的可以作为图2A的示例操作的一部分来执行的矩阵操作。
图3A示出了根据本公开的一个或多个方面的通过对神经网络节点的激活函数进行模糊来保护神经网络的示例操作。
图3B示出了根据本公开的一个或多个方面的通过使用神经网络节点的多个模糊激活函数来保护神经网络的示例操作。
图4描绘了根据本公开的一个或多个方面的使用权重和偏差的模糊来保护神经网络操作的示例方法的流程图。
图5描绘了根据本公开的一个或多个方面的使用激活函数模糊来保护神经网络操作的示例方法的流程图。
图6A-图6E示出了根据本公开的一个或多个方面的通过使用虚拟操作的模糊来保护神经网络架构的示例操作。图6A示出了可以用于神经网络操作的模糊的常数输出节点的示例实施方式。图6B示出了可以用于神经网络操作的模糊的直传节点的示例实施方式。图6C示出了可以用于神经网络操作的模糊的直传节点聚类的示例实施方式。图6D示出了来自可以用于神经网络操作的模糊的节点的虚拟(非紧要)输出的示例实施方式。图6E示出了具有可以用于神经网络操作的模糊的抵消输出的节点聚类的示例实施方式。
图7描绘了根据本公开的一个或多个方面的使用神经网络架构的模糊来保护神经网络操作的示例方法的流程图。
图8描绘了根据本公开的一个或多个方面进行操作的示例计算机系统的框图。
具体实施方式
本公开的各方面涉及保护神经网络(神经网络模型)免受对抗性攻击和其他未授权访问。更具体地,本公开的各方面针对使用各种模糊技术来模糊权重、偏差、激活函数以及神经网络的拓扑和由神经网络执行的计算。
人工神经网络(neural network,NN)是模拟生物NN如何操作并且可以用于各种应用的计算操作的集合,各种应用诸如是对象和模式标识、语音标识、文本标识、机器人、决策制定、玩游戏、行为建模和许多其他任务。NN往往可以被映射为包括节点和边的集合的图,其中计算在节点内执行,并且数据(节点的输入和输出)沿着连接节点的各种边流动。节点可以按层布置,其中输入层接收输入数据(例如,图像的数字表示),输出层递送NN的输出(例如,图像分类)。取决于NN所解决的特定领域问题,可以在输入层与输出层之间设置任何数目的隐藏层。各种NN架构可以包括前馈NN、递归NN、卷积NN、长期/短期记忆NN、玻尔兹曼机、霍普菲尔NN、马尔科夫NN和许多其他类型的NN。
NN的节点可以(例如,从同一NN的其他节点或从外部输入代理,诸如图像数字化设备)接收多个输入值{xi}。该节点可以与对输入值进行加权的相应多个权重{wi}相关联,并且还可以包括偏差值b。特别地,该节点的输入可以被加权和偏置,
以产生该节点的加权输入z。加权输入z然后可以被输入到激活函数(activationfunction,AF)中,以获得该节点的输出
y=f(z)
激活函数可以从各种函数中选择,诸如阶跃函数(例如,亥维赛函数)、整流线性函数(其可以是泄漏整流线性函数)、S型函数、softmax函数等。输出值y可以作为输入被提供到下一层的一个或多个节点(或者同一层的一个或多个节点,或者在某些情况下被提供到同一节点,等等)。每个节点可以具有其自己的权重集合{wi}、偏差b和激活函数f(z),它们在本文中称为节点参数。虽然每个节点可能会向下一层的不同节点输出不同的值y(例如,通过使第一节点参数集合生成输出值y1以用作节点1的输入,并生成输出值y2以用作节点2的输入),但是来自给定节点的N个输出的情形可以等同地经由N个不同的节点来表示,每个节点具有相应节点所连接的所有下游节点的相同输出。相应地,为了简洁起见,在本文中应该假设节点对其所有下游节点具有相同的输出(然而,如下面更详细描述的,在本公开的一些实施方式中,由单个下游节点接收的输出可以包括多个输出值y。)
特定的节点参数是在NN训练期间确定的(例如,使用训练输入和目标输出)并且可以表示商业秘密,即使当NN被公布或对客户或其他用户可用时,NN的开发者也可能希望对该商业秘密保密。用户可以运行NN并从其输出中受益,但是可能无法访问实际的NN参数或NN架构,诸如通向/来自各种节点的边数、层数、每一层中的节点数(包括输入层和输出层)等等。在一些情况下,可能会尝试针对NN进行对抗性(例如,旁道)攻击,以显示NN参数和架构。例如,当电子电路(例如处理器、存储器等)正在执行NN的操作时,可以通过监视由电子电路产生的发射(信号)来执行旁道攻击。这种信号可以是电信号、声信号、电磁信号、光信号、热信号等等。通过记录发射,硬件木马和/或恶意软件可能能够将特定处理器(和/或存储器)活动与处理器/存储器所执行的操作相关联。例如,采用木马的攻击者可能能够检测到与多个乘法运算相对应的发射,其中不同的输入使用相同的NN参数进行处理。结果,通过分析(例如,使用统计分析的方法)处理设备的硬件发射,攻击者可能能够确定权重和偏差的值、所使用的AF的类型、节点/连接/层的数目等等。
本公开的各方面和实施方式通过公开保护NN免受对抗性攻击、对NN的逆向工程和其他未授权操作的系统和方法来解决现有技术的这些问题和其他问题。更具体地,公开了一种通过扩展权重和偏差的数目来模糊NN的各种节点的权重和偏差来保护NN的方法,例如,通过使用不影响NN的最终输出但给攻击者带来更宽范围的待确定可能值的虚拟(dummy)权重和偏差,因为虚拟权重和偏差的数目可能比NN的实际权重和偏差的数目更多(在一些实施方式中要多得多)。在一些实施方式中,可以随机选择虚拟权重和偏差,从而增加了对尝试针对NN进行对抗性攻击的攻击者的挑战。可以使用各种线性或可逆非线性变换来进一步掩蔽权重和偏差。在一些实施方式中,实际的AF可以被为至少一些节点部署的虚拟AF所掩蔽。在这样的实施方式中,一个节点可以向另一节点提供多个输出值,每个输出使用不同的激活函数来计算。在一些实施方式中,只有一个输出可以是节点的实际输出,而其他输出可以是旨在模糊实际输出的虚拟输出。在一些实施方式中,没有一个输出可以是节点的实际输出。相反,实际输出可以是一些或所有NN输出(以及底层AF)的某种组合,攻击者可能不知道这种组合。另外,通过使至少一些节点执行不影响NN的实际输出的虚拟操作,可以进一步增强NN的安全性,但是虚拟操作的目的是使攻击者更难专注于NN的实际计算和实际数据流。这种虚拟操作可以包括涉及真实输入和真实节点的虚拟计算、涉及虚拟节点的计算、涉及跨多层的计算划分的计算、涉及整个虚拟层的计算等等。
图1是示出本公开的各种实施可以在其中操作的示例计算机系统100的框图。示例计算机系统100可以是台式计算机、平板电脑、智能电话、服务器(本地或远程)、瘦/精瘦客户机等。示例计算机系统100可以是专用于一个或多个特定领域应用110(例如,对象标识应用、决策制定应用)等的系统。示例计算机系统100可以包括但不限于具有(例如,能够执行二进制指令的)一个或多个处理器的计算机设备102,处理器诸如是中央处理单元(centralprocessing unit,CPU)120、一个或多个图形处理单元(graphics processing unit,GPU)122以及一个或多个系统存储器130设备。“处理器”还可以指能够执行对算术、逻辑或I/O操作进行编码的指令的任何设备。在一个说明性示例中,处理器可以遵循冯诺依曼架构模型,并且可以包括算术逻辑单元(arithmetic logic unit,ALU)、控制单元和多个寄存器。
计算机设备102还可以包括输入/输出(input/output,I/O)接口104,以便于将计算机设备102连接到外围硬件设备106,诸如读卡器、终端、打印机、扫描仪、物联网设备等。计算机设备102还可以包括网络接口108,以便于连接到各种网络(互联网、无线局域网(wireless local area network,WLAN)、个人区域网(personal area network,PAN)、公共网络、私有网络等),并且可以包括无线电前端模块和其他设备(放大器、数模和模数转换器、专用逻辑单元等),以实施去往/来自计算机设备102的数据传递。计算机设备102的各种硬件组件可以经由总线112连接,总线112可以具有其自己的逻辑电路,例如总线接口逻辑单元。
计算机设备102可以支持一个或多个特定领域应用110,包括使用神经网络的任何应用。应用110可以例如通过由CPU 120执行并驻留在系统存储器130中的操作系统而在同一计算机设备102上实例化。备选地,应用110可以通过由CPU 120执行的虚拟机监视器(管理程序)所支持的客户操作系统而实例化。在一些实施方式中,应用110可以驻留在远程访问客户机设备或远程服务器(未示出)上,其中计算机设备102为客户机设备和/或远程服务器提供计算支持。
CPU 120可以包括能够访问单级或多级高速缓存以及一个或多个硬件寄存器的一个或多个处理器核心。在实施方式中,每个处理器核心可以执行指令以运行多个硬件线程,其也称为逻辑处理器。各种逻辑处理器(或处理器核心)可以被分配给一个或多个应用110,尽管多于一个处理器核心(或逻辑处理器)可以被分配给单个应用110进行并行处理。多核CPU 120可以同时执行多个指令。单核CPU 120典型地可以一次执行一个指令(或者处理单个指令流水线)。CPU 120可以被实施为单个集成电路、两个或更多个集成电路,或者可以是多芯片模块的组件。
GPU 122可以包括多个核心,每个核心能够使用GPU存储器124(例如,并行地)执行多个线程。在一些实施方式中,GPU 122可以执行NN的至少一些操作。例如,各种GPU 122线程可以并行地执行各种操作(例如,加权输入的计算和将激活函数应用于同一层NN节点的加权输入)。GPU 122可以包括调度器(未示出)和分派单元,以在GPU核心的不同线程之间分发计算任务的执行。
系统存储器130可以指易失性或非易失性存储器,并且可以包括只读存储器(read-only memory,ROM)132、随机存取存储器(andom-access memory,RAM)134,以及(未示出)电可擦除可编程只读存储器(electrically-erasable programmable read-onlymemory,EEPROM)、闪存、触发器存储器或能够存储数据的任何其他设备。RAM 134可以是动态随机存取存储器(dynamic random-access memory,DRAM)、同步DRAM(synchronousDRAM,SDRAM)、静态存储器(诸如静态随机存取存储器(static random-access memory,SRAM))等。
系统存储器130可以用于存储NN的输入(例如,从应用110接收的图像)、由NN生成的输出(例如,由图像捕获的对象的标识和这种对象的分类)、NN的参数、模糊数据、掩蔽数据和/或任何其他数据。系统存储器130可以包括可用于存储与NN的执行相关的一些数据的一个或多个寄存器136。在一些实施方式中,寄存器136可以被实施为RAM 134的一部分。在一些实施方式中,一些或所有寄存器136可以与RAM 134分开实施。一些或所有寄存器136可以被实施为CPU 120的硬件寄存器的一部分。NN的节点的一些输入或输出和/或中间值(例如,加权输入)可以被存储在GPU存储器124中。
计算机设备102可以包括神经网络引擎103以执行一个或多个NN。NN引擎103可以位于系统存储器130内或单独的存储器设备中。NN引擎103还可以包括神经网络模糊引擎(neural network obfuscation engine,NOE)105,以实施NN参数、拓扑和操作的模糊,如本公开中所描述的。NOE 105可以用软件和/或硬件、固件或其任何组合来实施。
图2A示出了根据本公开的一个或多个方面的使用权重和偏差模糊来保护神经网络操作的示例操作200。示例操作200可以由NN引擎103结合NN模糊引擎105来实施。示例操作200被示出用于所使用的NN的单个节点,但是可以对NN的任何数目(或所有)的节点执行类似的操作。图2B示意性地描绘了根据本公开的一个或多个方面的可以作为图2A的示例操作200的一部分来执行的矩阵操作250。
节点输入202可以包括此后表示为行向量的p个输入值{xi}。类似地组复合向量/>的存储的权重204{wi}与存储的偏差206b一起可以确定节点的目标输出/>为了模糊导致输出y的操作,NOE 105可以生成n-1个附加的(虚拟)权重向量,并且将权重向量/>扩展(框208)成权重矩阵n×p
其中,在一个实施方式中,向量之一可以是实际输入的向量/>而其他向量可以是包含模糊权重的虚拟权重向量。仅为了具体起见,在一些图示中,可以假设向量/>可以是实际权重的向量/>而其他向量/>是虚拟权重向量。
此外,NOE 105可以生成n-1个附加的(虚拟)偏差,以将偏差b扩展(框210)成n分量偏差向量
其中,在一个实施方式中,分量之一bj可以是实际偏差b,而其他分量可以是虚拟偏差。仅为了具体起见,在一些图示中,可以假设向量的分量b1可以是实际偏差b,而其他偏差bj≠1是虚拟偏差。虚拟权重和虚拟偏差可以随机生成,从先前准备的值列表(其可以周期性地更新)中选择,或者以任何其他方式选择。
使用扩展的权重和偏差,可以通过首先计算n分量列向量来计算节点的加权输入z,然后为加权输入z选择适当的分量。例如,在实际权重和偏差分别对应于矩阵/>的第一行和向量/>的第一分量的图示中,向量/>的第一分量产生节点的激活函数的实际加权输入(而向量的其他分量模糊了实际加权输入)。
在一些实施方式中,在计算加权输入的向量之前,NOE 105可以执行权重和偏差的附加掩蔽。在下面的描述中,首先使用线性掩蔽示例来说明掩蔽的概念,但是应该理解(也参见以下讨论),也可以使用任何非线性掩蔽,在非线性掩蔽中,解除掩蔽的值可以从它们的经掩蔽值中恢复。在一个示例实施方式中,可以使用掩蔽矩阵来执行掩蔽(框212),掩蔽矩阵/>可以是K×n矩阵,其中k可以与p和/或n不同。具体地,掩蔽矩阵/>可以用于通过确定(在框214)矩阵乘积/>以获得经掩蔽权重的k×n矩阵/>来掩蔽扩展权重。类似地,NOE 105可以通过确定(在框216)经掩蔽偏差的k分量向量/>来执行扩展偏差的附加掩蔽。加权的经掩蔽输入向量218(同样是k分量向量)现在可以被计算为和:
为了获得节点的激活函数的正确加权输入z(以获得节点输出y=f(z)),可以使用解除掩蔽向量来处理经掩蔽输入,例如,/>可以基于逆矩阵/>来确定解除掩蔽向量(框220)。例如,在真实权重和偏差分别对应于矩阵/>的第一行和向量/>的第一分量的图示中,解除掩蔽向量可以被确定为
其中n分量采样向量提取n×k逆掩蔽矩阵/>的第一行。
为了避免在计算加权的经掩蔽输入218(从而向潜在攻击者暴露加权输入z)之后执行解除掩蔽操作(乘以),解除掩蔽操作可以与激活函数f(z)222的计算进行组合。更具体地,代替通过将激活函数f(z)应用于解除掩蔽的加权输入来计算节点输出值226
NOE 105可以首先确定(框224)复合激活函数复合激活函数/>直接对加权的经掩蔽输入/>进行操作,并且产生与激活函数f作用于解除掩蔽的加权输入z相同的结果:
作为结果,基于激活函数222(f)和解除掩蔽向量而确定的并被应用于加权的经掩蔽输入/>的复合激活函数/>生成正确的输出值226(y)。
在各种实施方式中,可以使用任何非线性掩蔽(其中关于实际权重和偏差的信息不会丢失)来代替线性掩蔽。例如,可以使用第一(非线性)掩蔽变换对扩展的权重矩阵进行非线性掩蔽,使得经掩蔽权重矩阵/>的元素/>是扩展的权重矩阵/>的一个或多个(或者甚至所有)元素的函数:/>在可以存在基于经掩蔽权重矩阵的一个或多个元素来确定元素/>的逆(解除掩蔽)变换的意义上,第一变换Fij可以是可逆的:/>类似地,可以使用第二变换对扩展的偏差向量/>进行非线性掩蔽,使得经掩蔽偏差向量/>的元素/>是扩展的偏差向量/>的一个或多个(或者甚至所有)元素的函数:/>在可以存在基于经掩蔽偏差向量/>的一个或多个元素来确定元素/>的逆(解除掩蔽)变换的意义上,第二变换Gi也可以是可逆的:经掩蔽权重矩阵/>和经掩蔽偏差向量/>可以用于计算经掩蔽加权输入。激活函数f(z)可以由第一掩蔽变换F-1和第二掩蔽变换G-1组成,并且可以进一步由采样向量/>组成,以提取经掩蔽加权输入的正确元素。复合激活函数可以直接作用于经掩蔽加权输入,而不解除屏蔽实际加权输入,基本上如关于线性掩蔽所描述的。
周期性地,NOE 105的掩蔽更新模块228可以更新(如虚线箭头所示意性描绘的)掩蔽矩阵权重掩蔽/>偏差掩蔽/>解除掩蔽向量以及复合激活函数/>而无需解除掩蔽权重、偏差或激活函数。在执行了一定数目的NN执行之后,在经过了一定时间之后,等等,可以针对NN执行的每一个实例执行掩蔽更新。在一些实施方式中,可以通过生成新的k×n掩蔽矩阵/>并使用包括实际权重/>和实际偏差b的扩展权重/>和扩展偏差/>计算经掩蔽的权重/>和偏差来获得更新后的权重/>和偏差/>在一些实施方式中,为了保护权重和偏差以免暴露于对抗性攻击,更新后的权重和偏差可以基于先前(例如最近)的权重和偏差,通过使用如下正方形k×k掩蔽矩阵/>来顺序地确定
更新后的复合激活函数可以类似地基于近期(例如,最近)的激活函数来获得。在一些实施方式中,矩阵/>不必是正方形矩阵,而是可以是矩形k′×k矩阵,使得为了附加的保护,/>中的元素数目和偏差/>不同于/>中的元素数目和偏差非线性掩蔽操作也可以以类似的方式更新。
在一些实施方式中,在加权输入被输入到节点的激活函数之前,加权输入可以被另外掩蔽(例如,乘性地和/或加性地)。尽管关于图2A和图2B描述的模糊实施方式涉及线性变换,但是在一些实施方式中,可以使用非线性模糊和掩蔽。例如,可以使用可逆非线性变换代替掩蔽矩阵其中非线性变换的逆由作用于非线性变换的输出的激活函数组成。
作为上面公开的模糊操作(或其他类似操作)的结果,与目标加权输入相比,节点的激活函数的加权输入可以被乘性地(利用掩码m1)和加性地(利用掩码m2)掩蔽:
z→z*=m1·z+m2
各种激活函数的相对应的模糊操作如下所示。应当理解,可以在符合本公开的各种实施方式中使用的激活函数的列表实际上是无限的,并且下面描述的激活函数仅旨在作为说明。
在一些实施方式中,亥维赛函数Θ(z)(阶跃函数)可以用作激活函数y=Θ(m1·z+m2)。在这种实施方式中,掩蔽模糊了将输出为零的输入值z(z<-m2/m1)与输出为非零的输入值(z<-m2/m1)分开的点z=-m2/m1。因为经掩蔽输出yM=Θ(m1·z+m2)=Θ(z+m2/m1)不同于正确输出y=Θ(z),所以随后可以(例如,使用y=yM→y-sign(m2/m1)·Θ(-z(z+m2/m1)))执行附加的调节操作以确定正确输出yM→y。这种解除掩蔽操作可以作为与被提供经掩蔽输出值yM的下一个(下游)节点(或多个节点)相关联的计算的一部分来执行。为了防止攻击者标识输出值变为非零的点(-m2/m1)的位置,NOE 105可以使用附加的技术,诸如将阶跃函数移位到输出值的相同符号域(例如,正或负)。例如,NOE 105可以选择附加的掩码(例如,m3和m4),以确定对于正负输入z都为正(或负)的输出,例如:yM=m3·Θ(m1·z+m2)+m4·Θ(-m1·z-m2)。在一些实施方式中,对用于阶跃函数的自变量符号的条件的评估次序可以被随机化。例如,在评估阶跃函数期间,NOE 105可以随机选择评估哪个条件发生,m1·z+m2>0或m1·z+m2<0,以进一步对点-m2/m1的实际所在位置进行模糊。然后可以(例如,在下一个(多个)节点处)与可以如何执行对掩码m1和m2的调节类似地完成对掩码m3和m4的调节。在一些实施方式中,可以部署所有掩码m1、m2、m3和m4。在一些实施方式中,可以省略掩码m1、m2、m3和m4中的任何一个。类似的技术可以用于模糊激活函数的不连续点,该激活函数不是阶跃函数,而是一些其他不连续函数。
在一些实施方式中,激活函数可以是在某个输入值处具有拐点的整流线性函数(具有或没有泄漏),为了简洁起见,该拐点将被设置为零(尽管可以推广到位于任意z值处的拐点),例如,y=α·z·Θ(z)+β·z·Θ(-z)。当经掩蔽值(例如,zM=z+m1)被输入到这样的激活函数中时,NOE 105可以生成附加的掩码m2并计算两个译码的和与差m+=m2±m1,然后计算两个附加的输入值:
z+=zM+m-≡z+m2;z-=zM-m+≡z-m2
随后,NOE 105可以比较z+和z-的值,以标识实际输入值z的符号,而无需对z解除掩蔽。例如,如果选择正掩码m2并且确定|z+|>|z-|,则NOE 105可以标识z>0,并且应用激活函数的正部分(α部分):yM=α·zM。然后,对掩码m1的调节可以作为下一个节点计算的一部分来执行,例如,y=yM-α·m1。备选地,可以例如通过调节下一个节点的权重和偏差以补偿包含在yM中的额外值α.m1来执行对掩码m1的调节。类似地,如果选择正掩码m2并且确定|z+|<|z-|,则NOE 105可以标识z<0,并且应用激活函数的负部分(β部分):yM=β·zM。对掩码m1的调节可以作为下一个节点的计算的一部分来执行,例如,y=yM-β·m1,或者备选地,可以通过调节下一个节点的权重和偏差以补偿包含在yM中的额外值β·m1来执行对掩码m1的调节。可以使用类似的技术来模糊激活函数的不连续点,该激活函数不是整流线性函数,而是具有不连续导数的其他函数。
可以通过掩蔽(重新缩放)斜率α和β、将拐点的位置从z=0移位到不同的点等来实现附加的模糊。这种附加的模糊可以类似于上述与亥维赛函数相关的重新缩放和移位来执行。
在一些实施方式中,可以使用β=0且α=1的整流线性激活函数(通过部署重新缩放,α也可以被赋予任何其他值):f(x)=relu(x)=(x+|x|)/2。在一些实施方式中,整流线性函数的输入z可以是经掩蔽加权输入zm和经掩蔽值m之和:y=relu(zm+m)。实际输入z=zm+m还可以利用两个附加掩码m1和m2的乘积、使用以下掩蔽程序来掩蔽:
因此,relu(zm+m)被m1和m2掩蔽,而无需单独地显示值z=zm+m。为了进一步掩蔽函数relu(zm+m)的拐点所在的位置,NOE 105可以在计算经掩蔽值|m1·m2|·relu(zm+m)期间引入附加的掩蔽拐点。特别地,由于z≡relu(z)-relu(-z)(或者更一般地,z≡relu(z-a)-relu(-z+a)+a),因此可能引入某个(例如,随机选择的)点z=a处的掩蔽拐点,例如,备选地,整流线性函数可以计算如下,
其中zm=-a处的掩蔽拐点以模糊中间计算但不影响最终结果的方式引入。可以以类似的方式引入附加的掩蔽拐点,直到目标拐点数目。
在一些实施方式中,在激活函数222是线性函数的情况下,解除掩蔽操作(例如,乘以向量先验)可以与激活函数的应用互换:/>相应地,激活函数f可以直接应用于加权的经掩蔽输入/>而解除掩蔽操作(例如,与权重和偏差的应用复合)可以在下一个节点的计算期间应用。在一些实施方式中,可以通过将加权的经掩蔽输入(其为n分量向量)部分缩减为m分量向量来执行附加的掩蔽。更具体地,除了解除掩蔽向量(其解除掩蔽并从/>中选择正确的加权输出值z)之外,
另一向量可以被定义成使得当应用于加权输入/>的向量时,它选择加权输入的向量的各种特定(例如,在数目和位置方面随机选择)元素并对其求和:
例如,这里示出的行向量选择向量/>的第二个、第三个和最后一个分量(对于总共n-1个分量而言)并将其相加在一起。应用于部分减少的加权的经掩蔽输入/>的线性激活函数现在可以被表示为,
其中术语表示节点的实际输出,并且术语/>对应于掩蔽数据。相应地,在一个实施方式中,NOE 105可以将总值/>输入到激活函数,并减去解除掩蔽值/>以确定节点的实际输出:
在一些实施方式中,减去掩蔽值可以作为下一个节点的计算的一部分来执行(例如,通过使用与掩蔽值复合的输入和权重)。
在一些实施方式中,S型函数可以用作激活函数。为了在不暴露实际输入z的情况下基于经掩蔽输入z+m1来确定S型函数y=S(z)=[1+exp(-z)]-1的输出值,可以实施以下程序。可以选择附加(可选)的掩蔽值m2(例如,随机地选择或者从可以周期性更新的现有列表中选择),并且可以计算指数值:
f1(z)=exp(z+m1+m2),f2(z)=exp(z+m1),f3=exp(m1)
使用计算的值,输出值可以被确定为
因此,输出值yM(被exp(m2)乘性地掩蔽)是在不显示实际输入z(其以组合z+m1进行处理)的情况下确定的。然后,可以使用yM乘exp(-m2)的乘法来执行对实际输出y的解除掩蔽。备选地,对掩蔽的调节可以作为下一个节点的计算的一部分来执行(例如,使用与解除掩蔽值exp(-m2)复合的输入和权重)。
类似地,softmax激活函数的掩蔽
可以通过计算下式来执行:
与S型函数的情况一样,输出值yM(被exp(m1)乘性地掩蔽并且被exp(m2)加性地耦合)是在不显示输入z1和z2的情况下确定的(其分别以相应的组合z1+m3和z2+m3进行处理)。可以通过单独使用y=yM·exp(-m1)-exp(m2-m1)或者与下一个(或多个)节点的计算结合使用来执行对实际输出y的解除掩蔽。
图3A示出了根据本公开的一个或多个方面的通过对神经网络节点的激活函数进行模糊来保护神经网络的示例操作300。示例操作300可以由NN引擎103结合NN模糊引擎105来实施。针对NN的一对节点(例如,第一节点301和第二节点303),示出了示例操作300。尽管为了简洁起见,操作300被示出为在不模糊权重和偏差的情况下执行,但是应当理解,操作300也可以与这种模糊操作进行组合(例如,如上文关于图2A和图2B所公开的)。
如图3A所示,第一节点输入302(例如,行向量)可以使用权重304(例如,/>)来加权,并且利用偏差306(例如,b)来偏置,以确定加权输入318(例如,/>)。在正常(无模糊)节点操作下,加权输入318可以被提供给激活函数f(z)以生成节点的节点输出/>在一些实施方式中,这种正常操作可以被修改以保护免受对抗性攻击。更具体地,操作300可以包括使用模糊函数312对激活函数322进行模糊以保护性质(例如,类型)和特定形式(例如,激活函数的参数),模糊函数312可以由NOE 105随机生成、从模糊函数的数据库中选择等等。模糊函数312(例如,s=g(f))可以是可逆函数(使得可以由激活函数322输出的输入f的范围存在唯一值f=g-1(s))。模糊函数312可以应用于节点输出y,并且可以产生模糊输出O=g(f(z))。为了模糊激活函数f(z)322,NOE 105可以计算模糊输出O而无需显示f(z)。具体地,NOE 105可以获得直接应用于加权输入318的复合激活函数/>324,
以计算模糊输出O,而无需执行计算f(z)的中间步骤。在一个非限制性示例中,激活函数322可以是S型函数f(z)=[1+exp(-z)]-1。NOE 105可以通过选择自然对数模糊函数312g(f)=lnf来模糊激活函数322。因此,复合激活函数324可以首先被选择为/>
模糊输出O然后可以作为(模糊)输入330被提供给第二节点303(或对其可用)。另外,可以向第二节点303提供去模糊函数332。去模糊函数332可以是模糊函数312s=g(f)的逆f=g-1(s)。例如,如果模糊函数312被选择为g(f)=exp(f)-1,则去模糊函数332可以是g-1(s)=ln(1+s)。
去模糊函数332可以用于标识第一节点301的实际输出值y,而无需显示输出值y。例如,第二节点303的权重334的相应权重w(对来自第一节点301的输入进行加权)可以与去模糊函数332进行组合,以形成第二节点303的复合权重335的相应复合权重,例如,w′=wg-1。在一些实施方式中,第二节点303的所有输入(例如,来自所有上游节点)可以类似地利用相应的模糊函数312进行模糊,并且使用相应的去模糊函数332进行去模糊,例如,通过为向第二节点303提供输入的每个(上游)节点形成相应的复合权重。然后,复合权重335以及偏差336可以用于获得第二节点303的激活函数340的加权输入338。复合权重335和偏差336可以使用关于图2A和图2B描述的实施方式来进一步进行掩蔽。
图3B示出了根据本公开的一个或多个方面的通过使用神经网络节点的多个模糊激活函数来保护神经网络的示例操作350。示例操作350可以由NN引擎103结合NN模糊引擎105来实施。示例操作350可以通过生成多个激活函数322(诸如f1(z)、f2(z)、……)以模糊第一节点301的实际激活函数f(z)来进一步保护神经网络。每个激活函数fj(z)也可以利用相应的模糊函数312(例如,gj(f))进行模糊,模糊函数312可以是可逆函数。多个模糊函数312可以应用于节点输出y,并且可以产生多个模糊输出Oj=gj(fj(z))。NOE 105可以计算模糊输出Oj,而无需不显示fj(z)。特别地,NOE 105可以获得直接应用于加权输入318的多个复合激活函数
并且计算模糊输出Oj,而无需执行计算fj(z)的中间步骤。
模糊输出Oj然后可以作为向量模糊输入330(例如, )被提供给第二节点303。(在一些实施方式中,向第二节点303提供输入的每个上游节点可以提供其自己的模糊输入向量330,每个向量具有多个分量,这些分量可以不同于由其他上游节点提供的多个分量。)另外,为了模糊激活函数f1(z)、f2(z)、……中的哪一个是实际激活函数以及哪一个函数是虚拟函数,NOE 105可以在输出分量Oj之间执行输出的混合。
作为仅旨在说明这种输出混合的非限制性示例,激活函数f1(z)可以是实际激活函数,而激活函数f2(z)和f3(z)可以是虚拟激活函数。如上所述,可以利用相应的模糊函数g1、g2或g3来模糊每个激活函数。为了符号的简洁,这种模糊此后是隐含的,但没有明确说明。可以构造掩蔽矩阵其将激活函数向量/>转换成输出值向量:例如,掩蔽矩阵/>
生成以下输出值向量:O1=m1f1+m2f2+m3f3,O2=m2f2,O3=m3f3。相应地,下面的解除掩蔽向量
可以用于使用输出值向量对正确激活函数解除掩蔽:对实际输出y的解除屏蔽可以与第二节点303的复合权重335的计算相结合地执行。
图4描绘了根据本公开的一个或多个方面的使用权重和偏差的模糊来保护神经网络操作的示例方法400的流程图。方法400以及下面公开的方法500和/或它们单独的函数、例程、子例程或操作中的每一个可以由实施这些方法的计算系统的一个或多个处理单元来执行,例如,CPU 120和/或GPU 122或一些其他处理设备(算术逻辑单元、FPGA等,或者任何处理逻辑、硬件或软件或其组合)。在某些实施方式中,方法400和方法500中的每个方法可以由单个处理线程来执行。备选地,方法400和方法500中的每个方法可以由两个或更多个处理线程来执行,每个线程执行方法的一个或多个单独的函数、例程、子例程或操作。在说明性示例中,实施方法400和方法500中的每个方法的处理线程可以被同步(例如,使用信号量、临界区和/或其他线程同步机制)。备选地,实施方法400和方法500中的每个方法的处理线程可以相对于彼此异步地执行。与图4和图5所示的次序相比,方法400和方法500中的每个方法的各种操作可以以不同的次序执行。一些框可以与其他框同时执行。一些框可以是可选的。方法400和方法500中的每个方法的一些或所有框可以由NOE 105执行。
方法400可以被实施来保护神经网络的执行免受尝试标识关于神经网络的专有信息的对抗性攻击。方法400可以涉及处理设备在框410处获得神经网络的多个节点中的第一节点的输入值向量(例如,)。术语“第一”和“第二”在本文中仅用作标识符,而不是以任何限制性方式使用。例如,“第一节点”(以及类似的“第二节点”)可以是神经网络的任意节点,并且不应被理解为在网络的其他节点之前执行的节点。网络的任何节点(例如,第一节点)可以与将输入值向量(例如,/>)映射到第一节点的目标加权输入值(例如,z)上的多个参数相关联。例如,第一节点的参数可以包括第一节点的权重(例如,/>)和第一节点的偏差(例如,b)等。第一节点的参数可以表示被保护免受可能攻击的专有信息的一部分。
在框420处,实施方法400的处理设备可以执行多个参数的第一变换,以获得第一节点的扩展的多个参数。扩展的多个参数中的至少一些参数可以是模糊参数。在一些实施方式中,框420可以包括由图4的相关引出部分描述的操作。例如,如框422所示,第一变换可以包括获得可包括第一节点权重(例如,)的一个或多个(实际)权重和多个模糊(虚拟)权重的扩展的权重矩阵(例如,/>)。另外,如框424所示,第一变换可以包括获得包括第一节点的(实际)偏差值(例如,b)和多个模糊偏差(例如,/>)的扩展的偏差向量。/>
在框430处,方法400可以包括基于输入值向量(例如,)和扩展的多个参数(例如,/>和/>)来确定第一节点的一个或多个加权输入值。例如,在一些实施方式中,一个或多个加权输入值可以是/>在一些实施方式中,框430可以包括由图4的相关引出部分描绘的操作。例如,如框432所示,方法400可以包括执行第一掩蔽变换以从扩展的权重矩阵获得经掩蔽权重矩阵。在一个特定的非限制性示例中,当使用线性掩蔽时,NOE 105可以将扩展的权重矩阵(例如,/>)乘以掩蔽矩阵(例如,/>),以获得经掩蔽权重矩阵(例如,/>)。在框434处,方法400可以继续执行第二掩蔽变换以从扩展的偏差向量获得经掩蔽偏差向量。在一个特定的非限制性示例中,当使用线性掩蔽时,NOE 105可以将扩展的偏差向量(例如,/>)乘以掩蔽矩阵,以获得经掩蔽偏差向量(例如,/>)。在框436处,方法400还可以包括将经掩蔽偏差向量(例如,/>)加到经掩蔽权重矩阵(例如,/>)与输入值向量(例如,/>)的乘积上,例如,计算/>所确定的一个或多个加权输入值(例如,向量/>)可以不同于目标加权输入值(例如,z),但是可以包括足以恢复目标加权输入值的信息。更具体地,可以使用第二变换从一个或多个加权输入值获得目标加权输入值,例如,使用/>乘解除掩蔽向量的乘法:/>(尽管第二变换不必明确执行,而是可以改为由激活函数构成,如下所述。)
在框440处,方法400可以继续,处理设备确定由激活函数和第二变换形成的复合激活函数。例如,复合激活函数可以是其中f表示激活函数,并且/>表示从中恢复z的第二变换。在框450处,方法400可以继续,处理设备将复合激活函数/>应用于第一节点的一个或多个加权输入值(例如,向量/>),以获得第一节点的输出值。在一些实施方式中,输出值可以是实际目标输出值y,其等于应用于目标加权输入值的激活函数值(例如,y=f(z))。然而,在一些实施方式中,输出可以表示目标输出值f(z),但是可以不同于目标输出值f(z),例如,是模糊的目标输出值。
在可选框460处,方法400可以继续,处理设备更新第一掩蔽变换或第二掩蔽变换中的至少一个。在一个使用线性掩蔽的非限制性示例中,处理设备可以通过将经掩蔽权重矩阵(例如,)乘以第二掩蔽矩阵(例如,/>)来获得更新后的经掩蔽权重矩阵(例如,)。在一些实施方式中,可以随机选择第二掩蔽矩阵。处理设备还可以通过将经掩蔽偏差向量乘以第二掩蔽矩阵来获得更新后的经掩蔽偏差向量(例如,/>)。
图5描绘了根据本公开的一个或多个方面的使用激活函数模糊来保护神经网络操作的示例方法500的流程图。方法500可以由CPU 120、GPU 122或一些其他处理设备(算术逻辑单元、FPGA等,或任何处理逻辑、硬件或软件或其组合)来实施。在框51e处,实施方法500的处理设备可以基于神经网络的第一节点的参数(例如,权重和偏差)来确定第一节点的激活函数(例如,f(z))的加权输入(例如,z或)。在一些实施方式中,可以使用第一节点的多个经掩蔽权重以及结合图4的方法400描述的其他模糊技术来获得第一节点的加权输入。
在框520处,方法500可以继续,处理设备选择第一节点的模糊函数(例如,g(f))。在一些实施方式中,模糊函数可以是可逆函数。在框530处,方法500可以继续,处理设备确定第一节点的第一复合激活函数(例如,),其中复合激活函数由第一节点的激活函数(例如,f(z))和第一节点的模糊函数(例如,g(f))形成。在一些实施方式中,框530可以包括由图5的相关引出部分描绘的操作。例如,第一复合激活函数可以是为第一节点定义的多个复合激活函数之一,多个复合激活函数中的每个复合激活函数(例如,/>)是基于第一节点的多个激活函数中的相应激活函数(例如,{fj})和第一节点的多个模糊函数中的相应模糊函数(例如,{gj})。
在框540处,方法500可以继续,处理设备将第一复合激活函数应用于加权输入(例如,z或)以计算第一节点的模糊输出(例如,O)。在一些实施方式中,框540可以包括由图5的相关引出部分描绘的操作。例如,在框542处,实施方法500的处理设备可以将多个复合激活函数中的每个复合激活函数(例如,/>)应用于加权输入,以计算第一节点的多个模糊输出(例如,{Oj}或等同的/>)的相应模糊输出(例如,Oj)。在框544处,实施方法500的处理设备可以掩蔽多个模糊输出(例如,将掩蔽矩阵应用于模糊输出:)。
在框550处,方法500可以继续,处理设备将第一节点的模糊输出(例如,O)提供给神经网络的多个节点中的第二节点。在一些实施方式中,框550可以包括由图5的相关引出部分描绘的操作。例如,在生成多个模糊输出(例如,{Oj})的那些实施方式中,实施方法500的处理设备可以在框552处将多个模糊输出{Oj}中的每个模糊输出提供给第二节点。
在框560处,方法500可以继续,处理设备确定第二节点的激活函数的加权输入。例如,处理设备可以向第一节点的所提供的模糊输出(例如,O)应用与去模糊函数(例如,g-1)复合的第二节点的权重(例如,)。在一些实施方式中,例如,如结合图4的方法400所描述的,可以使用第二节点的多个经掩蔽权重来获得第二节点的激活函数的加权输入。在一些实施方式中,框560可以包括由图5的相关引出部分描绘的操作。例如,在模糊输出被另外掩蔽的那些实施方式中(在框544处),执行方法500的处理设备可以对多个模糊输出解除掩蔽(例如,使用如结合图3B所描述的解除掩蔽向量/>)。在一些实施方式中,解除掩蔽可以与确定第二节点的加权输入复合。在一些实施方式中,解除掩蔽还可以与一个或多个去模糊函数复合。
图6A-图6E示出了根据本公开的一个或多个方面的通过使用虚拟操作进行模糊来保护神经网络架构的示例操作600。所示出的各种实施方式能够通过执行非紧要(inconsequential)的操作(不影响神经网络执行的成果)来模糊神经网络的实际架构,而在同一时间向潜在攻击者呈现更宽范围的待跟踪和分析的操作。另外,非紧要操作还可以以保持这些操作非紧要的任何方式(在规则时间或在随机时间)被改变,从而进一步阻碍攻击者收集有意义的统计数据。在一些实施方式中,非紧要操作可以扩展到不会改变相关(紧要)数据流的整个节点(“虚拟节点”)。在一些实施方式中,非紧要操作可以扩展到虚拟节点的整个层。虚拟操作、虚拟节点和虚拟层不仅可以使攻击者更难以标识节点的参数,而且还模糊神经网络的拓扑(节点数、层数、边数)。
图6A示出了可以用于模糊神经网络操作的常数输出节点的示例实施方式。常数输出节点602可以被配置为输出常数值(例如,y0),而不管输入值(例如,{xi})如何。例如,常数输出节点可以具有激活函数,例如与指数函数复合的亥维赛阶跃函数Θ(exp(∑iwixi)),或者与S型函数复合的激活函数,或者输出常数值y0(由虚线箭头指示)的任何其他激活函数或者激活函数组合。值y0可以是正数、负数或零。因为输入{xi}不影响y0值,所以输入可以是真实节点或虚拟节点的输出,可以是模糊的或非模糊的,可以是来自神经网络的任何层、来自多个层等等的输入。常数输出y0可以被提供给一个或多个节点,诸如被配置为以不影响网络内实际数据流的方式处理这种常数输出的常数调节节点604。例如,常数调节节点604可以利用权重w0对来自常数输出节点602的输出y0进行加权,并且还将偏差值从期望(目标)值bT→b调节到值b=bT-w0y0。在进行这样的调节后,常数调节节点604可能能够处理来自其他节点的输出(实线箭头),而不影响由神经网络(例如,由常数调节节点604和各种其他下游节点)执行的实际计算。在一些实施方式中,例如,在常数输出节点输出零值y0=0(零输出节点)的情况下,常数调节节点604或其他下游节点不需要执行调节。在一些实施方式中,可以使用由多个激活函数产生的多个输出值来模糊节点的常数输出特性,如以上结合图3B所公开的。
图6B示出了可以用于模糊神经网络操作的直传(pass-through)节点的示例实施方式。直传节点610可以具有没有修改而直传的输入(或多个输入)x1,即使另一输入(或多个输入)x2正由同一节点处理。在一些实施方式中,直传节点610的输出独立于(多个)特定值x2。例如,直传节点610的操作可以包括使用至少一个非线性权重函数对输入值进行加权,例如,z=w1(x1)+w2(x2)+b。输入x2的权重函数w2(x2)可以是模糊函数,其执行的计算最终不会改变节点的加权输入z,但是涉及一系列总体效果为零的操作(乘法、加法、指数等)。例如,非线性权重函数可以是w2(x)=ln(ex+1)-x-ln(1+e-x)。确定加权输入z=w1(x1)+w2(x2)+b可以涉及将权重函数w2(x2)的不同步骤(项)的计算与计算w1(x1)+b中的步骤进行混合(扰乱),以用于针对对抗性攻击的附加保护。加权输入z=w1(x1)+b然后可以由直传节点610的恢复输入x1的激活函数f(z)处理,例如,f(w1(x1)+b)=x1。这种节点的直传特性可以用关于图2A-图2B和图3A-图3B描述的各种技术进一步模糊。
图6C示出了可以用于模糊神经网络操作的直传节点聚类的示例实施方式。示意性地描绘了包括三个节点621、622和623的聚类,但是可以在直传聚类中布置任何数目的节点。输入节点621和622可以具有被直传的输入(或多个输入)x1,而另一输入(或多个输入)x2出于模糊的目的而被处理。第一节点621可以输出x1和x2的第一函数(仅为了说明的目的而示出x1和x2的偶数组合),而第二节点622可以输出x1和x2的第二函数(为了说明而示出x1和x2的奇数组合)。随后,当第三节点623处理第一函数和第二函数时,第三节点623可以输出例如仅由第一输入x1而不是第二输入x2确定的值y(x1)。在一些实施方式中,第三节点623的输出可以与第一输x1入相同(纯直传聚类)。在一些实施方式中,第三节点623的输出可以被掩蔽,例如,y(x1)=m1·x1+m2(掩蔽直传聚类)。在一些实施方式中,节点聚类可以另外执行实质计算含义,使得y(x1)不等于x1或其经掩蔽表示。节点621和623的输出可以另外被输入到一个或多个虚拟节点,诸如各种零输出和常数输出节点,以使潜在攻击者更难以标识聚类的直传特性。
图6D示出了可以用于模糊神经网络操作的来自节点的虚拟(非紧要)输出的示例实施方式。示出了将多个输出值{Oi}输出到节点631和632的节点630。节点631可以将输出值{Oi}用于真实计算,而节点632可以将相同的输出值用于虚拟计算。相应地,输出{Oi}在被输入到节点631时是紧要(consequential)输入633(该输入影响神经网络执行的输出),而在输入到节点632时是非紧要输入634(不影响神经网络执行的输出)。在一些实施方式中,产生可以用作其他节点的紧要输入和非紧要输入的输出可以包括接收节点630的输入{xi}并确定节点630的加权输入值z(在一些实施方式中,其可以使用上面公开的技术进行模糊)。节点630可以部署多个激活函数{fi},其中函数f2、f3、……用于模糊节点630的实际激活函数f1。为了进一步模糊哪一个激活函数{fi}是实际激活函数,可以使用{fi}的变换来获得输出值{Oi}。在一些实施方式中,可以部署线性模糊变换,例如,使用掩蔽矩阵将值向量/>(具有等于集合{fi}的各种函数的分量)变换成输出值向量/>由节点631接收的向量/>可以由权重(向量)集合/>处理,以获得加权节点630输入,例如,为了使该加权输入等于节点630的实际输出f1(z),可以选择节点631的权重/>使得/>是第一分量等于1且所有其他分量等于0的向量。例如,权重可以是相应地,节点631可能能够在紧要输入633当中标识(并处理)正确输入。另外,节点631可以从其他节点接收其他输入{Fi},并且与节点630的所标识输入f1(z)一起处理输入{Fi}。因此,节点631的输出可以是输入f1和{Fi}的函数:y1(f1,{Fi})。
当非紧要输入634(其可以是相同值{Oi},或者等同于相同向量)被提供给节点632时,节点632可以应用不同的权重(向量)集合/>来获得加权节点630输入,例如,其中/>为了确保输入634是非紧要的,可以选择权重/>以使所有z值的乘积/>消失。例如,分量v1可以为零:v1=0。其余输入的消失可以通过将模糊函数选择为线性相关来实现,例如,使得存在关系:
在这种条件(或类似条件)下,并且假设选择权重和掩蔽矩阵/>以遵守条件节点632的输出可以独立于非紧要输入634。另外,节点631可以从其他节点接收其他输入{Gi},并且处理输入{Gi}以及非紧要输入634。结果,节点632的输出可以是输入{Gi}的函数:y2({Gi})。在各种实施方式中,模糊函数f2(z)、f3(z)、……的数目可以不同。在一些实施方式中,可以仅使用两个函数f2(z)和f3(z)。即使这两个函数f2(z)和f3(z)可能本质上等于同一函数(取决于常数因子的乘法),NOE 105也可以改变相应函数是如何进行计算,使得这两个(或更多个)函数的相似性被模糊以保护免受对抗性攻击。例如,其中一个函数可以是
f2(z)=(z2+1)2
而另一函数可以是
即使f3(z)=2·f2(z),攻击者也不容易确定这一事实,尤其是在计算不同模糊函数的操作被扰乱的情况下(例如,在处理设备不是完全顺序地而是成批地计算不同函数的情况下,其中有关各种函数的成批计算与有关其他函数的成批计算穿插在一起)。可以使用两个以上的函数来增加保护。在一些实施方式中,函数(在数目和特定形式方面)可以以特定时间间隔、周期性地或者在特定数目的NN操作之后改变。
尽管已经使用了从{fi}到输出值{Oi}的线性变换(为了符号的简洁和容易)来说明结合图6D执行的操作,但是各种非线性(可逆)变换也可以用于该目的。
图6E示出了具有可以用于模糊神经网络操作的抵消输出的节点聚类的示例实施方式。示意性地描绘了包括四个节点641、642、643和644的聚类,但是可以类似地布置任何数目的节点。输入节点641、642和643可以具有不同的输入(向量)集合和/>在一些实施方式中,输入向量可以是任意的并且彼此独立。每个节点可以输出一个或多个激活函数,例如,节点641可以输出激活函数f1和f′1,节点642可以输出激活函数f2和f′2,并且节点643可以输出激活函数f3和f′3。相应对中的激活函数可以彼此不同,但是可以是相关的,例如,函数f1可以是节点641的(加权)输入的S型函数f1=S(z1),而相应函数f′1可以是f′1=S(-z1)。对于任何z1值,节点641的两个输出可以相加为常数,例如,在该示例中f1+f′1=1。类似的条件可以由其他输出对来满足,例如,函数f2和f′2可以是亥维赛函数f2=Θ(z2)和f′2=Θ(-z2),等等。节点644可以组合来自三个输入节点的激活函数,并且输出常数值。例如,节点644的激活函数的加权输入值可以是z4=f1+f′3+f′1+f2+f3+f′2。求和的次序可以混合,以模糊成对的相应输出相加为常数(例如,3)的事实。然后,节点644的任意激活函数f4可以应用于(常数)加权输入值,以产生常数输出f4(z4)。在一些实施方式中,可以选择节点644的偏差值,以确保抵消聚类的输出f4(z4+b)总是零,尽管可以输出任何其他常数值。节点644可以具有对节点644的输出的贡献不会抵消的附加输入(由箭头示出)。相应地,节点644可以充当模糊节点和对NN操作有贡献的活动节点。
结合图6A-图6E公开的虚拟操作的各种实施方式可以彼此组合。例如,图6B的直传节点可以与图6E的抵消节点进行组合。可以使用关于图2A-图2B、图3A-图3B、图4和图5公开的任何技术来模糊结合图6A-图6E公开的任何操作和所有操作,包括(但不限于)通过权重和偏差扩展进行的模糊、通过掩蔽进行的模糊、通过划分激活函数进行的激活函数模糊等。
结合图6A-图6E公开的虚拟操作的各种实施方式仅用于说明目的。虚拟操作和虚拟节点的实际上无限数目的其他实施方式、变化和组合是可能的。
在一些实施方式中,具有非紧要输入的多个节点(可以包括直传节点、常数输出节点、抵消节点或者关于图6A-图6E描述的任何其他节点)可以被加入到多节点聚类中。在一些实施方式中,可以形成直传节点的整个虚拟层,以模糊NN中的总层数和NN架构的其他特征。在一些实施方式中,虚拟节点可以用于模糊NN的各层中的多个节点。在一些实施方式中,虚拟节点可以用于掩蔽NN的性质,例如,以(向攻击者)将卷积网络(或更大网络的卷积子网络)呈现为解卷积NN或全连接层的NN。例如,层的一部分可以由虚拟节点(例如,常数输出节点)构成,其中连接到虚拟节点的下一层节点调节或抵消来自虚拟节点的输入。虚拟节点和虚拟层的直传性质可以利用上面关于图2A-图2B、图3A-图3B、图4和图5公开的一些或所有模糊技术进行模糊。
图7描绘了根据本公开的一个或多个方面的使用神经网络架构的模糊来保护神经网络操作的示例方法700的流程图。方法700和/或其每个单独的函数、例程、子例程或操作可以由实施方法的计算系统的一个或多个处理单元(例如,CPU 120和/或GPU 122)来执行。在某些实施方式中,方法700可以由单个处理线程来执行。备选地,方法700可以由两个或更多个处理线程来执行,每个线程执行方法的一个或多个单独的函数、例程、子例程或操作。在说明性示例中,实施方法700的处理线程可以被同步(例如,使用信号量、临界区和/或其他线程同步机制)。备选地,实施方法700的处理线程可以相对于彼此异步地执行。与图7所示的次序相比,方法700的各种操作可以以不同的次序执行。一些框可以与其他框同时执行。一些框可以是可选的。方法700中的每一个的一些或所有框可以由NOE 105执行。
方法700可以被实施来保护神经网络(NN)模型的执行免受尝试标识关于NN模型的专有信息的对抗性攻击。可以使用方法700来保护多个NN模型702。方法700可以涉及处理设备在框710处标识待保护的特定神经(NN)模型。所标识的NN模型可以被配置为基于NN模型的输入来生成NN模型的目标输出。例如,NN模型的输入可以是文档图像的数字表示,并且目标输出可以是包含在文档中的标识文本。在另一示例中,输入可以是人类语音的数字表示,并且目标输出可以是所标识的语音主人。所标识的模型可以包括多层节点,每一层具有多个节点。每个节点可以与多个权重(对来自各种输入节点的输入值进行加权)、偏差以及一个或多个激活函数相关联,并且可以向任何数目的下游节点输出计算值。
在框720处,方法700可以继续,处理设备获得经修改的NN模型730。对NN模型的修改可以包括对NN模型的现有操作的模糊(例如,通过扩展、掩蔽、随机化等),诸如配置现有节点以修改权重、偏差、激活函数,生成进入/来自各种节点的附加输入/输出,等等。对NN模型的修改可以以这样的方式执行,即经修改的NN模型730被配置为基于(多个)相同输入来输出(多个)相同的目标输出,如所标识的NN模型被配置为输出的一样。相应地,经修改的NN模型730可以类似于未修改的NN模型地运行,但是经修改的NN模型730的操作可以被保护免受对抗性攻击。
在一些实施方式中,获取经修改的模型730可以包括配置第一节点以向第二节点提供一个或多个输出值,其中由第一节点提供的一个或多个输出值可以包括第二节点的一个或多个非紧要输入值(框740)。例如,参考图6D,第一节点630可以向第二节点632提供非紧要输入值634。非紧要输入值可能对经修改的神经网络模型730的输出没有影响。例如,第二节点(例如,节点634)可以被配置为执行一个或多个操作来补偿非紧要输入值。例如,执行方法700的处理设备可以改变第二节点的权重和偏差,以抵消非紧要输入值。在一些实施方式中,对非紧要输入值的补偿可以不由第二节点的操作来执行,而是由经修改的NN模型730(相对于第二节点)的下游部分内的其他节点来执行。下游部分可以包括第二节点,以及其计算在第二节点的计算之后执行并且通过一条或多条边连接到第二节点的任何其他节点。下游部分可以被配置为在产生经修改的NN模型的目标输出之前(或同时)的某个点处补偿第二节点的一个或多个非紧要输入值。术语“第一”和“第二”在本文中仅用作标识符,并且可以标识NN模型的任意节点。
在一些实施方式中,经修改的NN模型730可以包括由示出多个说明性非限制性示例的框740-772所描绘的各种操作。在一些实施方式中,第二节点的一个或多个非紧要输入值可以包括由第一节点(例如,图6A的节点602)输出的至少一个常数输入值(框740)。第一节点可以将多个输入的常数值输出到第一节点。在一些实施方式中,第一节点可以针对第一节点的所有输入来输出相同的常数值。在一些实施方式中,常数输入值可以为零。相应地,当常数零输入乘以对第一节点所提供的输入值进行加权的第二节点的相应权重时,可以自动执行对第二节点的常数输入值的补偿。在一些实施方式中,常数输入值可以是非零的,并且第二节点可以被配置为补偿常数输入值。例如,第二节点可以是结合图6A描述的常数调节节点604。
在一些实施方式中,第二节点可以是虚拟节点,并且可以仅执行不影响经修改的NN模型的最终输出的计算(虚拟计算)。然而,在一些实施方式中,第二节点可以执行虚拟计算和实际(紧要)计算。例如,第二节点可以是图6D的节点632,其可以从经修改的NN模型的一个或多个附加节点接收附加输入值(例如,{Gi})(框750)。附加输入值可以是第二节点的紧要输入值,并且可以是由NN模型执行的实际计算的一部分。
在一些实施方式中,经修改的NN模型可以包括第三节点(框760)。第一节点可以提供第三节点的一个或多个输入值。例如,第三节点可以是图6D的节点631,并且可以从第一节点(节点630)接收与第二节点632所接收的输入相同的输入。由第三节点接收的输入值可以是第三节点的紧要输入值,并且可以是由NN模型执行的实际计算的一部分。在一些实施方式中,作为输入值提供给第三节点的第一节点的一个或多个输出值可以使用本公开中描述的任何技术进行模糊(框762)。随后,第三节点的操作可以包括应用去模糊变换来对第一节点所输出的一个或多个值进行去模糊。
在一些实施方式中,第二节点可以是被配置为从第三节点接收一个或多个附加输入值的直传节点(框770)。第二节点的输出可以基于一个或多个附加输入值,并且可以独立于第二节点的一个或多个非紧要输入值。例如,直传节点可以是图6B所示的节点610。非紧要输入(例如,x2)可以从第一节点接收(沿着由虚线箭头指示的边),并且附加输入(例如,x1)可以从第三节点接收(沿着由实线箭头指示的边)。附加输入值可以是第二节点的紧要输入值,并且可以是由NN模型执行的实际计算的一部分。在一些实施方式中,第二节点的输出可以与从第三节点接收的一个或多个附加输入值相同,诸如y=x1(例如,纯直传节点)。在一些实施方式中,第二节点的输出可以包括一个或多个附加输入值的模糊表示(框772),例如,经掩蔽表示y=m1·x1+m2(掩蔽直传节点)。从第二节点接收输出的各种下游节点然后可以进行调节以补偿掩蔽。
在一些实施方式中,第二(直传)节点可以是添加到经修改的NN模型的多个直传节点之一(框774)。直传节点可以随机散布在执行NN模型的实际计算的节点中。在一些实施方式中,直传节点可以构成添加到经修改的NN模型的各种(包括多个)节点层的部分。在一些实施方式中,经修改的NN模型的直传节点可以形成一个或多个完整的直传节点层,以模糊经修改的NN模型的拓扑。
图8描绘了根据本公开的一个或多个方面进行操作的示例计算机系统800的框图。在各种说明性示例中,计算机系统800可以表示图1A-图1B所示的计算机设备102。
示例计算机系统800可以连接到LAN、内联网、外联网和/或互联网中的其他计算机系统。计算机系统800可以在客户机-服务器网络环境中以服务器的身份进行操作。计算机系统800可以是个人计算机(personal computer,PC)、机顶盒(set-top box,STB)、服务器、网络路由器、交换机或网桥,或者能够执行指定该设备要采取的动作的(顺序或其他)指令集的任何设备。此外,虽然仅示出了单个示例计算机系统,但是术语“计算机”也应当被认为包括单独或联合执行一个(或多个)指令集以执行本文讨论的任何一个或多个方法的计算机的任何集合。
示例计算机系统800可以包括处理设备802(也称为处理器或CPU)(其可以包括处理逻辑827)、主存储器804(例如,只读存储器(ROM)、闪存、诸如同步DRAM(SDRAM)等的动态随机存取存储器(DRAM))、静态存储器806(例如,闪存、静态随机存取存储器(SRAM)等)和辅助存储器(例如,数据存储设备818),它们可以经由总线830彼此通信。
处理设备802表示一个或多个通用处理设备,诸如微处理器、中央处理单元等。更具体地,处理设备802可以是复杂指令集计算(complex instruction set computing,CISC)微处理器、精简指令集计算(reduced instruction set computing,RISC)微处理器、超长指令字(very long instruction word,VLIW)微处理器、实施其他指令集的处理器或者实施指令集组合的处理器。处理设备802也可以是一个或多个专用处理设备,诸如专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)、数字信号处理器(digital signal processor,DSP)、网络处理器等。根据本公开的一个或多个方面,处理设备802可以被配置为执行实施使用权重和偏差的模糊来保护神经网络操作的方法400、使用激活函数模糊来保护神经网络操作的方法500以及使用神经网络架构的模糊来保护神经网络操作的方法700的指令。
示例计算机系统800还可以包括网络接口设备808,网络接口设备808可以通信地耦合到网络820。示例计算机系统800还可以包括视频显示器810(例如,液晶显示器(liquidcrystal display,LCD)、触摸屏或阴极射线管(cathode ray tube,CRT))、字母数字输入设备812(例如,键盘)、光标控制设备814(例如,鼠标)和声信号生成设备816(例如,扬声器)。
数据存储设备818可以包括其上存储有一个或多个可执行指令集822的计算机可读存储介质(或更具体地,非暂态计算机可读存储介质)828。根据本公开的一个或多个方面,可执行指令822可以包括实施使用权重和偏差的模糊来保护神经网络操作的方法400、使用激活函数模糊来保护神经网络操作的方法500以及使用神经网络架构的模糊来保护神经网络操作的方法700的可执行指令。
可执行指令822在其由示例计算机系统800执行期间也可以完全或至少部分地驻留在主存储器804和/或处理设备802内,主存储器804和处理设备802也构成计算机可读存储介质。可执行指令822还可以经由网络接口设备808在网络上发送或接收。
虽然计算机可读存储介质828在图8中被示为单个介质,但是术语“计算机可读存储介质”应该被理解为包括存储一个或多个操作指令集的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应被理解为包括能够存储或编码供机器执行的指令集的任何介质,该指令集使得机器执行本文描述的任何一个或多个方法。相应地,术语“计算机可读存储介质”应该包括但不限于固态存储器以及光学和磁性介质。
以上详细描述的一些部分是根据计算机存储器内对数据位的操作的算法和符号表示来呈现的。这些算法描述和表示是数据处理领域的技术人员用来最有效地向本领域的其他技术人员传达他们工作的实质的手段。算法在这里通常被认为是导致期望结果的自洽的步骤序列。这些步骤需要对物理量进行物理操纵。通常,尽管不是必须的,这些量采取能够被存储、传递、组合、比较和以其他方式操纵的电或磁信号的形式。主要出于通用的原因,将这些信号称为位、值、元素、符号、字符、术语、数字等有时被证明是方便的。
然而,应该记住,所有这些和类似的术语与适当的物理量相关联,并且仅仅是应用于这些量的方便的标签。除非特别声明,否则从下面的讨论中显而易见的是,应该理解,在整个描述中,利用诸如“标识”、“确定”、“存储”、“调节”、“使得”、“返回”、“比较”、“创建”、“停止”、“加载”、“复制”、“抛出”、“替换”、“执行”等术语的讨论是指计算机系统或类似的电子计算设备的动作和过程,其将被表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和转换成被类似地表示为计算机系统存储器或寄存器或其他这种信息存储、传输或显示设备内的物理量的其他数据。
本公开的示例还涉及用于执行本文描述的方法的装置。该装置可以是为所需目的而专门构造的,或者它可以是由存储在计算机系统中的计算机程序选择性编程的通用计算机系统。这种计算机程序可以被存储在各自耦合到计算机系统总线的计算机可读存储介质中,诸如但不限于任何类型的盘,包括光盘、CD-ROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁盘存储介质、光学存储介质、闪存设备、其他类型的机器可访问存储介质、或者适于存储电子指令的任何类型的介质。
本文呈现的方法和显示并不固有地涉及任何特定的计算机或其他装置相关。根据本文的教导,各种通用系统可以与程序一起使用,或者可以证明构造更专用的装置来执行所需的方法步骤是方便的。各种这些系统所需的结构将在下面的描述中阐述。此外,本公开的范围不限于任何特定的编程语言。应当理解,可以使用多种编程语言来实施本公开的教导。
应当理解,以上描述旨在说明,而非限制。在阅读和理解以上描述后,对本领域技术人员而言许多其他实施示例将是显而易见的。尽管本公开描述了具体的示例,但是将认识到,本公开的系统和方法不限于本文描述的示例,而是可以在所附权利要求的范围内进行修改来实践。相应地,说明书和附图应当被认为是说明性的意义,而不是限制性的意义。因此,本公开的范围应当参照所附权利要求以及这些权利要求有权享有的等同物的全部范围来确定。

Claims (60)

1.一种执行具有多个节点的神经网络模型的方法,所述方法包括:
由处理设备获得针对所述多个节点中的第一节点的输入值向量,其中所述第一节点与多个参数相关联,所述多个参数将所述输入值向量映射到所述第一节点的目标加权输入值;
由所述处理设备执行所述多个参数的第一变换,以获得针对所述第一节点的扩展的多个参数,其中所述扩展的多个参数中的至少一些参数是模糊参数;以及
由所述处理设备基于所述输入值向量和所述扩展的多个参数,确定针对所述第一节点的一个或多个加权输入值,其中所述目标加权输入值可使用第二变换从所述一个或多个加权输入值获得。
2.根据权利要求1所述的方法,其中所述多个参数包括针对所述第一节点的一个或多个权重和偏差值,并且其中执行所述第一变换包括:
获得扩展的权重矩阵,所述扩展的权重矩阵包括针对所述第一节点的所述一个或多个权重和多个模糊权重;以及
获得扩展的偏差向量,所述扩展的偏差向量包括针对所述第一节点的所述偏差值和多个模糊偏差;以及
其中确定针对所述第一节点的所述一个或多个加权输入值包括:
执行第一掩蔽变换,以从所述扩展的权重矩阵获得经掩蔽权重矩阵;以及
执行第二掩蔽变换,以从所述扩展的偏差向量获得经掩蔽偏差向量。
3.根据权利要求2所述的方法,其中执行所述第一掩蔽变换包括将所述扩展的权重矩阵乘以掩蔽矩阵,并且其中执行所述第二掩蔽变换包括将所述扩展的偏差向量乘以所述掩蔽矩阵。
4.根据权利要求3所述的方法,其中确定针对所述第一节点的所述一个或多个加权输入值还包括:
将所述经掩蔽偏差向量相加到所述经掩蔽权重矩阵和所述输入值向量的乘积上。
5.根据权利要求2所述的方法,还包括:
更新所述第一掩蔽变换或所述第二掩蔽变换中的至少一项。
6.根据权利要求1所述的方法,其中所述第一节点还与激活函数相关联,所述方法还包括:
由所述处理设备确定由所述激活函数和所述第二变换形成的复合激活函数。
7.根据权利要求6所述的方法,还包括:
将所述复合激活函数应用于针对所述第一节点的所述一个或多个加权输入值,以获得针对所述第一节点的输出值。
8.根据权利要求7所述的方法,其中所获得的输出值表示目标输出值,其中所述目标输出值等于被应用于所述目标加权输入值的所述激活函数的值。
9.根据权利要求7所述的方法,其中所述激活函数是不连续的函数或者具有不连续导数的函数,并且其中应用所述复合激活函数还包括:
对不连续点的位置进行模糊。
10.根据权利要求9所述的方法,其中所述复合激活函数是阶跃函数,并且其中应用所述复合激活函数还包括将所述阶跃函数移位到输出值的相同符号域中。
11.根据权利要求7所述的方法,其中所述激活函数是S型函数,并且其中被输入到所述复合激活函数中的所述一个或多个加权输入值被加性地掩蔽,并且所述复合激活函数的输出值被乘性地掩蔽。
12.一种方法,包括:
标识要被保护免受对抗性攻击的神经网络(NN)模型,其中所述NN模型包括多个节点,并且被配置为基于到所述NN模型中的输入来生成所述NN模型的目标输出;以及
获得经修改的NN模型,所述经修改的NN模型被配置为基于相同的所述输入来输出相同的所述目标输出,其中获得所述经修改的NN模型包括:
由处理设备获得针对所述多个节点中的第一节点的输入值向量,其中所述第一节点与多个参数相关联,所述多个参数将所述输入值向量映射到所述第一节点的目标加权输入值;
由所述处理设备执行所述多个参数的第一变换,以获得针对所述第一节点的扩展的多个参数,其中所述扩展的多个参数中的至少一些参数是模糊参数;以及
由所述处理设备基于所述输入值向量和所述扩展的多个参数,确定针对所述第一节点的一个或多个加权输入值,其中所述目标加权输入值可使用第二变换从所述一个或多个加权输入值获得。
13.一种执行具有多个节点的神经网络模型的系统,所述系统包括:
存储器设备;以及
处理设备,被通信地耦合到所述存储器设备,所述处理设备用以:
获得针对所述多个节点中的第一节点的输入值向量,其中所述第一节点与多个参数相关联,所述多个参数将所述输入值向量映射到所述第一节点的目标加权输入值;
执行所述多个参数的第一变换,以获得针对所述第一节点的扩展的多个参数,其中所述扩展的多个参数中的至少一些参数是模糊参数;以及
基于所述输入值向量和所述扩展的多个参数,确定针对所述第一节点的一个或多个加权输入值,其中所述目标加权输入值可使用第二变换从所述一个或多个加权输入值获得。
14.根据权利要求13所述的系统,其中所述多个参数包括针对所述第一节点的一个或多个权重和偏差值,并且其中执行所述第一变换包括:
获得扩展的权重矩阵,所述扩展的权重矩阵包括针对所述第一节点的所述一个或多个权重和多个模糊权重;以及
获得扩展的偏差向量,所述扩展的偏差向量包括针对所述第一节点的所述偏差值和多个模糊偏差;以及
其中确定针对所述第一节点的所述一个或多个加权输入值包括:
执行第一掩蔽变换,以从所述扩展的权重矩阵获得经掩蔽权重矩阵;以及
执行第二掩蔽变换,以从所述扩展的偏差向量获得经掩蔽偏差向量。
15.根据权利要求14所述的系统,其中为了执行所述第一掩蔽变换,所述处理设备将所述扩展的权重矩阵乘以掩蔽矩阵,并且其中为了执行所述第二掩蔽变换,所述处理设备将所述扩展的偏差向量乘以所述掩蔽矩阵。
16.根据权利要求15所述的系统,其中为了确定针对所述第一节点的所述一个或多个加权输入值,所述处理设备还用以:
将所述经掩蔽偏差向量相加到所述经掩蔽权重矩阵和所述输入值向量的乘积上。
17.根据权利要求14所述的系统,其中所述处理设备还用以:
更新所述第一掩蔽变换或所述第二掩蔽变换中的至少一项。
18.根据权利要求13所述的系统,其中所述第一节点还与激活函数相关联,并且其中所述处理设备还用以:
确定由所述激活函数和所述第二变换形成的复合激活函数。
19.根据权利要求18所述的系统,其中所述处理设备还用以:
将所述复合激活函数应用于针对所述第一节点的所述一个或多个加权输入值,以获得针对所述第一节点的输出值。
20.一种非暂态计算机可读介质,其上存储指令,其中所述指令在由处理设备执行时使得所述处理设备:
获得针对神经网络的多个节点中的第一节点的输入值向量,其中所述第一节点与多个参数相关联,所述多个参数将所述输入值向量映射到所述第一节点的目标加权输入值;
执行所述多个参数的第一变换,以获得针对所述第一节点的扩展的多个参数,其中所述扩展的多个参数中的至少一些参数是模糊参数;以及
基于所述输入值向量和所述扩展的多个参数,确定针对所述第一节点的一个或多个加权输入值,其中所述目标加权输入值可使用第二变换从所述一个或多个加权输入值获得。
21.一种执行包括多个节点的神经网络模型的方法,所述方法包括:
由处理设备基于针对所述多个节点中的第一节点的参数,确定到针对所述第一节点的激活函数中的加权输入;
由所述处理设备选择针对所述第一节点的模糊函数;
由所述处理设备确定针对所述第一节点的第一复合激活函数,其中所述复合激活函数由针对所述第一节点的所述激活函数和针对所述第一节点的所述模糊函数形成;
由所述处理设备将所述第一复合激活函数应用于所述加权输入,以计算所述第一节点的模糊输出;以及
由所述处理设备将所述第一节点的所述模糊输出提供给所述神经网络的所述多个节点中的第二节点。
22.根据权利要求21所述的方法,其中所述模糊函数是可逆函数。
23.根据权利要求21所述的方法,其中到所述第一节点的所述激活函数中的所述加权输入使用所述第一节点的多个经掩蔽权重而被获得。
24.根据权利要求21所述的方法,还包括:
通过将与去模糊函数相复合的所述第二节点的权重应用于所提供的所述第一节点的所述模糊输出,确定到所述第二节点的激活函数中的加权输入。
25.根据权利要求24所述的方法,其中到所述第二节点的所述激活函数中的所述加权输入使用所述第二节点的多个经掩蔽权重而被获得。
26.根据权利要求21所述的方法,其中所述第一复合激活函数是针对所述第一节点的多个复合激活函数中的一个复合激活函数,所述多个复合激活函数中的每个复合激活函数基于针对所述第一节点的多个激活函数中的相应激活函数和针对所述第一节点的多个模糊函数中的相应模糊函数,所述方法还包括:
由所述处理设备将所述多个复合激活函数中的每个复合激活函数应用于所述加权输入,以计算所述第一节点的多个模糊输出中的相应模糊输出;以及
由所述处理设备将所述多个模糊输出中的每个模糊输出提供给所述第二节点。
27.根据权利要求26所述的方法,还包括:
在将所述多个模糊输出中的每个模糊输出提供给所述第二节点之前,由所述处理设备掩蔽所述多个模糊输出。
28.根据权利要求27所述的方法,还包括:
由所述处理设备将经掩蔽的所述多个模糊输出解除掩蔽,其中所述解除掩蔽与确定到所述第二节点中的加权输入相复合。
29.根据权利要求28所述的方法,其中所述解除掩蔽还与一个或多个去模糊函数相复合。
30.一种方法,包括:
标识要被保护免受对抗性攻击的神经网络(NN)模型,其中所述NN模型包括多个节点,并且被配置为基于到所述NN模型中的输入来生成所述NN模型的目标输出;以及
获得经修改的NN模型,所述经修改的NN模型被配置为基于相同的所述输入来输出相同的所述目标输出,其中获得所述经修改的NN模型包括:
由处理设备基于针对所述多个节点中的第一节点的参数,确定到针对所述第一节点的激活函数中的加权输入;
由所述处理设备选择针对所述第一节点的模糊函数;
由所述处理设备确定针对所述第一节点的第一复合激活函数,其中所述复合激活函数由针对所述第一节点的所述激活函数和针对所述第一节点的所述模糊函数形成;
由所述处理设备将所述第一复合激活函数应用于所述加权输入,以计算所述第一节点的模糊输出;以及
由所述处理设备将所述第一节点的所述模糊输出提供给所述神经网络的所述多个节点中的第二节点。
31.一种执行包括多个节点的神经网络模型的系统,所述系统包括:
存储器设备;以及
处理设备,被通信地耦合到所述存储器设备,所述处理设备用以:
基于所述多个节点中的第一节点的参数,确定到针对所述第一节点的激活函数中的加权输入;
选择针对所述第一节点的模糊函数;
确定针对所述第一节点的第一复合激活函数,其中所述复合激活函数由针对所述第一节点的所述激活函数和针对所述第一节点的所述模糊函数形成;
将所述第一复合激活函数应用于所述加权输入,以计算所述第一节点的模糊输出;以及
将所述第一节点的所述模糊输出提供给所述神经网络的所述多个节点中的第二节点。
32.根据权利要求31所述的系统,其中所述模糊函数是可逆函数。
33.根据权利要求31所述的系统,其中到所述第一节点的所述激活函数中的所述加权输入使用所述第一节点的多个经掩蔽权重而被获得。
34.根据权利要求31所述的系统,其中所述处理设备还用以:
通过将与去模糊函数相复合的第二节点的权重应用于所提供的所述第一节点的所述模糊输出,确定到所述第二节点的激活函数中的加权输入。
35.根据权利要求34所述的系统,其中到所述第二节点的所述激活函数中的所述加权输入使用所述第二节点的多个经掩蔽权重而被获得。
36.根据权利要求31所述的系统,其中所述第一复合激活函数是针对所述第一节点的多个复合激活函数中的一个复合激活函数,所述多个复合激活函数中的每个复合激活函数基于针对所述第一节点的多个激活函数中的相应激活函数和针对所述第一节点的多个模糊函数中的相应模糊函数,并且其中所述处理设备还用以:
将所述多个复合激活函数中的每个复合激活函数应用于所述加权输入,以计算所述第一节点的多个模糊输出中的相应模糊输出;以及
将所述多个模糊输出中的每个模糊输出提供给所述第二节点。
37.根据权利要求36所述的系统,其中所述处理设备还用以:
在将所述多个模糊输出中的每个模糊输出提供给所述第二节点之前,掩蔽所述多个模糊输出。
38.根据权利要求37所述的系统,其中所述处理设备还用以:
对经掩蔽的所述多个模糊输出执行解除掩蔽,其中所述解除掩蔽与确定到所述第二节点中的加权输入相复合。
39.根据权利要求38所述的系统,其中所述解除掩蔽还与一个或多个去模糊函数相复合。
40.一种非暂态计算机可读介质,其上存储指令,其中所述指令在由处理设备执行时使得所述处理设备:
基于神经网络的多个节点中的第一节点的参数,确定到针对所述第一节点的激活函数中的加权输入;
选择针对所述第一节点的模糊函数;
确定针对所述第一节点的第一复合激活函数,其中所述复合激活函数由针对所述第一节点的所述激活函数和针对所述第一节点的所述模糊函数形成;
将所述第一复合激活函数应用于所述加权输入,以计算所述第一节点的模糊输出;以及
将所述第一节点的所述模糊输出提供给所述神经网络的所述多个节点中的第二节点。
41.一种方法,包括:
标识要被保护免受对抗性攻击的神经网络(NN)模型,所述NN模型被配置为基于到所述NN模型中的输入来生成所述NN模型的目标输出;以及
获得经修改的NN模型,所述经修改的NN模型被配置为基于相同的所述输入来输出相同的所述目标输出,所述经修改的NN模型包括:
第一节点,用于向第二节点提供一个或多个输出值,其中由所述第一节点提供的所述一个或多个输出值包括到所述第二节点中的一个或多个非紧要输入值;以及
所述经修改的NN模型的下游部分,所述下游部分包括所述第二节点,并且被配置为补偿到所述第二节点中的所述一个或多个非紧要输入值。
42.根据权利要求41所述的方法,其中到所述第二节点中的所述一个或多个非紧要输入值包括由所述第一节点针对到所述第一节点中的多个输入中的每个输入而输出的常数输入值。
43.根据权利要求42所述的方法,其中所述常数输入值为零。
44.根据权利要求42所述的方法,其中所述常数输入值是非零的,并且其中所述第二节点被配置为补偿所述常数输入值。
45.根据权利要求44所述的方法,其中所述经修改的NN模型还包括一个或多个附加节点,所述一个或多个附加节点被配置为将一个或多个附加输入值输出到所述第二节点中。
46.根据权利要求41所述的方法,其中所述经修改的NN模型还包括第三节点,并且其中所述第一节点还将所述一个或多个输入值提供到所述第三节点中。
47.根据权利要求46所述的方法,其中所述一个或多个输出值包括到所述第三节点中的模糊输入,并且其中所述第三节点要对所述一个或多个输出值应用去模糊变换。
48.根据权利要求41所述的方法,其中所述第二节点是被配置为从第三节点接收一个或多个附加输入值的直传节点,并且其中所述第二节点的输出基于所述一个或多个附加输入值,并且独立于到所述第二节点中的所述一个或多个非紧要输入值。
49.根据权利要求48所述的方法,其中所述第二节点的所述输出包括所述一个或多个附加输入值的模糊表示。
50.根据权利要求48所述的方法,其中所述第二节点是所述经修改的NN模型的多个直传节点中的节点。
51.根据权利要求50所述的方法,其中所述多个直传节点包括一个或多个直传节点层。
52.一种方法,包括:
标识到神经网络(NN)模型中的输入,其中所述NN模型包括一个或多个模糊操作,所述一个或多个模糊操作被配置为对所述NN模型的计算进行模糊而不影响所述NN模型的目标输出;
执行所述NN模型以生成所述NN模型的输出,其中所述NN模型的所述输出与所述NN模型的所述目标输出相同,所述NN模型包括:
第一节点,用于向第二节点提供一个或多个输出值,其中由所述第一节点提供的所述一个或多个输出值包括到所述第二节点中的一个或多个非紧要输入值;以及
所述NN模型的下游部分,所述下游部分包括所述第二节点,并且被配置为补偿到所述第二节点中的所述一个或多个非紧要输入值。
53.根据权利要求52所述的方法,其中所述第二节点是被配置为从第三节点接收一个或多个附加输入值的直传节点,并且其中所述第二节点的输出基于所述一个或多个附加输入值,并且独立于到所述第二节点中的所述一个或多个非紧要输入值。
54.一种系统,包括:
存储器设备;以及
处理设备,被通信地耦合到所述存储器设备,所述处理设备用以:
标识要被保护免受对抗性攻击的神经网络(NN)模型,所述NN模型被配置为基于所述NN模型的输入来生成所述NN模型的目标输出;以及
获得经修改的NN模型,所述经修改的NN模型被配置为基于相同的所述输入来输出相同的所述目标输出,所述经修改的NN模型包括:
第一节点,用于向第二节点提供一个或多个输出值,其中由所述第一节点提供的一个或多个输出值包括到所述第二节点中的一个或多个非紧要输入值;以及
所述经修改的NN模型的下游部分,所述下游部分包括所述第二节点,并且被配置为补偿到所述第二节点中的所述一个或多个非紧要输入值。
55.根据权利要求54所述的系统,其中到所述第二节点中的所述一个或多个非紧要输入值包括由所述第一节点针对到所述第一节点中的多个输入中的每个输入而输出的常数输入值。
56.根据权利要求54所述的系统,其中所述经修改的NN模型还包括第三节点,并且其中所述第一节点还将所述一个或多个输入值提供到所述第三节点中。
57.根据权利要求56所述的系统,其中所述一个或多个输出值包括到所述第三节点中的模糊输入,并且其中所述第三节点要对所述一个或多个输出值应用去模糊变换。
58.根据权利要求54所述的系统,其中所述第二节点是被配置为从第三节点接收一个或多个附加输入值的直传节点,并且其中所述第二节点的输出基于所述一个或多个附加输入值,并且独立于到所述第二节点中的所述一个或多个非紧要输入值。
59.根据权利要求58所述的系统,其中所述第二节点是所述经修改的NN模型的多个直传节点中的节点。
60.一种非暂态计算机可读介质,其上存储指令,其中所述指令在由处理设备执行时使得所述处理设备:
标识要被保护免受对抗性攻击的神经网络(NN)模型,所述NN模型被配置为基于所述NN模型的输入来生成所述NN模型的目标输出;以及
获得经修改的NN模型,所述经修改的NN模型被配置为基于相同的所述输入来输出相同的所述目标输出,所述经修改的NN模型包括:
第一节点,用于向第二节点提供一个或多个输出值,其中由所述第一节点提供的所述一个或多个输出值包括到所述第二节点中的一个或多个非紧要输入值;以及
所述经修改的NN模型的下游部分,所述下游部分包括所述第二节点,并且被配置为补偿到所述第二节点中的一个或多个非紧要输入值。
CN202180085805.9A 2020-12-21 2021-12-16 通过模糊神经网络操作和架构来保护神经网络 Pending CN116635852A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063199365P 2020-12-21 2020-12-21
US63/199,365 2020-12-21
US63/199,364 2020-12-21
US63/199,363 2020-12-21
PCT/US2021/063880 WO2022140163A1 (en) 2020-12-21 2021-12-16 Protection of neural networks by obfuscation of neural network operations and architecture

Publications (1)

Publication Number Publication Date
CN116635852A true CN116635852A (zh) 2023-08-22

Family

ID=82023071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180085805.9A Pending CN116635852A (zh) 2020-12-21 2021-12-16 通过模糊神经网络操作和架构来保护神经网络

Country Status (2)

Country Link
US (1) US20220197981A1 (zh)
CN (1) CN116635852A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220343004A1 (en) * 2021-04-27 2022-10-27 Spotify Ab Access control for on-device machine learning models
US20230275913A1 (en) * 2022-02-25 2023-08-31 Microsoft Technology Licensing, Llc Using graph enrichment to detect a potentially malicious access attempt
WO2024030138A1 (en) * 2022-08-05 2024-02-08 Google Llc Modifying a machine learning model to obfuscate characteristics of the machine learning model

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180276508A1 (en) * 2015-10-28 2018-09-27 Fractal Industries, Inc. Automated visual information context and meaning comprehension system
US10210861B1 (en) * 2018-09-28 2019-02-19 Apprente, Inc. Conversational agent pipeline trained on synthetic data

Also Published As

Publication number Publication date
US20220197981A1 (en) 2022-06-23

Similar Documents

Publication Publication Date Title
CN116635852A (zh) 通过模糊神经网络操作和架构来保护神经网络
Yu et al. Deepem: Deep neural networks model recovery through em side-channel information leakage
US20220222531A1 (en) Asynchronous neural network training
CN113837205B (zh) 用于图像特征表示生成的方法、设备、装置和介质
US20140156569A1 (en) Method and apparatus for improving resilience in customized program learning network computational environments
Guo et al. Low-rank matrix recovery via robust outlier estimation
Wu et al. Dual adaptive transformations for weakly supervised point cloud segmentation
Zheng et al. Entropy-driven sampling and training scheme for conditional diffusion generation
Csuhaj-Varjú et al. Hybrid networks of evolutionary processors are computationally complete
Mao et al. Energy-efficient machine learning accelerator for binary neural networks
Wang et al. Leno: Adversarial robust salient object detection networks with learnable noise
US20220198045A1 (en) Protection of neural networks by obfuscation of activation functions
Kobayashi et al. Human+ AI crowd task assignment considering result quality requirements
Benassou et al. Entropy guided adversarial model for weakly supervised object localization
KR102239588B1 (ko) 이미지 처리 방법 및 장치
Zeng et al. An accelerated stochastic ADMM for nonconvex and nonsmooth finite-sum optimization
US20240078308A1 (en) Protection of neural networks by obfuscation of neural network operations and architecture
Gao et al. A test platform for cognitive delays: target tracking problem with multiple time-delayed feedback control
CN114868127A (zh) 信息处理装置、信息处理方法和信息处理程序
CN114519209A (zh) 用于保护数据的方法、设备、装置和介质
Sun et al. Multiplicative Sparse Feature Decomposition for Efficient Multi-View Multi-Task Learning.
KR102197539B1 (ko) 신경 네트워크들에서 프로세싱하기
Haklı A novel approach based on elephant herding optimization for constrained optimization problems
Cheng et al. Designing a stable feedback control system for blind image deconvolution
Zhang et al. Mcmc based generative adversarial networks for handwritten numeral augmentation

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