JP6746139B2 - Detection agent system using mobile terminal, machine learning method in detection agent system, and program for implementing the same - Google Patents
Detection agent system using mobile terminal, machine learning method in detection agent system, and program for implementing the same Download PDFInfo
- Publication number
- JP6746139B2 JP6746139B2 JP2017120278A JP2017120278A JP6746139B2 JP 6746139 B2 JP6746139 B2 JP 6746139B2 JP 2017120278 A JP2017120278 A JP 2017120278A JP 2017120278 A JP2017120278 A JP 2017120278A JP 6746139 B2 JP6746139 B2 JP 6746139B2
- Authority
- JP
- Japan
- Prior art keywords
- mobile terminal
- key
- server
- feature vector
- hidden layer
- 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
Description
本発明は、察知エージェントシステムに関し、特に携帯して利用可能な情報処理機能を有する通信機器や情報機器(以降これらを携帯端末と称す)を用いた察知エージェントシステムに関する。さらに、察知エージェントシステムにおける機械学習方法、及びこれを実施するためのプログラムに関する。 The present invention relates to a detection agent system, and more particularly to a detection agent system using a communication device or information device (hereinafter referred to as a mobile terminal) having an information processing function that can be carried and used. Furthermore, the present invention relates to a machine learning method in a detection agent system and a program for implementing the method.
察知エージェントとは、ユーザの様々な情報を察知して、その情報を基にユーザに役立つ情報の提供や、問題解決を行うことを目的としたさまざまな分野に応用ができるシステムである。 The detection agent is a system that can detect various information of the user, provide information useful for the user based on the information, and can be applied to various fields for problem solving.
かかる察知エージェントにELM(Extreme Learning Machine)に基づく機械学習手法を取り入れることによりユーザにカスタマイズされたエージェントを提供することが可能である。 It is possible to provide the user with a customized agent by incorporating a machine learning method based on ELM (Extreme Learning Machine) into the sensing agent.
ここで、脳の中には多数の神経細胞(ニューロン)があり、ニューロンは、他のニューロンからの信号を受け、入力される信号の状態から所定の信号を他の多数のニューロンに受け渡しして情報処理を行っている。このような脳における仕組みをコンピュータにより実現するものが、ニューラルネットワークである。 Here, there are many nerve cells (neurons) in the brain, and each neuron receives a signal from another neuron and passes a predetermined signal from the state of the input signal to many other neurons. Information processing. A computer realizes such a mechanism in the brain by a computer.
ELMは、一種のニューラルネットワークであり、大量の既知のデータから情報を抽出し、その情報をもとに未知のデータが何であるかを推論、分類する技術である。ここで、以降の説明では、「情報を抽出」することを学習、「推論、分類」することを分類と表示する。 ELM is a kind of neural network, and is a technique for extracting information from a large amount of known data, and inferring and classifying what the unknown data is based on the information. Here, in the following description, “extracting information” will be referred to as learning, and “inference and classification” will be referred to as classification.
図1は、一般的なELMニューラルネットワークを示す図である。図において、ニューラルネットワーク1は、入力層1a、隠れ層(中間層)1b、出力層1cを有する。 FIG. 1 is a diagram showing a general ELM neural network. In the figure, the neural network 1 has an input layer 1a, a hidden layer (intermediate layer) 1b, and an output layer 1c.
隠れ層1bの重みWとバイアスbは、乱数である。βは出力層1cの重みである。これら重みと係数は、事前のトレーニングにより決められる。 The weight W and the bias b of the hidden layer 1b are random numbers. β is the weight of the output layer 1c. These weights and coefficients are determined by prior training.
ここで、入力の特徴ベクトルをxとすると、特徴ベクトルxの関数は、次式で表される。 Here, when the input feature vector is x, the function of the feature vector x is expressed by the following equation.
活性化関数としてシグモイド関数g(z)を用いる。以下はシグモイド関数の一例である。 The sigmoid function g(z) is used as the activation function. The following is an example of a sigmoid function.
上記式(1)−(4)において、Nhは隠れニューロンの数、Wは入力層から隠れ層の間の重み、bはバイアスである。βは隠れ層から出力層の間の重みである。また、Nfは特徴ベクトルxの次元数である。 In the above equations (1) to (4), N h is the number of hidden neurons, W is the weight between the input layer and the hidden layer, and b is the bias. β is the weight from the hidden layer to the output layer. N f is the number of dimensions of the feature vector x.
基本的なELMの学習方法を示すと次の手順のようである。 The basic procedure for learning ELM is as follows.
学習データが、 The learning data is
である。(但し、Nfは特徴ベクトルの次元数、Ncはクラス数、Ndはデータ数)
1)まず、Wとbを乱数で初期化する。通常、乱数の範囲は、[-1,1]である。行列Wのサイズは、Nh×Nf,bはNh次元のベクトルである。
2)隠れ層の出力の行列を計算する。
Is. (However, N f is the dimension number of the feature vector, N c is the number of classes, and N d is the number of data.)
1) First, W and b are initialized with random numbers. Normally, the range of random numbers is [-1,1]. The size of the matrix W is N h ×N f , and b is an N h -dimensional vector.
2) Compute the output matrix of the hidden layer.
次いで、
3)出力層の重みベクトルβを求める。
Then
3) Obtain the weight vector β of the output layer.
このとき、H+は式(6)の疑似逆行列である。Tは次に示す行列式である。 At this time, H + is the pseudo inverse matrix of Expression (6). T is a determinant shown below.
この方法によって求められたWとβと式(1)を用いて、分類処理を行う。 A classification process is performed using W and β obtained by this method and Expression (1).
一方、近年、スマートフォンをはじめとした携帯端末(Portable/Wearable Computing Device: P/WCD)が急速に普及し、今後も利用者が増えることが予想される。様々なアプリケーションがかかる携帯端末に向けて開発され、電話やメールに限らず多くの場面で利用されている。 On the other hand, in recent years, portable terminals such as smartphones (Portable/Wearable Computing Device: P/WCD) have rapidly spread, and it is expected that the number of users will increase in the future. Various applications have been developed for such mobile terminals, and are used not only in telephone and email but also in many situations.
したがって、機械学習の手法を取り入れたアプリケーションの一つとして察知エージェントを携帯端末で実行できる場合、ユーザの様々な情報を察知して、その情報を基にユーザに役立つ情報の提供や、問題解決を行うことが可能である。 Therefore, if a sensing agent can be executed on a mobile terminal as one of the applications that incorporates machine learning techniques, it senses various information about the user and provides useful information to the user based on that information and problem solving. It is possible to do.
上記したように、察知エージェントを携帯端末に実装することは、より適切なサービスをより多くのユーザに提供が可能であるという有利さがある。しかし、携帯端末における計算資源は、一般のコンピュータよりも劣っている。さらにバッテリ駆動であるために、携帯端末において察知エージェントのための機械学習による大規模な計算処理を行うことが困難である。 As described above, mounting the detection agent on the mobile terminal has an advantage that a more appropriate service can be provided to more users. However, the computing resources of mobile terminals are inferior to those of general computers. Furthermore, since it is battery-powered, it is difficult to perform large-scale calculation processing by machine learning for a sensing agent in a mobile terminal.
このような性能と計算コストのトレードオフの問題を解決する方法として、クラウドを用いること、即ち携帯端末上での機械学習処理が困難である場合、クラウドサーバに行わせることが想定される。 As a method of solving the problem of such trade-off between performance and calculation cost, it is assumed that a cloud server is used, that is, when machine learning processing on a mobile terminal is difficult.
この方法は、ネットワークの高速化、安定化に伴い、多くの携帯端末用のアプリケーションの設計方法にもなっている。携帯端末ではデータの入出力のみを行い、計算処理はクラウドサーバで行う方法である。 This method has become a designing method for applications for many mobile terminals as the network speeds up and stabilizes. This is a method in which only the input/output of data is performed in the mobile terminal and the calculation processing is performed in the cloud server.
しかし、クラウドシステムは既知の問題として、情報漏えいの問題と、それによるプライバシー侵害の問題がある。全ての察知エージェントの処理をクラウドで行う場合、クラウド側でユーザのプライバシー情報の解析が可能になる。また、クラウドで情報漏えいが生じた場合は、第三者にユーザの個人情報が流出してしまうという恐れがある。 However, cloud systems have known problems such as information leakage and privacy invasion. When the processing of all detection agents is performed in the cloud, the privacy information of the user can be analyzed on the cloud side. Further, when information leakage occurs in the cloud, there is a risk that personal information of the user will be leaked to a third party.
したがって、本発明の目的は、かかる機械学習による大規模な計算処理の不都合を解決し、ユーザの様々な情報を察知して、その情報を基にユーザに役立つ情報の提供や、問題解決する携帯端末を用いた察知エージェントシステムを提供することにある。 Therefore, an object of the present invention is to solve the inconvenience of large-scale calculation processing by such machine learning, detect various information of the user, provide useful information to the user based on the information, and solve the problem. It is to provide a sensing agent system using terminals.
上記課題を解決する本発明に従う察知エージェントの第一の側面は、携帯端末を用いた察知エージェントシステムであって、携帯端末と、前記携帯端末に接続されるサーバを有し、前記携帯端末は、ユーザから取得される情報から取得した特徴ベクトルを暗号化し、次いで、前記暗号化された特徴ベクトルをニューラルネットワークの入力層として前記サーバに送信し、前記サーバは、前記暗号化された特徴ベクトルを受信して、前記ニューラルネットワークの入力層から隠れ層を計算し、前記隠れ層の計算結果を前記携帯端末に送信し、前記携帯端末は、更に、前記サーバからの隠れ層の計算結果から出力層の計算を行うことを特徴とする。 A first aspect of a sensing agent according to the present invention which solves the above problems is a sensing agent system using a mobile terminal, which has a mobile terminal and a server connected to the mobile terminal, and the mobile terminal is The feature vector obtained from the information obtained from the user is encrypted, and then the encrypted feature vector is transmitted to the server as an input layer of a neural network, and the server receives the encrypted feature vector. Then, the hidden layer is calculated from the input layer of the neural network, the calculation result of the hidden layer is transmitted to the mobile terminal, and the mobile terminal further outputs the calculation result of the hidden layer from the server to the output layer. It is characterized by performing calculation.
上記課題を解決する本発明に従う察知エージェントの第二の側面は、携帯端末を用いた察知エージェントシステムであって、携帯端末と、前記携帯端末に接続されるサーバを有し、前記携帯端末は、ユーザから取得される情報から取得した特徴ベクトルを第1の鍵により暗号化し、次いで、前記暗号化された特徴ベクトルをニューラルネットワークの入力層として前記サーバに送信し、前記サーバは、前記暗号化された特徴ベクトルを受信して、大きな乱数行列から部分重み行列を決定するための第2の鍵を用い、前記第2の鍵により決定される部分重み行列を用いて前記ニューラルネットワークの入力層から隠れ層を計算し、前記隠れ層の計算結果を前記携帯端末に送信し、前記携帯端末は更に、前記隠れ層の計算結果の要素のうちその後の処理に用いない要素を決定するための第3の鍵を用いて、前記隠れ層の計算結果の要素を隠す処理を行い、その後、出力層の計算を行うことを特徴とする。 A second aspect of the sensing agent according to the present invention which solves the above problems is a sensing agent system using a mobile terminal, which has a mobile terminal and a server connected to the mobile terminal, and the mobile terminal is The feature vector obtained from the information obtained from the user is encrypted with a first key, and then the encrypted feature vector is transmitted to the server as an input layer of a neural network, and the server encrypts the encrypted feature vector. Receiving the feature vector and using a second key for determining a partial weight matrix from a large random number matrix, and hiding from the input layer of the neural network using the partial weight matrix determined by the second key. Calculating a layer and transmitting the calculation result of the hidden layer to the mobile terminal, and the mobile terminal further determines a third element of the elements of the calculation result of the hidden layer that is not used in the subsequent processing. It is characterized in that the key is used to perform the process of hiding the element of the calculation result of the hidden layer, and then the calculation of the output layer.
上記課題を解決する本発明に従う察知エージェントの第二の側面において、前記第1の鍵により、前記ユーザからのデータがベクトル置換によりを暗号化されることを特徴とする。 In the second aspect of the sensing agent according to the present invention which solves the above-mentioned problems, the data from the user is encrypted by vector substitution by the first key.
上記課題を解決する本発明に従う察知エージェントは、前記第一、第二の側面において、前記ニューラルネットワークは、機械学習アルゴリズムであって、前記機械学習アルゴリズムは、処理フェーズとして、学習フェーズと、識別分類フェーズを有することを特徴とする。 In the sensing agent according to the present invention for solving the above-mentioned problems, in the first and second aspects, the neural network is a machine learning algorithm, and the machine learning algorithm has a learning phase as a processing phase and an identification classification. It is characterized by having a phase.
上記課題を解決する本発明に従う察知エージェントの第一の側面において、さらに、コンピュータを有し、前記コンピュータは、学習フェーズとして、前記携帯端末において前記暗号化に用いる複数の暗号鍵と、前記複数の暗号鍵に対応して前記出力層の計算に用いる複数の重みβを生成し、更に前記サーバにおいて前記暗号化された特徴ベクトルに対して隠れ層の計算をするための重みWとバイアスbを生成することを特徴とする。 In the first aspect of the sensing agent according to the present invention which solves the above problems, the sensing agent further includes a computer, and the computer, as a learning phase, has a plurality of encryption keys used for the encryption in the mobile terminal, and the plurality of encryption keys. A plurality of weights β used to calculate the output layer are generated corresponding to an encryption key, and further a weight W and a bias b for calculating a hidden layer for the encrypted feature vector in the server are generated. It is characterized by doing.
上記課題を解決する本発明に従う察知エージェントの第一の側面において、前記識別分類フェーズとして、前記携帯端末は、前記複数の暗号鍵によりランダムに決定した暗号鍵を用いて、ユーザの入力した特徴ベクトルを暗号化し、前記サーバは、前記暗号化された特徴ベクトルを、前記重みWとバイアスbを用いて隠れ層の計算をし、前記携帯端末は、更に前記サーバにおける隠れ層の計算結果に対し、前記暗号化に用いた暗号鍵に対応する重みβを用いて出力層の計算を行うことを特徴とする。 In the first aspect of the sensing agent according to the present invention for solving the above-mentioned problems, as the identification and classification phase, the mobile terminal uses a cryptographic key randomly determined by the plurality of cryptographic keys, and a feature vector input by a user is used. And the server calculates the hidden layer of the encrypted feature vector using the weight W and the bias b, and the mobile terminal further calculates the hidden layer in the server, The output layer is calculated using the weight β corresponding to the encryption key used for the encryption.
上記課題を解決する本発明に従う察知エージェントは、前記第一、第二の側面において、前記サーバは、クラウドサーバであって、前記携帯端末はインターネットを通して前記サーバに接続することを特徴とする。 The sensing agent according to the present invention for solving the above-mentioned problems is characterized in that, in the first and second aspects, the server is a cloud server, and the mobile terminal connects to the server via the Internet.
上記課題を解決する本発明に従う察知エージェントの第二の側面において、さらに、コンピュータを有し、前記コンピュータは、学習フェーズとして、隠れニューロン数を決定し、ユーザから取得される情報から取得した特徴ベクトルを暗号化するための第1の鍵と、大きな乱数行列から部分重み行列を決定するための第2の鍵と、隠れ層の計算結果の要素のうちその後の処理に用いない要素を決定するための第3の鍵を生成し、更に出力層の重みを算出することを特徴とする。 In the second aspect of the sensing agent according to the present invention for solving the above-mentioned problems, the computer further has a computer, and the computer determines the number of hidden neurons as a learning phase, and the feature vector acquired from the information acquired from the user. A first key for encrypting, a second key for determining a partial weight matrix from a large random number matrix, and an element that is not used in the subsequent processing of elements of the calculation result of the hidden layer. Is generated, and the weight of the output layer is further calculated.
上記課題を解決する本発明に従う察知エージェントの第二の側面において、さらに、前記識別分類フェーズとして、前記携帯端末は、前記第1、第2、第3の鍵と前記出力層の重みを保存し、前記第1の鍵を用いて、前記特徴ベクトルを暗号化し、前記暗号化された特徴ベクトルと、前記第2の鍵及び隠れニューロン数を前記サーバに送信し、前記サーバは、前記第2の鍵及び隠れニューロン数により隠れ層の重みを求め、隠れ層を計算して携帯端末に送信し、更に前記携帯端末は、前記計算された隠れ層の出力から前記第3の鍵により後の計算に用いない要素を決定、更に出力層を計算することを特徴とする。 In the second aspect of the sensing agent according to the present invention for solving the above-mentioned problems, further, as the identification and classification phase, the mobile terminal stores the first, second and third keys and the weight of the output layer. , The first key is used to encrypt the feature vector, and the encrypted feature vector, the second key and the number of hidden neurons are transmitted to the server, and the server uses the second key. The weight of the hidden layer is obtained from the key and the number of hidden neurons, the hidden layer is calculated and transmitted to the mobile terminal, and the mobile terminal further uses the calculated output of the hidden layer for later calculation by the third key. The feature is that the elements not used are determined and the output layer is calculated.
上記した本発明に従うプロトコルにおいて、携帯端末からサーバに送信されるデータは暗号化されたものである。さらに隠れ層のニューロンの重み行列は、完全に乱数である。従って、サーバでの計算、及び計算結果は優位な情報を持たず、よってユーザの情報は守られる。 In the protocol according to the present invention described above, the data transmitted from the mobile terminal to the server is encrypted. Further, the hidden layer neuron weight matrix is completely random. Therefore, the calculation in the server and the calculation result do not have superior information, and thus the user's information is protected.
以下に、本発明の実施例を添付の図面に従い説明する。この実施例は本発明の理解を容易とするためのものであり、本発明の適用は、これら実施例に限定されるものではない。また、本発明の保護の範囲は、特許請求の範囲と同一又は類似の範囲に及ぶ。 Embodiments of the present invention will be described below with reference to the accompanying drawings. This example is for facilitating the understanding of the present invention, and the application of the present invention is not limited to these examples. Further, the protection scope of the present invention covers the same or similar scope as the claims.
[第1の実施例]
図2は、本発明に従う携帯端末を用いた察知エージェントシステムの第1の実施例の概念図である。
[First Embodiment]
FIG. 2 is a conceptual diagram of a first embodiment of a detection agent system using a mobile terminal according to the present invention.
機械学習のためのニューラルネットワークは、入力層1a、中間層(隠れ層)1b、出力層1cを有する。本発明の特徴は、ニューラルネットワークの一部即ち、中間層1bの演算をサーバ10に行わすことにある。 The neural network for machine learning has an input layer 1a, an intermediate layer (hidden layer) 1b, and an output layer 1c. A feature of the present invention is that a part of the neural network, that is, the operation of the intermediate layer 1b is performed in the server 10.
ここでサーバ10として、好ましい形態としてクラウドサーバを使用するが、独立した固有のコンピュータサーバであってもよい。 Here, as the server 10, a cloud server is used as a preferable form, but it may be an independent and unique computer server.
事前に携帯端末11には、出力層1cの演算のための出力ニューロンの重みβkが与えられている。一方、サーバ10には、中間層1bの演算のための隠れニューロンの重みWとバイアスbが与えられている。 The weight β k of the output neuron for the calculation of the output layer 1c is given to the mobile terminal 11 in advance. On the other hand, the server 10 is given the hidden neuron weight W and the bias b for the calculation of the hidden layer 1b.
携帯端末11においては、ユーザの入力に対する特徴ベクトルxを暗号化する。そして、暗号化された特徴ベクトルxを、サーバ10に送る。 In the mobile terminal 11, the feature vector x for the user's input is encrypted. Then, the encrypted feature vector x is sent to the server 10.
サーバ10は、重みWを用いて上記式(2)の計算をして中間層1bの演算をする。ついで、携帯端末11は、重みβkを用いて上記式(1)の計算を行い、最終結果を得る。 The server 10 calculates the above equation (2) using the weight W to calculate the intermediate layer 1b. Then, the mobile terminal 11 calculates the above equation (1) using the weight β k and obtains the final result.
かかる場合、サーバ10での処理は、式(2)のみになる。ELMにおいてWは乱数であるため、意味のある情報ではない。そのため、サーバ10上のモデルの保護は保証される。また、サーバ10で、全ての分類を行わないため、第三者にサーバ10のデータを見られてもユーザの計算の意図を把握することは困難である。 In such a case, the processing in the server 10 is limited to Expression (2). Since W is a random number in ELM, it is not meaningful information. Therefore, the protection of the model on the server 10 is guaranteed. In addition, since the server 10 does not perform all classification, it is difficult for a third party to grasp the user's intention of calculation even when the data of the server 10 is viewed.
さらに、サーバ10においても、ユーザの計算目的や計算に使用するデータが何であるかを判断することが出来ない。したがって、これにより携帯端末11を使用するユーザのプライバシーの保護が可能である。 Furthermore, the server 10 cannot determine the purpose of calculation by the user or what data is used for the calculation. Therefore, it is possible to protect the privacy of the user who uses the mobile terminal 11.
図3は、図2に対応するサーバ10と、携帯端末11の構成例ブロック図である。サーバ10と携帯端末11は、WiFiあるいは、ブルーツース等の無線通信機能12を介して接続される。また必要であれば、携帯端末11が有線接続によりサーバ10に接続されてもよい。 FIG. 3 is a block diagram of a configuration example of the server 10 and the mobile terminal 11 corresponding to FIG. The server 10 and the mobile terminal 11 are connected via a wireless communication function 12 such as WiFi or Bluetooth. If necessary, the mobile terminal 11 may be connected to the server 10 by wire connection.
携帯端末11において、特徴ベクトルxを暗号化部20により暗号化してサーバ10側に送信する。この暗号化部20における暗号化のために、複数の暗号化キー(key1〜keyn)とそれに対する重みβ1〜βnの組を暗号鍵と重みβの対応テーブル13に事前に用意する。そして、分類毎に、これら暗号化キーと重みの組をランダムに切り替えて、暗号化部20で使用することで安全性が高められる。 In the mobile terminal 11, the feature vector x is encrypted by the encryption unit 20 and transmitted to the server 10 side. For encryption in the encryption unit 20, a plurality of encryption keys (key 1 to key n ) and weights β 1 to β n for the encryption keys are prepared in advance in the encryption key/weight β correspondence table 13. .. Then, the encryption key and weight set are randomly switched for each classification and used by the encryption unit 20 to enhance security.
サーバ10での処理は、入力される暗号化された特徴ベクトルxに対して、演算部14により中間層(隠れ層)1bの演算を、あらかじめ通知されている重みWとバイアスbの乱数を用いて行列計算を行う。 The processing in the server 10 uses the random number of the weight W and the bias b notified in advance for the calculation of the intermediate layer (hidden layer) 1b with respect to the input encrypted feature vector x. Matrix calculation.
したがって、サーバ10における処理において、データが第三者に知られてもセキュリティ上の不都合はない。すなわち、サーバ10側では、ユーザの計算の意図、計算に使うデータがどのような意味を持つものであるかを判断することができない。 Therefore, in the processing in the server 10, there is no security inconvenience even if the data is known to a third party. That is, the server 10 cannot judge the user's intention of calculation and what meaning the data used for the calculation has.
サーバ10における演算の結果が、携帯端末11に送られると、携帯端末11の演算部15で出力層1cの演算を行いクラスラベル16が得られる。この際、携帯端末11ではサーバ10に特徴ベクトルを暗号化する際に使用した鍵(keyi)に対応する重みβを用いて出力層1cの演算を行う。 When the calculation result in the server 10 is sent to the mobile terminal 11, the calculation unit 15 of the mobile terminal 11 calculates the output layer 1c to obtain the class label 16. At this time, the mobile terminal 11 calculates the output layer 1c using the weight β corresponding to the key (key i ) used when encrypting the feature vector in the server 10.
図4は、本発明に従う察知エージェントシステムの処理フローである。処理は、学習フェーズPh1と分類フェーズPh2で構成される。 FIG. 4 is a processing flow of the detection agent system according to the present invention. The process is composed of a learning phase Ph1 and a classification phase Ph2.
「学習フェーズPh1」
学習フェーズPh1では、ニューラルネットワークで使用する先に図1に関して説明した隠れ層1bの重みWとバイアスb、更に出力層1cの重みβを求める処理を行う。かかる処理は、コンピュータ17として例えば、パーソナルコンピュータを用いて行うことも可能である。
"Learning Phase Ph1"
In the learning phase Ph1, a process for obtaining the weight W and the bias b of the hidden layer 1b and the weight β of the output layer 1c, which have been described above with reference to FIG. Such processing can also be performed using, for example, a personal computer as the computer 17.
コンピュータ17において、携帯端末11からユーザのさまざまな情報データを収集してデータベースを作成する(ステップS0)。ここで、ユーザの情報データは、察知エージェントをどのように使用するかによってその内容が変わる。 The computer 17 collects various information data of the user from the mobile terminal 11 to create a database (step S0). Here, the content of the user information data changes depending on how to use the sensing agent.
ユーザのさまざまな情報データとして、目的に対応して例えば、ユーザの心拍、血液情報の生態情報(健康状態の診断管理)、写真画像(写っている人、物のタグ付け)、手書き文字の画像データ(手書き文字認識によるユーザ認証)などがあげられる。 As various information data of the user, corresponding to the purpose, for example, the heartbeat of the user, biological information of blood information (diagnosis management of health condition), photographic image (tagging person or object), handwritten image Examples include data (user authentication by handwritten character recognition).
ついで、コンピュータ17で、作成されたデータベースに基づき、特徴数が定義される。この特徴数によって、暗号化のための暗号鍵を生成する(ステップS1)。 Then, the computer 17 defines the number of features based on the created database. An encryption key for encryption is generated based on the number of features (step S1).
例えば、暗号化として転置式暗号を用い、異なるn(2≦n≦Nf!)個の暗号鍵を生成する。ここで、転置式暗号とは、ベクトルの要素の順序をシャッフルすることによる行われる暗号化であり、ベクトル要素の置換である。例えば鍵をK=(K1, K2,…Km)とするとき、Ki=jならば、特徴ベクトルのjの位置をiの位置に置換する。 For example, transposition encryption is used as encryption, and different n (2≦n≦N f !) encryption keys are generated. Here, the transposed encryption is encryption performed by shuffling the order of vector elements, and is replacement of vector elements. For example, when the key is K=(K 1 , K 2 ,... K m ), if K i =j, the position of j in the feature vector is replaced with the position of i.
コンピュータ17で、作成されたデータベースに基づき、n個のそれぞれの鍵を用いて学習データの暗号化を行う。これによりn個の異なる学習データセットが生成される。暗号化された学習データセットをそれぞれ用いて学習を行い、n個の機械学習(ELM)モデルを作成する(ステップS2)。 The computer 17 encrypts the learning data using each of the n keys based on the created database. This produces n different training data sets. Learning is performed using each of the encrypted learning data sets, and n machine learning (ELM) models are created (step S2).
この際、中間層における隠れニューロンの重み行列(W,b)は乱数である、複数のモデルで共有することが出来る。n個のELMモデルに対して1つの隠れニューロンの重み行列で十分である。一方、出力ニューロンの重みβは、暗号鍵と一対一に対応させる必要があるため、n個生成する必要がある。 At this time, the weight matrix (W, b) of the hidden neuron in the hidden layer is a random number, and can be shared by a plurality of models. One hidden neuron weight matrix is sufficient for n ELM models. On the other hand, the output neuron weight β needs to be generated in n pieces because it needs to correspond one-to-one with the encryption key.
このように機械学習のためのニューラルネットワークに使用する中間層の重みWとバイアスb、更に出力層の重みβが生成される。 In this way, the weight W of the intermediate layer and the bias b used in the neural network for machine learning and the weight β of the output layer are generated.
ついで、求められた重みWとバイアスbは、サーバ10に送られ保存される(ステップS3)。 Then, the obtained weight W and bias b are sent to the server 10 and stored (step S3).
一方、n個の鍵Key1,Key2,…Keynとそれに対応するn個の出力層の重みβ1, β2,…βnは、携帯端末11に送られ保存される(ステップS4)。 On the other hand, the n keys Key 1 , Key 2 ,... Key n and the corresponding n weights β 1 , β 2 ,... β n of the output layer are sent to and stored in the mobile terminal 11 (step S4). ..
上記の学習フェーズPh1が終了すると、次に処理は、分類フェーズPh2に移行する。 When the learning phase Ph1 is finished, the process then shifts to the classification phase Ph2.
「分類フェーズPh2」
図4において、携帯端末11は、ユーザからの情報に基づき、特徴ベクトルxを作成取得する(ステップS5)。
"Classification phase Ph2"
In FIG. 4, the mobile terminal 11 creates and acquires the feature vector x based on the information from the user (step S5).
先に学習フェーズPh1でコンピュータ17から得られたn個の暗号鍵から暗号化に用いる一つの鍵をランダムに決定する。ここでは、決定された鍵を鍵kとする(ステップS6)。 First, in the learning phase Ph1, one key used for encryption is randomly determined from the n encryption keys obtained from the computer 17. Here, the determined key is set as the key k (step S6).
決定された暗号鍵を用いて特徴ベクトルxを転置式暗号で暗号化する(ステップS7)。 The feature vector x is encrypted by transposition encryption using the determined encryption key (step S7).
次いで、暗号化された特徴ベクトルx'を携帯端末11からサーバ10に送信する(ステップS8)。 Next, the encrypted feature vector x′ is transmitted from the mobile terminal 11 to the server 10 (step S8).
サーバ10では、受信した特徴ベクトルx'に対し、演算部14において、先にステップS3において入手している重みWとバイアスbを用いて、入力層から隠れ層の計算を先に示した式(2)に従い行う(ステップS9)。ついで、演算結果を携帯端末11に送る(ステップS10)。 In the server 10, for the received feature vector x′, the calculation unit 14 uses the weight W and the bias b previously obtained in step S3 to calculate the hidden layer from the input layer by the equation ( 2) is performed (step S9). Then, the calculation result is sent to the mobile terminal 11 (step S10).
携帯端末11は、演算部15(図3)において、対応テーブル13を参照して先に用いた鍵kに対応した出力ニューロンの重みβkを用いて隠れ層から出力層の演算を、先に示した式(1)に従い実行し結果16(図3)を出力する。 In the mobile terminal 11, the calculation unit 15 (FIG. 3) refers to the correspondence table 13 and calculates the output layer from the hidden layer first using the weight β k of the output neuron corresponding to the key k used previously. It is executed according to the formula (1) shown and the result 16 (FIG. 3) is output.
ここで、上記に説明した例では、隠れ層が一層の例であるが、本発明の適用はこれに限られない。図5は、隠れ層が複数であっても、サーバ10での演算が可能であることを示す図である。 Here, in the example explained above, the hidden layer is an example of one layer, but the application of the present invention is not limited to this. FIG. 5 is a diagram showing that even if there are a plurality of hidden layers, the calculation can be performed by the server 10.
「実験例」
ここで、上記した本発明に従う察知エージェントの性能評価実験による検証を説明する。
"Experimental example"
Here, the verification by the performance evaluation experiment of the sensing agent according to the present invention will be described.
性能評価実験の目的は、第1に本発明の察知エージェントのプロトコルを用いることにより携帯端末11における計算処理の削減を確認することである。なお、実験では、携帯端末やサーバにおける暗号鍵や重みの読み込み時間は、計測に含まれていない。 The purpose of the performance evaluation experiment is to first confirm the reduction of the calculation processing in the mobile terminal 11 by using the protocol of the detection agent of the present invention. In the experiment, the reading time of the encryption key and the weight in the mobile terminal or the server is not included in the measurement.
1)識別時間の計測:
識別時間とは、携帯端末11で特徴ベクトルxを入力してからクラスラベルが出力されるまでの時間である。かかる識別時間を計測することにより携帯端末11での計算処理を削減できているか否かを確認することが出来る。
1) Measurement of identification time:
The identification time is the time from when the feature vector x is input to the mobile terminal 11 until the class label is output. By measuring the identification time, it is possible to confirm whether or not the calculation process in the mobile terminal 11 can be reduced.
携帯端末11として、実験ではAndroidスマートフォンを用いた。 As the mobile terminal 11, an Android smartphone was used in the experiment.
測定を行ったのは以下に示す3つの手法である。 The measurement was performed by the following three methods.
a: All Smartphone:スマートフォン(携帯端末11)のみでELMによる識別を行う場合の識別時間の測定である。 a: All Smartphone: This is the measurement of the identification time when the identification is performed by the ELM using only the smartphone (mobile terminal 11).
b:All Server:ELMモデルを全てサーバ10に保存し,スマートフォン(携帯端末11)からサーバ10へ送信されたデータを識別,その結果をスマートフォンに返す場合の識別時間の測定である。 b: All Server: This is a measurement of the identification time when all the ELM models are stored in the server 10, the data transmitted from the smartphone (mobile terminal 11) to the server 10 is identified, and the result is returned to the smartphone.
c: Cloud System: 本発明で提案したクラウドシステム(プロトコル)を用いて識別を行う場合の識別時間の測定である。 c: Cloud System: Measurement of the identification time when identification is performed using the cloud system (protocol) proposed by the present invention.
評価実験には,UCI Machine Learning Repository(非特許文献1),および mldata.org(非特許文献2)により公開されているデータベースを用いた。 For the evaluation experiment, a database published by UCI Machine Learning Repository (Non-Patent Document 1) and mldata.org (Non-Patent Document 2) was used.
これらのデータベースの情報を下記の表1に示す。 The information in these databases is shown in Table 1 below.
データベースAustralian,Satimage,USPS,Colon cancerにおいて平均が0,分散が1になるような正規化を行った.Dexter,Farmadsに関してはスパース性を持つデータベースであるため正規化を行わなかった(正規化は時間測定の結果には影響を与えないため,フェアな比較である)。 In the databases Australian, Satimage, USPS, and Colon cancer, normalization was performed so that the mean was 0 and the variance was 1. Since Dexter and Farmads are databases with sparsity, normalization was not performed (normalization is a fair comparison because it does not affect the results of time measurement).
ネットワークはスマートフォン(携帯端末11)1台、サーバ20を1台,ルータ1台の計3台で構成した.スマートフォン,ルータ間は無線,サーバ,ルータ間はLANケーブルで接続した。 The network consisted of one smartphone (mobile terminal 11), one server 20, and one router, for a total of three. We connected wirelessly between the smartphone and router, and a LAN cable between the server and router.
表2に、スマートフォン(携帯端末11)の仕様情報を示し、表3に、サーバ10の仕様情報を示す。ルータは NEC PA-WG1800HP2を用いた。 Table 2 shows the specification information of the smartphone (mobile terminal 11), and Table 3 shows the specification information of the server 10. NEC PA-WG1800HP2 was used as the router.
ELMに関しては,Python 3.4.3とそのオープンソースライブラリであるNumpy 1.9.2 (非特許文献3),SciPy 0.15.1 (非特許文献4),Scikit-learn 0.16.1(非特許文献5、6) を用いて実装した。 Regarding ELM, Python 3.4.3 and its open source library Numpy 1.9.2 (Non-Patent Document 3), SciPy 0.15.1 (Non-Patent Document 4), Scikit-learn 0.16.1 (Non-Patent Documents 5 and 6) ) Was used for implementation.
活性関数は標準シグモイド関数, 隠れニューロン数Nhは100,500,1,000とした。スマートフォン(携帯端末11),サーバ10間の通信はHTTP通信を行い,データはJSON形式にシリアライズして行った。 The activation function was the standard sigmoid function, and the number of hidden neurons N h was 100, 500, and 1,000. Communication between the smartphone (mobile terminal 11) and the server 10 is HTTP communication, and data is serialized in JSON format.
サーバ10はPythonWebフレームワークであるbottle 0.12.8(非特許文献7)を用いた。携帯端末11であるAndroidスマートフォンでは HTTP 通信ライブラリ OkHttp 2.4.0(非特許文献8),JSON ライブラリ Jackson 2.6.0-rc3(非特許文献9)を用いた。 The server 10 used bottle 0.12.8 (Non-Patent Document 7) which is a Python Web framework. In the Android smartphone which is the mobile terminal 11, the HTTP communication library OkHttp 2.4.0 (Non-patent document 8) and the JSON library Jackson 2.6.0-rc3 (Non-patent document 9) were used.
「実験結果と考察」
最初に、十分なELMの性能を出すためのNhを検証するため交差検定による実験を行った。データベース,及び隠れニューロン数Nh毎の10回の5分割交差検定による識別率の平均値(%)を表4に示す。
"Experimental results and discussion"
First, a cross-validation experiment was performed to verify N h for producing sufficient ELM performance. Table 4 shows the database and the average value (%) of the discrimination rate by 10 times of 5-fold cross-validation for each number of hidden neurons N h .
表4において、太字は,各データベースにおける最も高い精度を表している。いくつかのデータベースにおいて、Nh=1,000のとき高い精度を示していた。しかし、Australianにおいては Nh=100のとき,最も高い精度だった。したがって、高い精度を得るためには、各データベースによって最適な隠れニューロン数Nhを選択する必要がある。 In Table 4, bold letters represent the highest accuracy in each database. In some databases, it showed high accuracy when N h =1,000. However, in Australian, the highest accuracy was obtained when N h =100. Therefore, in order to obtain high accuracy, it is necessary to select the optimal number N h of hidden neurons for each database.
図6−図11にデータベース毎の識別時間の評価実験による結果を示すグラフである。すなわち、それぞれ、上記のAustralianデータベース、Satimageデータベース、USPSデータベース、Colon cancerデータベース、Dexterデータベース、更にFarm-adsデータベースを使用した場合の識別時間の比較を示している。 6 to 11 are graphs showing the results of the evaluation experiment of the identification time for each database. That is, it shows the comparison of the identification times when the above-mentioned Australian database, Satimage database, USPS database, Colon cancer database, Dexter database, and Farm-ads database are used, respectively.
図6−図11において、共通にグラフの縦軸は識別時間 (秒),横軸は隠れニューロン数Nhであり、30回の識別時間測定の平均値を表している。それぞれのグラフの縦棒は左から順にAll Smartphone,All Server,Cloud System(プロトコル)における結果である。それぞれのグラフにおいて、エラーバー(EB)は各測定結果の標準偏差を表している。 6-11, the vertical axis of the graph is the discrimination time (seconds), the horizontal axis is the number of hidden neurons N h , and the average value of 30 discrimination time measurements is shown in common. The vertical bars in each graph are the results for All Smartphone, All Server, and Cloud System (protocol) in order from the left. In each graph, the error bar (EB) represents the standard deviation of each measurement result.
図6−図11から特徴数Nf,隠れニューロン数Nhが大きい値であるほど、いずれのデータベースを使用する場合でも識別に時間がかかっていることが示される。式 (1)の計算量は,特徴数Nf,隠れニューロン数Nhに依存しており、Nf,Nhの値が増加するにつれて、計算量も増加するからである。 6 to 11 show that the larger the number of features N f and the number of hidden neurons N h are, the longer it takes to discriminate regardless of which database is used. This is because the amount of calculation of the equation (1) depends on the number of features N f and the number of hidden neurons N h , and the amount of calculation increases as the values of N f and N h increase.
また、特徴数Nfが大きいほど、特徴ベクトルのデータ容量が大きくなり,スマートフォンからサーバへの転送時間が増加する。したがって、いずれの手法においても,特徴数Nfと識別時間,隠れニューロン数Nhと識別時間の間には、正の相関関係があると考えられる。 Further, the larger the number of features N f , the larger the data capacity of the feature vector, and the longer the transfer time from the smartphone to the server. Therefore, in any method, it is considered that there is a positive correlation between the number of features N f and the discrimination time and between the number of hidden neurons N h and the discrimination time.
また、いずれの隠れニューロン数においても、Cloud SystemよりAll Serverの方が識別時間が速かった。サーバからスマートフォンへの式(2)の計算結果の送信や、スマートフォンにおける式(1)の計算に時間が必要であるためである。しかし、All Serverは全ての識別処理をサーバ10で行っているため,サーバの情報漏洩の際、第三者に有意な情報が渡る可能性があり、プライバシーの安全性に欠ける。 In addition, the identification time of All Server was faster than that of Cloud System for any number of hidden neurons. This is because it takes time to transmit the calculation result of Expression (2) from the server to the smartphone and to calculate Expression (1) in the smartphone. However, since the All Server performs all the identification processing by the server 10, there is a possibility that significant information may be passed to a third party when the information is leaked from the server, and the privacy is insufficient.
All ServerはCloud Systemよりも高速に識別を行うことができるが、実用性が低い。データベースAustralian,Satimage,USPS,Colon cancerの実験結果に関しては,いずれの隠れニューロン数においても、識別時間は 1) All Smartphone,2) All Server,3) Cloud Systemの順に速かった。 All Server can identify faster than Cloud System, but it is not practical. Regarding the experimental results of the databases Australian, Satimage, USPS, and Colon cancer, the discrimination time was faster in the order of 1) All Smartphone, 2) All Server, 3) Cloud System for any number of hidden neurons.
一方、図8、図9に示すように、Dexter,Farm-adsの実験結果に関しては 1) All Server, 2) Cloud System, and 3) All Smartphoneの順であった。スマートフォンにおける式(1)の計算時間がクラウドサーバとの通信時間を上回るためだと考える。携帯端末のみで,特徴数が比較的多いデータを,高い精度で識別することは困難であることを示している。本実験の結果から、データの特徴数が比較的多い場合、本発明に従うクラウドシステム(プロトコル)を用いることで高速に識別が行えることが確認できた。 On the other hand, as shown in FIG. 8 and FIG. 9, the experimental results of Dexter and Farm-ads were in order of 1) All Server, 2) Cloud System, and 3) All Smartphone. This is because the calculation time of formula (1) on the smartphone exceeds the communication time with the cloud server. This shows that it is difficult to identify data with a relatively large number of features with high accuracy using only mobile terminals. From the results of this experiment, it was confirmed that when the number of features of data is relatively large, the cloud system (protocol) according to the present invention can be used to perform identification at high speed.
したがって、携帯端末に察知エージェントを搭載する場合、携帯端末における識別コストとプライバシーの保護を考慮すると、本発明の有用性は十分にある。 Therefore, when the sensing agent is mounted on the mobile terminal, the present invention is sufficiently useful in consideration of protection of the identification cost and privacy of the mobile terminal.
[第2の実施例]
ここで、本発明の第2の実施例として、分類処理の安全性を更に高めるため、3つの鍵を用いたプロトコル手続きについて以下に説明する。この実施例では、上記した実施例に対して更に次の特徴利点を有する。
[Second Embodiment]
Here, as a second embodiment of the present invention, a protocol procedure using three keys in order to further enhance the security of the classification process will be described below. This embodiment has the following characteristic advantages over the above-mentioned embodiment.
サーバ10から携帯端末1へのレスポンスの情報も守られる。これによりさらなる安全性の向上が期待される。サーバ10の処理に乱数行列を用いる。 Information on the response from the server 10 to the mobile terminal 1 is also protected. This is expected to further improve safety. A random number matrix is used for the processing of the server 10.
図12は、第2の実施例に対応するニューラルネットワークであり、携帯端末11側にサーバ10における隠れ層計算結果出力に対してドロップ処理機能部30が付加され、出力層の重みβを変えるだけで隠れ層の重み行列とバイアスが共通に複数のユーザに使用されることを示している。 FIG. 12 is a neural network corresponding to the second embodiment, in which a drop processing function unit 30 is added to the hidden layer calculation result output in the server 10 on the mobile terminal 11 side, and only the weight β of the output layer is changed. Shows that the hidden layer weight matrix and bias are commonly used by multiple users.
すなわち、第2の実施例では、十分大きな乱数行列(ランダムマトリクス)からサブマトリクスを通して部分行列を決定する。これにより一つの乱数行列を複数の察知エージェント、複数のユーザが共有して使うことができる。そのため、サーバ10は、エージェントやユーザ毎に異なる行列を持つ必要がなく、ただ一つの乱数行列を保持していれば良い。これにより、異なるエージェント、ユーザ毎に乱数行列を読み込み直す必要がないために、サーバ10の処理の高速化や実装コストの削減が期待できる。 That is, in the second embodiment, a submatrix is determined from a sufficiently large random number matrix (random matrix) through a submatrix. This allows a single random number matrix to be shared and used by multiple sensing agents and multiple users. Therefore, the server 10 does not need to have a different matrix for each agent or user, and needs to hold only one random number matrix. As a result, it is not necessary to reread the random number matrix for each different agent or user, so that it is expected that the processing speed of the server 10 is increased and the mounting cost is reduced.
かかる第2の実施例における3つの鍵を1)置換鍵(trans-key),2)部分行列の位置の鍵(pos-key),3)隠れ層の出力ベクトルから要素を選択するための鍵(drop-key)と定義する。3つの鍵のそれぞれの役割は、次のようである。
(trans-key):
ベクトル置換によるユーザからのデータを暗号化するための鍵である。
The three keys in the second embodiment are 1) a replacement key (trans-key), 2) a key at the position of the submatrix (pos-key), and 3) a key for selecting an element from the output vector of the hidden layer. Define it as (drop-key). The role of each of the three keys is as follows.
(Trans-key):
It is a key for encrypting data from the user by vector replacement.
これにより暗号化されユーザのデータが保護される。置換鍵は、置換後の要素の添字を並べたベクトルになる。 This protects the encrypted user data. The replacement key is a vector in which the subscripts of the replaced elements are arranged.
暗号化したい特徴ベクトルがv、置換鍵がKt=(k1, k2,…kNf)(Nfはvの次元数)の場合を想定する。暗号化の処理は、kc=dの時(1≦c≦Nf), vのd番目の要素が暗号化後のc番目のベクトルの要素になる。例として、v=(v1, v2, v3), Kt =(2,3,1)の時、暗号化後のc番目のベクトルは、Enc(v, Kt)=(v2, v3, v1)となる。 Assume that the feature vector to be encrypted is v and the permutation key is K t =(k 1 , k 2 ,... K Nf ), where N f is the number of dimensions of v. In the encryption process, when k c =d (1≦c≦N f ), the d-th element of v becomes the element of the c-th vector after encryption. As an example, when v=(v 1 , v 2 , v 3 ), K t =(2,3,1), the c-th vector after encryption is Enc(v, K t )=(v 2 , v 3 ,v 1 ).
(pos-key):
サーバ10に保存された十分大きい乱数行列Woから部分行列W(入力層から隠れ層間の重み)を決定するための鍵である。鍵は、行番号と列番号の2要素のベクトルになる。なお、行列Wのサイズは、
である。
は、後に説明する。例えば、pos-keyがKp=(e,f)のとき、Woのe行f列目の要素が、Wの1行1列目の要素となるようにする。したがって、Woのサイズが、γ×δのとき、Kp=(e,f)の各要素の範囲は、1≦e≦γ−Nh, 1≦f≦δ−Nfである。
(drop-key):
隠れ層の出力ベクトルからその後の処理に使用しない要素を決定する鍵である。(以降この処理を「ドロップする」と表記する)この処理の意図は、全ての隠れ層の出力を、その後の計算で使わせなくさせることである。サーバ10の計算の出力結果のうち、実際に計算に使われる要素を隠すことができるので、安全性の向上が果たされる。
(pos-key):
This is a key for determining the submatrix W (weight between the input layer and the hidden layer) from the sufficiently large random number matrix Wo stored in the server 10. The key is a two-element vector of row number and column number. The size of the matrix W is
Is.
Will be described later. For example, when pos-key is Kp=(e,f), the element at row e and column f of Wo is set to be the element at row 1 and column 1 of W. Therefore, when the size of Wo is γ×δ, the range of each element of Kp=(e,f) is 1≦e≦γ−N h and 1≦f≦δ−N f .
(Drop-key):
It is the key to determine the elements that are not used in the subsequent processing from the output vector of the hidden layer. (Hereinafter, this process is referred to as “drop”.) The purpose of this process is to prevent all hidden layer outputs from being used in the subsequent calculations. Among the output results of the calculation of the server 10, the elements actually used for the calculation can be hidden, so that the safety is improved.
drop-key Kdは隠れ層の出力のうち、ドロップする要素の添字を並べたベクトルになる。 drop-key K d is a vector in which the indices of the elements to be dropped in the hidden layer output are arranged.
が隠れ層の出力ベクトルの次元数のとき、Kdの各要素の範囲は、 When is the dimensionality of the output vector of the hidden layer, the range of each element of K d is
であり、大きさは(r−1)・Nhになる。rは、隠れニューロン数の冗長率である。ここでの冗長とは、隠れニューロン数Nhを必要より多く設定し、隠れ層の計算を余分に行うことである。 And the magnitude is (r−1)·N h . r is the redundancy rate of the number of hidden neurons. Redundancy here means setting the number N h of hidden neurons more than necessary and performing extra calculation of hidden layers.
rの範囲は、 The range of r is
である。真の隠れニューロン数がNhのとき、プロトコルでは Is. When the number of true hidden neurons is N h , the protocol says
で隠れ層までの処理を行う。例えば、真の隠れニューロン数Nh=2、冗長数r=2.0のとき、 Perform processing up to hidden layers with. For example, when the number of true hidden neurons N h =2 and the number of redundancy r=2.0,
になる。したがって、プロトコルは隠れニューロン数は、 become. Therefore, the protocol is that the number of hidden neurons is
として隠れ層の計算を行う。 The hidden layer is calculated as.
なので、隠れ層の出力は、h(v)=(h1,h2,h3,h4), Kd=(1,3)のとき、処理後の出力は、drop(h(v),Kd)=(h2,h4)になる。 Therefore, when the output of the hidden layer is h(v)=(h 1 , h 2 , h 3 , h 4 ), K d =(1, 3), the output after processing is drop(h(v) ,K d )=(h 2 , h 4 ).
このように、ドロップ処理により、隠れ層の計算を必要以上に行った分を真に必要な分に調整することになる。 As described above, the drop processing adjusts the amount of calculation of the hidden layer more than necessary to the truly necessary amount.
つぎに、上記3つの鍵の処理を加えた第2の実施例のプロトコル処理について処理フローに従い説明する。 Next, the protocol processing of the second embodiment including the processing of the above three keys will be described according to the processing flow.
図13は、第2の実施例に対応する学習(トレーニング)の処理フローである。 FIG. 13 is a learning (training) processing flow corresponding to the second embodiment.
ここで、ローカルサーバ(PC)17は、各ユーザが持つコンピュータ(パソコン)であって、本発明のプロトコルを用いて察知エージェントを実運用する際、第1の実施例と同様に学習処理はユーザの所有するコンピュータ17で行うことを想定する。 Here, the local server (PC) 17 is a computer (personal computer) owned by each user, and when the sensing agent is actually operated by using the protocol of the present invention, the learning process is performed by the user as in the first embodiment. It is assumed that the computer 17 owned by
まず、コンピュータ17により、十分大きい乱数行列Woを生成定義する(ステップS20)。なお、前記Woのサイズは任意であり、任意の分類タスク、及び複数のユーザで共有して使うことが出来る。そのため、Woは一度だけ生成すればよい。 First, the computer 17 generates and defines a sufficiently large random number matrix Wo (step S20). It should be noted that the size of Wo is arbitrary, and it can be shared by any user and used by any user. Therefore, Wo only needs to be generated once.
携帯端末11によりトレーニングデータを収集し、コンピュータ17に送る(ステップS21)。 The training data is collected by the mobile terminal 11 and sent to the computer 17 (step S21).
コンピュータ17では、冗長度r、真の隠れニューロン数Nhを決定し、 The computer 17 determines the redundancy r and the number of true hidden neurons N h ,
を求める(ステップS22)。 Is calculated (step S22).
次いで、コンピュータ17は、 Then, the computer 17
を順次生成する(ステップS23−1,23−2,23−3)。 Are sequentially generated (steps S23-1, 23-2, 23-3).
ついで、暗号化データと隠れ層から出力層の重みβを、以下のように算出する(ステップS24)。 Then, the weight β of the output layer is calculated from the encrypted data and the hidden layer as follows (step S24).
n個のtrans-keyそれぞれを使って学習データセットを暗号化する。すなわち、n個の異なる学習データセットが生成される。 Encrypt the training data set with each of the n trans-keys. That is, n different learning data sets are generated.
例えば、学習データ数が、Nd, Nf=4の時、学習データセットは、式(10)である。特徴ベクトルを行に並べたもの、あるいは、trans-keyが式(11)であるとき、暗号化されたデータセットは、式(12)になる。 For example, when the number of learning data is N d , N f =4, the learning data set is Expression (10). When the feature vectors are arranged in rows, or when the trans-key is equation (11), the encrypted data set is equation (12).
Woと複数のpos-keyと Wo and multiple pos-keys
を使ってm個の異なる部分行列(隠れ層の重み)を生成する。 To generate m different submatrices (hidden layer weights).
例えば、Woが式(13)、pos-keyが式(14)で、 For example, Wo is formula (13), pos-key is formula (14),
であるとき、部分行列は式(15)になる。Wの大きさは、 Then the submatrix becomes equation (15). The size of W is
である。 Is.
ついで、それぞれのデータセット、それぞれの重みを用いて、隠れ層の出力を求める。その出力に対してそれぞれのdrop-keyを用いて複数のドロップされた出力を求める。これにより、n,m,l個の異なる隠れ層の出力が決定する。 Then, the output of the hidden layer is obtained using each data set and each weight. Use the drop-keys for that output to get multiple dropped outputs. This determines the output of n,m,l different hidden layers.
例えば、 For example,
で、隠れ層の出力を式(16)とする。 Then, the output of the hidden layer is expressed by equation (16).
drop-keyが式(17)のとき、ベクトルの大きさは、(r−1)・Nh=(1.6−1)・5=3であって、式(16)の5,4,7行目をドロップさせるので、結果は式(18)になる。 When the drop-key is the equation (17), the magnitude of the vector is (r−1)·N h =(1.6-1)·5=3, Since the 7th line is dropped, the result is formula (18).
次に、それぞれの隠れ層の出力を使って重みβを求める。これによりn,m,l個の異なるβが生成される。 Next, the weight β is obtained by using the output of each hidden layer. As a result, n, m, and l different β's are generated.
したがって、Kt, Kp, Kd, βs更に Therefore, K t ,K p ,K d ,β s
の全ての携帯端末11に保存する(ステップS25)。さらに、Woをサーバ10に保存する(ステップS26)。 All the mobile terminals 11 are stored (step S25). Further, Wo is stored in the server 10 (step S26).
次に本発明の第2の実施例に従う分類処理について説明する。図14は、かかる分類処理の処理フローである。 Next, a classification process according to the second embodiment of the present invention will be described. FIG. 14 is a processing flow of this classification processing.
携帯端末11は、ユーザからデータを取得する(ステップS30)。trans-key Ktを選択し(ステップS31)、選択した The mobile terminal 11 acquires data from the user (step S30). Select trans-key K t (step S31)
を用いて取得したユーザデータの特徴ベクトルを暗号化する(式19)(ステップS32)。 The feature vector of the user data acquired using is encrypted (Equation 19) (step S32).
このとき、iは, 1≦i≦nからランダムに定義される。 At this time, i is randomly defined from 1≦i≦n.
例えば、特徴ベクトルが式(20)、Ktが式(11)のとき、暗号化後のベクトルは、式(21)のようになる。 For example, when the feature vector is Expression (20) and K t is Expression (11), the encrypted vector is as shown in Expression (21).
携帯端末11は、 The mobile terminal 11 is
をサーバ10に送信する(ステップS34)。このとき、jは1≦j≦mにランダムに定義される。 Is transmitted to the server 10 (step S34). At this time, j is randomly defined as 1≦j≦m.
サーバ10では、 In the server 10,
を用いて式(22)により隠れ層の重みWを求め(ステップS35)、隠れ層の計算(式(23))を行う(ステップS36)。 Is used to calculate the weight W of the hidden layer by the equation (22) (step S35), and the hidden layer is calculated (equation (23)) (step S36).
ついで、サーバ10は、計算出力である隠れ層h(x')を携帯端末に送信する(ステップS37)。 Next, the server 10 transmits the hidden layer h(x'), which is the calculation output, to the mobile terminal (step S37).
携帯端末11において、 In the mobile terminal 11,
をもとに、後の計算に使う要素を選択する(ステップS38:式(24))。このとき、kは、1≦k≦1からランダムに定義される。 Based on, the element used for the subsequent calculation is selected (step S38: Formula (24)). At this time, k is randomly defined from 1≦k≦1.
例えば、 For example,
で、隠れ層の出力を式(25)とする。Kdが式(17)のとき、結果は式(26)となる。 Then, the output of the hidden layer is expressed by equation (25). When K d is the equation (17), the result is the equation (26).
携帯端末11は、βijkを用いて出力層の計算をし、結果を得る。 The mobile terminal 11 calculates the output layer using β ijk and obtains the result.
上記第2の実施例でのプロトコルでは、暗号化した状態で最終結果を得るため、復号化の処理を行う必要はない。 In the protocol of the second embodiment, since the final result is obtained in the encrypted state, it is not necessary to perform the decryption process.
以下に、上記第2の実施例における効果を確認するために行った実験例について説明する。 Below, an example of an experiment conducted for confirming the effect of the second embodiment will be described.
[実験例1]
この実験での目的は、各データセットに対し十分な性能を出すための最適なNhを探すことにある。
[Experimental Example 1]
The purpose of this experiment is to find the optimal N h for good performance for each dataset.
評価は、5分割交差検定による識別正答率で行う。なお、5分割交差検定とは、「データセットを特徴ベクトルの数で5分割し、1/5をテスト用データ、4/5を学習用データとして使う。そして、テストデータ、学習データを異なる5パターンの組み合わせのそれぞれで性能評価を行い、その5回分の平均値を最終結果とする。」機械学習アルゴリズムの分類性能を評価するための一手法であり、一般にk分割交差検定と呼ばれる。 The evaluation is performed by the rate of correct identification by 5-fold cross validation. In addition, 5-division cross-validation refers to "the data set is divided into 5 by the number of feature vectors, 1/5 is used as test data, and 4/5 is used as learning data. The performance is evaluated for each combination of patterns, and the average value of the five times is used as the final result.
かかる5分割交差検定において、最適なNhを探すため、Nh=1000, 1500, 2000,…5000とNhを変え、それぞれの値で5分割交差検定を行った。活性化関数には、標準シグモイド関数を用いた。なお、実験は、Python3, Numpy 1.10.4(非特許文献3), Scipy 0.17.0(非特許文献4), 及びScikit-learn 0.18.1(非特許文献5)を用いて本発明者が作成したプログラムによって実行した。 In such a 5-fold cross-validation, in order to find the optimum N h , N h =1000, 1500, 2000,... 5000 and N h were changed, and 5-fold cross-validation was performed for each value. The standard sigmoid function was used as the activation function. The experiment was created by the present inventor using Python3, Numpy 1.10.4 (Non-patent document 3), Scipy 0.17.0 (Non-patent document 4), and Scikit-learn 0.18.1 (Non-patent document 5). Executed by the program.
[実験例2]
この実験は、本発明のプロトコルのシミュレーション実験である。以下の手法それぞれで分類時間の測定を行い、比較を行った。
[Experimental Example 2]
This experiment is a simulation experiment of the protocol of the present invention. The classification time was measured by each of the following methods and compared.
1)Local:ELMによる全ての分類処理を携帯端末11のみで行う。 1) All classification processing by Local:ELM is performed only by the mobile terminal 11.
2)Protocol:本発明によるプロトコルにより行う。
第3の発明のプロトコルが有効であるかを確認することが出来る。
2) Protocol: The protocol according to the present invention is used.
It is possible to confirm whether the protocol of the third invention is valid.
真の隠れニューロン数には実験例1で得られた最適な(高い性能が出る)値を設定した。trans-keyの数n, pos-keyの数m, drop-keyの数lは、それぞれ5に設定した。r=1.4に設定した。Woのサイズは、10,000×10,000で行った。 For the number of true hidden neurons, the optimum value (high performance is obtained) obtained in Experimental Example 1 is set. The number n of trans-keys, the number m of pos-keys, and the number l of drop-keys were set to 5, respectively. It was set to r=1.4. The size of Wo was 10,000×10,000.
携帯端末11として2つのAndroidスマートフォンを用いてそれぞれで実験を行った。 An experiment was conducted using two Android smartphones as the mobile terminal 11.
各実験でのネットワークは、スマートフォン1つ、ルータ一1つ、サーバ1つで構成した。スマートフォンとルータは無線(WiFi)で接続され、サーバとルータはLANケーブルで接続された。 The network in each experiment consisted of one smartphone, one router, and one server. The smartphone and router were connected wirelessly (WiFi), and the server and router were connected via LAN cable.
実験に用いた携帯端末11としてのスマートフォンとサーバ10の情報は、それぞれ以下の表5,表6に示すとおりである。 The information on the smartphone as the mobile terminal 11 and the server 10 used in the experiment are as shown in Tables 5 and 6 below.
プロトコルのためのシステムはWeb APIとして実装され、通信には、HTTPを用いた。 The system for the protocol was implemented as Web API, and HTTP was used for communication.
ELMのモデル(Wといくつかのβ)と3つの各鍵(Kt, Kp, Kd)は、Python3で生成し、npyファイルフォーマットでダンプした。なお、npyファイルフォーマットとは、Numpy arrayの標準的なバイナリーフォーマットである。かかるELMも本発明者により著作した。 The ELM model (W and some β's) and each of the three keys (K t , K p , K d ) were generated in Python3 and dumped in the npy file format. The npy file format is the standard binary format of Numpy array. This ELM was also written by the present inventor.
サーバ10は、Python3 bottle(非特許文献7),Nginx(非特許文献14),及びuWSGI(非特許文献15)で実装された。 The server 10 was implemented with Python3 bottle (Non-Patent Document 7), Nginx (Non-Patent Document 14), and uWSGI (Non-Patent Document 15).
Androidスマートフォンでのプログラムは、Java(登録商標)とC++で書かれた。Javaは、Android開発のための標準的な開発言語である。Android端末でのサーバ10と通信を行う部分は、Rxjava(ReactiveX)(非特許文献16)、Retrfit(非特許文献17)、Gson(非特許文献18)をライブラリとして使用した。 Programs on Android smartphones were written in Java and C++. Java is the standard development language for Android development. The part of the Android terminal that communicates with the server 10 used Rxjava (ReactiveX) (Non-Patent Document 16), Retrfit (Non-Patent Document 17), and Gson (Non-Patent Document 18) as libraries.
サーバ10へは、JSONフォーマットでデータを送信するようにした。また、Android端末上での重み(W,β)や鍵(Kt, Kp, Kd)の読み込み、行列演算の処理にはAndroid NDKを用いた。 Data is transmitted to the server 10 in JSON format. In addition, Android NDK was used to read the weights (W, β) and keys (K t , K p , K d ) on the Android terminal, and to process the matrix operation.
Android NDK(C++)で実装することにより、Javaでの実装より高速に実行することが出来る。npyファイルフォーマットの読み込み、及び行列演算の処理をC++で記述した。C++プログラムとJavaプログラムの接続は、Java Native Interface(JNI)を用いた。行列積には基本的な3-loopの方法を用いた。 By implementing with Android NDK (C++), it can be executed faster than implementing with Java. The reading of the npy file format and the processing of matrix operations are described in C++. The Java Native Interface (JNI) was used to connect the C++ program and the Java program. The basic 3-loop method was used for matrix multiplication.
実験において、モデルの読み込み、プロトコルの処理、モデルのメモリからの削除の3つの測定範囲を含め、1つの分類処理を30回行い、その平均時間を求めた。 In the experiment, one classification process was performed 30 times including the three measurement ranges of model reading, protocol processing, and model deletion from the memory, and the average time was calculated.
ここで、実験に用いたデータセットについて説明する。実験に用いたデータセットは表7に示すとおりである。 Here, the data set used in the experiment will be described. The data set used in the experiment is shown in Table 7.
上記データセットのそれぞれについて説明する。
1)Australian:
Australian(非特許文献20)は、クレジットカードを認可するか否かを判断するためのデータである。それぞれの特徴ベクトル(Nf)は、一人分のデータを表す。クラスラベル(Nc)は高信用か低信用かの二値である。
2)QSAR:
QSAR(非特許文献21)は、定量的構造活性相間に関するデータである。
3)Gisette:
Gisette(非特許文献22)は、手書き数字画像分類問題であり、“4”と“9”のどちらかを分類する。
4)Satimage:
Satimageは、地球観測衛星(LANDSAT)による写真に基づいたデータである。クラスラベルは以下の6つの風景である。1.赤い土壌(red soil)2.綿花(cotton crop) 3.灰色の土壌(grey soil)4.湿った灰色の土壌(damp grey soil) 5.植物の切り株がある土壌(soil with vegetation stubble) 6.より湿った灰色の土壌(very damp grey soil)
Each of the above data sets will be described.
1) Australian:
Australian (Non-Patent Document 20) is data for determining whether to authorize a credit card. Each feature vector (N f ) represents the data for one person. The class label (N c ) is a binary value of high credit or low credit.
2) QSAR:
QSAR (Non-Patent Document 21) is data regarding quantitative structure-activity phases.
3) Gisette:
Gisette (Non-Patent Document 22) is a handwritten numeral image classification problem, which classifies either "4" or "9".
4) Satimage:
Satimage is data based on photographs taken by the Earth Observation Satellite (LANDSAT). The class labels are the following six landscapes. 1. Red soil 2. cotton crop 3. Gray soil 4. Damp gray soil 5. Soil with vegetation stubble 6. Very damp gray soil
[実験結果]
上記第2の実施例に対する実験1、実験2の結果をまとめると次のようである。
[Experimental result]
The results of Experiment 1 and Experiment 2 for the second embodiment are summarized as follows.
実験1の結果:
図15A−15Dは、上記4つのデータセットのそれぞれにおける10回の5分割交差検定による正答率を表している。縦軸は正答率、横軸は隠れニューロン数を示している。“Train”ラベルは学習データでのスコアを示す、“Test”ラベルはテストデータでのスコアを示している。
Results of Experiment 1:
FIGS. 15A-15D show the percentage of correct answers by 10 five-fold cross-validation in each of the above four data sets. The vertical axis represents the correct answer rate, and the horizontal axis represents the number of hidden neurons. The “Train” label indicates the score on the training data, and the “Test” label indicates the score on the test data.
図15A,図15Bにそれぞれ示すAustralianとQSARの結果において過学習が起きている。すなわち、学習モデルが、学習データに依存しすぎ、学習データは高性能に分類できるがテストデータに関しての分類において精度がなくなる状態である。 Overlearning occurs in the results of Australian and QSAR shown in FIGS. 15A and 15B, respectively. That is, the learning model is too dependent on the learning data, and the learning data can be classified with high performance, but the accuracy of classification regarding the test data is lost.
これらの結果による各データセットの最適なNhを示すと表8に示すようである。 The optimal N h for each data set according to these results is shown in Table 8.
実験2の結果:
図16A−図16D、及び図17A−図17Dは、上記4つのデータセットのそれぞれでの分類処理時間を示している。処理時間が小さい値ほど高速の処理が行われることを示している。
Results of Experiment 2:
16A to 16D and FIGS. 17A to 17D show the classification processing time for each of the above four data sets. The smaller the processing time is, the faster the processing is.
Nexus6での結果は図16A−図16D、Moto Z playの結果は図17A−図17Dである。 The results of Nexus 6 are shown in FIGS. 16A to 16D, and the results of Moto Z play are shown in FIGS. 17A to 17D.
各図において、左側の棒は、携帯端末11のみを使用する手法での結果、右側の棒は、本発明のプロトコルによる結果を示している。AustralianとQSARは、先に説明のとおり過学習が起こり精度がでないため、Nh=1000までにとどめている。縦軸は分類時間で、単位は、秒である。斜線部分40は、携帯端末サーバ11がサーバ10へリクエストを送り、レスポンスが還ってくるまでの時間である。 In each figure, the bar on the left shows the result of the method using only the mobile terminal 11, and the bar on the right shows the result of the protocol of the present invention. Australian and QSAR is but as it is overtraining occurs accuracy as previously described, is kept up to N h = 1000. The vertical axis is the classification time, and the unit is seconds. The shaded portion 40 is the time until the mobile terminal server 11 sends a request to the server 10 and the response is returned.
表9、表10に1回の分類での各処理に要した時間を示す。 Tables 9 and 10 show the time required for each treatment in one classification.
Preとは、trans-keyの読み込みや暗号化、drop-keyの読み込み処理であり、サーバ10とネットワークの処理時間である。Convertは、Javaオブジェクトをサーバ10へ送信するためJSONフォーマットに変換する処理である。逆にサーバ10からのレスポンスをJSONフォーマットからJavaオブジェクトに変換する処理も含む。 Pre is a process of reading and encrypting a trans-key, a process of reading a drop-key, and a processing time of the server 10 and the network. Convert is a process of converting a Java object into JSON format for transmission to the server 10. Conversely, it also includes a process of converting the response from the server 10 from the JSON format into a Java object.
Hiddenは、サーバにおける処理に要した時間である。すなわち、携帯端末でリクエストをしてレスポンスの返ってくる時間である。 Hidden is the time required for processing in the server. That is, it is the time when a request is made with the mobile terminal and a response is returned.
さらに、Outputは、携帯端末10でのドロップ処理と出力層の計算を行う処理である。また、TotalはProtocol, Localそれぞれの分類処理の合計時間である。 Furthermore, Output is a process of performing drop processing and calculation of the output layer in the mobile terminal 10. In addition, Total is the total time for each classification process of Protocol and Local.
[考察]
図16A−16D,及び図17A−17Dにより全ての結果において、処理時間が1秒以下であった。これはユーザにとっては許容範囲の処理時間である。Nexus6及びMOTO Z playのいずれの携帯端末においてもAustralian, QSAR, Satimage データセットはLocalの方が高速であった。上記表9、表10によれば、プロトコルはJSONとJavaオブジェクトの返還に時間が掛かっている。よって、変換処理を改善することにより本発明のプロトコル全体の改善が期待できる。
[Discussion]
Processing time was 1 second or less in all the results according to FIGS. 16A-16D and 17A-17D. This is an acceptable processing time for the user. Local speed of the Australian, QSAR, and Satimage datasets was faster in both mobile terminals such as Nexus6 and MOTO Z play. According to Tables 9 and 10 above, it takes time for the protocol to return JSON and Java objects. Therefore, improvement of the conversion process can be expected to improve the entire protocol of the present invention.
Gisetteデータセットは両方の端末において、本発明プロトコルの方が高速に動作している。 The Gisette dataset runs faster with the protocol of the present invention on both terminals.
プロトコルがサーバ10で行う隠れ層の計算は、式(2)よりNhとNfに依存する。
GisetteのようなNh, Nfともに大きい値の分類処理において有効である。これらの点から本発明に従うプロトコルは携帯端末11での分類処理を削減する方法として有効である。
The hidden layer calculation performed by the protocol in the server 10 depends on N h and N f according to the equation (2).
This is effective in classification processing of large values for both N h and N f such as Gisette. From these points, the protocol according to the present invention is effective as a method for reducing the classification process in the mobile terminal 11.
1 ニューラルネットワーク
1a 入力層
1b 隠れ層(中間層)
1c 出力層
10 サーバ
11 携帯端末
12 無線通信機能
13 暗号鍵と重みβの対応テーブル
14、15 演算部
16 クラスラベル
17 コンピュータ
20 暗号化部
30 ドロップ処理機能部
1 Neural network 1a Input layer 1b Hidden layer (Intermediate layer)
1c Output Layer 10 Server 11 Mobile Terminal 12 Wireless Communication Function 13 Correspondence Tables 14 and 15 for Cryptographic Key and Weight β Computing Unit 16 Class Label 17 Computer 20 Encryption Unit 30 Drop Processing Functional Unit
Claims (13)
携帯端末と、
前記携帯端末に接続されるサーバを有し、
前記携帯端末は、
ユーザから取得される情報から取得した特徴ベクトルを暗号化し、次いで、前記暗号化された特徴ベクトルをニューラルネットワークの入力層として前記サーバに送信し、
前記サーバは、
前記暗号化された特徴ベクトルを受信して、前記ニューラルネットワークの入力層から隠れ層を計算し、
前記隠れ層の計算結果を前記携帯端末に送信し、
前記携帯端末は、更に、前記サーバからの隠れ層の計算結果から出力層の計算を行う、
ことを特徴とする察知エージェントシステム。 A detection agent system using a mobile terminal,
A mobile device,
A server connected to the mobile terminal,
The mobile terminal is
Encrypting the feature vector obtained from the information obtained from the user, and then sending the encrypted feature vector to the server as an input layer of a neural network,
The server is
Receiving the encrypted feature vector and calculating a hidden layer from the input layer of the neural network,
Sending the calculation result of the hidden layer to the mobile terminal,
The mobile terminal further calculates an output layer from the calculation result of the hidden layer from the server,
A detection agent system characterized by the following.
携帯端末と、
前記携帯端末に接続されるサーバを有し、
前記携帯端末は、
ユーザから取得される情報から取得した特徴ベクトルを第1の鍵により暗号化し、次いで、前記暗号化された特徴ベクトルをニューラルネットワークの入力層として前記サーバに送信し、
前記サーバは、
前記暗号化された特徴ベクトルを受信して、大きな乱数行列から部分重み行列を決定するための第2の鍵を用い、前記第2の鍵により決定される部分重み行列を用いて前記ニューラルネットワークの入力層から隠れ層を計算し、前記隠れ層の計算結果を前記携帯端末に送信し、
前記携帯端末は更に、前記隠れ層の計算結果の要素のうちその後の処理に用いない要素を決定するための第3の鍵を用いて、前記隠れ層の計算結果の要素を隠す処理を行い、その後、出力層の計算を行う、
ことを特徴とする察知エージェントシステム。 A detection agent system using a mobile terminal,
A mobile device,
A server connected to the mobile terminal,
The mobile terminal is
Encrypting the feature vector obtained from the information obtained from the user with a first key, and then sending the encrypted feature vector to the server as an input layer of a neural network,
The server is
A second key for receiving the encrypted feature vector and determining a partial weight matrix from a large random number matrix, and using the partial weight matrix determined by the second key Calculate the hidden layer from the input layer, send the calculation result of the hidden layer to the mobile terminal,
The mobile terminal further performs a process of hiding the element of the calculation result of the hidden layer by using a third key for determining an element of the calculation result of the hidden layer that is not used in the subsequent processing, Then calculate the output layer,
A detection agent system characterized by the following.
前記第1の鍵により、前記ユーザからのデータがベクトル置換によりを暗号化される、
ことを特徴とする察知エージェントシステム。 In claim 2,
Data from the user is encrypted by vector permutation with the first key,
A detection agent system characterized by the following.
前記ニューラルネットワークは、機械学習アルゴリズムであって、
前記機械学習アルゴリズムは、処理フェーズとして、学習フェーズと、識別分類フェーズを有する、
ことを特徴とする察知エージェントシステム。 In Claim 1 thru|or 3,
The neural network is a machine learning algorithm,
The machine learning algorithm has a learning phase and an identification and classification phase as a processing phase,
A detection agent system characterized by the following.
さらに、コンピュータを有し、
前記コンピュータは、学習フェーズとして、
前記携帯端末において前記暗号化に用いる複数の暗号鍵と、前記複数の暗号鍵に対応して前記出力層の計算に用いる複数の重みβを生成し、更に
前記サーバにおいて前記暗号化された特徴ベクトルに対して隠れ層の計算をするための重みWとバイアスbを生成する、
ことを特徴とする携帯端末を用いた察知エージェントシステム。 In claim 1,
In addition, having a computer,
The computer, as a learning phase,
A plurality of encryption keys used for the encryption in the mobile terminal and a plurality of weights β used in the calculation of the output layer corresponding to the plurality of encryption keys are generated, and the feature vector encrypted in the server is further generated. Generate a weight W and a bias b for calculating the hidden layer with respect to
A sensing agent system using a mobile terminal characterized by the above.
さらに、識別分類フェーズとして、
前記携帯端末は、前記複数の暗号鍵によりランダムに決定した暗号鍵を用いて、ユーザの入力した特徴ベクトルを暗号化し、
前記サーバは、前記暗号化された特徴ベクトルを、前記重みWとバイアスbを用いて隠れ層の計算をし、
前記携帯端末は、更に前記サーバにおける隠れ層の計算結果に対し、前記暗号化に用いた暗号鍵に対応する重みβを用いて出力層の計算を行う、
ことを特徴とする携帯端末を用いた察知エージェントシステム。 In claim 5,
Furthermore, as an identification and classification phase,
The mobile terminal encrypts the feature vector input by the user using an encryption key randomly determined by the plurality of encryption keys,
The server performs a hidden layer calculation on the encrypted feature vector using the weight W and the bias b,
The mobile terminal further calculates the output layer using the weight β corresponding to the encryption key used for the encryption, with respect to the calculation result of the hidden layer in the server.
A sensing agent system using a mobile terminal characterized by the above.
前記サーバは、クラウドサーバであって、
前記携帯端末はインターネットを通して前記サーバに接続する、
ことを特徴とする携帯端末を用いた察知エージェントシステム。 In any one of Claim 1 thru|or 6,
The server is a cloud server,
The mobile terminal connects to the server through the Internet,
A sensing agent system using a mobile terminal characterized by the above.
さらに、コンピュータを有し、
前記コンピュータは、学習フェーズとして、
隠れニューロン数を決定し、
ユーザから取得される情報から取得した特徴ベクトルを暗号化するための第1の鍵と、
大きな乱数行列から部分重み行列を決定するための第2の鍵と、隠れ層の計算結果の要素のうちその後の処理に用いない要素を決定するための第3の鍵を生成し、更に出力層の重みを算出する、
ことを特徴とする携帯端末を用いた察知エージェントシステム。 In claim 2,
In addition, having a computer,
The computer, as a learning phase,
Determine the number of hidden neurons,
A first key for encrypting the feature vector acquired from the information acquired from the user,
A second key for determining a partial weight matrix from a large random number matrix and a third key for determining an element that is not used in the subsequent processing among elements of the calculation result of the hidden layer are generated, and the output layer is further generated. Calculate the weight of
A sensing agent system using a mobile terminal characterized by the above.
さらに、識別分類フェーズとして、
前記携帯端末は、
前記第1、第2、第3の鍵と前記出力層の重みを保存し、前記第1の鍵を用いて、前記特徴ベクトルを暗号化し、
前記暗号化された特徴ベクトルと、前記第2の鍵及び隠れニューロン数を前記サーバに送信し、
前記サーバは、
前記第2の鍵及び隠れニューロン数により隠れ層の重みを求め、隠れ層を計算して携帯端末に送信し、更に
前記携帯端末は、前記計算された隠れ層の出力から前記第3の鍵により後の計算に用いない要素を決定する、
ことを特徴とする携帯端末を用いた察知エージェントシステム。 In claim 8,
Furthermore, as an identification and classification phase,
The mobile terminal is
Storing the weights of the first, second and third keys and the output layer, encrypting the feature vector using the first key,
Sending the encrypted feature vector, the second key and the number of hidden neurons to the server,
The server is
The weight of the hidden layer is obtained from the second key and the number of hidden neurons, the hidden layer is calculated and transmitted to the mobile terminal, and the mobile terminal uses the third key from the calculated output of the hidden layer. Determine which elements are not used in subsequent calculations,
A sensing agent system using a mobile terminal characterized by the above.
学習フェーズと識別分類フェーズを有し、
前記学習フェーズとして、コンピュータによる、
前記携帯端末における転置式暗号化のための異なるn個の暗号鍵(key1−keyn)と、前記暗号鍵に対応して、ニューラルネットワークの出力層の計算のための重みβを生成し、更に、サーバにおける前記ニューラルネットワークの隠れ層の計算に用いるニューロンの重みWとバイアスbを生成するステップと、
前記識別分類フェーズとして、
前記携帯端末による前記n個の暗号鍵をランダムに用いて、特徴ベクトルを暗号化するステップと、
前記サーバによる前記暗号化された特徴ベクトルを前記ニューロンの重みWとバイアスbを用いて前記ニューラルネットワークの隠れ層の計算をするステップと、
前記携帯端末により更に、前記隠れ層の計算結果に対し、前記特徴ベクトルを暗号化に用いた暗号鍵に対応する重みβを用いて前記ニューラルネットワークの出力層の計算を行うステップを、
有することを特徴とする機械学習方法。 A machine learning method in a sensing agent system using a mobile terminal,
It has a learning phase and an identification and classification phase,
By the computer as the learning phase,
N different encryption keys (key 1 -key n ) for transposed encryption in the mobile terminal, and weights β for calculating the output layer of the neural network are generated corresponding to the encryption keys, Further, generating a neuron weight W and a bias b used in the calculation of the hidden layer of the neural network in the server,
As the identification and classification phase,
Encrypting a feature vector by randomly using the n encryption keys by the mobile terminal;
Calculating the hidden layer of the neural network using the encrypted feature vector by the server using the weight W of the neuron and the bias b;
The step of calculating the output layer of the neural network using the weight β corresponding to the encryption key used for encryption of the feature vector for the calculation result of the hidden layer by the mobile terminal,
A machine learning method characterized by having.
学習フェーズと、識別分類フェーズを有し、
前記学習フェーズとして、
コンピュータによる、
隠れニューロン数を決定するステップと、
ユーザから取得される情報から取得した特徴ベクトルを暗号化するための第1の鍵と、
大きな乱数行列から部分重み行列を決定するための第2の鍵と、隠れ層の計算結果の要素のうちその後の処理に用いない要素を決定するための第3の鍵を生成するステップと
出力層の重みを算出するステップを有し、
前記携帯端末に第1、第2、第3の鍵と前記出力層の重みを保存するステップを有し、
前記識別分類フェーズとして、
前記携帯端末による前記第1の鍵を用いて、前記特徴ベクトルを暗号化するステップと、
暗号化された特徴ベクトルと、前記第2の鍵及び隠れニューロン数をサーバに送信するステップと、
前記サーバにより、前記第2の鍵及び隠れニューロン数により隠れ層の重みを求め、隠れ層を計算して携帯端末に送信するステップと、
携帯端末で、前記計算された隠れ層の出力から前記第3の鍵により後の計算に用いない要素を決定し、更に出力層の計算を行うステップを有する、
ことを特徴とする機械学習方法。 A machine learning method in a sensing agent system using a mobile terminal,
It has a learning phase and an identification and classification phase,
As the learning phase,
By computer,
Determining the number of hidden neurons,
A first key for encrypting the feature vector acquired from the information acquired from the user,
A step of generating a second key for determining a partial weight matrix from a large random number matrix, and a third key for determining an element of the hidden layer calculation result that is not used in the subsequent processing and an output layer The step of calculating the weight of
Storing the weights of the first, second and third keys and the output layer in the mobile terminal,
As the identification and classification phase,
Encrypting the feature vector using the first key by the mobile terminal;
Sending the encrypted feature vector, the second key and the number of hidden neurons to a server,
Calculating the weight of the hidden layer by the server using the second key and the number of hidden neurons, calculating the hidden layer, and transmitting the hidden layer to the mobile terminal;
The mobile terminal further includes a step of determining an element that is not used in a subsequent calculation by the third key from the calculated output of the hidden layer, and further calculating an output layer.
A machine learning method characterized by the above.
コンピュータに、
前記携帯端末における転置式暗号化のための異なるn個の暗号鍵(key1−keyn)と、前記暗号鍵に対応して、ニューラルネットワークの出力層の計算のための重みβを生成し、更に、サーバにおける前記ニューラルネットワークの隠れ層の計算に用いるニューロンの重みWとバイアスbを生成するステップを実行させ、
前記携帯端末に、
前記n個の暗号鍵をランダムに用いて、特徴ベクトルを暗号化するステップを実行させ、
前記サーバに
前記暗号化された特徴ベクトルを前記ニューロンの重みWとバイアスbを用いて前記ニューラルネットワークの隠れ層の計算をするステップを実行させ、更に、
前記携帯端末に、
前記隠れ層の計算結果に対し、前記特徴ベクトルを暗号化に用いた暗号鍵に対応する重みβを用いて前記ニューラルネットワークの出力層の計算を行うステップを実行させる、
ことを特徴とするプログラム。 A program for executing a machine learning method in a sensing agent system having a mobile terminal and a server,
On the computer,
N different encryption keys (key 1 -key n ) for transposed encryption in the mobile terminal, and weights β for calculating the output layer of the neural network are generated corresponding to the encryption keys, Furthermore, the step of generating a neuron weight W and a bias b used for calculation of the hidden layer of the neural network in the server is executed,
In the mobile terminal,
Performing a step of encrypting a feature vector by randomly using the n encryption keys,
Causing the server to perform a step of calculating a hidden layer of the neural network using the encrypted feature vector using the weight W of the neuron and the bias b;
In the mobile terminal,
The step of calculating the output layer of the neural network is executed on the calculation result of the hidden layer using the weight β corresponding to the encryption key used for encryption of the feature vector,
A program characterized by that.
学習フェーズと、識別分類フェーズを有し、
前記学習フェーズとして、
コンピュータに、
隠れニューロン数を決定させるステップと、
ユーザから取得される情報から取得した特徴ベクトルを暗号化するための第1の鍵と、
大きな乱数行列から部分重み行列を決定するための第2の鍵と、隠れ層の計算結果のうちその後の処理に用いない要素を決定するための第3の鍵を生成するステップと
出力層の重みを算出するステップを実行させ、
前記携帯端末に前記第1、第2、第3の鍵と前記出力層の重みを保存させるステップを実行させ、更に、
前記識別分類フェーズとして、
前記携帯端末に、
前記第1の鍵を用いて、前記特徴ベクトルを暗号化させるステップと、
暗号化された特徴ベクトルと、前記第2の鍵及び隠れニューロン数をサーバに送信させるステップを実行させ、
前記サーバに、
前記第2の鍵及び隠れニューロン数により隠れ層の重みを求め、隠れ層を計算して携帯端末に送信させるステップを実行させ、更に
前記携帯端末に、
前記隠れ層の計算結果のうちその後の処理に用いない要素を前記第3の鍵を用いて決定させ、その後、出力層を計算させる、
ことを特徴とするプログラム。 A program for executing a machine learning method in a sensing agent system using a mobile terminal,
It has a learning phase and an identification and classification phase,
As the learning phase,
On the computer,
Determining the number of hidden neurons,
A first key for encrypting the feature vector acquired from the information acquired from the user,
A step of generating a second key for determining a partial weight matrix from a large random number matrix and a third key for determining an element of the hidden layer calculation result that is not used in the subsequent processing and the weight of the output layer Perform the steps to calculate
Causing the mobile terminal to store the weights of the first, second and third keys and the output layer, and
As the identification and classification phase,
In the mobile terminal,
Encrypting the feature vector using the first key;
Executing a step of transmitting the encrypted feature vector, the second key and the number of hidden neurons to a server,
On the server,
The step of obtaining the weight of the hidden layer by the second key and the number of hidden neurons, executing the step of calculating the hidden layer and transmitting it to the mobile terminal, and further causing the mobile terminal to:
Among the calculation results of the hidden layer, elements that are not used in the subsequent processing are determined using the third key, and then the output layer is calculated.
A program characterized by that.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016175700 | 2016-09-08 | ||
JP2016175700 | 2016-09-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018045679A JP2018045679A (en) | 2018-03-22 |
JP6746139B2 true JP6746139B2 (en) | 2020-08-26 |
Family
ID=61694973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017120278A Active JP6746139B2 (en) | 2016-09-08 | 2017-06-20 | Detection agent system using mobile terminal, machine learning method in detection agent system, and program for implementing the same |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6746139B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2020157939A1 (en) * | 2019-01-31 | 2021-10-14 | 富士通株式会社 | Information processing device, learning history management system and learning history management program |
JP7084907B2 (en) * | 2019-11-28 | 2022-06-15 | 花王株式会社 | Quality measurement method and quality measurement device |
CN111382455B (en) * | 2020-03-18 | 2023-05-26 | 北京丁牛科技有限公司 | File protection method and device |
CN113723604B (en) * | 2020-05-26 | 2024-03-26 | 杭州海康威视数字技术股份有限公司 | Neural network training method and device, electronic equipment and readable storage medium |
JP7382538B2 (en) * | 2021-06-11 | 2023-11-16 | 株式会社Preferred Networks | Information processing device, information processing method, program, and information processing system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4086419B2 (en) * | 1999-07-08 | 2008-05-14 | キヤノン株式会社 | Information processing apparatus and method |
JP2008102890A (en) * | 2006-10-20 | 2008-05-01 | One Heart Plan Inc | Access security management system by cellular phone and program |
JP2016031747A (en) * | 2014-07-30 | 2016-03-07 | キヤノン株式会社 | Information processing apparatus and information processing method |
JPWO2018011842A1 (en) * | 2016-07-11 | 2019-04-25 | 株式会社Uei | Arithmetic processing system using hierarchical network |
-
2017
- 2017-06-20 JP JP2017120278A patent/JP6746139B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018045679A (en) | 2018-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6746139B2 (en) | Detection agent system using mobile terminal, machine learning method in detection agent system, and program for implementing the same | |
KR102536354B1 (en) | Systems and methods for biometric identification | |
US11816226B2 (en) | Secure data processing transactions | |
CN111046433B (en) | Model training method based on federal learning | |
CN110753926B (en) | Method, system and computer readable storage medium for data encryption | |
Zhang et al. | Privacy-preserving double-projection deep computation model with crowdsourcing on cloud for big data feature learning | |
EP3627759A1 (en) | Method and apparatus for encrypting data, method and apparatus for training machine learning model, and electronic device | |
WO2019102624A1 (en) | Homomorphic inference device, homomorphic inference method, homomorphic inference program, and anonymized information processing system | |
US11868428B2 (en) | Apparatus and method with compressed neural network computation | |
Giesbertz | Are natural orbitals useful for generating an efficient expansion of the wave function? | |
Shafee et al. | Privacy attacks against deep learning models and their countermeasures | |
JPWO2019208793A1 (en) | Movement situational awareness model learning device, movement situational awareness device, method, and program | |
Karri | Secure robot face recognition in cloud environments | |
CN109412791B (en) | Key information processing method, device, electronic equipment and computer-readable medium | |
Hamza et al. | Privacy-preserving deep learning techniques for wearable sensor-based Big Data applications | |
Garain et al. | Differentially private human activity recognition for smartphone users | |
Kumar et al. | Membership mappings for practical secure distributed deep learning | |
Sundarakantham et al. | A hybrid deep learning framework for privacy preservation in edge computing | |
CA3109502A1 (en) | System and method for distributed non-linear masking of sensitive data for machine learning training | |
Janet et al. | End-to-end encryption and prediction of medical insurance cost | |
US20170302437A1 (en) | Nondecreasing sequence determining device, method and program | |
US20230081162A1 (en) | Method and apparatus for privacy preserving using homomorphic encryption with private variables | |
Khemchandani et al. | Generalized eigenvalue proximal support vector regressor | |
JP7360074B2 (en) | Secure calculation method, secure calculation system and program | |
Hashimoto et al. | An ELM-based privacy preserving protocol for cloud systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190730 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200604 |
|
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: 20200707 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200730 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6746139 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |