JP2023081816A - 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム - Google Patents
機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム Download PDFInfo
- Publication number
- JP2023081816A JP2023081816A JP2022072534A JP2022072534A JP2023081816A JP 2023081816 A JP2023081816 A JP 2023081816A JP 2022072534 A JP2022072534 A JP 2022072534A JP 2022072534 A JP2022072534 A JP 2022072534A JP 2023081816 A JP2023081816 A JP 2023081816A
- Authority
- JP
- Japan
- Prior art keywords
- layer
- machine learning
- image data
- unit
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 124
- 238000004364 calculation method Methods 0.000 claims abstract description 122
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 54
- 238000000034 method Methods 0.000 claims abstract description 37
- 230000002596 correlated effect Effects 0.000 claims description 2
- 239000010410 layer Substances 0.000 description 190
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 7
- 238000011176 pooling Methods 0.000 description 6
- 206010028980 Neoplasm Diseases 0.000 description 5
- 201000011510 cancer Diseases 0.000 description 5
- 238000003745 diagnosis Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 4
- 238000002372 labelling Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 210000003734 kidney Anatomy 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Bioethics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
【課題】ユーザの求める実用的な計算コストとセキュリティレベルに応じた、畳み込みニューラルネットワークを用いた機械学習の技術を提供する。【解決手段】機械学習装置は、画像データを取得するデータ取得部と、画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部とを備え、畳み込みニューラルネットワークは複数の層から構成され、機械学習計算部は、準同型暗号による暗号実行領域において演算する暗号処理部と、平文実行領域において演算する平文処理部と、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部とを有し、暗号処理部は、入力層から第N層までの演算を実行し、平文処理部は、第(N+1)層から出力層までの演算を実行する。【選択図】図7
Description
本開示は、機械学習装置、機械学習システム、機械学習方法、および機械学習プログラムに関する。
近年、畳み込みニューラルネットワークの学習モデルを用いた画像認識により、複雑なデータの分析を高精度に行うことが可能となっている。
一方、分析対象が医療画像など個人のプライバシーに直結した機微データである場合は、プライバシー情報を秘匿(暗号化)したまま分析処理を行うことが求められる。
例えば、特許文献1では、準同型暗号を用いたニューラルネットワークのシステムに関する技術が開示されている。
準同型暗号を用いた畳み込みニューラルネットワークにより画像認識を行えば、プライバシー情報を暗号化したまま分析処理を行うことができる。しかしながら、一般的に、準同型暗号を用いた演算は、セキュリティレベルは高いものの、計算量が膨大になってしまい、実用的な計算コストで実行することが難しいという課題があった。
そこで、本開示は、上記課題を解決すべくなされたものであって、その目的は、ユーザの求める実用的な計算コストとセキュリティレベルに応じた、畳み込みニューラルネットワークを用いた機械学習に関する技術を提供することである。
上記目的を達成するため、本開示に係る機械学習装置は、画像データを取得するデータ取得部と、画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部と、を備え、畳み込みニューラルネットワークは複数の層から構成され、機械学習計算部は、準同型暗号による暗号実行領域において演算する暗号処理部と、平文実行領域において演算する平文処理部と、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部と、を有し、暗号処理部は、入力層から第N層までの演算を実行し、平文処理部は、第(N+1)層から出力層までの演算を実行する。
上記目的を達成するため、本開示に係る機械学習システムは、画像データを取得するデータ取得部と、画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部と、を備え、畳み込みニューラルネットワークは複数の層から構成され、機械学習計算部は、準同型暗号による暗号実行領域において演算する暗号処理部と、平文実行領域において演算する平文処理部と、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部と、を有し、暗号処理部は、入力層から第N層までの演算を実行し、平文処理部は、第(N+1)層から出力層までの演算を実行する。
上記目的を達成するため、本開示に係る機械学習方法は、画像データを取得するステップと、画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行うステップと、を備え、畳み込みニューラルネットワークは複数の層から構成され、畳み込みニューラルネットワークを用いた計算処理を行うステップは、準同型暗号による暗号実行領域において演算するステップと、平文実行領域において演算するステップと、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付けるステップと、を有し、暗号実行領域では、入力層から第N層までの演算が実行され、平文実行領域では、第(N+1)層から出力層までの演算が実行される。
また、上記目的を達成するため、本開示に係る機械学習プログラムは、制御部と、記憶部と、を備えるコンピュータに実行させる機械学習プログラムであって、制御部が、画像データを取得するステップと、記憶部が、画像データを記憶するステップと、制御部が、記憶部が記憶した画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行うステップと、を備え、畳み込みニューラルネットワークは複数の層から構成され、畳み込みニューラルネットワークを用いた計算処理を行うステップは、準同型暗号による暗号実行領域において演算するステップと、平文実行領域において演算するステップと、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付けるステップと、を有し、暗号実行領域では、入力層から第N層までの演算が実行され、平文実行領域では、第(N+1)層から出力層までの演算が実行される。
本開示によれば、ユーザの求める実用的な計算コストとセキュリティレベルに応じた畳み込みニューラルネットワークを用いた機械学習を実現することができる。
以下、本開示の実施形態について図面を参照して説明する。実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。なお、以下の実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また、実施形態に示される構成要素のすべてが、本開示の必須の構成要素であるとは限らない。
<本発明の概要>
近年、畳み込みニューラルネットワークを用いて高精度で画像認識を行うことが可能となり、複雑なデータの分析を行うケースが増加しており、画像認識の対象となる画像データに個人情報等の機微データが含まれる場合は、プライバシーへの配慮が求められる。そこで、畳み込みニューラルネットワークに係る計算過程を、暗号化したまま演算を行うことができる準同型暗号を用いて実行すれば、プライバシーを保護しつつ、画像データの分析処理を行うことができる。
近年、畳み込みニューラルネットワークを用いて高精度で画像認識を行うことが可能となり、複雑なデータの分析を行うケースが増加しており、画像認識の対象となる画像データに個人情報等の機微データが含まれる場合は、プライバシーへの配慮が求められる。そこで、畳み込みニューラルネットワークに係る計算過程を、暗号化したまま演算を行うことができる準同型暗号を用いて実行すれば、プライバシーを保護しつつ、画像データの分析処理を行うことができる。
しかしながら、一般的に、準同型暗号を用いた演算は、セキュリティレベルは高いものの、計算コストが膨大になってしまうという課題がある。そこで、本発明では、当該課題を解決すべく、畳み込みニューラルネットワークを用いた画像認識において、畳み込み演算のフィルタリング処理が繰り返される過程で、画像を目視で識別することが困難になっていくことに着目した。すなわち、本発明では、ユーザが予め定めた計算過程までを、準同型暗号による暗号実行領域において処理し、それ以降の計算過程は平文実行領域において処理を行う。
目視で画像を識別することが困難になる一定の計算過程以降では、平文実行領域において計算を行うことにより、計算過程の画像が第三者に流出したとしても、当該画像を目視で識別することが困難なため、暗号化されていなくても、機微データの内容を第三者に知られることを防ぐことができる。それと同時に、全ての計算過程を準同型暗号による暗号実行領域において実行しないため、計算コストを抑えることができる。
<実施形態1>
(機械学習システム1の構成)
図1は、機械学習システム1の全体図である。図1に示すように、本実施形態に係る機械学習システム1は、機械学習装置100と、ユーザによって使用される一つ以上の端末装置200とを備える。
(機械学習システム1の構成)
図1は、機械学習システム1の全体図である。図1に示すように、本実施形態に係る機械学習システム1は、機械学習装置100と、ユーザによって使用される一つ以上の端末装置200とを備える。
機械学習装置100と、端末装置200とは、ネットワークNWを介して通信可能に接続される。ネットワークNWは、WAN(Wide Area Network)、LAN(Local Area Network)等から構成される。機械学習システム1は、ユーザからの入力に基づいて機械学習の学習モデルを構築し、又はユーザからの入力及び学習モデルを用いて、機械学習による推論を行う。
端末装置200は、ユーザからの入力を受け付け、その入力内容を、ネットワークNWを介して機械学習装置100に送信する。また、端末装置200は、機械学習装置100からネットワークNWを介して送信されたデータを受信し、ユーザに提示する。
(機械学習装置100のハードウェア構成)
図2は、本実施形態の機械学習装置100のハードウェア構成を示す図である。機械学習装置100は、汎用のコンピュータである。機械学習装置100は、例えば、サーバコンピュータ、据え置き型のPC(Personal Computer)、ラップトップPC等により実現される。
図2は、本実施形態の機械学習装置100のハードウェア構成を示す図である。機械学習装置100は、汎用のコンピュータである。機械学習装置100は、例えば、サーバコンピュータ、据え置き型のPC(Personal Computer)、ラップトップPC等により実現される。
図2に示すように、機械学習装置100は、プロセッサ11と、メモリ12と、ストレージ13と、通信IF14と、入出力IF15と、を備える。
プロセッサ11は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路などにより構成される。メモリ12は、プログラム、および、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリにより実現される。メモリ12に記憶されるプログラムは、本発明に係る機械学習を実行するプログラム等である。ストレージ13は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)、SSD(Solid State Drive)により実現される。通信IF14は、機械学習装置100が外部の装置と通信するため、信号を送受信するためのインタフェースである。入出力IF15は、ユーザからの入力を受け付けるための入力装置、および、ユーザに対し情報を提示するための出力装置とのインタフェースとして機能する。
なお、端末装置200においても、図2に示したハードウェア構成と同様の構成としてもよい。端末装置200の各構成要素の動作は、上述の機械学習装置100と同様に、メモリ12に記憶されたプログラムに従ったプロセッサ11により実現する。
(機械学習装置100の機能的構成)
図3は、本実施形態に係る機械学習装置100の機能的構成を示すブロック図である。図3を参照して、実施形態1に係る機械学習装置100の機能的構成について説明する。
図3は、本実施形態に係る機械学習装置100の機能的構成を示すブロック図である。図3を参照して、実施形態1に係る機械学習装置100の機能的構成について説明する。
機械学習装置100は、通信部110と、記憶部120と、制御部130とを備える。
通信部110は、機械学習装置100が他の装置と通信するための処理を行う。ここでいう他の装置とは、ネットワークNWで接続されたPCでもよいし、スマートフォン、タブレットなどの端末であってもよい。また、他の装置は、入出力装置、例えば、フラッシュメモリやHDD、SSDなどによりデータの入出力を行う装置であってもよい。
通信部110は、また、ネットワークNWを介した装置やローカルに接続された装置等と、セキュリティが確保されたセキュアな通信チャンネルでデータを送受信する。セキュアな通信チャンネルの構築、通信方法は、共通鍵(セッション鍵など)や公開鍵等を用いた周知の技術であるため、説明を省略する。
記憶部120は、例えば、RAM等の揮発性のメモリ、フラッシュメモリ、HDD、SSD等により構成され、機械学習装置100が利用するデータ、及びプログラムを記憶する。記憶部120は、例えば、後述する暗号処理部1322が暗号実行領域において演算するため、データを暗号化し、又は暗号化されたデータを復号するための鍵を記憶する鍵格納部121、機械学習装置100において使用する学習モデルを記憶する学習モデル格納部122を含む。なお、鍵は、機械学習装置100内で記憶するのではなく、機械学習装置100とネットワークを介して、又は直接的に接続される鍵管理装置(不図示)において記憶するようにしてもよい。また、機械学習装置100が、機械学習のために利用した画像データ等は、セキュリティ向上のため、使用後は記憶部120から削除することが好ましい。
鍵格納部121(後述する図4参照)は、暗号処理部1322が暗号実行領域において演算するために、データを暗号化し、又は暗号化されたデータを復号するための鍵を記憶する。鍵格納部121は、例えば、ID、鍵データや、鍵ファイルのパスを記憶する。IDは、ユーザや、組織など任意のグループ毎に割り当てて鍵を利用する構成としてもよいし、セッション毎に割り当てて鍵を利用する構成としてもよい。
学習モデル格納部122(後述する図5参照)は、機械学習装置100において使用する学習モデルを記憶する。学習モデル格納部122は、学習モデルに加え、複数の学習モデルを区別するためのID、学習モデルが適用できる範囲などを示すタグ、画像診断において特定の部位の特定までも可能とする学習モデルか否かの区別、当該学習モデルを用いて計算を行う際の計算コスト(計算量、計算時間、費用、計算資源等を含む。)及び計算速度、当該学習モデルを用いて推論を行った場合の精度などを関連付けて記憶してもよい。
制御部130は、機械学習装置100のプロセッサが記憶部120に記憶されるプログラムを読み込み、プログラムに含まれる命令を実行することにより実現される。制御部130は、機械学習装置100の動作を制御する。具体的には、制御部130は、データ取得部131と、機械学習計算部132と、受付部1321と、暗号処理部1322と、平文処理部1323と、を含む。
データ取得部131は、機械学習により学習モデルのパラメータを更新する場面(以下、特に言及する場合を除き、学習モデルを新たに生成する場合も含む。)においては、教師データとなる画像データ及び当該画像データに対するラベルを取得する。「ラベル」は、例えば、画像データが示す対象物の種別を示したり、画像データにおいて特定したい対象物の範囲(位置)を示したりするものを含む。また、データ取得部131は、学習モデルを用いて推論を行う場面においては、推論対象となる画像データを取得する。例えば、ユーザは、端末装置200等において画像データ及びラベルを入力し、データ取得部131は、ネットワークNWを介して、ユーザが入力した画像データ及びラベルを取得する。
機械学習計算部132は、データ取得部131において取得した画像データ等に基づいて、畳み込みニューラルネットワークを用いた計算処理を行う。この計算処理は、具体的には、学習モデルのパラメータを更新するための学習、もしくは、取得した画像データ等から学習モデルを用いて行う推論のための計算処理である。なお、畳み込みニューラルネットワークは複数の層から構成される。「層」については、図7及び図8(後述)において説明する。
機械学習計算部132は、計算処理の過程において、予めユーザから暗号実行領域において演算する範囲を取得しておき、計算処理の過程の一部を準同型暗号による暗号実行領域において演算し、計算処理の過程の一部を平文実行領域において演算する。機械学習計算部132は、具体的には、受付部1321と、暗号処理部1322と、平文処理部1323と、を含む。
受付部1321は、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層(ただし、Nは自然数。)を指定する層指定情報を受け付ける。すなわち、層指定情報により第N層が指定されたとき、入力層から第N層までは暗号実行領域において演算し、第(N+1)層から出力層までの演算を平文実行領域において演算する。
受付部1321は、第N層を指定する層指定情報を受け付けるが、ここで取得する層指定情報は、「N」を示す具体的な数字であって、畳み込みニューラルネットワークにおいて、中間層のどの層までを暗号実行領域において演算するかという範囲を示すものである。畳み込みニューラルネットワークは、一般的には、入力層(0層)、中間層(1層~M層)、出力層(M+1層)といった複数の層を有する。ここで、Mは任意の自然数である。このとき、ユーザは、中間層の第N層までを暗号実行領域において演算することを決め、受付部1321は、暗号実行領域において演算を行う境界の層となるNを取得する。
また、層指定情報は、「N」を示す具体的な数字の他に、「N」を指定することができる情報であってもよい。例えば、ユーザから受け付けた計算コストの条件であってもよい。受付部1321は、層指定情報として、計算コストの条件を受け付けた場合は、その計算コストで実行することができる「N」を算出する。
暗号処理部1322は、準同型暗号による暗号実行領域において演算する機能を有する。暗号処理部1322は、機械学習計算部132における計算処理の過程において、入力層(0層)から中間層のN層までの計算処理を準同型暗号による暗号実行領域において演算する。
暗号処理部1322は、具体的には、鍵格納部121において管理する暗号化のための鍵(公開鍵)を用いて、データ取得部131が取得した画像データ等を暗号化する。このとき、暗号処理部1322は、暗号化の方法について、暗号化状態のまま演算が可能な準同型暗号方式(Paillier方式等、Lifted-Ellgamal方式、Somewhat Homomorphic Encryption方式、Fully Homomorphic Encryption方式等)を用いる。
暗号処理部1322は、データ取得部131が取得した画像データ等及び機械学習に用いる学習モデルを暗号化し、暗号実行領域において演算する。
暗号処理部1322は、入力層(0層)からユーザの指定した中間層のN層までの計算処理を暗号化実行領域において演算した後、鍵格納部121において管理する復号のための鍵(秘密鍵)を用いて、データを復号する。
平文処理部1323は、平文実行領域において演算する機能を有する。平文処理部1323は、暗号処理部1322において演算されたN層までの演算結果を取得し、引き続き(N+1)層から出力層までの演算を平文実行領域において行う。これにより、推論または学習モデルのパラメータの更新を行う。
なお、上述した機械学習装置100の機能の一部を、端末装置200が担ってもよい。例えば、予め、機械学習装置100と端末装置200とで、画像データ等を準同型暗号で暗号化するための鍵を共有しておき、端末装置200において、推論や機械学習の対象となる画像データを準同型暗号で暗号化するようにしてもよい。
端末装置200は、準同型暗号で暗号化された画像データを機械学習装置100に送信し、機械学習装置100は、通信部110を介して受信した当該画像データを、記憶部120に格納する。そして、データ取得部131は、暗号化された画像データを記憶部120から取得し、暗号処理部1322へ送る。次いで、暗号処理部1322は、暗号化された画像データについて演算を実行する。その際、上述したように暗号処理部1322が演算結果を復号するのに代えて、平文処理部1323が演算結果を復号するようにしてもよい。すなわち、暗号処理部1322では、準同型暗号で暗号化されたデータのみ扱うようにする。このような構成をとることで、機械学習装置100においては、画像データが準同型暗号で暗号化された状態、もしくは、復号されても人間が画像を目視では識別困難な状態であるため、機械学習装置100は、よりセキュリティを高めて、計算処理を実行することができる。
(データベースの具体例)
図4は、鍵格納部121の一例を示す図である。鍵格納部121は、例えば、ユーザ、セッションなど鍵の利用場面を識別するための「ID」、鍵(公開鍵「key1」及び秘密鍵「key2」)の値を、関連付けて記憶する。図4において、「ID」が「0000001」の公開鍵は「0KJFDEMNFS679FDDFHKL…」、秘密鍵は、「2SFSHLJHFSKLJADL7DJLH…」である。同様に、「ID」が「0000002」の公開鍵は「43JFLKEJFDHKLFS3JKLFN…」、秘密鍵は、「FDLK732492SFGKJHKSDH…」であり、「ID」が「0000003」の公開鍵は「JLKJ02SFHL89JLKHJKF897…」、秘密鍵は、「40389439LFKSJFLKJFSLH…」である。なお、図4は、鍵管理の一例であって、鍵の管理方法は、これらに限られない。例えば、鍵と復号権限を持つユーザとを関連付けて記憶してもよい。
図4は、鍵格納部121の一例を示す図である。鍵格納部121は、例えば、ユーザ、セッションなど鍵の利用場面を識別するための「ID」、鍵(公開鍵「key1」及び秘密鍵「key2」)の値を、関連付けて記憶する。図4において、「ID」が「0000001」の公開鍵は「0KJFDEMNFS679FDDFHKL…」、秘密鍵は、「2SFSHLJHFSKLJADL7DJLH…」である。同様に、「ID」が「0000002」の公開鍵は「43JFLKEJFDHKLFS3JKLFN…」、秘密鍵は、「FDLK732492SFGKJHKSDH…」であり、「ID」が「0000003」の公開鍵は「JLKJ02SFHL89JLKHJKF897…」、秘密鍵は、「40389439LFKSJFLKJFSLH…」である。なお、図4は、鍵管理の一例であって、鍵の管理方法は、これらに限られない。例えば、鍵と復号権限を持つユーザとを関連付けて記憶してもよい。
図5は、学習モデル格納部122の一例を示す図である。学習モデル格納部122は、複数の学習モデルを区別するための「ID」、学習モデルが適用できる範囲などを示す「タグ」、画像診断において特定の部位の特定までも可能とする学習モデルか否かの区別する「部位特定」、当該学習モデルを用いて計算を行う際のコスト(計算量)を示す「コスト/MB」、及び計算速度を示す「計算速度/Mb」、当該学習モデルを用いて推論を行った場合の精度を示す「精度」、学習モデルのファイル名を示す「ファイル」が関連付けて記憶されている。
図5において、「ID」が「0001」の学習モデルは、「タグ」欄が「CT、ガン、腎臓、医療、画像診断」であり、これらの用途に適用可能で、部位特定には対応していないことを示している。また、「コスト」は10円/Mb、「計算速度」は1Mbあたり5'10、「精度」は80%で、学習モデル自身は「0001.json」というファイルに記憶されていることを示している。
また、「ID」が「0002」の学習モデルは、「タグ」欄が「CT、ガン、腎臓、医療、画像診断」であり、これらの用途に適用可能で、「部位特定」欄が「〇」であることから、部位特定に対応していることを示している。また、「コスト」は45円/Mb、「計算速度」は1Mbあたり6'00、「精度」は85%で、学習モデル自身は「0002.json」というファイルに記憶されていることを示している。
「ID」が「0003」や「0004」についても同様であるので、説明を省略する。なお、学習モデル格納部122は、上述した項目に限らず、学習モデルを適用する組織(会社、部署など)、業界(医療、食品、ECなど)や、所有者等に関連付けて記憶されていてもよい。
(画像データ及びラベルの具体例)
図6は、ユーザが画像データとラベルを入力するための画面の一例を示す図である。データ取得部131は、ユーザから対象となる画像データの入力を受け付けると、当該画像データを読み込んだ上で、画面401に示すような画像410やファイル情報(ファイル名、ファイル生成日時等)をユーザが操作する端末装置200に表示させる。このとき、データ取得部131は、ユーザからラベルも取得する。画面401において、ユーザは、入力した画像データが「正常」を示すデータか「異常」を示すデータかを選択し、ラベル付けを行う。また、ユーザは、異常部分を示す部位の特定まで行う学習モデルのラベル付けを行う場合には、当該部位の範囲を画面上で指定し、ラベル付けを行う。例えば、図6において、指定された部位特定の範囲は、画像410の斜線部分にて示されている。
図6は、ユーザが画像データとラベルを入力するための画面の一例を示す図である。データ取得部131は、ユーザから対象となる画像データの入力を受け付けると、当該画像データを読み込んだ上で、画面401に示すような画像410やファイル情報(ファイル名、ファイル生成日時等)をユーザが操作する端末装置200に表示させる。このとき、データ取得部131は、ユーザからラベルも取得する。画面401において、ユーザは、入力した画像データが「正常」を示すデータか「異常」を示すデータかを選択し、ラベル付けを行う。また、ユーザは、異常部分を示す部位の特定まで行う学習モデルのラベル付けを行う場合には、当該部位の範囲を画面上で指定し、ラベル付けを行う。例えば、図6において、指定された部位特定の範囲は、画像410の斜線部分にて示されている。
このようにして、データ取得部131は、画像データ及び当該画像データに対するラベルを関連付けた教師データを取得する。そして、機械学習計算部132は、教師データに基づいて、画像データに対するラベルを出力するように畳み込みニューラルネットワークの学習モデルのパラメータを生成(更新)する。ラベルの出力として、例えば、入力した画像データについて、ガンの診断を行う場合、正常を示す画像か異常を示す(ガンの疑い)画像であるかを出力する。また、ガンの疑いがあると出力するときは、その部位特定も出力するようにしてもよい。
なお、推論を行うために画像データの入力のみを行う場合は、ラベル付けは不要であり、画像データの入力のみが行われる。
(畳み込みニューラルネットワークの一例)
図7は、一般的な畳み込みニューラルネットワークのモデル概念図である。ニューラルネットワークは、入力層(0層)、中間層(1層からM層)、出力層(M+1層)といった複数の層を有する。機械学習計算部132は、その計算処理過程において、受付部1321が暗号実行領域で演算する範囲の境界(第N層)を示す層指定情報を取得し、暗号処理部1322において暗号実行領域での演算を、平文処理部1323において平文実行領域での演算を行う。
図7は、一般的な畳み込みニューラルネットワークのモデル概念図である。ニューラルネットワークは、入力層(0層)、中間層(1層からM層)、出力層(M+1層)といった複数の層を有する。機械学習計算部132は、その計算処理過程において、受付部1321が暗号実行領域で演算する範囲の境界(第N層)を示す層指定情報を取得し、暗号処理部1322において暗号実行領域での演算を、平文処理部1323において平文実行領域での演算を行う。
暗号処理部1322は、データ取得部131において取得した画像データ等と選択された学習モデルを、鍵格納部121に記憶する鍵(公開鍵)を用いて準同型暗号で暗号化し、推論または学習モデルのパラメータ更新のための演算を暗号実行領域において行う。具体的には、暗号処理部1322は、0層から中間層の第N層までの演算処理を行う。また、暗号処理部1322は、暗号実行領域における演算結果を、鍵格納部121に記憶する鍵(暗号化した公開鍵と対になる秘密鍵)を用いて復号する。復号した結果は、平文処理部1323へ送ってもよい。なお、暗号実行領域における演算結果を記憶部120に格納する場合は、セキュリティ上、暗号化したまま格納し、平文処理部1323において、演算結果を復号することが好ましい。
平文処理部1323は、暗号処理部1322において復号した画像データ等及び学習モデルを用いて、第(N+1)層から第(M+1)層までの計算過程について、平文実行領域において演算処理を行う。
図8は、中間層を具体的に示した図である。畳み込みニューラルネットワークは、中間層として、一般的に、畳み込み演算を行うための畳み込み層、ReLu層、プーリング層、全結合層などを有する。本発明において、「層」とは、畳み込み層、ReLu層、プーリング層など各層単位を、1層、2層、3層としてもよいし、畳み込み、ReLu、プーリングといった一連の処理を一つの処理単位として1層、2層、3層としてもよい。この場合、例えば、「畳み込み」、「ReLu」、「プーリング」の組み合わせを一層としてもよいし、「畳み込み」、「プーリング」の組み合わせや、「ReLu」、「プーリング」の組み合わせを一層としてもよい。
なお、畳み込みニューラルネットワークは、一般的に、全結合層を中間層の後半で用いることが多いが、全結合層を暗号化実行領域で演算してもよい。
(処理の流れ)
図9は、機械学習装置100が実行する処理の一例を示すフローチャートである。
図9は、機械学習装置100が実行する処理の一例を示すフローチャートである。
制御部130は、画像データ等のデータ、又は画像データ等のデータ及びラベルを、通信部110を介して、端末装置200から取得する(ステップS101)。
制御部130は、暗号実行領域で行う演算と平文実行領域で行う演算との境界となる、第N層を指定する層指定情報を、通信部110を介して、端末装置200から取得する(ステップS102)。
制御部130は、取得した画像等のデータと適用する学習モデルを準同型暗号で暗号化する。そして、0層から第N層までを暗号化実行領域において演算し、その後復号する(ステップS103)。
制御部130は、ステップS103において復号した演算結果に基づいて、第(N+1)層から出力層までを平文実行領域において演算し、推論又は学習モデルのパラメータの更新を行う。そして、制御部130は、演算結果を記憶部120に格納し、処理を終了する(ステップS104)。
(効果の説明)
本実施形態に係る機械学習装置100は、機械学習における演算の一部を暗号化実行領域において、その他の部分を平文実行領域において演算することで、全てを暗号化実行領域において演算する場合と比較して、計算コストを削減し、現実的な時間で演算することを可能にする。
本実施形態に係る機械学習装置100は、機械学習における演算の一部を暗号化実行領域において、その他の部分を平文実行領域において演算することで、全てを暗号化実行領域において演算する場合と比較して、計算コストを削減し、現実的な時間で演算することを可能にする。
畳み込みニューラルネットワークを用いた機械学習モデルでは、一般的に中間層の処理過程において、畳み込み演算のフィルタリング処理が繰り返されることにより、入力層に入力された画像データは、目視で識別が困難な状態となっていく。すなわち、畳み込み演算を繰り返した後の入力データは、人間によって識別することが困難であるから、暗号化していなくとも情報漏洩のリスクが低い。本実施形態に係る機械学習装置100は、この点に着目し、ユーザが指定した第N層までを暗号化実行領域において演算し、第(N+1)層以降を平文実行領域において演算することで、計算コストの削減と、セキュリティの確保の両立を実現することができる。
<実施形態2>
実施形態1に係る機械学習システム1は、ユーザから層指定情報を取得した後、暗号実行領域及び平文実行領域において計算処理を行う。これに対し、実施形態2に係る機械学習システム2は、ユーザが層指定情報を指定する際、入力画像を平文実行領域において計算したときに入力画像が畳み込み演算によりどのように変化するか、また、計算コストがどのように変化するかなどの情報をユーザに提供する。ユーザは、提供された情報を参照して、ユーザが求める計算コストやセキュリティレベルに応じた層指定情報を容易に指定することができるようになる。
実施形態1に係る機械学習システム1は、ユーザから層指定情報を取得した後、暗号実行領域及び平文実行領域において計算処理を行う。これに対し、実施形態2に係る機械学習システム2は、ユーザが層指定情報を指定する際、入力画像を平文実行領域において計算したときに入力画像が畳み込み演算によりどのように変化するか、また、計算コストがどのように変化するかなどの情報をユーザに提供する。ユーザは、提供された情報を参照して、ユーザが求める計算コストやセキュリティレベルに応じた層指定情報を容易に指定することができるようになる。
(機械学習システム2の構成)
図10は、本実施形態に係る機械学習システム2を示す図である。図10に示すように、本実施形態に係る機械学習システム2は、機械学習装置300と、ユーザによって使用される一つ以上の端末装置200と、を備える。機械学習装置300は、第1実施形態に係る機械学習装置100と比較して、提供部3324と、推定部3325と(図11において詳述。)をさらに備える。提供部3324は、ユーザが入力した画像データを平文実行領域において計算した場合にどのように変化するか、また計算コストなどの情報を示すことで、ユーザが暗号実行領域において演算を行う範囲の選択を補助する機能を備える。
図10は、本実施形態に係る機械学習システム2を示す図である。図10に示すように、本実施形態に係る機械学習システム2は、機械学習装置300と、ユーザによって使用される一つ以上の端末装置200と、を備える。機械学習装置300は、第1実施形態に係る機械学習装置100と比較して、提供部3324と、推定部3325と(図11において詳述。)をさらに備える。提供部3324は、ユーザが入力した画像データを平文実行領域において計算した場合にどのように変化するか、また計算コストなどの情報を示すことで、ユーザが暗号実行領域において演算を行う範囲の選択を補助する機能を備える。
(機械学習装置300の機能的構成)
図11は、本実施形態における機械学習装置300の機能的構成を示すブロック図である。機械学習装置300は、通信部110と、記憶部120と、制御部330と、を備える。機械学習装置300における通信部110及び記憶部120の機能構成は、機械学習装置100と同様であるため、説明を省略する。
図11は、本実施形態における機械学習装置300の機能的構成を示すブロック図である。機械学習装置300は、通信部110と、記憶部120と、制御部330と、を備える。機械学習装置300における通信部110及び記憶部120の機能構成は、機械学習装置100と同様であるため、説明を省略する。
制御部330は、機械学習装置300のプロセッサが記憶部120に記憶されるプログラムを読み込み、プログラムに含まれる命令を実行することにより実現される。制御部330は、機械学習装置300の動作を制御する。具体的には、制御部330は、データ取得部131と、機械学習計算部332と、受付部1321と、暗号処理部1322と、平文処理部1323と、提供部3324と、推定部3325と、を含む。制御部330は、提供部3324及び推定部3325を備えること以外は、機械学習装置100における制御部130と同様であるため、重複する説明を省略する。
提供部3324は、データ取得部131において取得するユーザから入力される画像データについて、入力層から出力層までの演算を、平文処理部1323が実行した場合の当該演算に関する平文途中演算情報を提供する。平文途中演算情報とは、入力層から出力層までの途中過程における演算に関する情報であり、平文実行領域における、途中の層で入力又は出力されるデータ、途中の層までにかかる計算時間(及びここから推定される推論又は学習に係る全時間)、途中の層までにかかる計算量(及びここから推定される推論又は学習にかかる全計算量)、計算量から算出される料金などを含むものである。平文途中演算情報は、例えば、平文処理部1323が、ユーザから入力される一つの画像データについて入力層から出力層までの演算を実行し、当該演算に関する情報に基づいて算出することができる。平文途中演算情報は、例えば、通信部110を介して、ユーザが利用する端末装置200に送信されてもよいし、機械学習装置100における表示装置(不図示)に表示されてもよい。
提供部3324は、例えば、平文途中演算情報として、入力層に入力される画像データと、入力層から出力層までの各層に入力されるデータとの情報の差を、ユーザが比較できる態様で提供してもよい。また、提供部3324は、必ずしもユーザが比較できる態様で提供せず、平文途中演算情報として、各層に入力される画像データを提供してもよい。
提供部3324は、畳み込み演算が繰り返されることで目視による識別が困難になることを前提とし、各層に入力される画像データをユーザに提供することで、どの層に入力される画像データまで目視で識別可能かということに関する参考情報(情報の差)を提供し、ときには、比較を行うことにより、暗号化して機械学習を行う必要のある層を判断するための情報を提供する。例えば、サンプルの画像データについて、ある中間層である第1の層と、第1の層より後に処理が実行される第2の層とに入力されるデータのそれぞれをユーザに提示してもよい。これにより、サンプルの画像データが、層の処理によって、どのように変化し、情報の差がでるか、ユーザが比較でき、ユーザが層指定情報を指定するのを支援する。
提供部3324は、入力層から出力層までの全ての入力画像データを提供しなくともよく、入力層から出力層までの複数の所定の層について、暗号処理部1322が演算を行った場合に入力される画像データと、平文処理部1323が演算を行った場合に入力される画像データとを、ユーザが比較できる態様で提供してもよい。このとき、複数の所定の層の選び方については、5層ごとに1層を抽出するなど、周期性をもって選択してもよいし、ランダムに複数の層を抽出してもよい。
提供部3324は、さらに、暗号処理部1322が演算を行った場合に、途中の層に入力される画像データに代えて、マスク画像を提供してもよい。すなわち、暗号処理部1322が演算を行った場合に入力される画像データは暗号化されているため、人にとって識別不能なデータであることから、あえてその画像データを提示する必要性に乏しく、代わりにマスク画像を提供することで、人にとって識別不能なデータであることを示してもよい。
提供部3324は、例えば、入力層から所定の層までを暗号処理部1322が演算し、当該所定の層の次の層から出力層までを平文処理部1323が実行した場合の計算コストを、ユーザが比較できる態様で提供してもよい。提供部3324は、所定の層までを暗号実行領域において演算し、残りを平文実行領域においてに演算した場合の計算時間及び/又は計算量などをユーザに提供することで、暗号化して機械学習を行う必要のある層を判断するための情報提供をすることができる。
提供部3324は、推定部3325(後述)が算出する層指定推定情報を提供してもよい。層指定推定情報は、データ取得部131が取得した画像データに関連するデータと、当該画像データについて指定された層指定情報の相関関係に基づいて算出される情報である。層指定推定情報は、例えば、第N層を具体的に特定する数値であってもよいし、Nの範囲であってもよい。
推定部3325は、データ取得部が取得した画像データに関連するデータと、当該画像データについて指定された層指定情報との相関関係を学習する。画像データに関連するデータとは、画像データを取り扱う業界(医療、食品、EC等)、内容(診断、マーケティング等)、組織、ユーザなどである。推定部3325は、何層目まで暗号化するかを、画像データに関連するデータと相関関係を学習する。そして、推定部3325は、学習した結果、入力される画像データに関連するデータと相関関係にある層指定情報を、層指定推定情報として算出する。上述したように、提供部3324が、推定部3325が算出した層指定推定情報を、平文途中演算情報とともにユーザに提供することで、層指定情報を指定する際の目安となる。これにより、ユーザは層指定情報を容易に指定することができるようになる。
(提供部3324が提供する平文途中演算情報の具体例)
図12は、提供部3324が提供する画面の一例を示す図である。画面402には、平文処理部1323が演算を実行した場合に、計算過程5層の各層に入力される画像データ(「牛」を示す画像)を示しており、ユーザが暗号実行領域において演算を行う範囲を「選択中」であることを示すアイコン412が表示されている。
図12は、提供部3324が提供する画面の一例を示す図である。画面402には、平文処理部1323が演算を実行した場合に、計算過程5層の各層に入力される画像データ(「牛」を示す画像)を示しており、ユーザが暗号実行領域において演算を行う範囲を「選択中」であることを示すアイコン412が表示されている。
図12において、「Input」の部分には、ユーザが入力した入力画像が表示される。また、画面402には、平文途中演算情報として、複数の層(計算過程1~5)における入力画像が、表示されている。一般的に、畳み込みニューラルネットワークにおいて、畳み込み演算のフィルタリング処理が繰り返される過程で、入力画像は目視で識別しにくくなるため、深い層における入力画像ほど、識別が困難な画像となっている。例えば、画面402の入力画像(Input)は、牛であり、Inputと計算過程1で示される画像は、目視では、殆ど区別がつかない。一方、計算過程3~5で示される画像は、牛の輪郭がなく、目視では、画像が示す対象物を識別することが困難であることが分かる。
また、画面402には、複数の層に入力される画像データだけではなく、途中の層までを暗号実行領域において演算し、それ以降を平文実行領域において演算した場合の計算時間(「Time」)や費用(「Cost」)も合わせて示されている。例えば、計算過程1に対して、「Time」は「5'36」であり、「Cost」は「$4」である。すなわち、計算過程1までを暗号実行領域において演算し、それ以降を平文実行領域において演算した場合の計算時間は「5'36」、費用は「$4」であることを示している。畳み込みニューラルネットワークにおける処理の層が深くなる(計算過程1から5へ進む)につれて、暗号実行領域において演算する計算量が増加していくため、計算時間や費用も増加していく。なお、図12では、計算コストとして、計算時間や費用が提示されているが、演算にかかる計算量や、計算資源なども計算コストとしてユーザに提示してもよい。
また、ユーザが、ボタン422をクリック等することで、上述の「牛」の入力画像ではなく、別の画像や、プラットフォーム側で予め用意したサンプル画像、情報量の差が示されるイラスト等の画像を入力画像として変更できるようにしてもよい。この場合、これらのサンプル画像に基づいて、平文途中演算情報が提供される。
図13は、提供部3324が提供する画面の一例を示す図である。画面403の領域413には、ユーザが暗号実行領域において演算を行う範囲として「計算過程2」を選択したことが示されている。また、ユーザは、「決定」ボタン423をクリック等することにより「計算過程2」を層指定情報として入力できる。なお、層の指定は、例えば、各計算過程において示されている画像データや、当該画像データの下方に示されているアイコン(図13では鍵アイコン)をクリック等することにより行われてもよいし、キーボードや音声により行われてもよい。
図13では、ユーザが選択した層である計算過程2までの層における画像データをマスク画像で示している。ある層までを暗号実行領域において演算する場合、その層までに入力される画像データは暗号化されるため、人による識別は不可能であり、その暗号化された画像データを敢えてユーザに提示する必要性は乏しい。マスク画像によって代替して表示を行うことにより、暗号実行領域における演算を減らすことができる。しかしながら、ユーザが演算結果をイメージしやすくするために、暗号実行領域における演算結果を表示することを妨げるものではない。
(処理の流れ)
図14は、機械学習装置300が実行する処理の一例を示すフローチャートである。
図14は、機械学習装置300が実行する処理の一例を示すフローチャートである。
制御部130は、画像データ等のデータ、又は画像データ等のデータ及びラベルを、通信部110を介して、端末装置200から取得する(ステップS201)。
制御部130は、入力層から出力層までの各層において、平文処理部1323が実行した場合の当該演算に関する平文途中演算情報を、通信部110を介して、端末装置200に提供する(ステップS202)。
制御部130は、暗号実行領域で行う演算と平文実行領域で行う演算との境界となる、第N層を指定する層指定情報を、通信部110を介して、端末装置200から取得する(ステップS203)。
制御部130は、取得した画像等のデータと適用する学習モデルを準同型暗号で暗号化する。そして、0層から第N層までを暗号化実行領域において演算し、その後復号する(ステップS204)。
制御部130は、ステップS204において復号した演算結果に基づいて、第(N+1)層から出力層までを平文実行領域において演算し、推論又は学習モデルのパラメータの更新を行う。そして、制御部130は、演算結果を記憶部120に格納し、処理を終了する(ステップS205)。
(効果の説明)
本実施形態に係る機械学習装置300は、機械学習における演算の一部を暗号実行領域において、その他の部分を平文実行領域において演算することを前提として、入力画像を平文実行領域で処理した場合の、平文途中演算情報をユーザに提供する。平文途中演算情報を参照することにより、ユーザは、ユーザが求める実用的な計算コストや、セキュリティレベルに応じた、境界となる層の選択が可能となる。
本実施形態に係る機械学習装置300は、機械学習における演算の一部を暗号実行領域において、その他の部分を平文実行領域において演算することを前提として、入力画像を平文実行領域で処理した場合の、平文途中演算情報をユーザに提供する。平文途中演算情報を参照することにより、ユーザは、ユーザが求める実用的な計算コストや、セキュリティレベルに応じた、境界となる層の選択が可能となる。
以上で実施形態の説明を終了するが、上記実施形態は一例に過ぎない。そのため、機械学習装置100、300の具体的な構成、処理内容等は上記実施形態で説明したものに限られない。
また、本開示に係る機械学習装置は、上記装置によらず、例えば、コンピュータがプログラムを実行することで、その機能を実現してもよい。情報提供システムの機能を実現するためのプログラムは、USB(Universal Serial Bus)メモリ、CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)、HDD(Hard Disc Drive)、SSD(Solid State Drive)等のコンピュータ読み取り可能な記録媒体に記憶されてもよいし、ネットワークを介してコンピュータにダウンロードされてもよい。
以上、本開示の好ましい実施形態について説明したが、上記実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
1 機械学習システム、2 機械学習システム、11 プロセッサ、12 メモリ、13 ストレージ、14 通信IF、15 入出力IF、100 機械学習装置、110 通信部、120 記憶部、130 制御部、131 データ取得部、132,332 機械学習計算部、200 端末装置、300 機械学習装置、330 制御部、401,402,403 画面、410 画像、412 アイコン、413 領域、423 ボタン、1321 受付部、1322 暗号処理部、1323 平文処理部、3324 提供部、3325 推定部。
Claims (12)
- 画像データを取得するデータ取得部と、
前記画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部と、を備え、
前記畳み込みニューラルネットワークは複数の層から構成され、
前記機械学習計算部は、
準同型暗号による暗号実行領域において演算する暗号処理部と、
平文実行領域において演算する平文処理部と、
前記畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部と、を有し、
前記暗号処理部は、前記入力層から前記第N層までの演算を実行し、
前記平文処理部は、第(N+1)層から前記出力層までの演算を実行する、機械学習装置。 - 前記データ取得部は、前記画像データ及び当該画像データに対するラベルを関連付けた教師データを取得し、
前記機械学習計算部は、前記教師データに基づいて、前記画像データに対する前記ラベルを出力するよう畳み込みニューラルネットワークの学習モデルのパラメータを生成する請求項1に記載の機械学習装置。 - 入力される画像データについての前記入力層から前記出力層までの演算を、前記平文処理部が実行した場合の当該演算に関する平文途中演算情報を提供する提供部をさらに備える請求項1又は請求項2に記載の機械学習装置。
- 前記提供部は、前記平文途中演算情報として、前記入力層に入力される画像データと、前記入力層から前記出力層までの各層に入力されるデータとの情報の差を、ユーザが比較できる態様で提供する、請求項3に記載の機械学習装置。
- 前記提供部は、前記平文途中演算情報として、各層に入力される画像データを提供する、請求項3または請求項4に記載の機械学習装置。
- 前記提供部は、前記入力層から所定の層までを前記暗号処理部が演算し、当該所定の層の次の層から前記出力層までを前記平文処理部が実行した場合の計算コストを、ユーザが比較できる態様で提供する、請求項3から請求項5のいずれか一項に記載の機械学習装置。
- 前記提供部は、前記入力層から前記出力層までの複数の所定の層について、前記暗号処理部が演算を行った場合に入力される画像データと、前記平文処理部が演算を行った場合に入力される画像データとを、ユーザが比較できる態様で提供する、請求項3から請求項6のいずれか一項に記載の機械学習装置。
- 前記提供部は、前記暗号処理部が演算を行った場合に入力される画像データに代えて、マスク画像を提供する、請求項7に記載の機械学習装置。
- 前記データ取得部が取得した画像データに関連するデータと、当該画像データについて指定された層指定情報との相関関係を学習する推定部をさらに備え、
前記推定部は、前記学習の結果に基づいて、入力される画像データに関連するデータと相関関係にある層指定情報を、層指定推定情報として算出し、
前記提供部は、前記推定部が算出した層指定推定情報を提供する、請求項3から請求項8のいずれか一項に記載の機械学習装置。 - 画像データを取得するデータ取得部と、
前記画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部と、を備え、
前記畳み込みニューラルネットワークは複数の層から構成され、
前記機械学習計算部は、
準同型暗号による暗号実行領域において演算する暗号処理部と、
平文実行領域において演算する平文処理部と、
前記畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部と、を有し、
前記暗号処理部は、前記入力層から前記第N層までの演算を実行し、
前記平文処理部は、第(N+1)層から前記出力層までの演算を実行する、機械学習システム。 - 画像データを取得するステップと、
前記画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行うステップと、を備え、
前記畳み込みニューラルネットワークは複数の層から構成され、
前記畳み込みニューラルネットワークを用いた計算処理を行うステップは、
準同型暗号による暗号実行領域において演算するステップと、
平文実行領域において演算するステップと、
前記畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付けるステップと、を有し、
前記暗号実行領域では、前記入力層から前記第N層までの演算が実行され、
前記平文実行領域では、第(N+1)層から前記出力層までの演算が実行される、機械学習方法。 - 制御部と、記憶部と、を備えるコンピュータに実行させる機械学習プログラムであって、
前記制御部が、画像データを取得するステップと、
前記記憶部が、前記画像データを記憶するステップと、
前記制御部が、前記記憶部が記憶した前記画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行うステップと、を備え、
前記畳み込みニューラルネットワークは複数の層から構成され、
前記畳み込みニューラルネットワークを用いた計算処理を行うステップは、
準同型暗号による暗号実行領域において演算するステップと、
平文実行領域において演算するステップと、
前記畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付けるステップと、を有し、
前記暗号実行領域では、前記入力層から前記第N層までの演算が実行され、
前記平文実行領域では、第(N+1)層から前記出力層までの演算が実行される、機械学習プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022072534A JP2023081816A (ja) | 2021-12-01 | 2022-04-26 | 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021195808A JP7076167B1 (ja) | 2021-12-01 | 2021-12-01 | 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム |
JP2022072534A JP2023081816A (ja) | 2021-12-01 | 2022-04-26 | 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021195808A Division JP7076167B1 (ja) | 2021-12-01 | 2021-12-01 | 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023081816A true JP2023081816A (ja) | 2023-06-13 |
Family
ID=81753572
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021195808A Active JP7076167B1 (ja) | 2021-12-01 | 2021-12-01 | 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム |
JP2022072534A Pending JP2023081816A (ja) | 2021-12-01 | 2022-04-26 | 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021195808A Active JP7076167B1 (ja) | 2021-12-01 | 2021-12-01 | 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US11956353B2 (ja) |
EP (1) | EP4296897A1 (ja) |
JP (2) | JP7076167B1 (ja) |
WO (1) | WO2023100720A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7076167B1 (ja) * | 2021-12-01 | 2022-05-27 | Eaglys株式会社 | 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08161284A (ja) * | 1994-12-07 | 1996-06-21 | Japan Aviation Electron Ind Ltd | 暗号化装置及び復号化装置 |
FR3057090B1 (fr) * | 2016-09-30 | 2018-10-19 | Safran Identity & Security | Procedes d'apprentissage securise de parametres d'un reseau de neurones a convolution, et de classification securisee d'une donnee d'entree |
JP6705777B2 (ja) | 2017-07-10 | 2020-06-03 | ファナック株式会社 | 機械学習装置、検査装置及び機械学習方法 |
US20190065974A1 (en) | 2017-08-30 | 2019-02-28 | Axell Corporation | Inference device, inference system, and inference method |
JP6695595B2 (ja) * | 2017-08-30 | 2020-05-20 | 株式会社アクセル | 推論装置、及び推論方法 |
JP6730740B2 (ja) * | 2017-12-25 | 2020-07-29 | 株式会社アクセル | 処理装置、処理方法、処理プログラム、及び暗号処理システム |
US11886989B2 (en) * | 2018-09-10 | 2024-01-30 | International Business Machines Corporation | System for measuring information leakage of deep learning models |
US11362803B2 (en) * | 2019-03-29 | 2022-06-14 | Wipro Limited | Method and system for providing explanation for output generated by an artificial intelligence model |
US11611430B2 (en) | 2019-04-15 | 2023-03-21 | Axell Corporation | Arithmetic apparatus, arithmetic system and arithmetic method |
JP7017800B2 (ja) | 2019-04-15 | 2022-02-09 | 株式会社アクセル | 演算装置、演算システム、及び演算方法 |
CN111563868B (zh) * | 2020-07-20 | 2020-10-20 | 腾讯科技(深圳)有限公司 | 基于人工智能的头部装饰处理方法及装置 |
KR20220048225A (ko) * | 2020-10-12 | 2022-04-19 | 삼성전자주식회사 | 동형 연산 가속기 및 이를 포함하는 동형 연산 수행 장치 |
JP7096610B2 (ja) * | 2021-01-15 | 2022-07-06 | 株式会社アクセル | 処理装置、推論装置、学習装置、処理システム、処理方法、及び処理プログラム |
JP7076167B1 (ja) * | 2021-12-01 | 2022-05-27 | Eaglys株式会社 | 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム |
-
2021
- 2021-12-01 JP JP2021195808A patent/JP7076167B1/ja active Active
-
2022
- 2022-04-26 JP JP2022072534A patent/JP2023081816A/ja active Pending
- 2022-11-22 EP EP22901153.1A patent/EP4296897A1/en active Pending
- 2022-11-22 WO PCT/JP2022/043196 patent/WO2023100720A1/ja active Application Filing
-
2023
- 2023-09-15 US US18/368,572 patent/US11956353B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2023100720A1 (ja) | 2023-06-08 |
US11956353B2 (en) | 2024-04-09 |
JP7076167B1 (ja) | 2022-05-27 |
EP4296897A1 (en) | 2023-12-27 |
US20240007287A1 (en) | 2024-01-04 |
JP2023081793A (ja) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11886989B2 (en) | System for measuring information leakage of deep learning models | |
US20200204341A1 (en) | Secure Machine Learning Analytics Using Homomorphic Encryption | |
CN111931216B (zh) | 一种基于隐私保护的方式获取联合训练模型的方法及系统 | |
US11923070B2 (en) | Automated visual reporting technique for medical imaging processing system | |
JP2019215512A (ja) | 予測モデル分散方法および予測モデル分散システム | |
Thummisetti et al. | Advancing healthcare informatics for empowering privacy and security through federated learning paradigms | |
Kim et al. | Safe contact tracing for COVID-19: A method without privacy breach using functional encryption techniques based-on spatio-temporal trajectory data | |
WO2023100720A1 (ja) | 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム | |
Singh et al. | Cloud-based patient health information exchange system using blockchain technology | |
Zhang et al. | Privacyasst: Safeguarding user privacy in tool-using large language model agents | |
Priyadarshini et al. | Medchain for Securing Data in Decentralized Healthcare System Using Dynamic Smart Contracts | |
US20230259654A1 (en) | Privacy-preserving computing on subject data used to develop artificial intelligence tools | |
JP2020003989A (ja) | 個人情報分析システム、及び個人情報分析方法 | |
JP7112151B1 (ja) | 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム | |
WO2022233236A1 (en) | Secure data analytics | |
EP3985540B1 (en) | Method and apparatus for generating synthetic data | |
JP2013109577A (ja) | 情報管理システム | |
US10586614B1 (en) | System and method for timely multi-channel notification of treatment | |
Hsiao et al. | A hierarchical access control scheme based on Lagrange interpolation for mobile agents | |
CN115051816A (zh) | 基于隐私保护的云计算方法、金融数据云计算方法及装置 | |
US20230071353A1 (en) | Systems and methods for adaptively improving the performance of locked machine learning programs | |
US11451375B2 (en) | System, method and apparatus for privacy preserving inference | |
EP3716122A1 (en) | Ai based system and method for secure data processing - applications in clinical workflow deployment and model training | |
EP3902194A1 (en) | Method and apparatus for training analysis model | |
Meera et al. | Secured Data Dissemination in a Real-Time Healthcare System |