JP6832307B2 - Information processing equipment, information processing methods, and programs - Google Patents
Information processing equipment, information processing methods, and programs Download PDFInfo
- Publication number
- JP6832307B2 JP6832307B2 JP2018055957A JP2018055957A JP6832307B2 JP 6832307 B2 JP6832307 B2 JP 6832307B2 JP 2018055957 A JP2018055957 A JP 2018055957A JP 2018055957 A JP2018055957 A JP 2018055957A JP 6832307 B2 JP6832307 B2 JP 6832307B2
- Authority
- JP
- Japan
- Prior art keywords
- filter
- data
- matrix
- key matrix
- concealment
- 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
Landscapes
- Complex Calculations (AREA)
Description
本発明は情報処理装置、情報処理方法、及びプログラムに関し、特に、畳み込みニューラルネットワークの入力データを秘匿化する技術に関する。 The present invention relates to an information processing apparatus, an information processing method, and a program, and more particularly to a technique for concealing input data of a convolutional neural network.
近年、CPU(Central Processing Unit)及びGPU(Graphics Processing Unit)の高速化、メモリの大容量化、及び機械学習技術が急速に進んできている。このため、数十万から百万といったオーダーの学習データを用いる機械学習が可能となり、精度の高い識別技術や分類技術が確立されつつある(非特許文献1参照)。 In recent years, the speed of CPU (Central Processing Unit) and GPU (Graphics Processing Unit) has been increased, the capacity of memory has been increased, and machine learning technology has been rapidly advanced. For this reason, machine learning using learning data on the order of hundreds of thousands to millions has become possible, and highly accurate identification technology and classification technology are being established (see Non-Patent Document 1).
大量の学習データに基づく機械学習を実行するためには大量の計算コストがかかる。また、大量の学習データを用意すること、及び用意した学習データを機械学習に用いるために加工する前処理にも膨大な労力を要する。一方で、機械学習によって生成された学習モデルはデジタルデータであり、その複製は容易である。したがって、学習モデルの作成者がユーザに利用させることを目的として学習モデルをユーザに提供すると、提供した学習モデルがその後不正に利用される恐れが生じる。 A large amount of computational cost is required to perform machine learning based on a large amount of learning data. In addition, a huge amount of labor is required for preparing a large amount of learning data and preprocessing for processing the prepared learning data for use in machine learning. On the other hand, the learning model generated by machine learning is digital data, and its duplication is easy. Therefore, if the creator of the learning model provides the learning model to the user for the purpose of making the user use it, there is a risk that the provided learning model will be used illegally thereafter.
そのため、例えば、学習モデルの作成者は、学習モデルのユーザに学習モデル自体を提供せずに、通信ネットワークを介してユーザから処理対象データを取得し、学習モデルの処理結果のみをユーザに提供する態様も考えられる。しかしながら、この態様では、学習モデルに入力するデータに個人情報が含まれる等によって漏洩が問題となるデータの場合、ユーザは学習モデルの利用に二の足を踏みかねない。 Therefore, for example, the creator of the learning model acquires the processing target data from the user via the communication network without providing the learning model itself to the user of the learning model, and provides only the processing result of the learning model to the user. Aspects are also conceivable. However, in this aspect, in the case of data in which leakage becomes a problem due to the inclusion of personal information in the data input to the learning model, the user may be reluctant to use the learning model.
本発明はこれらの点に鑑みてなされたものであり、畳み込みニューラルネットワークの学習モデルに入力するデータを秘匿化する技術を提供することを目的とする。 The present invention has been made in view of these points, and an object of the present invention is to provide a technique for concealing data input to a learning model of a convolutional neural network.
本発明の第1の態様は、情報処理装置である。この装置は、行列を入力データとする畳み込みニューラルネットワークの学習モデルを取得するモデル取得部と、前記学習モデル中の畳み込み層における畳み込み用フィルタを取得する畳み込み用フィルタ取得部と、前記畳み込み用フィルタをフーリエ変換して、前記入力データと同一サイズの変換フィルタを取得する変換フィルタ取得部と、前記入力データと同一サイズの行列であって、0以外の要素から構成される行列である鍵行列を生成する鍵行列生成部と、前記変換フィルタと前記鍵行列とのアダマール積である秘匿化フィルタを生成する秘匿化フィルタ生成部と、前記鍵行列のアダマール積の逆元である逆鍵行列を生成する逆鍵行列生成部と、前記畳み込みニューラルネットワークの処理対象データのフーリエ変換と、前記逆鍵行列とのアダマール積である秘匿化データを取得するデータ取得部と、前記秘匿化データと前記秘匿化フィルタとのアダマール積をフーリエ逆変換するフィルタ実行部と、前記フィルタ実行部の実行結果を前記畳み込み層以降の層の入力として、前記処理対象データに関する前記学習モデルの出力を取得するモデル実行部と、を備える。 The first aspect of the present invention is an information processing device. This device includes a model acquisition unit that acquires a learning model of a convolutional neural network that uses a matrix as input data, a convolution filter acquisition unit that acquires a convolution filter in the convolution layer in the training model, and the convolution filter. Generates a conversion filter acquisition unit that acquires a conversion filter of the same size as the input data by Fourier conversion, and a key matrix that is a matrix of the same size as the input data and is composed of elements other than 0. A concealment filter generation unit that generates a concealment filter that is an Adamal product of the conversion filter and the key matrix, and an inverse key matrix that is the inverse element of the Adamal product of the key matrix are generated. The inverse key matrix generation unit, the data acquisition unit that acquires the concealment data that is the Adamal product of the convolutional neural network processing target data and the inverse key matrix, the concealment data, and the concealment filter. A filter execution unit that inversely transforms the Adamal product of the above, and a model execution unit that acquires the output of the learning model related to the processing target data by using the execution result of the filter execution unit as the input of the layers after the convolutional layer. To be equipped with.
前記情報処理装置は、通信ネットワークを介して前記逆鍵行列をユーザ端末に送信する逆鍵行列送信部をさらに備えてもよく、前記データ取得部は、前記通信ネットワークを介して、前記ユーザ端末から、前記秘匿化データを取得してもよく、前記モデル実行部は、前記学習モデルの出力を、前記通信ネットワークを介して前記ユーザ端末に送信してもよい。 The information processing device may further include a reverse key matrix transmission unit that transmits the reverse key matrix to a user terminal via a communication network, and the data acquisition unit may be provided from the user terminal via the communication network. , The concealment data may be acquired, and the model execution unit may transmit the output of the learning model to the user terminal via the communication network.
前記鍵行列生成部は、絶対値と絶対値の逆数とがともに所定の値以上となる乱数を発生させる乱数発生部と、前記入力データのサイズを取得する行列パラメータ取得部と、乱数発生部が発生させた乱数を要素とし、前記入力データのサイズと同一サイズの行列を前記鍵行列として生成する行列生成部と、を備えてもよい。 The key matrix generation unit includes a random number generation unit that generates a random number in which both the absolute value and the inverse number of the absolute value are equal to or greater than a predetermined value, a matrix parameter acquisition unit that acquires the size of the input data, and a random number generation unit. It may include a matrix generation unit that uses the generated random number as an element and generates a matrix having the same size as the input data as the key matrix.
前記畳み込み用フィルタ取得部は、前記学習モデル中の複数の畳み込み層のうち、少なくとも最初の畳み込み層における畳み込み用フィルタを取得してもよい。 The convolution filter acquisition unit may acquire a convolution filter in at least the first convolution layer among the plurality of convolution layers in the learning model.
前記逆鍵行列生成部は、前記鍵行列を構成する複数の要素のそれぞれを、各要素の逆数で置換することで、アダマール積の逆元を生成してもよい。 The inverse key matrix generator may generate the inverse element of the Hadamard product by substituting each of the plurality of elements constituting the key matrix with the reciprocal of each element.
本発明の第2の態様は、情報処理方法である。この方法において、プロセッサが、行列を入力データとする畳み込みニューラルネットワークの学習モデルを取得するステップと、前記学習モデル中の畳み込み層における畳み込み用フィルタを取得するステップと、前記畳み込み用フィルタをフーリエ変換して、前記入力データと同一サイズの変換フィルタを取得するステップと、前記入力データと同一サイズの行列であって、それぞれが0以外の要素から構成される行列である鍵行列を生成するステップと、前記変換フィルタと前記鍵行列とのアダマール積である秘匿化フィルタを生成するステップと、前記鍵行列のアダマール積の逆元である逆鍵行列を生成するステップと、前記畳み込みニューラルネットワークの処理対象データのフーリエ変換と、前記逆鍵行列とのアダマール積である秘匿化データを取得するステップと、前記秘匿化データと前記秘匿化フィルタとのアダマール積を取得するステップと、前記秘匿化データと前記秘匿化フィルタとのアダマール積をフーリエ逆変換するステップと、フーリエ逆変換をして得られた行列を前記畳み込み層以降の層の入力として、前記処理対象データに関する前記学習モデルの出力を取得するステップと、を実行する。 A second aspect of the present invention is an information processing method. In this method, the processor obtains a learning model of a convolutional neural network using a matrix as input data, a step of acquiring a convolutional filter in a convolutional layer in the training model, and a Fourier transform of the convolutional filter. A step of acquiring a conversion filter having the same size as the input data, and a step of generating a key matrix having the same size as the input data and each of which is a matrix composed of elements other than 0. A step of generating a concealment filter which is an Adamal product of the conversion filter and the key matrix, a step of generating an inverse key matrix which is an inverse element of the Adamal product of the key matrix, and data to be processed by the convolutional neural network. And the step of acquiring the concealment data which is the Adamal product of the inverse key matrix, the step of acquiring the Adamal product of the concealment data and the concealment filter, and the concealment data and the concealment. A step of inversely Fourier transforming the Adamar product with the conversion filter, and a step of acquiring the output of the learning model regarding the data to be processed by using the matrix obtained by the inverse Fourier transform as the input of the layers after the convolutional layer. , Execute.
本発明の第3の態様は、プログラムである。このプログラムは、コンピュータに、行列を入力データとする畳み込みニューラルネットワークの学習モデルを取得する機能と、前記学習モデル中の畳み込み層における畳み込み用フィルタを取得する機能と、前記畳み込み用フィルタをフーリエ変換して、前記入力データと同一サイズの変換フィルタを取得する機能と、前記入力データと同一サイズの行列であって、0以外の要素から構成される行列である鍵行列を生成する機能と、各変換フィルタと割り当てた前記鍵行列とのアダマール積である秘匿化フィルタを生成する機能と、前記鍵行列のアダマール積の逆元である逆鍵行列を生成する機能と、前記畳み込みニューラルネットワークの処理対象データのフーリエ変換と、前記逆鍵行列のアダマール積である秘匿化データを取得する機能と、前記秘匿化データと前記秘匿化フィルタとのアダマール積を取得する機能と、前記秘匿化データと前記秘匿化フィルタとのアダマール積をフーリエ逆変換する機能と、フーリエ逆変換して得られた行列を前記畳み込み層以降の層の入力として、前記処理対象データに関する前記学習モデルの出力を取得する機能と、を実現させる。 A third aspect of the present invention is a program. This program has a function of acquiring a learning model of a convolutional neural network using a matrix as input data, a function of acquiring a convolutional filter in the convolutional layer in the training model, and a Fourier transform of the convolutional filter. A function to acquire a conversion filter having the same size as the input data, a function to generate a key matrix which is a matrix having the same size as the input data and is composed of elements other than 0, and each conversion. A function to generate a concealment filter which is an Adamal product of the filter and the assigned key matrix, a function to generate an inverse key matrix which is an inverse element of the Adamal product of the key matrix, and data to be processed by the convolutional neural network. Fourier transformation, a function to acquire concealment data which is the Adamal product of the inverse key matrix, a function to acquire the Adamal product of the concealment data and the concealment filter, and the concealment data and the concealment. A function of inversely Fourier transforming the Adamar product with a filter and a function of acquiring the output of the learning model related to the data to be processed by using the matrix obtained by the inverse Fourier transform as the input of the layers after the convolutional layer. make it happen.
本発明によれば、畳み込みニューラルネットワークの学習モデルに入力するデータを秘匿化することができる。 According to the present invention, the data input to the learning model of the convolutional neural network can be concealed.
<畳み込みニューラルネットワーク>
実施の形態に係る情報処理装置は、畳み込みニューラルネットワーク(Convolutional Neural Network;CNN)に入力するデータを秘匿化する技術に関する。そこで、実施の形態に係る情報処理装置の前提技術として、まず畳み込みニューラルネットワークについて簡単に説明する。
<Convolutional neural network>
The information processing apparatus according to the embodiment relates to a technique for concealing data input to a convolutional neural network (CNN). Therefore, as a prerequisite technology of the information processing apparatus according to the embodiment, first, a convolutional neural network will be briefly described.
図1は、畳み込みニューラルネットワークの一般的な機能構成を模式的に示す図である。 FIG. 1 is a diagram schematically showing a general functional configuration of a convolutional neural network.
現在、様々な構成のニューラルネットワークが提案されているが、これらの基本構成は共通である。ニューラルネットワークの基本構成は、複数種類の層の重ね合わせ(又はグラフ構造)で表現される。ニューラルネットワークは、入力データに対する出力結果が適切な値になるようにモデルパラメータを学習する。言い換えると、ニューラルネットワークは、入力データに対する出力結果が適切な値になるように定義された損失関数を最小化するようにモデルパラメータを学習する。 Currently, neural networks with various configurations have been proposed, but these basic configurations are common. The basic configuration of a neural network is represented by a superposition (or graph structure) of a plurality of types of layers. The neural network learns the model parameters so that the output result for the input data is an appropriate value. In other words, the neural network learns the model parameters to minimize the loss function defined so that the output result for the input data has an appropriate value.
図1において、順伝播型ニューラルネットワークとして、入力層(input layer)と、隠れ層(hidden layer)と、出力層(output layer)との3つの層から構成され、入力層から出力層へ向けて一方向に伝播する。隠れ層は、グラフ状に複数の層から構成することができる。各層は、複数のユニット(ニューロン)を持つ。各層において、前方層のユニットから後方層のユニットへつなぐ関数のパラメータを、「重み(weight)」と称す。本明細書における学習とは、この関数のパラメータとして、適切な「重み」を算出することである。 In FIG. 1, as a feedforward neural network, it is composed of three layers, an input layer, a hidden layer, and an output layer, from the input layer to the output layer. Propagate in one direction. The hidden layer can be composed of a plurality of layers in a graph shape. Each layer has multiple units (neurons). In each layer, the parameter of the function that connects the unit in the front layer to the unit in the rear layer is called "weight". Learning in the present specification is to calculate an appropriate "weight" as a parameter of this function.
図1は、畳み込みニューラルネットワークを図示している。畳み込みニューラルネットワークは、入力層と、畳み込み層(convolutional layer)と、プーリング層(pooling layer)と、全結合層(full-connected layer)と、出力層とから構成される。図1において、第1層L1が入力層であり、第2層L2は畳み込み層である。同様に、第n層Lnが出力層となっている。畳み込みニューラルネットワークは、前方層における特定のユニットのみが、後方層のユニットへ結合されている。すなわち、畳み込みニューラルネットワークにおいては、前方層における全てのユニットが後方層のユニットへ結合されているものではない。 FIG. 1 illustrates a convolutional neural network. A convolutional neural network is composed of an input layer, a convolutional layer, a pooling layer, a full-connected layer, and an output layer. In FIG. 1, the first layer L1 is an input layer, and the second layer L2 is a convolution layer. Similarly, the nth layer Ln is the output layer. In a convolutional neural network, only specific units in the anterior layer are connected to units in the posterior layer. That is, in the convolutional neural network, not all the units in the front layer are connected to the units in the rear layer.
実施の形態に係るニューラルネットワークにおける学習は、訓練データに対する出力層からの出力値と訓練データのラベルとの誤差を用いて、各層の重みを最適に更新することを意味する。その誤差を算出するために、「損失関数」(loss function)が定義される。誤差は、「誤差逆伝播法」によって出力層側から入力層側へ向けて次々に伝播し、各層の重みを少しずつ更新していく。最終的に、誤差が小さくなるように、各層の重みを適切な値に調整する収束計算を実行する。具体的には、ニューラルネットワークにおける学習(すなわち、新規のモデルパラメータの生成段階)で、誤差を逆伝播させた勾配によって、モデルパラメータを更新する。 Learning in the neural network according to the embodiment means that the weight of each layer is optimally updated by using the error between the output value from the output layer and the label of the training data with respect to the training data. A "loss function" is defined to calculate the error. The error is propagated one after another from the output layer side to the input layer side by the "error backpropagation method", and the weight of each layer is updated little by little. Finally, a convergence calculation is performed that adjusts the weights of each layer to the appropriate values so that the error is small. Specifically, in learning in a neural network (that is, in the generation stage of a new model parameter), the model parameter is updated by the gradient in which the error is back-propagated.
図2は、入力データと特徴マップとの畳み込みの関係を説明するための図である。図2における処理は、畳み込み層及び全結合層によって実行される。図2に示す例では、入力データに対して1個の畳み込み用フィルタをかけることにより、特徴マップを生成している。図2において、入力データ、畳み込み用フィルタ、及び特徴マップのサイズはそれぞれ以下のとおりである。
入力データ :32×32×3個の要素
畳み込み用フィルタ:5×5×3個の要素 (モデルパラメータ)
特徴マップ :28×28個の要素
FIG. 2 is a diagram for explaining the convolutional relationship between the input data and the feature map. The process in FIG. 2 is performed by the convolution layer and the fully connected layer. In the example shown in FIG. 2, a feature map is generated by applying one convolution filter to the input data. In FIG. 2, the sizes of the input data, the convolution filter, and the feature map are as follows.
Input data: 32 x 32 x 3 elements Convolution filter: 5 x 5 x 3 elements (model parameters)
Feature map: 28 x 28 elements
畳み込み用フィルタはN個(Nは1以上の整数。)分用意され、これがモデルパラメータとなる。すなわち、「重み」とは、N個の畳み込み用フィルタを意味する。ただし、ここでは、バイアス項は考慮しないものとする。 N convolution filters (N is an integer of 1 or more) are prepared, and these are model parameters. That is, the "weight" means N convolution filters. However, the bias term is not considered here.
図3は、畳み込み用フィルタを用いた特徴マップの生成を説明するための図である。
図3に示す例では、5×5×3個の要素からなる1個の畳み込み用フィルタを入力データにかけ、その各要素の積の和を特徴マップの1個の要素の値とする。そして、入力データに対して同じ畳み込み用フィルタを移動させることにより、1枚の特徴マップを生成する。ここで、畳み込み用フィルタを移動させる要素の数(移動量)を「ストライド(stride)」と称す。入力データの周囲の縁(ふち)には、要素0を埋めたゼロパディング(zero-padding)の領域を設ける。これによって、入力データの縁の要素にも、同数の畳み込み用フィルタをあてることができる。
FIG. 3 is a diagram for explaining the generation of the feature map using the convolution filter.
In the example shown in FIG. 3, one convolution filter composed of 5 × 5 × 3 elements is applied to the input data, and the sum of the products of the elements is used as the value of one element of the feature map. Then, by moving the same convolution filter with respect to the input data, one feature map is generated. Here, the number of elements (movement amount) for moving the convolution filter is referred to as "stride". A zero-padding area in which element 0 is filled is provided at the peripheral edge of the input data. As a result, the same number of convolution filters can be applied to the edge elements of the input data.
図4は、N個の畳み込み用フィルタとN段の特徴マップとの関係を説明するための図である。図4に示す例では、畳み込み用フィルタの数はN個である。図2及び図3は、1個の畳み込み用フィルタによって生成された1枚の特徴マップが生成される場合の例が示されている。これに対し、図4に示す例は、N個の畳み込み用フィルタによってN段の特徴マップが生成される場合の例が示されている。ニューラルネットワークの学習では、ある層における特徴マップが、次の層における入力データとなる。ニューラルネットワークの学習を実行することにより、損失関数に基づく誤差が出力層側から入力層側へ向けて次々に伝播し、既知の誤差逆伝播法によって各層の重みが更新される。 FIG. 4 is a diagram for explaining the relationship between N convolution filters and N-stage feature maps. In the example shown in FIG. 4, the number of convolution filters is N. 2 and 3 show an example in which one feature map generated by one convolution filter is generated. On the other hand, the example shown in FIG. 4 shows an example in which an N-stage feature map is generated by N convolution filters. In neural network learning, the feature map in one layer becomes the input data in the next layer. By executing the training of the neural network, the error based on the loss function is propagated one after another from the output layer side to the input layer side, and the weight of each layer is updated by the known backpropagation method.
<実施の形態の概要>
以上を前提として、実施の形態の概要を述べる。
実施の形態に係る情報処理装置は、畳み込みニューラルネットワークの学習モデルに入力する入力データが秘匿化された状態で取得し、秘匿前の状態に戻すことなくそのまま処理して学習モデルの出力を得ることができる装置である。実施の形態に係る情報処理装置は、実空間における畳み込み演算が、周波数空間においては乗算となることを利用して、周波数空間において入力データと畳み込みフィルタとの両方を秘匿化する。
<Outline of the embodiment>
On the premise of the above, the outline of the embodiment will be described.
The information processing apparatus according to the embodiment acquires the input data to be input to the learning model of the convolutional neural network in a concealed state, and processes it as it is without returning it to the state before concealment to obtain the output of the learning model. It is a device that can be used. The information processing apparatus according to the embodiment utilizes the fact that the convolution operation in the real space is multiplication in the frequency space to conceal both the input data and the convolution filter in the frequency space.
図5は、実施の形態の概要を説明するための図である。実施の形態に係る情報処理装置が受け付ける入力データは行列で表現可能なデータであり、例えば画像データである。図5において、dが付された矩形が、入力データdである。図1を参照して説明したように、実施の形態に係る情報処理装置が扱う畳み込み用ニューラルネットワークにおいて、第2層L2は畳み込み層である。畳み込み層においては、入力データdと、畳み込み用フィルタkとの畳み込みが実行される。 FIG. 5 is a diagram for explaining an outline of the embodiment. The input data received by the information processing apparatus according to the embodiment is data that can be represented by a matrix, for example, image data. In FIG. 5, the rectangle with d is the input data d. As described with reference to FIG. 1, in the convolutional neural network handled by the information processing apparatus according to the embodiment, the second layer L2 is a convolutional layer. In the convolutional layer, convolution of the input data d and the convolutional filter k is executed.
よく知られているように、実空間における畳み込み用フィルタkと入力データdとの畳み込みは、周波数空間における畳み込みフィルタと入力データとの積となる。図5において、畳み込み用フィルタkのフーリエ変換を変換フィルタKで示しており、実空間における入力データdのフーリエ変換を変換入力データDで示している。入力データd及び畳み込み用フィルタkが行列で表現される場合、周波数空間における両者の畳み込みは、変換フィルタKと変換入力データDとのアダマール積となる。なお、図5において、畳み込みは「*」で表し、アダマール積を「〇」で表している。 As is well known, the convolution of the convolution filter k and the input data d in the real space is the product of the convolution filter and the input data in the frequency space. In FIG. 5, the Fourier transform of the convolution filter k is shown by the transformation filter K, and the Fourier transform of the input data d in the real space is shown by the transformation input data D. When the input data d and the convolution filter k are represented by a matrix, the convolution of both in the frequency space is the Hadamard product of the conversion filter K and the conversion input data D. In FIG. 5, the convolution is represented by "*" and the Hadamard product is represented by "〇".
実施の形態に係る情報処理装置は、入力データdと同一サイズの乱数行列Eと、その乱数行列Eのアダマール積における逆元1/Eとを生成する。乱数行列Eとその逆元1/Eとを用いると、変換フィルタKと変換入力データDとのアダマール積は、以下の式(1)で表現できる。
K〇D=K〇E〇1/E〇D (1)
The information processing apparatus according to the embodiment generates a random number matrix E having the same size as the input data d and an inverse element 1 / E in the Hadamard product of the random number matrix E. Using the random number matrix E and its inverse element 1 / E, the Hadamard product of the conversion filter K and the conversion input data D can be expressed by the following equation (1).
K ○ D = K ○ E ○ 1 / E ○ D (1)
説明の便宜のため、入力データdが3行3列の行列であるとする。この場合、変換入力データD、変換フィルタK、鍵行列E、及び逆鍵行列1/Eはいずれも3行3列の行列となる。そこで、変換入力データD、変換フィルタK、鍵行列E、及び逆鍵行列1/Eを、それぞれ以下の式(2)、式(3)、式(4)、及び式(5)とする。 For convenience of explanation, it is assumed that the input data d is a matrix of 3 rows and 3 columns. In this case, the conversion input data D, the conversion filter K, the key matrix E, and the inverse key matrix 1 / E are all 3 rows and 3 columns. Therefore, the conversion input data D, the conversion filter K, the key matrix E, and the inverse key matrix 1 / E are referred to as the following equations (2), (3), (4), and (5), respectively.
式(2)及び式(3)より、式(1)の左辺は、以下の式(6)となる。
また、式(3)及び式(4)より、式(1)の右辺の初めの2項は、以下の式(7)となる。
さらに、式(2)及び式(5)より、式(1)の右辺の後ろの2項は、以下の式(8)となる。
乱数行列Eを構成する要素は乱数である。したがって、乱数行列Eを知らない限り、式(7)、すなわち変換フィルタKと乱数行列Eとのアダマール積K〇Eから変換フィルタKを推定することは困難である。この意味で、乱数行列Eは、畳み込み用フィルタkを秘匿化するための秘密鍵となる。以下、乱数行列Eを鍵行列Eと記載することがある。また、変換フィルタKと乱数行列Eとのアダマール積K〇Eを秘匿化フィルタと記載することがある。なお、式(1)から式(8)は、入力データdが3行3列の行列の場合を示したが、その他のサイズの場合も要素数が変わるだけで式(1)から式(8)と同様の式となる。 The elements that make up the random number matrix E are random numbers. Therefore, unless the random number matrix E is known, it is difficult to estimate the conversion filter K from the equation (7), that is, the Hadamard product K ○ E of the conversion filter K and the random number matrix E. In this sense, the random number matrix E is a secret key for concealing the convolution filter k. Hereinafter, the random number matrix E may be referred to as a key matrix E. Further, the Hadamard product K ○ E of the conversion filter K and the random number matrix E may be described as a concealment filter. The equations (1) to (8) show the case where the input data d is a matrix of 3 rows and 3 columns, but in the case of other sizes, the equations (1) to (8) are changed only by changing the number of elements. ) Is the same formula.
乱数行列Eの逆元である1/Eを構成する要素もまた乱数となる。したがって、乱数行列Eの逆元1/Eを知らない限り、式(8)、すなわち変換入力データDと乱数行列Eの逆元1/Eとアダマール積である1/E〇Dから変換入力データDを推定することは困難である。したがって、乱数行列Eの逆元1/Eは、変換入力データDを秘匿化するための秘密鍵となる。以下、乱数行列Eの逆元1/Eを逆鍵行列1/Eと記載することがある。また、変換入力データDと乱数行列Eの逆元1/Eとアダマール積1/E〇Dを秘匿化データと記載することがある。 The elements constituting 1 / E, which is the inverse element of the random number matrix E, are also random numbers. Therefore, unless the inverse element 1 / E of the random number matrix E is known, the conversion input data from the equation (8), that is, the conversion input data D, the inverse element 1 / E of the random number matrix E, and the Hadamard product 1 / E ○ D. It is difficult to estimate D. Therefore, the inverse element 1 / E of the random number matrix E is a secret key for concealing the conversion input data D. Hereinafter, the inverse element 1 / E of the random number matrix E may be described as the inverse key matrix 1 / E. Further, the inverse element 1 / E of the conversion input data D and the random number matrix E and the Hadamard product 1 / E ○ D may be described as concealed data.
実施の形態に係る情報処理装置は、実空間における変換フィルタKに替えて、式(7)で表される秘匿化フィルタを保持している。また、実施の形態に係る情報処理装置は、実空間における入力データdに替えて、式(8)で表される秘匿化データを取得する。実施の形態に係る情報処理装置は、秘匿化フィルタと秘匿化データとのアダマール積を計算することにより、秘匿化する前の変換フィルタKと、秘匿化する前の変換入力データDとのアダマール積を取得することができる。 The information processing apparatus according to the embodiment holds a concealment filter represented by the equation (7) in place of the conversion filter K in the real space. Further, the information processing apparatus according to the embodiment acquires the concealed data represented by the equation (8) in place of the input data d in the real space. The information processing apparatus according to the embodiment calculates the Hadamard product of the concealment filter and the concealed data, thereby calculating the Hadamard product of the conversion filter K before concealment and the conversion input data D before concealment. Can be obtained.
実施の形態に係る情報処理装置は、変換フィルタKと変換入力データDとのアダマール積をフーリエ逆変換することにより、実空間における入力データdと畳み込み用フィルタkとの畳み込み演算の結果を取得することができる。これにより、実施の形態に係る情報処理装置は、取得した畳み込み演算の結果を以降の層に入力し、入力データdを入力とする学習モデルの結果を取得することができる。 The information processing apparatus according to the embodiment obtains the result of the convolution operation of the input data d and the convolution filter k in the real space by Fourier inverse transforming the Hadamard product of the conversion filter K and the conversion input data D. be able to. As a result, the information processing apparatus according to the embodiment can input the acquired convolution operation result to the subsequent layers and acquire the result of the learning model in which the input data d is input.
このように、実施の形態に係る情報処理装置は、畳み込みニューラルネットワークを用いて生成した学習モデルの処理対象のデータを秘匿化した状態で取得し、秘匿前の状態に戻すことなく秘匿化されたまま処理をすることができる。これにより、実施の形態に係る情報処理装置は、学習モデルに入力するデータを秘匿し、漏洩することを抑制できる。 As described above, the information processing apparatus according to the embodiment acquires the data to be processed of the learning model generated by using the convolutional neural network in a concealed state, and conceals the data without returning to the state before concealment. It can be processed as it is. As a result, the information processing apparatus according to the embodiment can conceal the data input to the learning model and suppress leakage.
さらに、実施の形態に係る情報処理装置は、学習モデルを構成する畳み込み用フィルタkも秘匿化することができる。これにより、実施の形態に係る情報処理装置によれば、学習モデルの少なくとも一部については構造を秘匿化することができる。 Further, the information processing apparatus according to the embodiment can also conceal the convolution filter k that constitutes the learning model. As a result, according to the information processing apparatus according to the embodiment, the structure of at least a part of the learning model can be concealed.
<実施の形態に係る情報処理装置1の機能構成>
以下、実施の形態に係る情報処理装置についてより詳細に説明する。
図6は、実施の形態に係る情報処理装置1の機能構成を模式的に示す図である。情報処理装置1は、記憶部2と制御部3とを備える。
<Functional configuration of the information processing device 1 according to the embodiment>
Hereinafter, the information processing apparatus according to the embodiment will be described in more detail.
FIG. 6 is a diagram schematically showing a functional configuration of the information processing device 1 according to the embodiment. The information processing device 1 includes a storage unit 2 and a control unit 3.
実施の形態に係る情報処理装置1は、CPUやGPU等のプロセッサ、DRAM(Dynamic Random Access Memory)等の作業メモリ、及びHDD(Hard Disk Drive)やSSD(Solid State Drive)等の大容量記憶装置によって構成される。情報処理装置1は、PC(Personal Computer)やワークステーション、サーバ等の単一の装置であってもよいし、クラウドサーバのように複数の装置から構成されてもよい。 The information processing device 1 according to the embodiment includes a processor such as a CPU or GPU, a work memory such as a DRAM (Dynamic Random Access Memory), and a large-capacity storage device such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive). Consists of. The information processing device 1 may be a single device such as a PC (Personal Computer), a workstation, or a server, or may be composed of a plurality of devices such as a cloud server.
記憶部2は、情報処理装置1を実現するコンピュータのBIOS(Basic Input Output System)等を格納するROM(Read Only Memory)や情報処理装置1の作業領域となるRAM(Random Access Memory)、OS(Operating System)やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するHDDやSSD等の大容量記憶装置である。 The storage unit 2 includes a ROM (Read Only Memory) for storing the BIOS (Basic Input Output System) of the computer that realizes the information processing device 1, a RAM (Random Access Memory) that serves as a work area for the information processing device 1, and an OS (OS). An operating system), an application program, and a large-capacity storage device such as an HDD or SSD that stores various information referred to when the application program is executed.
制御部3は、情報処理装置1のCPUやGPU等のプロセッサであり、記憶部2に記憶されたプログラムを実行することによってモデル取得部30、畳み込み用フィルタ取得部31、変換フィルタ取得部32、鍵行列生成部33、秘匿化フィルタ生成部34、逆鍵行列生成部35、データ取得部36、フィルタ実行部37、モデル実行部38、及び逆鍵行列送信部39として機能する。 The control unit 3 is a processor such as a CPU or GPU of the information processing device 1, and by executing a program stored in the storage unit 2, the model acquisition unit 30, the convolution filter acquisition unit 31, the conversion filter acquisition unit 32, It functions as a key matrix generation unit 33, a concealment filter generation unit 34, an inverse key matrix generation unit 35, a data acquisition unit 36, a filter execution unit 37, a model execution unit 38, and an inverse key matrix transmission unit 39.
記憶部2は、あらかじめ訓練データとラベルとを畳み込みニューラルネットワークで学習することによって生成した学習モデルを保持している。モデル取得部30は、行列を入力データdとする畳み込みニューラルネットワークの学習モデルを、記憶部2から読み出して取得する。 The storage unit 2 holds a learning model generated by convolving training data and labels in advance and learning them with a neural network. The model acquisition unit 30 reads the learning model of the convolutional neural network using the matrix as the input data d from the storage unit 2 and acquires it.
畳み込み用フィルタ取得部31は、モデル取得部30が読み出した学習モデル中の畳み込み層における畳み込み用フィルタkを取得する。特に、畳み込み用フィルタ取得部31は、学習モデル中の複数の畳み込み層のうち、少なくとも最初の畳み込み層における畳み込み用フィルタkを取得する。図1に示すように、実施の形態に係る情報処理装置1が処理対象とする学習モデルの第2層L2、すなわち、入力層L1に隣接する層Lは、最初の畳み込み層となっている。これにより、入力層L1に秘匿化データが入力されても、第2層L2において実空間のデータに変換し、以降の層は実空間のデータで処理をすることができる。 The convolution filter acquisition unit 31 acquires the convolution filter k in the convolution layer in the learning model read by the model acquisition unit 30. In particular, the convolution filter acquisition unit 31 acquires the convolution filter k in at least the first convolution layer among the plurality of convolution layers in the learning model. As shown in FIG. 1, the second layer L2 of the learning model to be processed by the information processing apparatus 1 according to the embodiment, that is, the layer L adjacent to the input layer L1, is the first convolution layer. As a result, even if the concealed data is input to the input layer L1, it can be converted into real space data in the second layer L2, and the subsequent layers can be processed with the real space data.
変換フィルタ取得部32は、畳み込み用フィルタ取得部31が取得した畳み込み用フィルタkをフーリエ変換して、入力データdと同一サイズの変換フィルタKを取得する。鍵行列生成部33は、入力データdと同一サイズの行列であって、0以外の要素から構成される行列である鍵行列Eを生成する。 The conversion filter acquisition unit 32 Fourier transforms the convolution filter k acquired by the convolution filter acquisition unit 31 to acquire a conversion filter K having the same size as the input data d. The key matrix generation unit 33 generates a key matrix E, which is a matrix having the same size as the input data d and is composed of elements other than 0.
図7は、実施の形態に係る鍵行列生成部33の機能構成を模式的に示す図である。鍵行列生成部33は、乱数発生部330、行列パラメータ取得部331、及び行列生成部332を備える。 FIG. 7 is a diagram schematically showing a functional configuration of the key matrix generation unit 33 according to the embodiment. The key matrix generation unit 33 includes a random number generation unit 330, a matrix parameter acquisition unit 331, and a matrix generation unit 332.
乱数発生部330は、絶対値と絶対値の逆数とがともに所定の値以上となる乱数を発生させる。ここで「所定の値」とは、情報処理装置1のCPUが逆数を計算したときに計算誤差が許容範囲となる値である。所定の値の具体的な値は学習モデルに課される計算精度等を考慮して実験により定めればよい。例えば、乱数発生部330が発生させる乱数をrとし、その逆数をs(sは1/rの数値計算結果)とした場合、|r×s−1|が倍精度実数型の計算機イプシロン程度となるように所定の値を定めればよい。 The random number generation unit 330 generates a random number in which both the absolute value and the reciprocal of the absolute value are equal to or greater than a predetermined value. Here, the "predetermined value" is a value in which the calculation error is within the allowable range when the CPU of the information processing device 1 calculates the reciprocal. The specific value of the predetermined value may be determined experimentally in consideration of the calculation accuracy imposed on the learning model. For example, when the random number generated by the random number generator 330 is r and the reciprocal is s (s is the numerical calculation result of 1 / r), | r × s-1 | is about the double precision real number type machine epsilon. A predetermined value may be set so as to be.
行列パラメータ取得部331は、入力データdのサイズを取得する。行列生成部332は、乱数発生部330が発生させた乱数を要素とし、入力データdのサイズと同一サイズの行列を鍵行列Eとして生成する。これにより、鍵行列生成部33は、要素が乱数であり、入力データdと同一サイズの鍵行列Eを生成することができる。また、鍵行列Eを構成する各要素は所定の値以上としているため、鍵行列Eと逆鍵行列1/Eとのアダマール積の各要素の1との誤差が計算機イプシロン程度に抑えられる。 The matrix parameter acquisition unit 331 acquires the size of the input data d. The matrix generation unit 332 uses the random numbers generated by the random number generation unit 330 as elements, and generates a matrix having the same size as the input data d as the key matrix E. As a result, the key matrix generation unit 33 can generate a key matrix E having the same size as the input data d, whose elements are random numbers. Further, since each element constituting the key matrix E has a predetermined value or more, the error between the key matrix E and 1 of each element of the Hadamard product of the inverse key matrix 1 / E can be suppressed to about the machine epsilon.
図6の説明に戻る。秘匿化フィルタ生成部34は、変換フィルタKと鍵行列Eとのアダマール積である秘匿化フィルタを生成する。逆鍵行列生成部35は、鍵行列Eのアダマール積の逆元である逆鍵行列1/Eを生成する。具体的には、逆鍵行列生成部35は、鍵行列Eを構成する複数の要素のそれぞれを、各要素の逆数で置換することで、アダマール積の逆元を生成する。 Returning to the description of FIG. The concealment filter generation unit 34 generates a concealment filter which is the Hadamard product of the conversion filter K and the key matrix E. The inverse key matrix generation unit 35 generates an inverse key matrix 1 / E, which is the inverse element of the Hadamard product of the key matrix E. Specifically, the inverse key matrix generation unit 35 generates the inverse element of the Hadamard product by substituting each of the plurality of elements constituting the key matrix E with the reciprocal of each element.
データ取得部36は、畳み込みニューラルネットワークの処理対象である入力データdのフーリエ変換である変換入力データDと、逆鍵行列1/Eとのアダマール積である秘匿化データを取得する。フィルタ実行部37は、まず、秘匿化データと秘匿化フィルタとのアダマール積を算出する。フィルタ実行部37は、算出した秘匿化データと秘匿化フィルタとのアダマール積をフーリエ逆変換する。これにより、フィルタ実行部37は、実空間における入力データdと畳み込み用フィルタkとの畳み込みを取得することができる。 The data acquisition unit 36 acquires concealment data which is the Hadamard product of the conversion input data D which is the Fourier transform of the input data d which is the processing target of the convolutional neural network and the inverse key matrix 1 / E. The filter execution unit 37 first calculates the Hadamard product of the concealment data and the concealment filter. The filter execution unit 37 performs an inverse Fourier transform on the Hadamard product of the calculated concealment data and the concealment filter. As a result, the filter execution unit 37 can acquire the convolution of the input data d and the convolution filter k in the real space.
モデル実行部38は、畳み込み用フィルタkを取得した畳み込み層以降の層にフィルタ実行部37の実行結果を入力することにより、処理対象データである入力データdに関する学習モデルの出力を取得する。このように、実施の形態に係る情報処理装置1は、処理対象とする入力データdを秘匿した状態で取得し、取得したデータを可読可能な元の状態に戻すことなくそのまま処理して学習モデルの出力を得ることができる。 The model execution unit 38 acquires the output of the learning model regarding the input data d, which is the processing target data, by inputting the execution result of the filter execution unit 37 into the layers after the convolutional layer from which the convolutional filter k has been acquired. As described above, the information processing apparatus 1 according to the embodiment acquires the input data d to be processed in a concealed state, and processes the acquired data as it is without returning it to the readable original state to obtain a learning model. You can get the output of.
<実施の形態に係る情報処理装置1の利用シーン>
図8は、実施の形態に係る情報処理装置1の利用シーンの一例を模式的に示す図である。図8に示す例では、情報処理装置1は、通信ネットワークNを介して通信ネットワークNと通信可能な態様で接続している。
<Usage scene of information processing device 1 according to the embodiment>
FIG. 8 is a diagram schematically showing an example of a usage scene of the information processing device 1 according to the embodiment. In the example shown in FIG. 8, the information processing device 1 is connected to the communication network N via the communication network N in a manner capable of communicating with the communication network N.
ユーザ端末Tは、情報処理装置1から入力API(Application Program Interface)と出力APIとの提供を受けている。ユーザ端末Tは、入力APIを利用することにより、通信ネットワークNを介して処理対象とするデータを情報処理装置1に送信することができる。また、ユーザ端末Tは、出力APIを利用することにより、通信ネットワークNを介して情報処理装置1から学習モデルの実行結果を受信することができる。 The user terminal T receives an input API (Application Program Interface) and an output API from the information processing device 1. By using the input API, the user terminal T can transmit the data to be processed to the information processing device 1 via the communication network N. Further, the user terminal T can receive the execution result of the learning model from the information processing device 1 via the communication network N by using the output API.
具体的には、逆鍵行列送信部39は、通信ネットワークNを介して逆鍵行列1/Eをユーザ端末Tに送信する。このとき、逆鍵行列送信部39は、入力APIの一部に逆鍵行列1/Eを含めてユーザ端末Tに提供する。入力APIはユーザ端末Tが実行可能なプログラムの形式で提供されている。ユーザ端末Tが入力APIを実行して処理対象の入力データdを処理することにより、まず、入力データdはフーリエ変換されて変換入力データDとなる。 Specifically, the reverse key matrix transmission unit 39 transmits the reverse key matrix 1 / E to the user terminal T via the communication network N. At this time, the reverse key matrix transmission unit 39 includes the reverse key matrix 1 / E as a part of the input API and provides it to the user terminal T. The input API is provided in the form of a program that can be executed by the user terminal T. When the user terminal T executes the input API and processes the input data d to be processed, the input data d is first Fourier transformed into the converted input data D.
続いて、ユーザ端末Tが実行する入力APIは、変換入力データDと逆鍵行列1/Eとのアダマール積をとることにより、秘匿化データを生成する。最後に、ユーザ端末Tが実行する入力APIは、秘匿化データを通信ネットワークNを介して情報処理装置1に送信する。 Subsequently, the input API executed by the user terminal T generates concealed data by taking the Hadamard product of the conversion input data D and the inverse key matrix 1 / E. Finally, the input API executed by the user terminal T transmits the confidential data to the information processing device 1 via the communication network N.
データ取得部36は、通信ネットワークNを介して、ユーザ端末Tから、秘匿化データを取得する。フィルタ実行部37は、秘匿化データと秘匿化フィルタとのアダマール積を算出し、算出した秘匿化データと秘匿化フィルタとのアダマール積をフーリエ逆変換する。モデル実行部38は、畳み込み用フィルタkを取得した畳み込み層以降の層にフィルタ実行部37の実行結果を入力することにより、処理対象データである入力データdに関する学習モデルの出力を取得する。逆鍵行列送信部39は、記憶部2が実行する出力APIからの要求を取得すると、学習モデルの出力を、通信ネットワークNを介してユーザ端末Tに送信する。ユーザ端末Tは、入力データdに関する学習モデルの出力を情報処理装置1から取得することができる。 The data acquisition unit 36 acquires confidential data from the user terminal T via the communication network N. The filter execution unit 37 calculates the Hadamard product of the concealment data and the concealment filter, and Fourier inverse transforms the calculated Hadamard product of the concealment data and the concealment filter. The model execution unit 38 acquires the output of the learning model regarding the input data d, which is the processing target data, by inputting the execution result of the filter execution unit 37 into the layers after the convolutional layer from which the convolutional filter k has been acquired. When the inverse key matrix transmission unit 39 acquires the request from the output API executed by the storage unit 2, the inverse key matrix transmission unit 39 transmits the output of the learning model to the user terminal T via the communication network N. The user terminal T can acquire the output of the learning model regarding the input data d from the information processing device 1.
このように、ユーザ端末Tは、学習モデルの適用に要する演算の大部分を情報処理装置1に委任することができる。これにより、ユーザ端末Tが計算リソースが少ない機器であったり、バッテリ駆動等の理由により消費電力に制限があるような場合であったりしても、学習モデルを実行することができる。 In this way, the user terminal T can delegate most of the operations required for applying the learning model to the information processing device 1. As a result, the learning model can be executed even when the user terminal T is a device having few calculation resources or the power consumption is limited due to reasons such as battery operation.
また、情報処理装置1は、学習モデル自体をユーザ端末Tに提供することなくユーザ端末Tに学習モデルを利用する機会を提供することができる。これにより、情報処理装置1は、学習モデルが第三者に漏洩したり、不正利用されたりすることを抑制できる。 Further, the information processing device 1 can provide the user terminal T with an opportunity to use the learning model without providing the learning model itself to the user terminal T. As a result, the information processing device 1 can prevent the learning model from being leaked to a third party or being used illegally.
さらに、ユーザ端末Tは、学習モデルの処理対象のデータを秘匿化した状態で情報処理装置1に提供するので、通信ネットワークNを伝送中に第三者にデータが漏洩することを抑制できる。 Further, since the user terminal T provides the data to be processed in the learning model to the information processing apparatus 1 in a concealed state, it is possible to prevent the data from being leaked to a third party during transmission of the communication network N.
<情報処理装置1が実行する情報処理の処理フロー>
図9は、実施の形態に係る情報処理装置1が実行する情報処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えば情報処理装置1が起動したときに開始する。
<Processing flow of information processing executed by information processing device 1>
FIG. 9 is a flowchart for explaining the flow of information processing executed by the information processing apparatus 1 according to the embodiment. The process in this flowchart starts, for example, when the information processing device 1 is activated.
モデル取得部30は、行列を入力データdとする畳み込みニューラルネットワークの学習モデルを記憶部2から読み出して取得する(S2)。畳み込み用フィルタ取得部31は、学習モデル中の畳み込み層における畳み込み用フィルタkを取得する(S4)。 The model acquisition unit 30 reads out the learning model of the convolutional neural network using the matrix as the input data d from the storage unit 2 and acquires it (S2). The convolution filter acquisition unit 31 acquires the convolution filter k in the convolution layer in the learning model (S4).
変換フィルタ取得部32は、畳み込み用フィルタ取得部31が取得した畳み込み用フィルタkをフーリエ変換して、入力データdと同一サイズの変換フィルタKを取得する(S6)。鍵行列生成部33は、入力データdと同一サイズの行列であって、それぞれが0以外の要素から構成される行列である鍵行列Eを生成する(S8)。 The conversion filter acquisition unit 32 Fourier transforms the convolution filter k acquired by the convolution filter acquisition unit 31 to acquire a conversion filter K having the same size as the input data d (S6). The key matrix generation unit 33 generates a key matrix E which is a matrix having the same size as the input data d and each of which is composed of elements other than 0 (S8).
秘匿化フィルタ生成部34は、変換フィルタKと鍵行列Eとのアダマール積である秘匿化フィルタを生成する(S10)。逆鍵行列生成部35は、鍵行列Eのアダマール積の逆元である逆鍵行列1/Eを生成する(S12)。データ取得部36は、畳み込みニューラルネットワークの処理対象となる入力データdのフーリエ変換である変換入力データDと、逆鍵行列1/Eとのアダマール積である秘匿化データを取得する(S14)。 The concealment filter generation unit 34 generates a concealment filter which is the Hadamard product of the conversion filter K and the key matrix E (S10). The inverse key matrix generation unit 35 generates an inverse key matrix 1 / E, which is the inverse element of the Hadamard product of the key matrix E (S12). The data acquisition unit 36 acquires concealment data, which is the Hadamard product of the transform input data D, which is the Fourier transform of the input data d to be processed by the convolutional neural network, and the inverse key matrix 1 / E (S14).
フィルタ実行部37は、秘匿化データと秘匿化フィルタとのアダマール積を取得する(S16)。続いて、フィルタ実行部37は、秘匿化データと秘匿化フィルタとのアダマール積をフーリエ逆変換する(S18)。モデル実行部38は、フィルタ実行部37がフーリエ逆変換をして得られた行列を畳み込み層以降の層の入力として、処理対象となる入力データdに関する学習モデルの出力を取得する(S20)。 The filter execution unit 37 acquires the Hadamard product of the concealment data and the concealment filter (S16). Subsequently, the filter execution unit 37 performs an inverse Fourier transform on the Hadamard product of the concealed data and the concealed filter (S18). The model execution unit 38 acquires the output of the training model for the input data d to be processed by using the matrix obtained by the filter execution unit 37 performing the inverse Fourier transform as the input of the layers after the convolution layer (S20).
モデル実行部38が入力データdに関する学習モデルの出力を取得すると、本フローチャートにおける処理は終了する。 When the model execution unit 38 acquires the output of the learning model related to the input data d, the process in this flowchart ends.
<実施の形態に係る情報処理装置1が奏する効果>
以上説明したように、実施の形態に係る情報処理装置1によれば、畳み込みニューラルネットワークの学習モデルに入力するデータを秘匿化する技術を提供することができる。
<Effects of the information processing device 1 according to the embodiment>
As described above, according to the information processing apparatus 1 according to the embodiment, it is possible to provide a technique for concealing the data input to the learning model of the convolutional neural network.
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。 Although the present invention has been described above using the embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments, and various modifications and changes can be made within the scope of the gist. is there. For example, the specific embodiment of the distribution / integration of the device is not limited to the above embodiment, and all or a part thereof may be functionally or physically distributed / integrated in an arbitrary unit. Can be done. Also included in the embodiments of the present invention are new embodiments resulting from any combination of the plurality of embodiments. The effect of the new embodiment produced by the combination has the effect of the original embodiment together.
<第1の変形例>
上記では、変換フィルタ取得部32が取得する畳み込み用フィルタkが単数の場合について主に説明した。しかしながら、例えば図4を参照して説明したように、畳み込み用フィルタkの数がN個(Nは2以上の整数)であってもよい。
<First modification>
In the above, the case where the convolution filter k acquired by the conversion filter acquisition unit 32 is singular has been mainly described. However, for example, as described with reference to FIG. 4, the number of convolution filters k may be N (N is an integer of 2 or more).
この場合、畳み込み用フィルタ取得部31は、学習モデル中の畳み込み層におけるN個の畳み込み用フィルタkを取得する。変換フィルタ取得部32は、N個の畳み込み用フィルタをそれぞれフーリエ変換して、入力データdと同一サイズのN個の変換フィルタKを取得する。 In this case, the convolution filter acquisition unit 31 acquires N convolution filters k in the convolution layer in the learning model. The conversion filter acquisition unit 32 Fourier transforms each of the N convolution filters to acquire N conversion filters K having the same size as the input data d.
鍵行列生成部33は、入力データdと同一サイズN個の異なる行列であって、それぞれが0以外の要素から構成される行列であるN個の鍵行列Eを生成する。秘匿化フィルタ生成部34は、N個の変換フィルタKそれぞれに異なる鍵行列Eを割り当て、各変換フィルタKと割り当てた鍵行列Eとのアダマール積である秘匿化フィルタを生成する。 The key matrix generation unit 33 generates N key matrices E, which are N different matrices of the same size as the input data d, each of which is a matrix composed of elements other than 0. The concealment filter generation unit 34 assigns a different key matrix E to each of the N conversion filters K, and generates a concealment filter which is the Hadamard product of each conversion filter K and the assigned key matrix E.
逆鍵行列生成部35は、N個の鍵行列Eそれぞれのアダマール積の逆元であるN個の逆鍵行列1/Eを生成する。データ取得部36は、畳み込みニューラルネットワークの処理対象の入力データdのフーリエ変換である変換入力データDと、N個の逆鍵行列1/Eそれぞれとのアダマール積をとったN個の秘匿化データを取得する。 The inverse key matrix generation unit 35 generates N inverse key matrices 1 / E, which is the inverse element of the Hadamard product of each N key matrices E. The data acquisition unit 36 has N concealment data obtained by Hadamard products of the transform input data D, which is a Fourier transform of the input data d to be processed by the convolutional neural network, and each of the N inverse key matrices 1 / E. To get.
フィルタ実行部37は、N個の秘匿化データのそれぞれについて、各秘匿化データの生成に用いられた逆鍵行列1/Eの逆元となる鍵行列Eを用いて生成された秘匿化フィルタとのアダマール積をフーリエ逆変換する。モデル実行部38は、フィルタ実行部37の実行結果を畳み込み層以降の層の入力として、処理対象データに関する学習モデルの出力を取得する。 The filter execution unit 37 sets the concealment filter generated by using the key matrix E which is the inverse element of the inverse key matrix 1 / E used for generating each concealment data for each of the N concealment data. Inverse Fourier transform of the Hadamard product of. The model execution unit 38 acquires the output of the learning model related to the data to be processed by using the execution result of the filter execution unit 37 as the input of the layers after the convolutional layer.
このように、情報処理装置1は、畳み込み用フィルタkの数が複数であっても、単数の場合と同様に入力データdを秘匿した状態で学習モデルを実行することができる。 As described above, even if the number of the convolution filters k is a plurality, the information processing apparatus 1 can execute the learning model in a state where the input data d is concealed as in the case of a single number.
<第2の変形例>
上記では、変換フィルタ取得部32が畳み込み用フィルタkをフーリエ変換して、入力データdと同一サイズの変換フィルタKを取得する場合について説明した。ここで、畳み込み用フィルタkが特定の周波数を多く含み、他の周波数を含まないフィルタである場合、変換フィルタKの要素に0が多く含まれることになる。この場合、秘匿化フィルタ生成部34が、変換フィルタKと鍵行列Eとのアダマール積である秘匿化フィルタを生成すると、変換フィルタKの要素が0である部分は、秘匿化フィルタの要素も0となる。このような場合、秘匿化フィルタから変換フィルタKの構造が推定される可能性がある。
<Second modification>
In the above, the case where the conversion filter acquisition unit 32 Fourier transforms the convolution filter k to acquire the conversion filter K having the same size as the input data d has been described. Here, when the convolution filter k is a filter that includes a large number of specific frequencies and does not include other frequencies, the elements of the conversion filter K contain a large number of 0s. In this case, when the concealment filter generation unit 34 generates the concealment filter which is the Hadamard product of the conversion filter K and the key matrix E, the part where the element of the conversion filter K is 0 also has the element of the concealment filter 0. It becomes. In such a case, the structure of the conversion filter K may be estimated from the concealment filter.
そこで、鍵行列生成部33は、第1鍵行列Eと、第2鍵行列Fとの二つの鍵行列を生成する。第1鍵行列Eと、第2鍵行列Fとはともに、入力データdと同一サイズの行列であって、それぞれが0以外の要素から構成される行列である。 Therefore, the key matrix generation unit 33 generates two key matrices, a first key matrix E and a second key matrix F. Both the first key matrix E and the second key matrix F are matrices having the same size as the input data d, and each is a matrix composed of elements other than 0.
秘匿化フィルタ生成部34は、変換フィルタKに第2鍵行列Fを加算した行列と、第1鍵行列Eとのアダマール積を、秘匿化フィルタとして生成する。すなわち、秘匿化フィルタは、(K+F)〇Eとなる。 The concealment filter generation unit 34 generates a Hadamard product of the conversion filter K plus the second key matrix F and the first key matrix E as the concealment filter. That is, the concealment filter is (K + F) 〇E.
逆鍵行列生成部35は、第1鍵行列Eのアダマール積の逆元である逆鍵行列1/Eを生成する。データ取得部36は、畳み込みニューラルネットワークの処理対象の入力データdのフーリエ変換である変換入力データDと、逆鍵行列1/Eとのアダマール積である第1秘匿化データを取得する。データ取得部36はまた、畳み込みニューラルネットワークの処理対象の入力データdのフーリエ変換である変換入力データDと、第2鍵行列Fとのアダマール積である第2秘匿化データも取得する。具体的には、第1秘匿化データは1/E〇Dであり、第2秘匿化データはF〇Dである。このため、逆鍵行列送信部39がユーザ端末Tに送信する入力APIは、逆鍵行列1/Eに加え、第2鍵行列Fも含まれる。 The inverse key matrix generation unit 35 generates an inverse key matrix 1 / E, which is the inverse element of the Hadamard product of the first key matrix E. The data acquisition unit 36 acquires the first concealment data which is the Hadamard product of the transformation input data D which is the Fourier transform of the input data d to be processed by the convolutional neural network and the inverse key matrix 1 / E. The data acquisition unit 36 also acquires the second concealment data, which is the Hadamard product of the transform input data D, which is the Fourier transform of the input data d to be processed by the convolutional neural network, and the second key matrix F. Specifically, the first concealment data is 1 / E ○ D, and the second concealment data is F ○ D. Therefore, the input API transmitted by the inverse key matrix transmission unit 39 to the user terminal T includes the second key matrix F in addition to the inverse key matrix 1 / E.
フィルタ実行部37は、第1秘匿化データ1/E〇Dと秘匿化フィルタ(K+F)〇Eとのアダマール積から、第2秘匿化データF〇Dを減じた行列をフーリエ逆変換する。なお、第1秘匿化データ1/E〇Dと秘匿化フィルタ1/E〇Dとのアダマール積から、第2秘匿化データF〇Dを減じた行列は、以下の式(9)のように変形できる。
(1/E〇D)〇((K+F)〇E)−F〇D=D〇K (9)
The filter execution unit 37 Fourier inverse transforms the matrix obtained by subtracting the second concealment data F ○ D from the Hadamard product of the first concealment data 1 / E ○ D and the concealment filter (K + F) 〇E. The matrix obtained by subtracting the second concealment data F ○ D from the Hadamard product of the first concealment data 1 / E ○ D and the concealment filter 1 / E ○ D is as shown in the following equation (9). Can be transformed.
(1 / E ○ D) ○ ((K + F) ○ E) -F ○ D = D ○ K (9)
式(9)の右辺は式(1)の左辺と等しく、入力データdと畳み込み用フィルタkとの畳み込みを周波数空間で表現した形となる。以上より、変換フィルタKの要素に0が多い場合であっても、変換フィルタKに第2鍵行列Fを加算することにより、行列の要素を非ゼロ化することができる。 The right side of the equation (9) is equal to the left side of the equation (1), and the convolution of the input data d and the convolution filter k is expressed in the frequency space. From the above, even when there are many 0s in the elements of the conversion filter K, the elements of the matrix can be non-zeroed by adding the second key matrix F to the conversion filter K.
1・・・情報処理装置
2・・・記憶部
3・・・制御部
30・・・モデル取得部
31・・・畳み込み用フィルタ取得部
32・・・変換フィルタ取得部
33・・・鍵行列生成部
330・・・乱数発生部
331・・・行列パラメータ取得部
332・・・行列生成部
34・・・秘匿化フィルタ生成部
35・・・逆鍵行列生成部
36・・・データ取得部
37・・・フィルタ実行部
38・・・モデル実行部
39・・・逆鍵行列送信部
T・・・ユーザ端末
N・・・通信ネットワーク
1 ... Information processing device 2 ... Storage unit 3 ... Control unit 30 ... Model acquisition unit 31 ... Folding filter acquisition unit 32 ... Conversion filter acquisition unit 33 ... Key matrix generation Unit 330 ... Random number generation unit 331 ... Matrix parameter acquisition unit 332 ... Matrix generation unit 34 ... Concealment filter generation unit 35 ... Reverse key matrix generation unit 36 ... Data acquisition unit 37.・ ・ Filter execution unit 38 ・ ・ ・ Model execution unit 39 ・ ・ ・ Reverse key matrix transmission unit T ・ ・ ・ User terminal N ・ ・ ・ Communication network
Claims (7)
前記学習モデル中の畳み込み層における畳み込み用フィルタを取得する畳み込み用フィルタ取得部と、
前記畳み込み用フィルタをフーリエ変換して、前記入力データと同一サイズの変換フィルタを取得する変換フィルタ取得部と、
前記入力データと同一サイズの行列であって、0以外の要素から構成される行列である鍵行列を生成する鍵行列生成部と、
前記変換フィルタと前記鍵行列とのアダマール積である秘匿化フィルタを生成する秘匿化フィルタ生成部と、
前記鍵行列のアダマール積の逆元である逆鍵行列を生成する逆鍵行列生成部と、
前記畳み込みニューラルネットワークの処理対象データのフーリエ変換と、前記逆鍵行列とのアダマール積である秘匿化データを取得するデータ取得部と、
前記秘匿化データと前記秘匿化フィルタとのアダマール積をフーリエ逆変換するフィルタ実行部と、
前記フィルタ実行部の実行結果を前記畳み込み層以降の層の入力として、前記処理対象データに関する前記学習モデルの出力を取得するモデル実行部と、
を備える情報処理装置。 A model acquisition unit that acquires a learning model of a convolutional neural network that uses a matrix as input data,
A convolution filter acquisition unit that acquires a convolution filter in the convolution layer in the learning model, and a convolution filter acquisition unit.
A conversion filter acquisition unit that obtains a conversion filter having the same size as the input data by Fourier transforming the convolution filter.
A key matrix generator that generates a key matrix that is the same size as the input data and is a matrix composed of elements other than 0.
A concealment filter generator that generates a concealment filter that is the Hadamard product of the conversion filter and the key matrix,
An inverse key matrix generator that generates an inverse key matrix that is the inverse element of the Hadamard product of the key matrix,
A data acquisition unit that acquires the concealed data, which is the Hadamard product of the Fourier transform of the data to be processed by the convolutional neural network and the inverse key matrix.
A filter execution unit that Fourier inverse transforms the Hadamard product of the concealment data and the concealment filter,
A model execution unit that acquires the output of the learning model related to the processing target data by using the execution result of the filter execution unit as the input of the layers after the convolutional layer.
Information processing device equipped with.
前記データ取得部は、前記通信ネットワークを介して、前記ユーザ端末から、前記秘匿化データを取得し、
前記モデル実行部は、前記学習モデルの出力を、前記通信ネットワークを介して前記ユーザ端末に送信する、
請求項1に記載の情報処理装置。 Further provided with a reverse key matrix transmitter that transmits the reverse key matrix to the user terminal via a communication network.
The data acquisition unit acquires the confidential data from the user terminal via the communication network.
The model execution unit transmits the output of the learning model to the user terminal via the communication network.
The information processing device according to claim 1.
絶対値と絶対値の逆数とがともに所定の値以上となる乱数を発生させる乱数発生部と、
前記入力データのサイズを取得する行列パラメータ取得部と、
乱数発生部が発生させた乱数を要素とし、前記入力データのサイズと同一サイズの行列を前記鍵行列として生成する行列生成部と、
を備える、請求項1又は2に記載の情報処理装置。 The key matrix generator
A random number generator that generates a random number in which both the absolute value and the reciprocal of the absolute value are greater than or equal to a predetermined value,
A matrix parameter acquisition unit that acquires the size of the input data, and
A matrix generator that uses the random numbers generated by the random number generator as elements and generates a matrix of the same size as the input data as the key matrix.
The information processing apparatus according to claim 1 or 2.
請求項1から3のいずれか一項に記載の情報処理装置。 The convolution filter acquisition unit acquires a convolution filter in at least the first convolution layer among the plurality of convolution layers in the learning model.
The information processing device according to any one of claims 1 to 3.
請求項1から4のいずれか一項に記載の情報処理装置。 The inverse key matrix generator generates the inverse element of the Hadamard product by substituting each of the plurality of elements constituting the key matrix with the reciprocal of each element.
The information processing device according to any one of claims 1 to 4.
行列を入力データとする畳み込みニューラルネットワークの学習モデルを取得するステップと、
前記学習モデル中の畳み込み層における畳み込み用フィルタを取得するステップと、
前記畳み込み用フィルタをフーリエ変換して、前記入力データと同一サイズの変換フィルタを取得するステップと、
前記入力データと同一サイズの行列であって、それぞれが0以外の要素から構成される行列である鍵行列を生成するステップと、
前記変換フィルタと前記鍵行列とのアダマール積である秘匿化フィルタを生成するステップと、
前記鍵行列のアダマール積の逆元である逆鍵行列を生成するステップと、
前記畳み込みニューラルネットワークの処理対象データのフーリエ変換と、前記逆鍵行列とのアダマール積である秘匿化データを取得するステップと、
前記秘匿化データと前記秘匿化フィルタとのアダマール積を取得するステップと、
前記秘匿化データと前記秘匿化フィルタとのアダマール積をフーリエ逆変換するステップと、
フーリエ逆変換をして得られた行列を前記畳み込み層以降の層の入力として、前記処理対象データに関する前記学習モデルの出力を取得するステップと、
を実行する情報処理方法。 The processor
Steps to acquire a learning model of a convolutional neural network that uses a matrix as input data,
The step of acquiring the convolution filter in the convolution layer in the learning model, and
A step of Fourier transforming the convolution filter to obtain a transformation filter having the same size as the input data.
A step of generating a key matrix, which is a matrix of the same size as the input data and is a matrix composed of elements other than 0, respectively.
A step of generating a concealment filter which is a Hadamard product of the conversion filter and the key matrix,
The step of generating an inverse key matrix, which is the inverse element of the Hadamard product of the key matrix,
The Fourier transform of the data to be processed by the convolutional neural network, the step of acquiring the concealed data which is the Hadamard product of the inverse key matrix, and
The step of acquiring the Hadamard product of the concealment data and the concealment filter, and
A step of inverse Fourier transforming the Hadamard product of the concealment data and the concealment filter,
A step of acquiring the output of the learning model regarding the data to be processed by using the matrix obtained by the inverse Fourier transform as the input of the layers after the convolution layer, and
Information processing method to execute.
行列を入力データとする畳み込みニューラルネットワークの学習モデルを取得する機能と、
前記学習モデル中の畳み込み層における畳み込み用フィルタを取得する機能と、
前記畳み込み用フィルタをフーリエ変換して、前記入力データと同一サイズの変換フィルタを取得する機能と、
前記入力データと同一サイズの行列であって、0以外の要素から構成される行列である鍵行列を生成する機能と、
各変換フィルタと割り当てた前記鍵行列とのアダマール積である秘匿化フィルタを生成する機能と、
前記鍵行列のアダマール積の逆元である逆鍵行列を生成する機能と、
前記畳み込みニューラルネットワークの処理対象データのフーリエ変換と、前記逆鍵行列のアダマール積である秘匿化データを取得する機能と、
前記秘匿化データと前記秘匿化フィルタとのアダマール積を取得する機能と、
前記秘匿化データと前記秘匿化フィルタとのアダマール積をフーリエ逆変換する機能と、
フーリエ逆変換して得られた行列を前記畳み込み層以降の層の入力として、前記処理対象データに関する前記学習モデルの出力を取得する機能と、
を実現させるプログラム。
On the computer
A function to acquire a learning model of a convolutional neural network that uses a matrix as input data,
A function to acquire a convolution filter in the convolution layer in the learning model, and
A function of Fourier transforming the convolution filter to obtain a conversion filter having the same size as the input data.
A function to generate a key matrix that is a matrix of the same size as the input data and is a matrix composed of elements other than 0.
A function to generate a concealment filter, which is the Hadamard product of each conversion filter and the assigned key matrix, and
A function to generate an inverse key matrix, which is the inverse element of the Hadamard product of the key matrix,
The Fourier transform of the data to be processed by the convolutional neural network, the function of acquiring the concealed data which is the Hadamard product of the inverse key matrix, and
A function to acquire the Hadamard product of the concealment data and the concealment filter, and
A function of inverse Fourier transforming the Hadamard product of the concealment data and the concealment filter,
A function of acquiring the output of the learning model related to the data to be processed by using the matrix obtained by the inverse Fourier transform as the input of the layers after the convolution layer.
A program that realizes.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018055957A JP6832307B2 (en) | 2018-03-23 | 2018-03-23 | Information processing equipment, information processing methods, and programs |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018055957A JP6832307B2 (en) | 2018-03-23 | 2018-03-23 | Information processing equipment, information processing methods, and programs |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2019168911A JP2019168911A (en) | 2019-10-03 |
| JP6832307B2 true JP6832307B2 (en) | 2021-02-24 |
Family
ID=68106836
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2018055957A Active JP6832307B2 (en) | 2018-03-23 | 2018-03-23 | Information processing equipment, information processing methods, and programs |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6832307B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021140574A1 (en) * | 2020-01-07 | 2021-07-15 | 三菱電機株式会社 | Information processing device, information processing method, and information processing program |
| CN121638334A (en) * | 2024-08-31 | 2026-03-10 | 华为技术有限公司 | Data processing method and device |
-
2018
- 2018-03-23 JP JP2018055957A patent/JP6832307B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2019168911A (en) | 2019-10-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113435682B (en) | Gradient compression for distributed training | |
| JP6657137B2 (en) | Information processing apparatus, information processing method, and program | |
| Singh et al. | Single image dehazing for a variety of haze scenarios using back projected pyramid network | |
| JP6778670B2 (en) | Information processing device, information processing method, and program | |
| Lu et al. | Heterogeneous model fusion federated learning mechanism based on model mapping | |
| WO2018068421A1 (en) | Method and device for optimizing neural network | |
| US20180247446A1 (en) | Method and system utilizing texture mapping | |
| CN111368941B (en) | Image processing method, device and computer storage medium | |
| CN116992965B (en) | Reasoning method, device, computer equipment and storage medium of transducer large model | |
| US20230130021A1 (en) | Privacy-preserving machine learning model implementations | |
| DE102021107509A1 (en) | MULTI-MODEL TRAINING PIPELINE IN DISTRIBUTED SYSTEMS | |
| JP6832307B2 (en) | Information processing equipment, information processing methods, and programs | |
| TWI758223B (en) | Computing method with dynamic minibatch sizes and computing system and computer-readable storage media for performing the same | |
| WO2025044276A1 (en) | Data processing method and apparatus, computer device, and storage medium | |
| CN115860135B (en) | Heterogeneous federation learning method, equipment and medium based on super network | |
| JP2023505979A (en) | Super-resolution of multi-scale factor images using microstructured masks | |
| JP6920263B2 (en) | Information processing equipment, information processing methods, and programs | |
| JP7703049B2 (en) | Pseudo-vessel pattern generating device and pseudo-vessel pattern generating method | |
| CN113537291B (en) | Image frequency domain countermeasure sample generation method and system | |
| Ni et al. | Multiscale feature fusion attention lightweight facial expression recognition | |
| CN116980277B (en) | Data processing method, device, computer equipment and storage medium | |
| Zhong et al. | Soft tissue modelling through autowaves for surgery simulation | |
| Zhang et al. | Creative Design and Visual Effect Simulation of IoT Dynamic Interfaces by Fractal Algorithms and Artificial Intelligence | |
| Zeng et al. | Optimizing frequency domain implementation of CNNs on FPGAs | |
| Biswas et al. | Ultrasound medical image deblurring and denoising method using variational model on cuda |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200124 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201225 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210126 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210201 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6832307 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |