CN109804383A - 使用神经网络编码和重构输入 - Google Patents
使用神经网络编码和重构输入 Download PDFInfo
- Publication number
- CN109804383A CN109804383A CN201780056545.6A CN201780056545A CN109804383A CN 109804383 A CN109804383 A CN 109804383A CN 201780056545 A CN201780056545 A CN 201780056545A CN 109804383 A CN109804383 A CN 109804383A
- Authority
- CN
- China
- Prior art keywords
- input
- neural network
- training data
- decoder
- data pair
- 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.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 563
- 238000012549 training Methods 0.000 claims abstract description 263
- 238000000034 method Methods 0.000 claims abstract description 72
- 210000005036 nerve Anatomy 0.000 claims abstract description 54
- 238000012545 processing Methods 0.000 claims abstract description 42
- 230000008569 process Effects 0.000 claims description 19
- 238000013507 mapping Methods 0.000 claims description 8
- 241001269238 Data Species 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000008485 antagonism Effects 0.000 abstract 1
- 230000009466 transformation Effects 0.000 description 21
- 230000006870 function Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 10
- 210000004218 nerve net Anatomy 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 230000001537 neural effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000002567 autonomic effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000009897 systematic effect Effects 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Analysis (AREA)
Abstract
本文描述了用于训练和使用神经网络来对输入进行编码并处理编码输入以例如从编码输入来重构输入的***、方法、设备和其它技术。神经网络***可以包括编码器神经网络、可信解码器神经网络和对手解码器神经网络。编码器神经网络处理主神经网络输入和密钥输入,以生成主神经网络输入的编码表示。可信解码器神经网络处理编码表示和密钥输入,以生成主神经网络输入的第一估计重构。对手解码器神经网络在没有密钥输入的情况下处理编码表示,以生成主神经网络输入的第二估计重构。编码器神经网络和可信解码器神经网络可以联合训练,并且这些网络被对抗性地训练成对手解码器神经网络。
Description
技术领域
本说明书总体上描述了用于训练和使用神经网络(neural network,NN)来编码输入并处理编码输入以例如从编码输入来重构输入的***、方法、设备和其它技术。
背景技术
神经网络是机器学习模型,其采用一层或多层非线性单元来预测对于接收的输入的输出。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中下一层的输入,例如下一隐藏层或输出层的输入。网络的每一层根据相应参数集的当前值从接收的输入生成输出。
神经网络已经被训练来执行各种数据处理任务,诸如分类、预测和翻译。一些***包括多个数据处理组件,例如,在连续阶段中的多个数据处理组件,以执行给定任务。
发明内容
本说明书公开了可以在一个或多个位置中的一个或多个计算机上实施为计算机程序的神经网络和神经网络训练***。例如,描述了神经网络,其应用神经网络输入密钥来模糊(obfuscate)神经网络输入,以便模糊(例如,编码)神经网络输入并防止其被另一个神经网络重构。例如,可以联合训练编码器神经网络和可信解码器神经网络,以使用共享秘密密钥或公共-私有密钥对来分别编码和解码主神经网络输入。编码器神经网络和可信解码器神经网络可以进一步相对于试图解码编码器神经网络的输出的对手(adversary)解码器神经网络进行对抗训练,尽管对手解码器神经网络可能无法使用解码密钥。训练***不仅可以鼓励第一解码器神经网络生成原始神经网络输入的精确重构,还可以奖励编码器神经网络生成不能被对手解码器神经网络精确解码的神经网络输入的编码表示。
在一些实施方式中,神经网络训练***训练编码器神经网络和第一解码器神经网络。编码器神经网络被训练成通过处理第一输入和不同于第一输入的第二输入来生成第一输入的编码表示。第一解码器神经网络被训练成通过处理第一输入的编码表示以及第二输入或与第二输入相关的第三输入来生成第一输入的估计重构。在一些示例中,编码器神经网络和第一解码器网络被配置成分别加密和解密第一输入。编码器神经网络使用加密密钥生成第一输入的编码表示(例如,加密第一输入),并且第一解码器神经网络使用相应解密密钥生成第一输入的估计重构(例如,解密第一输入的编码表示)。加密密钥和解密密钥对于对称加密可以是相同的,或者对于非对称加密可以是互补的(例如,公共-私有密钥对)。
训练***可以训练编码器神经网络和第一解码器神经网络,以保护第一输入的全部或部分的保密性。例如,编码器神经网络和第一解码器神经网络可以与表示对手的第二解码器神经网络相结合地训练。通常,第二解码器神经网络试图损害第一输入的全部或部分的保密性,例如,通过尝试从第一输入的编码表示来重构第一输入。为了破坏第二解码器神经网络实现其目标的能力,训练***可以例如使用损耗函数(loss function)来调整编码器神经网络和第一解码器神经网络的参数,该损耗函数鼓励第一解码器神经网络对输入的精确重构,但是不鼓励第二解码器神经网络对输入的精确重构。此外,训练***可以与第二解码器神经网络的训练交替地在成批训练数据上训练编码器神经网络和第一解码器神经网络。在一些示例中,训练的***可用于模糊输入中表示的敏感信息,使得处理输入的编码表示的其它***在没有适当密钥的情况下无法可靠地确定敏感信息。
在训练之后,为了生成输入的估计重构,计算机***接收第一输入的编码表示和第二输入。第二输入可以不同于第一输入的编码表示,例如,第二输入可以是独立于第一输入的编码表示而生成的公共密钥或私有密钥。计算机***上的解码器神经网络可以处理第一输入的编码表示和第二输入,以生成第一输入的估计重构。解码器神经网络然后提供第一输入的估计重构的指示。第一输入的估计重构可以经受进一步的处理、被显示给用户、被存储、或这些的组合。
在一些实施方式中,第一输入的编码表示由编码器神经网络通过处理第一输入和不同于第一输入的第三输入来生成。第二输入和第三输入可以相同或彼此相关。例如,第三输入可以根据第一预定义变换集从第二输入得到,第二输入可以根据第二预定义变换集从第三输入得到,或者第二输入和第三输入两者都可以根据公共过程得到,以便彼此互补。在第二输入和第三输入相同的情况下,这些输入可以表示共享秘密密钥。在其它情况下,第二输入和第三输入可以共同表示私有-公共密钥对。
在一些实施方式中,由解码器神经网络处理第一输入的编码表示和第二输入以生成第一输入的估计重构包括使用第二输入来解码第一输入的编码表示。
在一些实施方式中,解码器神经网络可以包括一个或多个全连接层、随后是一个或多个卷积层。
在一些实施方式中,第一输入的编码表示可以是文本序列或者一个或多个数字中的至少一个的编码表示。
在一些实施方式中,解码器神经网络可以被配置成处理第一输入的编码表示和第二输入,以在编码器神经网络初始生成第一输入的编码表示之后,生成第一输入的编码表示是否已经被篡改的指示。解码器神经网络还可以提供第一输入的编码表示是否被篡改的指示,例如以用于显示、进一步处理或存储。
在一些实施方式中,第一输入是根据预定义变换集从初始输入得到的。在一些实施方式中,第一输入的估计重构是根据预定义变换集从第一输入得到的一个或多个值的估计。
在一些实施方式中,可以训练包括编码器神经网络和第一解码器神经网络的神经网络***。编码器神经网络和第一解码器神经网络可以以对抗的布置与第二解码器神经网络一起交替地训练。例如,编码器神经网络可以被训练成对输入进行编码,以便允许第一解码器神经网络通过处理输入的编码表示和私有密钥来精确地重构输入(例如,解码输入的编码表示),同时通过单独处理输入的编码表示或者与公共密钥(但没有私有密钥)一起处理输入的编码表示来破坏第二解码器神经网络重构输入的能力。
特别地,用于训练神经网络***的一些实施方式包括获得训练数据对,每个训练数据对包括相应第一输入和相应第二输入。例如,相应第一输入可以是要编码的输入,并且相应第二输入可以是私有密钥或公共密钥。神经网络***可以在训练数据对上训练。对于每个训练数据对,***可以根据编码器神经网络的参数的当前值使用编码器神经网络来处理(i)训练数据对的相应第一输入和(ii)训练数据对的相应第二输入,以生成训练数据对的相应第一输入的编码表示。***可以根据第一解码器神经网络的参数的当前值使用第一解码器神经网络来处理(i)训练数据对的相应第一输入的编码表示和(ii)训练数据对的相应第二输入或训练数据对的相应第三输入,以生成训练数据对的相应第一输入的第一估计重构,其中(i)训练数据对的相应第二输入是从训练数据对的相应第三输入得到的,(ii)训练数据对的相应第三输入是从训练数据对的相应第二输入得到的,或者(iii)训练数据对的相应第二输入和训练数据对的相应第三输入两者都是使用公共过程得到的,以便彼此互补。此外,***可以获得训练数据对的相应第一输入的第二估计重构,第二估计重构由第二解码器神经网络根据第二解码器神经网络的当前参数,通过处理训练数据对的相应第一输入的编码表示而不处理训练数据对的相应第二输入来生成。编码器神经网络的当前参数和第一解码器神经网络的当前参数可以基于相应第一输入、相应第一输入的第一估计重构和相应第一输入的第二估计重构来调整。
在一些实施方式中,训练神经网络***包括,对于每个训练数据对,由第一解码器神经网络通过根据第一解码器神经网络的当前参数处理(i)训练数据对的相应第一输入的编码表示以及(ii)训练数据对的相应第二输入,来生成训练数据对的相应第一输入的第一估计重构。
在一些实施方式中,训练神经网络***包括,对于每个训练数据对,由第一解码器神经网络通过根据第一解码器神经网络的当前参数处理(i)训练数据对的相应第一输入的编码表示以及(ii)与相应第二输入相对应的训练数据对的相应第三输入,来生成训练数据对的相应第一输入的第一估计重构。
在一些实施方式中,编码器神经网络可以包括一个或多个全连接层、随后是一个或多个卷积层。在一些实施方式中,第一解码器神经网络可以包括一个或多个全连接层、随后是一个或多个卷积层。在一些实施方式中,第二解码器神经网络可以包括一个或多个全连接层、随后是一个或多个卷积层。
在一些实施方式中,训练神经网络***可以包括基于(i)来自训练数据对的相应第一输入和由第一解码器神经网络***生成的相应第一输入的估计重构之间的差或者(ii)来自训练数据对的相应第一输入和由第二解码器神经网络***生成的相应第一输入的估计重构之间的差中的至少一项,来调整编码器神经网络的当前参数和第一解码器神经网络的当前参数。
在一些实施方式中,训练神经网络***可以包括使用随机梯度下降来调整编码器神经网络的当前参数和第一解码器神经网络的当前参数。训练还可以包括,对于每个训练数据对,调整编码器神经网络的当前参数和第一解码器神经网络的当前参数,而不调整第二解码器神经网络的当前参数。
在一些实施方式中,***获得第二训练数据对,每个第二训练数据对包括相应第四输入和相应第四输入的编码表示,其中相应第四输入的编码表示是根据编码器神经网络的当前参数使用编码器神经网络来生成的。第二解码器神经网络可以在第二训练数据对上训练,包括,对于每个第二训练数据对:根据第二解码器神经网络的当前值,使用第二解码器神经网络来处理第二训练数据对的相应第四输入的相应编码表示,以生成第二训练数据对的相应第四输入的估计重构;以及基于相应第四输入和相应第四输入的估计重构之间的差来调整第二解码器神经网络的当前参数,而不调整编码器神经网络的当前参数,也不调整第一解码器神经网络的当前参数。
在一些实施方式中,对于每个第二训练数据对,通过根据编码器神经网络的当前参数使用编码器神经网络处理(i)相应第四输入和(ii)不同于相应第四输入的与第二训练数据对相对应的相应第五输入,来生成第二训练数据对的相应第四输入的编码表示。在第二训练数据对上训练第二解码器神经网络包括,对于每个第二训练数据对,根据第二解码器神经网络的当前值,使用第二解码器神经网络来处理(i)第二训练数据对的相应第四输入的相应编码表示以及(ii)与第二训练数据对相对应的相应第六输入。对于每个第二训练数据对,(i)相应第五输入可以从相应第六输入得到,(ii)相应第六输入可以从相应第五输入得到,或者(iii)相应第五输入和相应第六输入两者都可以使用公共过程得到,以便彼此互补。在一些实施方式中,对于每个第二训练数据对,与第二训练数据对相对应的相应第五输入表示公共-私有密钥对的私有密钥,并且与第二训练数据对相对应的相应第六输入表示公共-私有密钥对的公共密钥。在一些实施方式中,在用第一训练数据对训练编码器神经网络之后,根据编码器神经网络的当前值,使用编码器神经网络生成相应第四输入的编码表示。
在一些实施方式中,所获得的训练数据对当中的第一训练数据对的相应第一输入表示文本序列或者一个或多个数字中的至少一个。
在一些实施方式中,对于每个训练数据对,由第二解码器神经网络根据第二解码器神经网络的当前参数,通过仅处理训练数据对的相应第一输入的编码表示,而不处理训练数据对的相应第二输入,也不处理训练数据对的相应第三输入,来生成训练数据对的相应第一输入的第二估计重构。
在一些实施方式中,对于每个训练数据对,由第二解码器神经网络根据第二解码器神经网络的当前参数通过处理(i)训练数据对的相应第一输入的编码表示和(ii)训练数据对的相应第三输入,而不处理训练数据对的相应第二输入,来生成训练数据对的相应第一输入的第二估计重构。
在一些实施方式中,对于每个训练数据对,训练数据对的相应第二输入表示公共-私有密钥对的私有密钥。在一些实施方式中,训练数据对的相应第三输入表示公共-私有密钥对的公共密钥。
在一些实施方式中,训练包括编码器神经网络和第一解码器神经网络的神经网络***,可以与第二解码器神经网络交替训练。例如,当编码器神经网络和第一解码器神经网络在一批训练数据对上训练时,第二解码器神经网络的参数可以是固定的。随后,当第二解码器神经网络在一批训练数据对上训练时,编码器神经网络和第一解码器神经网络的参数可以是固定的。
在某些情况下,本文公开的主题的一些实施方式可以实现一个或多个优点。神经网络***可以被训练来模糊由***处理的来自***至少一部分的数据中的敏感信息。例如,关于用户的个人或识别信息可以对***的一部分隐藏,从而防止它对这些信息采取行动。在一些实施方式中,神经网络***的不同组件可以以对抗的方式被训练,以便保护由***的第一部分处理的信息的机密性不受***的第二部分的影响。在一些实施方式中,由***处理的数据中的敏感信息可以被编码器神经网络加密或以其它方式模糊,以对抗通常不具备重构神经网络输入所必要的重构密钥的对手。根据包括描写的说明书、权利要求和附图在内的整个公开内容,本领域普通技术人员将理解附加的特征和优点。
附图说明
图1描绘了用于使用对称神经网络输入密钥来变换和重构主神经网络输入的神经网络***的框图。
图2描绘了从神经网络输入的编码表示来重构神经网络输入的示例过程的流程图。
图3描绘了用于使用对称神经网络输入密钥对神经网络输入进行编码和恢复的示例过程的泳道图。
图4描绘了用于使用非对称神经网络输入密钥来变换和重构主神经网络输入的神经网络***的框图。
图5描绘了用于使用非对称神经网络输入密钥对神经网络输入进行编码和恢复的示例过程的泳道图。
图6是用于训练神经网络***的示例过程的流程图,该神经网络***包括编码器神经网络、可信解码器神经网络和对手解码器神经网络。
图7是用于联合训练编码器神经网络和可信解码器神经网络的示例过程的流程图。
图8是用于训练对手解码器神经网络的示例过程的流程图。
具体实施方式
图1示出了用于使用对称神经网络输入密钥110来变换和重构主神经网络输入108的神经网络***100的框图。***100包括编码器神经网络102、可信解码器神经网络104和对手解码器神经网络106。在一些实施方式中,编码器神经网络102被配置成,以允许可信解码器神经网络104使用秘密密钥以至少阈值预期精度重构原始输入数据的方式对输入数据进行编码、加密、模糊或以其它方式的变换,同时防止对手解码器神经网络106在没有秘密密钥的情况下以至少阈值预期精度重构原始输入数据。
编码器神经网络102被配置成处理主神经网络输入108和神经网络输入密钥110,以生成主神经网络输入的编码表示112。主神经网络输入的编码表示112是主神经网络输入108的修改版本,其已经根据编码器神经网络102的参数并基于神经网络输入密钥110进行了变换。在加密上下文中,可以说编码器神经网络102对主神经网络输入108应用加密变换,以使用密钥生成主神经网络输入的编码表示112。例如,主神经网络输入112可以是输入数据的明文表示,神经网络输入密钥110可以是加密密钥(例如,共享秘密密钥),并且主神经网络输入的编码表示112可以是密文,即,主神经网络输入112的加密版本。
可信解码器神经网络104和对手解码器神经网络106各自被配置成处理主神经网络输入的编码表示112,以生成主神经网络输入108的估计重构。然而,与对手解码器神经网络106不同,可信解码器神经网络104可以使用用于生成主神经网络输入的编码表示112的神经网络输入密钥110。例如,可信解码器神经网络104可以是编码器神经网络102的可信对应物(counterpart),而对手解码器神经网络106是不可信的。可信解码器神经网络104处理主神经网络输入108以及神经网络输入密钥110,以生成对主神经网络输入的第一估计重构114。如下面关于图5-图7所讨论的,编码器神经网络102和可信解码器神经网络104可以被联合训练,使得可信解码器神经网络104生成主神经网络输入的高度精确的重构114,同时防止对手解码器神经网络106可靠地生成主神经网络输入108的精确重构。对手解码器神经网络106处理主神经网络输入的编码表示112,而不处理神经网络输入密钥110,以生成主神经网络输入的第二估计重构116。
编码器神经网络102、可信解码器神经网络104和对手解码器神经网络106可以共享或不共享公共架构。在一些实施方式中,网络102、104和106中的每一个都具有“混合和变换”架构,该架构能够在训练期间学习混合功能,诸如XOR。“混合和变换”架构包括第一全连接层、随后是一系列卷积层。来自全连接层的输出的数量可以等于神经网络的输入数据项的数量。因此,对于编码器神经网络102,主神经网络输入108可以包括n个输入数据项,并且神经网络输入密钥110可以包括m个输入数据项。全连接层可以包括m+n个节点,其中每个节点提供激活函数,该激活函数可以产生到第一卷积层的输出,该输出是来自主神经网络输入108和神经网络输入密钥110的所有输入数据项的线性组合。卷积层被训练成将一些函数应用于由先前层混合的输出的组,而没有该函数应该是什么的先验说明。卷积层中的最后一层产生适当大小的神经网络输出(例如,编码器神经网络102输出主神经网络输入的编码表示112)。
第一神经网络输入108可以是初始数据项的表示,该数据项已经被变换成适合编码器神经网络102处理的形式。例如,初始数据项可以是文本(例如,字母数字字符的记号的序列)、图像、二进制数据或其它类型的数据。在一些实施方式中,编码器神经网络102、可信解码器神经网络104和对手解码器神经网络106被配置为在浮点数元组(tuple)上操作。对于这样的实施方式,主神经网络输入108以及神经网络输入密钥110、主神经网络输入的编码表示112、主神经网络输入的第一估计重构114、和主神经网络输入的第二估计重构116各自都是浮点数元组,其中每个元组包括数据项(例如,浮点数)的有序集。编码表示112以及估计重构114和116可以包括给定范围内的任意浮点数,例如范围-1到1内的任意浮点数,即使主神经网络输入108和神经网络输入密钥110仅由二进制值组成,例如0和1。
参考图2,示出了用于从神经网络输入的编码表示重构神经网络输入的示例过程200的流程图。在一些实施方式中,过程200可以由可使用解密密钥的可信解码器神经网络来执行,例如可信解码器神经网络104。
在阶段202,解码器神经网络获得两个输入:(i)主神经网络输入的编码表示,例如编码表示112,和(ii)不同于主神经网络输入的编码表示的神经网络输入密钥,例如神经网络输入密钥110。主神经网络输入的编码表示可能已经由编码器神经网络(例如编码器神经网络102)通过处理主神经网络输入(例如主神经网络输入108)和神经网络输入密钥来生成。
在阶段204,解码器神经网络处理在阶段202获得的两个输入,以生成主神经网络输入的估计重构,例如,第一估计重构114。主神经网络输入的估计重构是通过由解码器神经网络的一个或多个隐藏层指示的一系列变换来处理输入而生成的。在阶段206,解码器神经网络输出主神经网络输入的估计重构。该输出可以被存储或以其它方式提供给进一步处理该输出的应用或***,例如以用于呈现给用户。
图3描绘了用于使用对称神经网络输入密钥对神经网络输入进行编码和恢复的示例过程的泳道图300。最左边的通道指示编码器神经网络的操作,例如编码器神经网络102的操作;中间通道指示可信解码器神经网络的操作,例如,第一解码器神经网络104的操作;而最右边的通道指示对手解码器神经网络的操作,例如,第二解码器神经网络106的操作。
在阶段302,编码器神经网络接收主神经网络输入(例如主神经网络输入108)和神经网络输入密钥(例如神经网络输入密钥110)。在阶段304,编码器神经网络处理主神经网络输入和神经网络输入密钥,以生成主神经网络输入的编码表示。在阶段306,编码器神经网络输出主神经网络输入的编码表示,然后该编码表示可提供给可信解码器神经网络。
可信解码器神经网络获得主神经网络输入的编码表示(阶段308),并被提供神经网络输入密钥作为主神经网络输入的编码表示的解密密钥(阶段310)。在阶段312,可信解码器神经网络然后使用神经网络输入密钥,以通过根据可信解码器神经网络的参数的训练值处理主神经网络输入的编码表示和神经网络输入密钥,来生成主神经网络输入的估计重构。在一些实施方式中,可信解码器神经网络被训练成生成第一神经网络的估计重构,该估计重构具有满足指定精度目标的至少阈值概率(例如,90-98%)。
在可信解码器神经网络在阶段308-312执行其操作之前、期间或之后,对手解码器神经网络在阶段314-316执行其操作。特别地,在阶段314,对手解码器神经网络获得(例如,截取)主神经网络输入的编码表示,并且在阶段316,对手解码器神经网络处理主神经网络输入的编码表示,以生成主神经网络输入的第二估计重构。由于编码器神经网络和可信解码器神经网络之间的联合训练,以及这些网络和对手解码器神经网络之间的对抗训练,对手解码器神经网络通常不能对估计重构是精确的具有很高的信心,来从主神经网络输入的编码表示中恢复主神经网络输入。即使对手解码器神经网络被训练成在没有秘密密钥的情况下尽可能精确地生成估计重构,但是由于编码器神经网络和可信解码器神经网络之间的联合训练,主神经网络输入的编码表示被变换成使得对手重构输入的尝试不精确。因此,编码器神经网络可以将主神经网络输入传送到可信解码器神经网络,并对其相对于对手解码器神经网络或其它对手的保密性有信心。
图4描绘了用于使用非对称神经网络输入密钥来变换和重构主神经网络输入的神经网络***的框图。与图1中描绘的***100相比,图1中描绘的***100对于应用于主神经网络输入以及主神经网络输入的编码表示的正向和反向变换分别使用了相同的密钥(即,神经网络输入密钥110),图4示出了对于正向和反向变换分别使用不同的神经网络输入密钥414和412的***400。例如,密钥414和412可以是公共-私有密钥对,其中密钥412是仅可用于可信解码器神经网络404的秘密密钥,并且密钥414是通常可用于***400中的其它实体的公共密钥。
正如对称变换***100(图1),图4描绘的***400包括编码器神经网络402、可信解码器神经网络404和对手解码器神经网络406。可信解码器神经网络404可以是已经与编码器神经网络402联合训练的可信解码器,并且该对网络402、404可以与作为对手解码器网络的对手解码器神经网络406进行对抗训练。编码器神经网络402被配置为处理主神经网络输入410(例如,明文数据项)和公共神经网络输入密钥414,以生成主神经网络输入的编码表示416(例如,密文项)。可信解码器神经网络404被配置为处理主神经网络输入的编码表示416和秘密神经网络输入密钥412,以生成主神经网络输入的第一估计重构418。
与其中神经网络输入密钥是共享秘密的对称变换***不同,在***400中,编码密钥,例如公共神经网络输入密钥414,也可用于对手解码器神经网络406。因此,对手解码器神经网络406可以在尝试重构主神经网络输入410时处理主神经网络输入的编码表示416以及公共神经网络输入密钥414。即使编码器神经网络402使用公共神经网络输入密钥414对主神经网络输入410应用正向变换,对手解码器神经网络406也可以被训练成使用公共神经网络输入密钥414对主神经网络输入的编码表示416应用反向变换,只要它有用。在其它实施方式中,对手解码器神经网络406可以被配置成仅处理主神经网络输入的编码表示416,以生成主神经网络输入的第二估计重构420,而不使用公共神经网络输入密钥414。
***400还可以包括密钥生成神经网络408。密钥生成神经网络408被配置为从秘密神经网络输入密钥412生成公共神经网络输入密钥414。在其它实施方式中,密钥生成神经网络408可以被配置为从公共神经网络输入密钥414生成秘密神经网络输入密钥412,或者密钥412、414可以从公共过程生成,以便彼此互补。密钥生成神经网络408具有其自己的参数,并且在一些实施方式中,与编码器神经网络402和可信解码器神经网络404联合训练。
图5是用于使用非对称神经网络输入密钥来对神经网络输入进行编码和恢复的示例过程500的泳道图。在一些实施方式中,过程500由被配置为执行非对称变换的神经网络***(例如,神经网络***400)来执行。神经网络***可以包括密钥生成神经网络,例如密钥生成神经网络408;编码器神经网络,例如编码器神经网络402;可信解码器神经网络,例如可信解码器神经网络404;和对手解码器神经网络,例如对手解码器神经网络406。
在一些实施方式中,过程500开始于获得神经网络输入密钥。在阶段502,密钥生成神经网络接收第一神经网络输入密钥(例如,秘密密钥)。密钥生成神经网络502处理第一神经网络输入密钥以生成第二神经网络输入密钥(例如,公共密钥)(阶段504)。然后,第二神经网络输入密钥可用于编码器神经网络(阶段506)。
在阶段508,编码器神经网络接收包括主神经网络输入和第二神经网络输入密钥的输入集。编码器神经网络通过处理通过编码器神经网络的每一层的主神经网络输入和第二神经网络输入密钥来生成主神经网络输入的编码表示(阶段510)。在阶段512,***将主神经网络输入的编码表示提供给可信解码器神经网络。
可信神经网络接收主神经网络输入的编码表示(阶段514)。可信神经网络还被提供有第一神经网络输入密钥(例如,秘密解密密钥)(阶段516),并且可信神经网络通过处理通过其每一层的编码表示和第一神经网络输入密钥来生成主神经网络输入的第一估计重构(阶段518)。主神经网络输入的第一估计重构可以与主神经网络输入紧密匹配,这是由于可信神经网络具有相应解密密钥,即第一神经网络输入密钥,并且已经被训练成对编码表示应用反向变换以便重构神经网络输入。
在一些实施方式中,对手解码器神经网络可以尝试破坏编码器神经网络输入应用于主神经网络输入的加密。在阶段520,对手解码器神经网络获得主神经网络输入的编码表示。例如,恶意实体可能已经在从与编码器神经网络相关联的实体到与可信解码器神经网络相关联的实体的通信中截取了编码表示。在阶段522,对手解码器神经网络获得第二神经网络输入密钥,例如,用于加密主神经网络输入的公共密钥。然后,在阶段524,对手解码器神经网络生成主神经网络输入的第二估计重构。然而,因为编码器神经网络和可信解码器神经网络已经被联合训练成应用对手解码器神经网络无法可靠地反向的变换,所以主神经网络输入的第二估计重构不太可能是主神经网络输入的精确恢复。
图6是用于训练神经网络***的示例过程600的流程图,该神经网络***包括编码器神经网络、可信解码器神经网络和对手解码器神经网络。在一些实施方式中,过程600可被应用于训练以上讨论的神经网络***,例如***100(图1)或400(图4)。训练可以由在一个或多个位置具有一个或多个计算机的训练***来执行。
在阶段602,训练***初始化编码器神经网络、可信解码器神经网络和对手解码器神经网络。在一些实施方式中,随机初始化每个网络,即,为神经网络的内部参数分配随机值。
在阶段604,训练***选择一批第一训练数据,用于联合训练编码器神经网络和可信解码器神经网络。该批第一训练数据包括训练数据对集,其中每个训练数据对包括相应主神经网络输入和神经网络输入密钥。第一训练数据对中的一些或全部可以具有不同的神经网络输入密钥。
在阶段606,训练***在来自该批第一训练数据的训练数据对上联合训练编码器神经网络和可信解码器神经网络。用于该训练的损耗函数可以部分基于由对手解码器神经网络生成的主神经网络输入的估计重构。然而,在过程600的这个阶段,在训练编码器神经网络和可信解码器神经网络时,对手解码器神经网络的参数不被调整。相反,训练***在训练(i)编码器神经网络和可信解码器神经网络与(ii)对手解码器神经网络之间对抗地交替。关于训练编码器神经网络和可信解码器神经网络的进一步细节将参考图7讨论。
在训练***消耗了所选的一批第一训练数据中的所有训练数据对之后,***从联合训练编码器神经网络和可信解码器神经网络转向训练对手解码器神经网络。在阶段608,训练***选择一批第二训练数据以用于训练对手解码器神经网络。该批第二训练数据还可以具有与在阶段604选择的训练数据对不同的分量。在一些实施方式中,该批第二训练数据中的每个训练样本包括相应主神经网络输入和主神经网络输入的编码表示,该主神经网络输入的编码表示是由编码器神经网络根据编码器神经网络的参数的当前值生成的,即在编码器神经网络在阶段606的训练之后。
在阶段610,对手解码器神经网络在该批第二训练数据上训练。在这个阶段期间,编码器神经网络和可信神经网络的参数值保持不变。关于训练对手解码器神经网络的进一步细节将参考图8讨论。
因此,训练在(i)训练编码器神经网络和可信解码器神经网络和(ii)训练对手解码器神经网络之间交替进行。在每个阶段期间,网络学习更好地对抗它们的对手的当前能力。例如,在训练周期的第一阶段,编码器神经网络和可信解码器神经网络被训练来加密和重构神经网络输入,该神经网络输入保护输入的保密性,以对抗随机初始化的对手解码器神经网络。在周期的第二阶段,对手解码器神经网络被训练来重构由编码器神经网络编码的神经网络输入,直到它已经被训练整个第一周期。在下一个训练周期的第一阶段,编码器神经网络和可信解码器神经网络被进一步训练,以加密和重构神经网络输入,该神经网络输入保护输入的保密性,以对抗对手解码器神经网络,直到它已经被训练整个当前周期。训练可以以交替方式进行,直到训练结束条件发生为止。
在阶段612,在所有或一些周期之后,训练***确定是否执行另一个训练周期。在一些实施方式中,训练***继续执行额外的周期,直到检测到训练结束条件。训练结束条件可以是,例如,预先指定数量的训练周期的执行、所有可用训练数据的消耗、执行目标的实现、或者两个或多个这些的组合。执行目标可以涉及重构可信解码器神经网络、对手解码器神经网络或两者的神经网络输入时的重构误差。如果在阶段612,训练***确定继续训练,则过程600返回到阶段604。如果训练***检测到训练结束条件的发生,则可以认为训练完成并终止(阶段614)。
图7是用于联合训练编码器神经网络和可信解码器神经网络的示例过程700的流程图。训练可以由在一个或多个位置具有一个或多个计算机的训练***来执行。该流程图示出了在给定训练周期内对于来自一批训练数据的单个训练数据对的训练操作,但是在实践中,可以针对该批训练数据中的每个训练数据对重复过程700。
在阶段702,训练***从当前一批训练数据中选择训练数据对。训练数据对包括主神经网络输入和神经网络输入密钥。例如,神经网络输入密钥可以是对称变换***的共享秘密密钥,或者是使用公共密钥进行正向变换(例如编码或加密)和使用私有密钥进行反向变换(例如解码或解密)的非对称变换***的公共密钥。
在阶段704,训练***向编码器神经网络提供主神经网络输入和神经网络输入密钥。编码器神经网络根据编码器神经网络的参数的当前值处理该对输入,并生成主神经网络输入的编码表示。
在阶段706,训练***然后将主神经网络输入的编码表示和神经网络输入密钥提供给可信解码器神经网络。可信解码器神经网络根据可信解码器神经网络的参数的当前值来处理这些输入,以生成主神经网络输入的第一估计重构。提供给编码器神经网络和可信解码器神经网络的神经网络输入密钥可以彼此相同或不同。例如,在对称变换***中,神经网络输入密钥可以是相同的。在非对称变换***中,神经网络输入密钥可以是相关但彼此不同的(例如,公共-私有密钥对中的互补密钥)。
在阶段708,训练***将主神经网络输入的编码表示提供给对手解码器神经网络。对手解码器神经网络处理主神经网络输入的编码表示,以生成主神经网络输入的第二估计重构。在一些实施方式中,对手解码器神经网络仅基于主神经网络输入的编码表示,即,使用神经网络输入密钥,来生成第二估计重构。在其它实施方式中,诸如对于非对称变换***,训练***可以向对手解码器神经网络提供公共神经网络输入密钥(例如,用于生成主神经网络输入的编码表示的同一密钥),以便在生成主神经网络输入的第二估计重构时与主神经网络输入的编码表示一起处理。
在阶段710,训练***然后使用主神经网络输入、第一神经网络的第一估计重构和主神经网络输入的第二估计重构来调整编码器神经网络和可信解码器神经网络的当前值。在一些实施方式中,训练***使用机器学习技术,诸如具有反向传播的随机梯度下降,以调整编码器神经网络和可信解码器神经网络的参数值。例如,训练***可以通过调整神经网络参数的当前值来反向传播梯度以优化损耗函数。在一些实施方式中,损耗函数可以被公式化(formulated)以最小化可信解码器神经网络的重构误差,即最小化由可信解码器神经网络生成的、主神经网络输入和主神经网络输入的第一估计重构之间的误差。然而,为了使得编码器神经网络和可信解码器神经网络被训练来保护信息的保密性以对抗对手解码器神经网络,可以进一步公式化损耗函数,以便最大化对手解码器神经网络的重构误差,即,最大化由对手解码器神经网络生成的、主神经网络输入和主神经网络输入的第二估计重构之间的误差。
在其它实施方式中,损耗函数可以不试图最大化对手神经网络的重构误差,而是可以被公式化来最小化主神经网络输入的第二估计重构和主神经网络输入之间的相互信息。在对称编码-解码***的情况下,这种方法等同于使对手神经网络与随机猜测无法区分。
图8是用于训练对手解码器神经网络的示例过程800的流程图。训练可以由在一个或多个位置具有一个或多个计算机的训练***来执行。该流程图示出了在给定训练周期内对于单个训练数据对的训练操作,但是在实践中,可以在训练周期中对于每个训练数据对重复过程800。
在阶段802,训练***获得训练数据对。训练数据对可以包括主神经网络输入和主神经网络输入的编码表示。在一些实施方式中,从一批预先生成的训练数据中选择主神经网络输入。然后,根据从最近训练周期开始的编码器神经网络参数的当前值,通过利用编码器神经网络处理主神经网络输入和神经网络输入密钥,生成主神经网络输入的编码表示。神经网络输入密钥可以从一批神经网络输入密钥中选择,并且不同的神经网络输入密钥可以被处理,来为不同训练数据对生成主神经网络输入的编码表示。
在阶段804,对手解码器神经网络处理主神经网络输入的编码表示,并且可选地处理神经网络输入密钥,以生成主神经网络输入的估计重构。如果对手解码器神经网络是对于其中神经网络输入密钥不公开的对称变换***的对手,则对手解码器神经网络可以在没有神经网络输入密钥的情况下处理主神经网络输入的编码表示,以生成估计重构。如果对手解码器神经网络是对于其中神经网络输入密钥是公开的非对称变换***的对手,则对手解码器神经网络可以处理主神经网络输入的编码表示以及神经网络输入密钥,以生成估计重构。
在阶段806,训练***使用主神经网络输入和主神经网络输入的估计重构来调整对手解码器神经网络的参数值。在一些实施方式中,训练***使用机器学习技术,诸如具有反向传播的随机梯度下降,以调整对手解码器神经网络的参数值。例如,训练***可以反向传播梯度以优化损耗函数,该损耗函数最小化主神经网络输入和主神经网络输入的估计重构之间的误差。
在一些实施方式中,这里描述的神经网络***可以被扩展,使得它们不仅被配置为保护来自对手解码器神经网络的神经网络输入的机密性,还被配置为仅保护来自对手解码器神经网络的神经网络输入的特定部分(例如,敏感部分)。例如,主神经网络输入可以由四个值的元组<A,B,C,D>组成。给定前三个值作为输入,***可以被配置为输出D的两个预测:D的“真实”预测,表示给定<A,B,C>的情况下D的最精确的可能估计值,以及D的“隐私保护”估计值,该估计值将被称为D-公开,并且表示***露关于C值的任何信息的D的最佳可能估计值。***组织可以类似于图1,编码器神经网络和可信解码器神经网络共享神经网络密钥输入,但是这里编码器神经网络接收并处理<A,B,C>以生成除密文之外的D-公开。可信解码器神经网络和对手解码器神经网络两者都可以使用编码器神经网络的输出。可信解码器神经网络使用编码器的输出来生成D的改进估计,而对手解码器神经网络试图从编码器的输出中恢复C。***被训练和配置,使得编码器神经网络可以生成D-公开作为D的近似值,而***露C,并且使得可信解码器神经网络可以处理D-公开以及密文和神经网络输入密钥,以获得D的更好近似值(D的估计重构)。这种技术可能是有用的,例如,在敏感用户属性和非敏感用户属性之间存在相关性的情况下,防止***考虑敏感用户属性。例如,元组<A,B,C,D>,C可以表示用户的年龄,D可以表示用户的兴趣。虽然D没有直接泄露用户的年龄,但是年龄和兴趣之间可能存在某种相关性。神经网络***可以用编码器神经网络处理<A,B,C>,以估计用户的兴趣D,而***露关于C的信息
本说明书中描述的主题和功能操作的实施例可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实施,包括本说明书中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以被实施为一个或多个计算机程序,即编码在有形非暂时性程序载体上的计算机程序指令的一个或多个模块,用于由数据处理装置运行或控制数据处理装置的操作。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,该信号被生成来编码信息,以传输到合适的接收器装置,用于由数据处理装置运行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备,或者它们中的一个或多个的组合。然而,计算机存储介质不是传播信号。
术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,例如包括可编程处理器、计算机、或者多个处理器或计算机。该装置可以包括专用逻辑电路,例如GPU(graphics processing unit,图形处理单元)、FPGA(field programmable gatearray,现场可编程门阵列)或ASIC(application specific integrated circuit,专用集成电路),或者这些电路中的多个或这些电路的组合。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理***、操作***或它们中的一个或多个的组合的代码。
计算机程序(也可以称为或描述为程序、软件、软件应用、模块、软件模块、脚本或代码)可以以任何形式的编程语言编写,包括编译语言或解释语言,或者声明性语言或过程性语言,并且可以以任何形式部署,包括被部署为独立程序,或者模块、组件、子例程,或者适合在计算环境中使用的其它单元。计算机程序可以但不必对应于文件***中的文件。程序可以存储在保存其它程序或数据的文件的一部分(例如在标记语言文档中存储的一个或多个脚本)中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件(例如存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一台计算机上执行,或者在位于一个站点或分布在多个站点并通过通信网络互连的多台计算机上运行。
如本说明书中所使用的,“引擎”或“软件引擎”是指提供不同于输入的输出的软件实施的输入/输出***。引擎可以是编码的功能块,诸如库、平台、软件开发工具包(“software development kit,SDK”)或对象。每个引擎可以在任何适当类型的计算设备上实施,例如服务器、移动电话、平板电脑、笔记本电脑、音乐播放器、电子书阅读器、膝上型电脑或台式电脑、PDA(Personal Digital Assistant,个人数字助理)、智能手机、或者包括一个或多个处理器和计算机可读介质的其它固定式或便携式设备。另外,两个或多个引擎可以在同一计算设备上实施,或者在不同的计算设备上实施。
本说明书中描述的过程和逻辑流程可以由运行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。这些过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适于运行计算机程序的计算机包括,例如可以基于通用或专用微处理器或两者,或任何其它类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,或可操作地耦合到一个或多个用于存储数据的大容量存储设备以从其接收数据或将数据传送到其或两者。然而,计算机不需要有这样的设备。此外,计算机可以嵌入到另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位***(Global Positioning System,GPS)接收器、或便携式存储设备,例如通用串行总线(universal serial bus,USB)闪存驱动器,仅举几例。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实施,该计算机具有用于向用户显示信息的显示设备,例如CRT(阴极射线管,cathode ray tube)或LCD(液晶显示器,liquid crystal display)监视器,并且具有用户可以通过其向计算机提供输入的键盘和定点设备,例如鼠标或轨迹球。其它类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如通过响应于从网络浏览器接收的请求将网页发送到用户的客户端设备上的网络浏览器。
本说明书中描述的主题的实施例可以在包括后端组件(例如数据服务器)的计算***中实施,或者可以在包括中间件组件(例如应用服务器)的计算***中实施,或者可以在包括前端组件(例如具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该图形用户界面或Web浏览器与本说明书中描述的主题的实施方式交互)的计算***中实施,或者可以在包括一个或多个这样的后端组件、中间件组件或前端组件的任意组合的计算***中实施。***的组件可以通过任何形式或介质的数字数据通信互连,例如通信网络。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如互联网。
计算***可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是借助于在相应计算机上运行并且彼此之间具有客户端-服务器关系的计算机程序而产生的,。
虽然本说明书包含许多具体的实施细节,但这些细节不应被解释为对任何发明的范围或所要求保护的范围的限制,而是专门对特定发明的特定实施例的特征描述。本说明书中所描述的、在单独实施例的上下文中的某些特征也可以在单个实施例中以组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实施。此外,虽然特征可以在上面描述为以某些组合方式起作用,甚至最初被要求这样保护,但是在一些情况下,来自要求保护的组合的一个或多个特征可以从该组合中删除,并且要求保护的组合可以指向子组合或子组合的变体。
类似地,虽然在附图中以特定次序描绘了操作,但这不应被理解为要求以所示的特定次序或以顺序的次序执行这些操作,或者执行所有所示的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种***模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应该理解,所描述的程序组件和***通常可以集成在单个软件产品中或者封装到多个软件产品中。
已经描述了主题的特定实施例。其它实施例在以下权利要求的范围内。例如,权利要求中列举的动作可以以不同的次序执行,并且仍然获得期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定次序或顺序的次序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。
Claims (31)
1.一种用于在一个或多个计算机上训练神经网络***的计算机实施的方法,包括:
获得神经网络***的多个训练数据对,每个训练数据对包括相应第一输入和相应第二输入;和
在所述多个训练数据对上训练神经网络***包括,对于每个训练数据对:
根据编码器神经网络的参数的当前值,使用编码器神经网络来处理(i)该训练数据对的相应第一输入和(ii)该训练数据对的相应第二输入,以生成该训练数据对的相应第一输入的编码表示;
根据第一解码器神经网络的参数的当前值,使用第一解码器神经网络来处理(i)该训练数据对的相应第一输入的编码表示和(ii)该训练数据对的相应第二输入或该训练数据对的相应第三输入,以生成该训练数据对的相应第一输入的第一估计重构,其中(i)该训练数据对的相应第二输入是从该训练数据对的相应第三输入得到的,(ii)该训练数据对的相应第三输入是从该训练数据对的相应第二输入得到的,或者(iii)该训练数据对的相应第二输入和该训练数据对的相应第三输入两者都是使用公共过程得到的,以便彼此互补;
获得该训练数据对的相应第一输入的第二估计重构,该第二估计重构由第二解码器神经网络根据第二解码器神经网络的当前参数、通过处理该训练数据对的相应第一输入的编码表示而不处理该训练数据对的相应第二输入来生成;和
基于相应第一输入、相应第一输入的第一估计重构和相应第一输入的第二估计重构,调整编码器神经网络的当前参数和第一解码器神经网络的当前参数。
2.根据权利要求1所述的计算机实施的方法,其中训练所述神经网络***包括,对于每个训练数据对,由第一解码器神经网络通过根据第一解码器神经网络的当前参数处理(i)该训练数据对的相应第一输入的编码表示和(ii)该训练数据对的相应第二输入,来生成该训练数据对的相应第一输入的第一估计重构。
3.根据权利要求1所述的计算机实施的方法,其中训练所述神经网络***包括,对于每个训练数据对,由第一解码器神经网络通过根据第一解码器神经网络的当前参数处理(i)该训练数据对的相应第一输入的编码表示和(ii)与相应第二输入相对应的该训练数据对的相应第三输入,来生成该训练数据对的相应第一输入的第一估计重构。
4.根据权利要求1-3中任一项所述的计算机实施的方法,其中编码器神经网络包括一个或多个全连接层、接着是一个或多个卷积层。
5.根据权利要求1-4中任一项所述的计算机实施的方法,其中第一解码器神经网络包括一个或多个全连接层、接着是一个或多个卷积层。
6.根据权利要求1-5中任一项所述的计算机实施的方法,包括基于(i)来自训练数据对的相应第一输入和由第一解码器神经网络***生成的相应第一输入的估计重构之间的差或者(ii)来自训练数据对的相应第一输入和由第二解码器神经网络***生成的相应第一输入的估计重构之间的差中的至少一个,来调整编码器神经网络的当前参数和第一解码器神经网络的当前参数。
7.根据权利要求1-6中任一项所述的计算机实施的方法,包括使用随机梯度下降调整编码器神经网络的当前参数和第一解码器神经网络的当前参数。
8.根据权利要求1-7中任一项所述的计算机实施的方法,其中训练所述神经网络***包括,对于每个训练数据对,调整编码器神经网络的当前参数和第一解码器神经网络的当前参数,而不调整第二解码器神经网络的当前参数。
9.根据权利要求1-7中任一项所述的计算机实施的方法,进一步包括:
获得多个第二训练数据对,每个第二训练数据对包括相应第四输入和相应第四输入的编码表示,其中相应第四输入的编码表示是根据编码器神经网络的当前参数使用编码器神经网络生成的;
在所述多个第二训练数据对上训练第二解码器神经网络,对于每个第二训练数据对,包括:
根据第二解码器神经网络的当前值,使用第二解码器神经网络来处理该第二训练数据对的相应第四输入的相应编码表示,以生成该第二训练数据对的相应第四输入的估计重构;和
基于相应第四输入和相应第四输入的估计重构之间的差来调整第二解码器神经网络的当前参数,而不调整编码器神经网络的当前参数,也不调整第一解码器神经网络的当前参数。
10.根据权利要求9所述的计算机实施的方法,其中:
对于第二训练数据对中的每一个,通过根据编码器神经网络的当前参数使用编码器神经网络处理(i)相应第四输入和(ii)不同于相应第四输入的与第二训练数据对相对应的相应第五输入,来生成该第二训练数据对的相应第四输入的编码表示;
在所述多个第二训练数据对上训练第二解码器神经网络包括,对于每个第二训练数据对,根据第二解码器神经网络的当前值,使用第二解码器神经网络来处理(i)该第二训练数据对的相应第四输入的相应编码表示,以及(ii)与该第二训练数据对相对应的相应第六输入;和
对于第二训练数据对中的每一个,(i)相应第五输入是从相应第六输入得到的,(ii)相应第六输入是从相应第五输入得到的,或者(iii)相应第五输入和相应第六输入两者都是使用公共过程得到的,以便彼此互补。
11.根据权利要求10所述的计算机实施的方法,其中,对于每个第二训练数据对:
与该第二训练数据对相对应的相应第五输入表示公共-私有密钥对的私有密钥;和
与该第二训练数据对相对应的相应第六输入表示公共-私有密钥对的公共密钥。
12.根据权利要求9所述的计算机实施的方法,包括:在用所述多个训练数据对来训练编码器神经网络之后,根据编码器神经网络的当前值,使用编码器神经网络来生成所述多个第二训练数据对的相应第四输入的编码表示。
13.根据权利要求1-12中任一项所述的计算机实施的方法,其中,所述多个训练数据对当中的第一训练数据对的相应第一输入表示文本序列或者一个或多个数字中的至少一个。
14.根据权利要求1-13中任一项所述的计算机实施的方法,其中,对于每个训练数据对,由第二解码器神经网络根据第二解码器神经网络的当前参数,通过仅处理该训练数据对的相应第一输入的编码表示,而不处理该训练数据对的相应第二输入,也不处理该训练数据对的相应第三输入,来生成该训练数据对的相应第一输入的第二估计重构。
15.根据权利要求1-13中任一项所述的计算机实施的方法,其中,对于每个训练数据对,由第二解码器神经网络根据第二解码器神经网络的当前参数,通过处理(i)该训练数据对的相应第一输入的编码表示和(ii)该训练数据对的相应第三输入,而不处理该训练数据对的相应第二输入,来生成该训练数据对的相应第一输入的第二估计重构。
16.根据权利要求1-15中任一项所述的计算机实施的方法,其中,对于每个训练数据对:
该训练数据对的相应第二输入表示公共-私有密钥对的私有密钥;和
该训练数据对的相应第三输入表示公共-私有密钥对的公共密钥。
17.根据权利要求1-16中任一项所述的计算机实施的方法,包括相互交替地重复训练(i)包括编码器神经网络和第一解码器神经网络的神经网络***以及(ii)第二解码器神经网络。
18.一种计算机实施的方法,包括:
接收(i)第一输入的编码表示和(ii)不同于第一输入的编码表示的第二输入;
由解码器神经网络处理第一输入的编码表示和第二输入,以生成第一输入的估计重构;和
由解码器神经网络提供第一输入的估计重构的指示。
19.根据权利要求18所述的计算机实施的方法,其中,第一输入的编码表示由编码器神经网络通过处理(i)第一输入和(ii)不同于第一输入的第三输入来生成。
20.根据权利要求19所述的计算机实施的方法,其中第二输入和第三输入是相同的。
21.根据权利要求19所述的计算机实施的方法,其中:
第三输入是根据第一预定义变换集从第二输入得到的,
第二输入是根据第二预定义变换集从第三输入得到的,或者
第二输入和第三输入两者都是使用公共过程得到的,以便彼此互补。
22.根据权利要求18-21中任一项所述的计算机实施的方法,其中,由解码器神经网络处理第一输入的编码表示和第二输入以生成第一输入的估计重构包括使用第二输入来解码第一输入的编码表示。
23.根据权利要求18-22中任一项所述的计算机实施的方法,其中解码器神经网络包括一个或多个全连接层、接着是一个或多个卷积层。
24.根据权利要求18-23中任一项所述的计算机实施的方法,其中第一输入的编码表示是文本序列或者一个或多个数字中的至少一个的编码表示。
25.根据权利要求18-24中任一项所述的计算机实施的方法,其中:
解码器神经网络进一步被配置为处理第一输入的编码表示和第二输入,以在由编码器神经网络初始生成第一输入的编码表示之后生成第一输入的编码表示是否被篡改的指示;和
该方法进一步包括提供第一输入的编码表示是否被篡改的指示。
26.根据权利要求18-25中任一项所述的计算机实施的方法,其中第二输入包括秘密密钥。
27.根据权利要求18-26中任一项所述的计算机实施的方法,其中第一输入是根据预定义变换集从初始输入得到的。
28.根据权利要求18-27中任一项所述的计算机实施的方法,其中,第一输入的估计重构是根据预定义变换集从第一输入得到的一个或多个值的估计。
29.被配置为执行前述权利要求中任一项的方法的装置。
30.在由计算装置执行时使得执行前述权利要求中任一项的方法的计算机可读指令。
31.一种包括一个或多个计算机和一个或多个存储指令的存储设备的***,所述指令在由所述一个或多个计算机执行时可操作以使得所述一个或多个计算机执行操作,所述操作包括:
接收(i)第一输入的编码表示和(ii)不同于第一输入的编码表示的第二输入;
由解码器神经网络处理第一输入的编码表示和第二输入,以生成第一输入的估计重构;和
由解码器神经网络提供第一输入的估计重构的指示。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662370954P | 2016-08-04 | 2016-08-04 | |
US62/370,954 | 2016-08-04 | ||
PCT/US2017/045329 WO2018027050A1 (en) | 2016-08-04 | 2017-08-03 | Encoding and reconstructing inputs using neural networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109804383A true CN109804383A (zh) | 2019-05-24 |
CN109804383B CN109804383B (zh) | 2024-03-26 |
Family
ID=59626703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780056545.6A Active CN109804383B (zh) | 2016-08-04 | 2017-08-03 | 使用神经网络编码和重构输入 |
Country Status (4)
Country | Link |
---|---|
US (3) | US11308385B2 (zh) |
EP (1) | EP3494520A1 (zh) |
CN (1) | CN109804383B (zh) |
WO (1) | WO2018027050A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112446375A (zh) * | 2019-09-03 | 2021-03-05 | 上海高德威智能交通***有限公司 | 车牌识别方法、装置、设备及存储介质 |
CN113313234A (zh) * | 2020-06-18 | 2021-08-27 | 上海联影智能医疗科技有限公司 | 用于图像分割的神经网络***和方法 |
CN113313234B (zh) * | 2020-06-18 | 2024-08-02 | 上海联影智能医疗科技有限公司 | 用于图像分割的神经网络***和方法 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10650045B2 (en) * | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Staged training of neural networks for improved time series prediction performance |
US10795935B2 (en) | 2016-02-05 | 2020-10-06 | Sas Institute Inc. | Automated generation of job flow definitions |
US10642896B2 (en) | 2016-02-05 | 2020-05-05 | Sas Institute Inc. | Handling of data sets during execution of task routines of multiple languages |
US10650046B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Many task computing with distributed file system |
EP3494520A1 (en) * | 2016-08-04 | 2019-06-12 | Google LLC | Encoding and reconstructing inputs using neural networks |
US11615285B2 (en) | 2017-01-06 | 2023-03-28 | Ecole Polytechnique Federale De Lausanne (Epfl) | Generating and identifying functional subnetworks within structural networks |
USD898059S1 (en) | 2017-02-06 | 2020-10-06 | Sas Institute Inc. | Display screen or portion thereof with graphical user interface |
USD898060S1 (en) | 2017-06-05 | 2020-10-06 | Sas Institute Inc. | Display screen or portion thereof with graphical user interface |
US11972343B2 (en) | 2018-06-11 | 2024-04-30 | Inait Sa | Encoding and decoding information |
US11663478B2 (en) | 2018-06-11 | 2023-05-30 | Inait Sa | Characterizing activity in a recurrent artificial neural network |
US11893471B2 (en) | 2018-06-11 | 2024-02-06 | Inait Sa | Encoding and decoding information and artificial neural networks |
CN112740631A (zh) * | 2018-07-20 | 2021-04-30 | 诺基亚技术有限公司 | 通过接收算法中的参数的更新来在通信***中学习 |
EP3618287B1 (en) * | 2018-08-29 | 2023-09-27 | Université de Genève | Signal sampling with joint training of learnable priors for sampling operator and decoder |
US11568207B2 (en) | 2018-09-27 | 2023-01-31 | Deepmind Technologies Limited | Learning observation representations by predicting the future in latent space |
US10834114B2 (en) | 2018-12-13 | 2020-11-10 | At&T Intellectual Property I, L.P. | Multi-tiered server architecture to mitigate malicious traffic |
US11715016B2 (en) * | 2019-03-15 | 2023-08-01 | International Business Machines Corporation | Adversarial input generation using variational autoencoder |
US11569978B2 (en) | 2019-03-18 | 2023-01-31 | Inait Sa | Encrypting and decrypting information |
US11652603B2 (en) * | 2019-03-18 | 2023-05-16 | Inait Sa | Homomorphic encryption |
US11120526B1 (en) * | 2019-04-05 | 2021-09-14 | Snap Inc. | Deep feature generative adversarial neural networks |
US11636380B2 (en) * | 2019-04-09 | 2023-04-25 | Nxp B.V. | Method for protecting a machine learning model against extraction using an ensemble of a plurality of machine learning models |
US11264009B2 (en) * | 2019-09-13 | 2022-03-01 | Mitsubishi Electric Research Laboratories, Inc. | System and method for a dialogue response generation system |
US11580401B2 (en) | 2019-12-11 | 2023-02-14 | Inait Sa | Distance metrics and clustering in recurrent neural networks |
US11797827B2 (en) | 2019-12-11 | 2023-10-24 | Inait Sa | Input into a neural network |
US11651210B2 (en) | 2019-12-11 | 2023-05-16 | Inait Sa | Interpreting and improving the processing results of recurrent neural networks |
US11816553B2 (en) | 2019-12-11 | 2023-11-14 | Inait Sa | Output from a recurrent neural network |
US11430088B2 (en) * | 2019-12-23 | 2022-08-30 | Samsung Electronics Co., Ltd. | Method and apparatus for data anonymization |
KR20210089347A (ko) * | 2020-01-08 | 2021-07-16 | 엘지전자 주식회사 | 음성 인식 장치 및 음성데이터를 학습하는 방법 |
US20210256393A1 (en) * | 2020-02-18 | 2021-08-19 | Royal Bank Of Canada | System and method for distributed non-linear masking of sensitive data for machine learning training |
US11468328B2 (en) * | 2020-02-24 | 2022-10-11 | Qualcomm Incorporated | Managing information transmission for wireless communication |
KR20220147641A (ko) * | 2020-02-28 | 2022-11-03 | 엘지전자 주식회사 | 영상 특징 정보 시그널링을 위한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 |
WO2021206727A1 (en) * | 2020-04-10 | 2021-10-14 | Hewlett-Packard Development Company, L.P. | Neural networks |
US11501212B2 (en) * | 2020-04-21 | 2022-11-15 | Nxp B.V. | Method for protecting a machine learning model against extraction |
GB202016824D0 (en) * | 2020-10-23 | 2020-12-09 | Deep Render Ltd | DR big book 3 |
US11017320B1 (en) * | 2020-06-24 | 2021-05-25 | Deeping Source Inc. | Method for training obfuscation network which conceals original data to be used for machine learning and training surrogate network which uses obfuscated data generated by obfuscation network and learning device using the same and method for testing trained obfuscation network and testing device using the same |
US11924169B1 (en) | 2021-01-29 | 2024-03-05 | Joinesty, Inc. | Configuring a system for selectively obfuscating data transmitted between servers and end-user devices |
US11720991B2 (en) | 2021-05-20 | 2023-08-08 | International Business Machines Corporation | Signing and authentication of digital images and other data arrays |
US11886955B2 (en) | 2022-02-16 | 2024-01-30 | Protopia AI, Inc. | Self-supervised data obfuscation in foundation models |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105070293A (zh) * | 2015-08-31 | 2015-11-18 | 武汉大学 | 基于深度神经网络的音频带宽扩展编码解码方法及装置 |
CN105447498A (zh) * | 2014-09-22 | 2016-03-30 | 三星电子株式会社 | 配置有神经网络的客户端设备、***和服务器*** |
CN105825269A (zh) * | 2016-03-15 | 2016-08-03 | 中国科学院计算技术研究所 | 一种基于并行自动编码机的特征学习方法及*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170063530A1 (en) | 2013-08-13 | 2017-03-02 | Michael Stephen Fiske | NADO Cryptography with Key Generators |
US9346167B2 (en) * | 2014-04-29 | 2016-05-24 | Brain Corporation | Trainable convolutional network apparatus and methods for operating a robotic vehicle |
EP3494520A1 (en) * | 2016-08-04 | 2019-06-12 | Google LLC | Encoding and reconstructing inputs using neural networks |
-
2017
- 2017-08-03 EP EP17752240.6A patent/EP3494520A1/en active Pending
- 2017-08-03 CN CN201780056545.6A patent/CN109804383B/zh active Active
- 2017-08-03 US US16/323,205 patent/US11308385B2/en active Active
- 2017-08-03 WO PCT/US2017/045329 patent/WO2018027050A1/en active Search and Examination
-
2022
- 2022-03-03 US US17/685,559 patent/US11853860B2/en active Active
-
2023
- 2023-11-09 US US18/505,492 patent/US20240185032A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105447498A (zh) * | 2014-09-22 | 2016-03-30 | 三星电子株式会社 | 配置有神经网络的客户端设备、***和服务器*** |
CN105070293A (zh) * | 2015-08-31 | 2015-11-18 | 武汉大学 | 基于深度神经网络的音频带宽扩展编码解码方法及装置 |
CN105825269A (zh) * | 2016-03-15 | 2016-08-03 | 中国科学院计算技术研究所 | 一种基于并行自动编码机的特征学习方法及*** |
Non-Patent Citations (1)
Title |
---|
T.GODHAVARI ET AL: "Cryptography Using Neural Network", 《2005 ANNUAL IEEE INDIA CONFERENCE-INDICON》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112446375A (zh) * | 2019-09-03 | 2021-03-05 | 上海高德威智能交通***有限公司 | 车牌识别方法、装置、设备及存储介质 |
CN113313234A (zh) * | 2020-06-18 | 2021-08-27 | 上海联影智能医疗科技有限公司 | 用于图像分割的神经网络***和方法 |
CN113313234B (zh) * | 2020-06-18 | 2024-08-02 | 上海联影智能医疗科技有限公司 | 用于图像分割的神经网络***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109804383B (zh) | 2024-03-26 |
US20230019228A1 (en) | 2023-01-19 |
US11308385B2 (en) | 2022-04-19 |
EP3494520A1 (en) | 2019-06-12 |
US20190171929A1 (en) | 2019-06-06 |
US20240185032A1 (en) | 2024-06-06 |
WO2018027050A1 (en) | 2018-02-08 |
US11853860B2 (en) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109804383A (zh) | 使用神经网络编码和重构输入 | |
EP3373557B1 (en) | Secure information retrieval and update | |
US11652603B2 (en) | Homomorphic encryption | |
US20230289473A1 (en) | System and method for secure and robust distributed deep learning | |
Niu et al. | Secure federated submodel learning | |
WO2016115959A1 (zh) | 云端数据储存方法及装置和云端数据还原方法 | |
Zhao et al. | Application of digital twin combined with artificial intelligence and 5G technology in the art design of digital museums | |
Nagarajan et al. | Blockchain-based smart and secured scheme for question sharing using bee colony optimization based quantum logistic map encryption | |
CN116502732B (zh) | 基于可信执行环境的联邦学习方法以及*** | |
Gao et al. | New image encryption algorithm based on hyperchaotic 3D-IHAL and a hybrid cryptosystem | |
Liu et al. | Pencil: Private and Extensible Collaborative Learning without the Non-Colluding Assumption | |
Pesaru et al. | RETRACTED ARTICLE: Light weight cryptography-based data hiding system for Internet of Medical Things | |
Zhou et al. | Image visually meaningful cryptography based on Julia Set generating and information hiding | |
Cabrero-Holgueras | Towards Improved Homomorphic Encryption for Privacy-Preserving Deep Learning | |
Obayya et al. | Intelligent compression then encryption scheme for resource constrained sustainable and smart healthcare environment | |
EP4254858A1 (en) | Decentralized multi-authority attribute-based inner-product functional encryption | |
Qin et al. | A quantum secret sharing scheme on access structure | |
Wang et al. | Privacy-Preserving Neural Networks with Decentralized Multi-client Functional Encryption | |
Kumar et al. | MANC: A masked autoencoder neural cryptography based encryption scheme for CT scan images | |
Sameh | Digital Rights Management of Image Content via LSB Embedding and Palindromic Number Sequence | |
Chen | Data Protection and Privacy Protection of Advertising based on Cloud Computing Platform | |
Kotangale et al. | An Analytical Survey of Image Encryption Techniques Used in Various Application Domains | |
Sav | Privacy-preserving federated neural network training and inference | |
CN116822620A (zh) | 多方联合训练模型的方法及装置 | |
Brännvall et al. | Can the use of privacy enhancing technologies enable federated learning for health data applications in a Swedish regulatory context? |
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 |