(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023081816
(43)【公開日】2023-06-13
(54)【発明の名称】機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム
(51)【国際特許分類】
G06N 3/04 20230101AFI20230606BHJP
G06T 7/00 20170101ALI20230606BHJP
G06V 10/82 20220101ALI20230606BHJP
【FI】
G06N3/04
G06T7/00 350C
G06V10/82
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022072534
(22)【出願日】2022-04-26
(62)【分割の表示】P 2021195808の分割
【原出願日】2021-12-01
(71)【出願人】
【識別番号】518334141
【氏名又は名称】EAGLYS株式会社
(74)【代理人】
【識別番号】100210815
【弁理士】
【氏名又は名称】西田 聡子
(72)【発明者】
【氏名】三原 健太郎
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096DA02
5L096HA08
5L096HA11
5L096KA04
(57)【要約】
【課題】ユーザの求める実用的な計算コストとセキュリティレベルに応じた、畳み込みニューラルネットワークを用いた機械学習の技術を提供する。
【解決手段】機械学習装置は、画像データを取得するデータ取得部と、画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部とを備え、畳み込みニューラルネットワークは複数の層から構成され、機械学習計算部は、準同型暗号による暗号実行領域において演算する暗号処理部と、平文実行領域において演算する平文処理部と、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部とを有し、暗号処理部は、入力層から第N層までの演算を実行し、平文処理部は、第(N+1)層から出力層までの演算を実行する。
【選択図】
図7
【特許請求の範囲】
【請求項1】
画像データを取得するデータ取得部と、
前記画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部と、を備え、
前記畳み込みニューラルネットワークは複数の層から構成され、
前記機械学習計算部は、
準同型暗号による暗号実行領域において演算する暗号処理部と、
平文実行領域において演算する平文処理部と、
前記畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部と、を有し、
前記暗号処理部は、前記入力層から前記第N層までの演算を実行し、
前記平文処理部は、第(N+1)層から前記出力層までの演算を実行する、機械学習装置。
【請求項2】
前記データ取得部は、前記画像データ及び当該画像データに対するラベルを関連付けた教師データを取得し、
前記機械学習計算部は、前記教師データに基づいて、前記画像データに対する前記ラベルを出力するよう畳み込みニューラルネットワークの学習モデルのパラメータを生成する請求項1に記載の機械学習装置。
【請求項3】
入力される画像データについての前記入力層から前記出力層までの演算を、前記平文処理部が実行した場合の当該演算に関する平文途中演算情報を提供する提供部をさらに備える請求項1又は請求項2に記載の機械学習装置。
【請求項4】
前記提供部は、前記平文途中演算情報として、前記入力層に入力される画像データと、前記入力層から前記出力層までの各層に入力されるデータとの情報の差を、ユーザが比較できる態様で提供する、請求項3に記載の機械学習装置。
【請求項5】
前記提供部は、前記平文途中演算情報として、各層に入力される画像データを提供する、請求項3または請求項4に記載の機械学習装置。
【請求項6】
前記提供部は、前記入力層から所定の層までを前記暗号処理部が演算し、当該所定の層の次の層から前記出力層までを前記平文処理部が実行した場合の計算コストを、ユーザが比較できる態様で提供する、請求項3から請求項5のいずれか一項に記載の機械学習装置。
【請求項7】
前記提供部は、前記入力層から前記出力層までの複数の所定の層について、前記暗号処理部が演算を行った場合に入力される画像データと、前記平文処理部が演算を行った場合に入力される画像データとを、ユーザが比較できる態様で提供する、請求項3から請求項6のいずれか一項に記載の機械学習装置。
【請求項8】
前記提供部は、前記暗号処理部が演算を行った場合に入力される画像データに代えて、マスク画像を提供する、請求項7に記載の機械学習装置。
【請求項9】
前記データ取得部が取得した画像データに関連するデータと、当該画像データについて指定された層指定情報との相関関係を学習する推定部をさらに備え、
前記推定部は、前記学習の結果に基づいて、入力される画像データに関連するデータと相関関係にある層指定情報を、層指定推定情報として算出し、
前記提供部は、前記推定部が算出した層指定推定情報を提供する、請求項3から請求項8のいずれか一項に記載の機械学習装置。
【請求項10】
画像データを取得するデータ取得部と、
前記画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部と、を備え、
前記畳み込みニューラルネットワークは複数の層から構成され、
前記機械学習計算部は、
準同型暗号による暗号実行領域において演算する暗号処理部と、
平文実行領域において演算する平文処理部と、
前記畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部と、を有し、
前記暗号処理部は、前記入力層から前記第N層までの演算を実行し、
前記平文処理部は、第(N+1)層から前記出力層までの演算を実行する、機械学習システム。
【請求項11】
画像データを取得するステップと、
前記画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行うステップと、を備え、
前記畳み込みニューラルネットワークは複数の層から構成され、
前記畳み込みニューラルネットワークを用いた計算処理を行うステップは、
準同型暗号による暗号実行領域において演算するステップと、
平文実行領域において演算するステップと、
前記畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付けるステップと、を有し、
前記暗号実行領域では、前記入力層から前記第N層までの演算が実行され、
前記平文実行領域では、第(N+1)層から前記出力層までの演算が実行される、機械学習方法。
【請求項12】
制御部と、記憶部と、を備えるコンピュータに実行させる機械学習プログラムであって、
前記制御部が、画像データを取得するステップと、
前記記憶部が、前記画像データを記憶するステップと、
前記制御部が、前記記憶部が記憶した前記画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行うステップと、を備え、
前記畳み込みニューラルネットワークは複数の層から構成され、
前記畳み込みニューラルネットワークを用いた計算処理を行うステップは、
準同型暗号による暗号実行領域において演算するステップと、
平文実行領域において演算するステップと、
前記畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付けるステップと、を有し、
前記暗号実行領域では、前記入力層から前記第N層までの演算が実行され、
前記平文実行領域では、第(N+1)層から前記出力層までの演算が実行される、機械学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、機械学習装置、機械学習システム、機械学習方法、および機械学習プログラムに関する。
【背景技術】
【0002】
近年、畳み込みニューラルネットワークの学習モデルを用いた画像認識により、複雑なデータの分析を高精度に行うことが可能となっている。
【0003】
一方、分析対象が医療画像など個人のプライバシーに直結した機微データである場合は、プライバシー情報を秘匿(暗号化)したまま分析処理を行うことが求められる。
【0004】
例えば、特許文献1では、準同型暗号を用いたニューラルネットワークのシステムに関する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
準同型暗号を用いた畳み込みニューラルネットワークにより画像認識を行えば、プライバシー情報を暗号化したまま分析処理を行うことができる。しかしながら、一般的に、準同型暗号を用いた演算は、セキュリティレベルは高いものの、計算量が膨大になってしまい、実用的な計算コストで実行することが難しいという課題があった。
【0007】
そこで、本開示は、上記課題を解決すべくなされたものであって、その目的は、ユーザの求める実用的な計算コストとセキュリティレベルに応じた、畳み込みニューラルネットワークを用いた機械学習に関する技術を提供することである。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本開示に係る機械学習装置は、画像データを取得するデータ取得部と、画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部と、を備え、畳み込みニューラルネットワークは複数の層から構成され、機械学習計算部は、準同型暗号による暗号実行領域において演算する暗号処理部と、平文実行領域において演算する平文処理部と、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部と、を有し、暗号処理部は、入力層から第N層までの演算を実行し、平文処理部は、第(N+1)層から出力層までの演算を実行する。
【0009】
上記目的を達成するため、本開示に係る機械学習システムは、画像データを取得するデータ取得部と、画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部と、を備え、畳み込みニューラルネットワークは複数の層から構成され、機械学習計算部は、準同型暗号による暗号実行領域において演算する暗号処理部と、平文実行領域において演算する平文処理部と、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部と、を有し、暗号処理部は、入力層から第N層までの演算を実行し、平文処理部は、第(N+1)層から出力層までの演算を実行する。
【0010】
上記目的を達成するため、本開示に係る機械学習方法は、画像データを取得するステップと、画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行うステップと、を備え、畳み込みニューラルネットワークは複数の層から構成され、畳み込みニューラルネットワークを用いた計算処理を行うステップは、準同型暗号による暗号実行領域において演算するステップと、平文実行領域において演算するステップと、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付けるステップと、を有し、暗号実行領域では、入力層から第N層までの演算が実行され、平文実行領域では、第(N+1)層から出力層までの演算が実行される。
【0011】
また、上記目的を達成するため、本開示に係る機械学習プログラムは、制御部と、記憶部と、を備えるコンピュータに実行させる機械学習プログラムであって、制御部が、画像データを取得するステップと、記憶部が、画像データを記憶するステップと、制御部が、記憶部が記憶した画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行うステップと、を備え、畳み込みニューラルネットワークは複数の層から構成され、畳み込みニューラルネットワークを用いた計算処理を行うステップは、準同型暗号による暗号実行領域において演算するステップと、平文実行領域において演算するステップと、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付けるステップと、を有し、暗号実行領域では、入力層から第N層までの演算が実行され、平文実行領域では、第(N+1)層から出力層までの演算が実行される。
【発明の効果】
【0012】
本開示によれば、ユーザの求める実用的な計算コストとセキュリティレベルに応じた畳み込みニューラルネットワークを用いた機械学習を実現することができる。
【図面の簡単な説明】
【0013】
【
図2】機械学習装置100のハードウェア構成を示す図である。
【
図3】機械学習装置100の機能的構成を示すブロック図である。
【
図5】学習モデル格納部122の一例を示す図である。
【
図6】ユーザが画像データとラベルを入力するための画面の一例を示す図である。
【
図7】一般的な畳み込みニューラルネットワークのモデル概念図である。
【
図9】機械学習装置100が実行する処理の一例を示すフローチャートである。
【
図11】機械学習装置300の機能的構成を示すブロック図である。
【
図12】提供部3324が提供する画面の一例を示す図である。
【
図13】提供部3324が提供する画面の一例を示す図である。
【
図14】機械学習装置300が実行する処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、本開示の実施形態について図面を参照して説明する。実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。なお、以下の実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また、実施形態に示される構成要素のすべてが、本開示の必須の構成要素であるとは限らない。
【0015】
<本発明の概要>
近年、畳み込みニューラルネットワークを用いて高精度で画像認識を行うことが可能となり、複雑なデータの分析を行うケースが増加しており、画像認識の対象となる画像データに個人情報等の機微データが含まれる場合は、プライバシーへの配慮が求められる。そこで、畳み込みニューラルネットワークに係る計算過程を、暗号化したまま演算を行うことができる準同型暗号を用いて実行すれば、プライバシーを保護しつつ、画像データの分析処理を行うことができる。
【0016】
しかしながら、一般的に、準同型暗号を用いた演算は、セキュリティレベルは高いものの、計算コストが膨大になってしまうという課題がある。そこで、本発明では、当該課題を解決すべく、畳み込みニューラルネットワークを用いた画像認識において、畳み込み演算のフィルタリング処理が繰り返される過程で、画像を目視で識別することが困難になっていくことに着目した。すなわち、本発明では、ユーザが予め定めた計算過程までを、準同型暗号による暗号実行領域において処理し、それ以降の計算過程は平文実行領域において処理を行う。
【0017】
目視で画像を識別することが困難になる一定の計算過程以降では、平文実行領域において計算を行うことにより、計算過程の画像が第三者に流出したとしても、当該画像を目視で識別することが困難なため、暗号化されていなくても、機微データの内容を第三者に知られることを防ぐことができる。それと同時に、全ての計算過程を準同型暗号による暗号実行領域において実行しないため、計算コストを抑えることができる。
【0018】
<実施形態1>
(機械学習システム1の構成)
図1は、機械学習システム1の全体図である。
図1に示すように、本実施形態に係る機械学習システム1は、機械学習装置100と、ユーザによって使用される一つ以上の端末装置200とを備える。
【0019】
機械学習装置100と、端末装置200とは、ネットワークNWを介して通信可能に接続される。ネットワークNWは、WAN(Wide Area Network)、LAN(Local Area Network)等から構成される。機械学習システム1は、ユーザからの入力に基づいて機械学習の学習モデルを構築し、又はユーザからの入力及び学習モデルを用いて、機械学習による推論を行う。
【0020】
端末装置200は、ユーザからの入力を受け付け、その入力内容を、ネットワークNWを介して機械学習装置100に送信する。また、端末装置200は、機械学習装置100からネットワークNWを介して送信されたデータを受信し、ユーザに提示する。
【0021】
(機械学習装置100のハードウェア構成)
図2は、本実施形態の機械学習装置100のハードウェア構成を示す図である。機械学習装置100は、汎用のコンピュータである。機械学習装置100は、例えば、サーバコンピュータ、据え置き型のPC(Personal Computer)、ラップトップPC等により実現される。
【0022】
図2に示すように、機械学習装置100は、プロセッサ11と、メモリ12と、ストレージ13と、通信IF14と、入出力IF15と、を備える。
【0023】
プロセッサ11は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路などにより構成される。メモリ12は、プログラム、および、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリにより実現される。メモリ12に記憶されるプログラムは、本発明に係る機械学習を実行するプログラム等である。ストレージ13は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)、SSD(Solid State Drive)により実現される。通信IF14は、機械学習装置100が外部の装置と通信するため、信号を送受信するためのインタフェースである。入出力IF15は、ユーザからの入力を受け付けるための入力装置、および、ユーザに対し情報を提示するための出力装置とのインタフェースとして機能する。
【0024】
なお、端末装置200においても、
図2に示したハードウェア構成と同様の構成としてもよい。端末装置200の各構成要素の動作は、上述の機械学習装置100と同様に、メモリ12に記憶されたプログラムに従ったプロセッサ11により実現する。
【0025】
(機械学習装置100の機能的構成)
図3は、本実施形態に係る機械学習装置100の機能的構成を示すブロック図である。
図3を参照して、実施形態1に係る機械学習装置100の機能的構成について説明する。
【0026】
機械学習装置100は、通信部110と、記憶部120と、制御部130とを備える。
【0027】
通信部110は、機械学習装置100が他の装置と通信するための処理を行う。ここでいう他の装置とは、ネットワークNWで接続されたPCでもよいし、スマートフォン、タブレットなどの端末であってもよい。また、他の装置は、入出力装置、例えば、フラッシュメモリやHDD、SSDなどによりデータの入出力を行う装置であってもよい。
【0028】
通信部110は、また、ネットワークNWを介した装置やローカルに接続された装置等と、セキュリティが確保されたセキュアな通信チャンネルでデータを送受信する。セキュアな通信チャンネルの構築、通信方法は、共通鍵(セッション鍵など)や公開鍵等を用いた周知の技術であるため、説明を省略する。
【0029】
記憶部120は、例えば、RAM等の揮発性のメモリ、フラッシュメモリ、HDD、SSD等により構成され、機械学習装置100が利用するデータ、及びプログラムを記憶する。記憶部120は、例えば、後述する暗号処理部1322が暗号実行領域において演算するため、データを暗号化し、又は暗号化されたデータを復号するための鍵を記憶する鍵格納部121、機械学習装置100において使用する学習モデルを記憶する学習モデル格納部122を含む。なお、鍵は、機械学習装置100内で記憶するのではなく、機械学習装置100とネットワークを介して、又は直接的に接続される鍵管理装置(不図示)において記憶するようにしてもよい。また、機械学習装置100が、機械学習のために利用した画像データ等は、セキュリティ向上のため、使用後は記憶部120から削除することが好ましい。
【0030】
鍵格納部121(後述する
図4参照)は、暗号処理部1322が暗号実行領域において演算するために、データを暗号化し、又は暗号化されたデータを復号するための鍵を記憶する。鍵格納部121は、例えば、ID、鍵データや、鍵ファイルのパスを記憶する。IDは、ユーザや、組織など任意のグループ毎に割り当てて鍵を利用する構成としてもよいし、セッション毎に割り当てて鍵を利用する構成としてもよい。
【0031】
学習モデル格納部122(後述する
図5参照)は、機械学習装置100において使用する学習モデルを記憶する。学習モデル格納部122は、学習モデルに加え、複数の学習モデルを区別するためのID、学習モデルが適用できる範囲などを示すタグ、画像診断において特定の部位の特定までも可能とする学習モデルか否かの区別、当該学習モデルを用いて計算を行う際の計算コスト(計算量、計算時間、費用、計算資源等を含む。)及び計算速度、当該学習モデルを用いて推論を行った場合の精度などを関連付けて記憶してもよい。
【0032】
制御部130は、機械学習装置100のプロセッサが記憶部120に記憶されるプログラムを読み込み、プログラムに含まれる命令を実行することにより実現される。制御部130は、機械学習装置100の動作を制御する。具体的には、制御部130は、データ取得部131と、機械学習計算部132と、受付部1321と、暗号処理部1322と、平文処理部1323と、を含む。
【0033】
データ取得部131は、機械学習により学習モデルのパラメータを更新する場面(以下、特に言及する場合を除き、学習モデルを新たに生成する場合も含む。)においては、教師データとなる画像データ及び当該画像データに対するラベルを取得する。「ラベル」は、例えば、画像データが示す対象物の種別を示したり、画像データにおいて特定したい対象物の範囲(位置)を示したりするものを含む。また、データ取得部131は、学習モデルを用いて推論を行う場面においては、推論対象となる画像データを取得する。例えば、ユーザは、端末装置200等において画像データ及びラベルを入力し、データ取得部131は、ネットワークNWを介して、ユーザが入力した画像データ及びラベルを取得する。
【0034】
機械学習計算部132は、データ取得部131において取得した画像データ等に基づいて、畳み込みニューラルネットワークを用いた計算処理を行う。この計算処理は、具体的には、学習モデルのパラメータを更新するための学習、もしくは、取得した画像データ等から学習モデルを用いて行う推論のための計算処理である。なお、畳み込みニューラルネットワークは複数の層から構成される。「層」については、
図7及び
図8(後述)において説明する。
【0035】
機械学習計算部132は、計算処理の過程において、予めユーザから暗号実行領域において演算する範囲を取得しておき、計算処理の過程の一部を準同型暗号による暗号実行領域において演算し、計算処理の過程の一部を平文実行領域において演算する。機械学習計算部132は、具体的には、受付部1321と、暗号処理部1322と、平文処理部1323と、を含む。
【0036】
受付部1321は、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層(ただし、Nは自然数。)を指定する層指定情報を受け付ける。すなわち、層指定情報により第N層が指定されたとき、入力層から第N層までは暗号実行領域において演算し、第(N+1)層から出力層までの演算を平文実行領域において演算する。
【0037】
受付部1321は、第N層を指定する層指定情報を受け付けるが、ここで取得する層指定情報は、「N」を示す具体的な数字であって、畳み込みニューラルネットワークにおいて、中間層のどの層までを暗号実行領域において演算するかという範囲を示すものである。畳み込みニューラルネットワークは、一般的には、入力層(0層)、中間層(1層~M層)、出力層(M+1層)といった複数の層を有する。ここで、Mは任意の自然数である。このとき、ユーザは、中間層の第N層までを暗号実行領域において演算することを決め、受付部1321は、暗号実行領域において演算を行う境界の層となるNを取得する。
【0038】
また、層指定情報は、「N」を示す具体的な数字の他に、「N」を指定することができる情報であってもよい。例えば、ユーザから受け付けた計算コストの条件であってもよい。受付部1321は、層指定情報として、計算コストの条件を受け付けた場合は、その計算コストで実行することができる「N」を算出する。
【0039】
暗号処理部1322は、準同型暗号による暗号実行領域において演算する機能を有する。暗号処理部1322は、機械学習計算部132における計算処理の過程において、入力層(0層)から中間層のN層までの計算処理を準同型暗号による暗号実行領域において演算する。
【0040】
暗号処理部1322は、具体的には、鍵格納部121において管理する暗号化のための鍵(公開鍵)を用いて、データ取得部131が取得した画像データ等を暗号化する。このとき、暗号処理部1322は、暗号化の方法について、暗号化状態のまま演算が可能な準同型暗号方式(Paillier方式等、Lifted-Ellgamal方式、Somewhat Homomorphic Encryption方式、Fully Homomorphic Encryption方式等)を用いる。
【0041】
暗号処理部1322は、データ取得部131が取得した画像データ等及び機械学習に用いる学習モデルを暗号化し、暗号実行領域において演算する。
【0042】
暗号処理部1322は、入力層(0層)からユーザの指定した中間層のN層までの計算処理を暗号化実行領域において演算した後、鍵格納部121において管理する復号のための鍵(秘密鍵)を用いて、データを復号する。
【0043】
平文処理部1323は、平文実行領域において演算する機能を有する。平文処理部1323は、暗号処理部1322において演算されたN層までの演算結果を取得し、引き続き(N+1)層から出力層までの演算を平文実行領域において行う。これにより、推論または学習モデルのパラメータの更新を行う。
【0044】
なお、上述した機械学習装置100の機能の一部を、端末装置200が担ってもよい。例えば、予め、機械学習装置100と端末装置200とで、画像データ等を準同型暗号で暗号化するための鍵を共有しておき、端末装置200において、推論や機械学習の対象となる画像データを準同型暗号で暗号化するようにしてもよい。
【0045】
端末装置200は、準同型暗号で暗号化された画像データを機械学習装置100に送信し、機械学習装置100は、通信部110を介して受信した当該画像データを、記憶部120に格納する。そして、データ取得部131は、暗号化された画像データを記憶部120から取得し、暗号処理部1322へ送る。次いで、暗号処理部1322は、暗号化された画像データについて演算を実行する。その際、上述したように暗号処理部1322が演算結果を復号するのに代えて、平文処理部1323が演算結果を復号するようにしてもよい。すなわち、暗号処理部1322では、準同型暗号で暗号化されたデータのみ扱うようにする。このような構成をとることで、機械学習装置100においては、画像データが準同型暗号で暗号化された状態、もしくは、復号されても人間が画像を目視では識別困難な状態であるため、機械学習装置100は、よりセキュリティを高めて、計算処理を実行することができる。
【0046】
(データベースの具体例)
図4は、鍵格納部121の一例を示す図である。鍵格納部121は、例えば、ユーザ、セッションなど鍵の利用場面を識別するための「ID」、鍵(公開鍵「key1」及び秘密鍵「key2」)の値を、関連付けて記憶する。
図4において、「ID」が「0000001」の公開鍵は「0KJFDEMNFS679FDDFHKL…」、秘密鍵は、「2SFSHLJHFSKLJADL7DJLH…」である。同様に、「ID」が「0000002」の公開鍵は「43JFLKEJFDHKLFS3JKLFN…」、秘密鍵は、「FDLK732492SFGKJHKSDH…」であり、「ID」が「0000003」の公開鍵は「JLKJ02SFHL89JLKHJKF897…」、秘密鍵は、「40389439LFKSJFLKJFSLH…」である。なお、
図4は、鍵管理の一例であって、鍵の管理方法は、これらに限られない。例えば、鍵と復号権限を持つユーザとを関連付けて記憶してもよい。
【0047】
図5は、学習モデル格納部122の一例を示す図である。学習モデル格納部122は、複数の学習モデルを区別するための「ID」、学習モデルが適用できる範囲などを示す「タグ」、画像診断において特定の部位の特定までも可能とする学習モデルか否かの区別する「部位特定」、当該学習モデルを用いて計算を行う際のコスト(計算量)を示す「コスト/MB」、及び計算速度を示す「計算速度/Mb」、当該学習モデルを用いて推論を行った場合の精度を示す「精度」、学習モデルのファイル名を示す「ファイル」が関連付けて記憶されている。
【0048】
図5において、「ID」が「0001」の学習モデルは、「タグ」欄が「CT、ガン、腎臓、医療、画像診断」であり、これらの用途に適用可能で、部位特定には対応していないことを示している。また、「コスト」は10円/Mb、「計算速度」は1Mbあたり5'10、「精度」は80%で、学習モデル自身は「0001.json」というファイルに記憶されていることを示している。
【0049】
また、「ID」が「0002」の学習モデルは、「タグ」欄が「CT、ガン、腎臓、医療、画像診断」であり、これらの用途に適用可能で、「部位特定」欄が「〇」であることから、部位特定に対応していることを示している。また、「コスト」は45円/Mb、「計算速度」は1Mbあたり6'00、「精度」は85%で、学習モデル自身は「0002.json」というファイルに記憶されていることを示している。
【0050】
「ID」が「0003」や「0004」についても同様であるので、説明を省略する。なお、学習モデル格納部122は、上述した項目に限らず、学習モデルを適用する組織(会社、部署など)、業界(医療、食品、ECなど)や、所有者等に関連付けて記憶されていてもよい。
【0051】
(画像データ及びラベルの具体例)
図6は、ユーザが画像データとラベルを入力するための画面の一例を示す図である。データ取得部131は、ユーザから対象となる画像データの入力を受け付けると、当該画像データを読み込んだ上で、画面401に示すような画像410やファイル情報(ファイル名、ファイル生成日時等)をユーザが操作する端末装置200に表示させる。このとき、データ取得部131は、ユーザからラベルも取得する。画面401において、ユーザは、入力した画像データが「正常」を示すデータか「異常」を示すデータかを選択し、ラベル付けを行う。また、ユーザは、異常部分を示す部位の特定まで行う学習モデルのラベル付けを行う場合には、当該部位の範囲を画面上で指定し、ラベル付けを行う。例えば、
図6において、指定された部位特定の範囲は、画像410の斜線部分にて示されている。
【0052】
このようにして、データ取得部131は、画像データ及び当該画像データに対するラベルを関連付けた教師データを取得する。そして、機械学習計算部132は、教師データに基づいて、画像データに対するラベルを出力するように畳み込みニューラルネットワークの学習モデルのパラメータを生成(更新)する。ラベルの出力として、例えば、入力した画像データについて、ガンの診断を行う場合、正常を示す画像か異常を示す(ガンの疑い)画像であるかを出力する。また、ガンの疑いがあると出力するときは、その部位特定も出力するようにしてもよい。
【0053】
なお、推論を行うために画像データの入力のみを行う場合は、ラベル付けは不要であり、画像データの入力のみが行われる。
【0054】
(畳み込みニューラルネットワークの一例)
図7は、一般的な畳み込みニューラルネットワークのモデル概念図である。ニューラルネットワークは、入力層(0層)、中間層(1層からM層)、出力層(M+1層)といった複数の層を有する。機械学習計算部132は、その計算処理過程において、受付部1321が暗号実行領域で演算する範囲の境界(第N層)を示す層指定情報を取得し、暗号処理部1322において暗号実行領域での演算を、平文処理部1323において平文実行領域での演算を行う。
【0055】
暗号処理部1322は、データ取得部131において取得した画像データ等と選択された学習モデルを、鍵格納部121に記憶する鍵(公開鍵)を用いて準同型暗号で暗号化し、推論または学習モデルのパラメータ更新のための演算を暗号実行領域において行う。具体的には、暗号処理部1322は、0層から中間層の第N層までの演算処理を行う。また、暗号処理部1322は、暗号実行領域における演算結果を、鍵格納部121に記憶する鍵(暗号化した公開鍵と対になる秘密鍵)を用いて復号する。復号した結果は、平文処理部1323へ送ってもよい。なお、暗号実行領域における演算結果を記憶部120に格納する場合は、セキュリティ上、暗号化したまま格納し、平文処理部1323において、演算結果を復号することが好ましい。
【0056】
平文処理部1323は、暗号処理部1322において復号した画像データ等及び学習モデルを用いて、第(N+1)層から第(M+1)層までの計算過程について、平文実行領域において演算処理を行う。
【0057】
図8は、中間層を具体的に示した図である。畳み込みニューラルネットワークは、中間層として、一般的に、畳み込み演算を行うための畳み込み層、ReLu層、プーリング層、全結合層などを有する。本発明において、「層」とは、畳み込み層、ReLu層、プーリング層など各層単位を、1層、2層、3層としてもよいし、畳み込み、ReLu、プーリングといった一連の処理を一つの処理単位として1層、2層、3層としてもよい。この場合、例えば、「畳み込み」、「ReLu」、「プーリング」の組み合わせを一層としてもよいし、「畳み込み」、「プーリング」の組み合わせや、「ReLu」、「プーリング」の組み合わせを一層としてもよい。
【0058】
なお、畳み込みニューラルネットワークは、一般的に、全結合層を中間層の後半で用いることが多いが、全結合層を暗号化実行領域で演算してもよい。
【0059】
(処理の流れ)
図9は、機械学習装置100が実行する処理の一例を示すフローチャートである。
【0060】
制御部130は、画像データ等のデータ、又は画像データ等のデータ及びラベルを、通信部110を介して、端末装置200から取得する(ステップS101)。
【0061】
制御部130は、暗号実行領域で行う演算と平文実行領域で行う演算との境界となる、第N層を指定する層指定情報を、通信部110を介して、端末装置200から取得する(ステップS102)。
【0062】
制御部130は、取得した画像等のデータと適用する学習モデルを準同型暗号で暗号化する。そして、0層から第N層までを暗号化実行領域において演算し、その後復号する(ステップS103)。
【0063】
制御部130は、ステップS103において復号した演算結果に基づいて、第(N+1)層から出力層までを平文実行領域において演算し、推論又は学習モデルのパラメータの更新を行う。そして、制御部130は、演算結果を記憶部120に格納し、処理を終了する(ステップS104)。
【0064】
(効果の説明)
本実施形態に係る機械学習装置100は、機械学習における演算の一部を暗号化実行領域において、その他の部分を平文実行領域において演算することで、全てを暗号化実行領域において演算する場合と比較して、計算コストを削減し、現実的な時間で演算することを可能にする。
【0065】
畳み込みニューラルネットワークを用いた機械学習モデルでは、一般的に中間層の処理過程において、畳み込み演算のフィルタリング処理が繰り返されることにより、入力層に入力された画像データは、目視で識別が困難な状態となっていく。すなわち、畳み込み演算を繰り返した後の入力データは、人間によって識別することが困難であるから、暗号化していなくとも情報漏洩のリスクが低い。本実施形態に係る機械学習装置100は、この点に着目し、ユーザが指定した第N層までを暗号化実行領域において演算し、第(N+1)層以降を平文実行領域において演算することで、計算コストの削減と、セキュリティの確保の両立を実現することができる。
【0066】
<実施形態2>
実施形態1に係る機械学習システム1は、ユーザから層指定情報を取得した後、暗号実行領域及び平文実行領域において計算処理を行う。これに対し、実施形態2に係る機械学習システム2は、ユーザが層指定情報を指定する際、入力画像を平文実行領域において計算したときに入力画像が畳み込み演算によりどのように変化するか、また、計算コストがどのように変化するかなどの情報をユーザに提供する。ユーザは、提供された情報を参照して、ユーザが求める計算コストやセキュリティレベルに応じた層指定情報を容易に指定することができるようになる。
【0067】
(機械学習システム2の構成)
図10は、本実施形態に係る機械学習システム2を示す図である。
図10に示すように、本実施形態に係る機械学習システム2は、機械学習装置300と、ユーザによって使用される一つ以上の端末装置200と、を備える。機械学習装置300は、第1実施形態に係る機械学習装置100と比較して、提供部3324と、推定部3325と(
図11において詳述。)をさらに備える。提供部3324は、ユーザが入力した画像データを平文実行領域において計算した場合にどのように変化するか、また計算コストなどの情報を示すことで、ユーザが暗号実行領域において演算を行う範囲の選択を補助する機能を備える。
【0068】
(機械学習装置300の機能的構成)
図11は、本実施形態における機械学習装置300の機能的構成を示すブロック図である。機械学習装置300は、通信部110と、記憶部120と、制御部330と、を備える。機械学習装置300における通信部110及び記憶部120の機能構成は、機械学習装置100と同様であるため、説明を省略する。
【0069】
制御部330は、機械学習装置300のプロセッサが記憶部120に記憶されるプログラムを読み込み、プログラムに含まれる命令を実行することにより実現される。制御部330は、機械学習装置300の動作を制御する。具体的には、制御部330は、データ取得部131と、機械学習計算部332と、受付部1321と、暗号処理部1322と、平文処理部1323と、提供部3324と、推定部3325と、を含む。制御部330は、提供部3324及び推定部3325を備えること以外は、機械学習装置100における制御部130と同様であるため、重複する説明を省略する。
【0070】
提供部3324は、データ取得部131において取得するユーザから入力される画像データについて、入力層から出力層までの演算を、平文処理部1323が実行した場合の当該演算に関する平文途中演算情報を提供する。平文途中演算情報とは、入力層から出力層までの途中過程における演算に関する情報であり、平文実行領域における、途中の層で入力又は出力されるデータ、途中の層までにかかる計算時間(及びここから推定される推論又は学習に係る全時間)、途中の層までにかかる計算量(及びここから推定される推論又は学習にかかる全計算量)、計算量から算出される料金などを含むものである。平文途中演算情報は、例えば、平文処理部1323が、ユーザから入力される一つの画像データについて入力層から出力層までの演算を実行し、当該演算に関する情報に基づいて算出することができる。平文途中演算情報は、例えば、通信部110を介して、ユーザが利用する端末装置200に送信されてもよいし、機械学習装置100における表示装置(不図示)に表示されてもよい。
【0071】
提供部3324は、例えば、平文途中演算情報として、入力層に入力される画像データと、入力層から出力層までの各層に入力されるデータとの情報の差を、ユーザが比較できる態様で提供してもよい。また、提供部3324は、必ずしもユーザが比較できる態様で提供せず、平文途中演算情報として、各層に入力される画像データを提供してもよい。
【0072】
提供部3324は、畳み込み演算が繰り返されることで目視による識別が困難になることを前提とし、各層に入力される画像データをユーザに提供することで、どの層に入力される画像データまで目視で識別可能かということに関する参考情報(情報の差)を提供し、ときには、比較を行うことにより、暗号化して機械学習を行う必要のある層を判断するための情報を提供する。例えば、サンプルの画像データについて、ある中間層である第1の層と、第1の層より後に処理が実行される第2の層とに入力されるデータのそれぞれをユーザに提示してもよい。これにより、サンプルの画像データが、層の処理によって、どのように変化し、情報の差がでるか、ユーザが比較でき、ユーザが層指定情報を指定するのを支援する。
【0073】
提供部3324は、入力層から出力層までの全ての入力画像データを提供しなくともよく、入力層から出力層までの複数の所定の層について、暗号処理部1322が演算を行った場合に入力される画像データと、平文処理部1323が演算を行った場合に入力される画像データとを、ユーザが比較できる態様で提供してもよい。このとき、複数の所定の層の選び方については、5層ごとに1層を抽出するなど、周期性をもって選択してもよいし、ランダムに複数の層を抽出してもよい。
【0074】
提供部3324は、さらに、暗号処理部1322が演算を行った場合に、途中の層に入力される画像データに代えて、マスク画像を提供してもよい。すなわち、暗号処理部1322が演算を行った場合に入力される画像データは暗号化されているため、人にとって識別不能なデータであることから、あえてその画像データを提示する必要性に乏しく、代わりにマスク画像を提供することで、人にとって識別不能なデータであることを示してもよい。
【0075】
提供部3324は、例えば、入力層から所定の層までを暗号処理部1322が演算し、当該所定の層の次の層から出力層までを平文処理部1323が実行した場合の計算コストを、ユーザが比較できる態様で提供してもよい。提供部3324は、所定の層までを暗号実行領域において演算し、残りを平文実行領域においてに演算した場合の計算時間及び/又は計算量などをユーザに提供することで、暗号化して機械学習を行う必要のある層を判断するための情報提供をすることができる。
【0076】
提供部3324は、推定部3325(後述)が算出する層指定推定情報を提供してもよい。層指定推定情報は、データ取得部131が取得した画像データに関連するデータと、当該画像データについて指定された層指定情報の相関関係に基づいて算出される情報である。層指定推定情報は、例えば、第N層を具体的に特定する数値であってもよいし、Nの範囲であってもよい。
【0077】
推定部3325は、データ取得部が取得した画像データに関連するデータと、当該画像データについて指定された層指定情報との相関関係を学習する。画像データに関連するデータとは、画像データを取り扱う業界(医療、食品、EC等)、内容(診断、マーケティング等)、組織、ユーザなどである。推定部3325は、何層目まで暗号化するかを、画像データに関連するデータと相関関係を学習する。そして、推定部3325は、学習した結果、入力される画像データに関連するデータと相関関係にある層指定情報を、層指定推定情報として算出する。上述したように、提供部3324が、推定部3325が算出した層指定推定情報を、平文途中演算情報とともにユーザに提供することで、層指定情報を指定する際の目安となる。これにより、ユーザは層指定情報を容易に指定することができるようになる。
【0078】
(提供部3324が提供する平文途中演算情報の具体例)
図12は、提供部3324が提供する画面の一例を示す図である。画面402には、平文処理部1323が演算を実行した場合に、計算過程5層の各層に入力される画像データ(「牛」を示す画像)を示しており、ユーザが暗号実行領域において演算を行う範囲を「選択中」であることを示すアイコン412が表示されている。
【0079】
図12において、「Input」の部分には、ユーザが入力した入力画像が表示される。また、画面402には、平文途中演算情報として、複数の層(計算過程1~5)における入力画像が、表示されている。一般的に、畳み込みニューラルネットワークにおいて、畳み込み演算のフィルタリング処理が繰り返される過程で、入力画像は目視で識別しにくくなるため、深い層における入力画像ほど、識別が困難な画像となっている。例えば、画面402の入力画像(Input)は、牛であり、Inputと計算過程1で示される画像は、目視では、殆ど区別がつかない。一方、計算過程3~5で示される画像は、牛の輪郭がなく、目視では、画像が示す対象物を識別することが困難であることが分かる。
【0080】
また、画面402には、複数の層に入力される画像データだけではなく、途中の層までを暗号実行領域において演算し、それ以降を平文実行領域において演算した場合の計算時間(「Time」)や費用(「Cost」)も合わせて示されている。例えば、計算過程1に対して、「Time」は「5'36」であり、「Cost」は「$4」である。すなわち、計算過程1までを暗号実行領域において演算し、それ以降を平文実行領域において演算した場合の計算時間は「5'36」、費用は「$4」であることを示している。畳み込みニューラルネットワークにおける処理の層が深くなる(計算過程1から5へ進む)につれて、暗号実行領域において演算する計算量が増加していくため、計算時間や費用も増加していく。なお、
図12では、計算コストとして、計算時間や費用が提示されているが、演算にかかる計算量や、計算資源なども計算コストとしてユーザに提示してもよい。
【0081】
また、ユーザが、ボタン422をクリック等することで、上述の「牛」の入力画像ではなく、別の画像や、プラットフォーム側で予め用意したサンプル画像、情報量の差が示されるイラスト等の画像を入力画像として変更できるようにしてもよい。この場合、これらのサンプル画像に基づいて、平文途中演算情報が提供される。
【0082】
図13は、提供部3324が提供する画面の一例を示す図である。画面403の領域413には、ユーザが暗号実行領域において演算を行う範囲として「計算過程2」を選択したことが示されている。また、ユーザは、「決定」ボタン423をクリック等することにより「計算過程2」を層指定情報として入力できる。なお、層の指定は、例えば、各計算過程において示されている画像データや、当該画像データの下方に示されているアイコン(
図13では鍵アイコン)をクリック等することにより行われてもよいし、キーボードや音声により行われてもよい。
【0083】
図13では、ユーザが選択した層である計算過程2までの層における画像データをマスク画像で示している。ある層までを暗号実行領域において演算する場合、その層までに入力される画像データは暗号化されるため、人による識別は不可能であり、その暗号化された画像データを敢えてユーザに提示する必要性は乏しい。マスク画像によって代替して表示を行うことにより、暗号実行領域における演算を減らすことができる。しかしながら、ユーザが演算結果をイメージしやすくするために、暗号実行領域における演算結果を表示することを妨げるものではない。
【0084】
(処理の流れ)
図14は、機械学習装置300が実行する処理の一例を示すフローチャートである。
【0085】
制御部130は、画像データ等のデータ、又は画像データ等のデータ及びラベルを、通信部110を介して、端末装置200から取得する(ステップS201)。
【0086】
制御部130は、入力層から出力層までの各層において、平文処理部1323が実行した場合の当該演算に関する平文途中演算情報を、通信部110を介して、端末装置200に提供する(ステップS202)。
【0087】
制御部130は、暗号実行領域で行う演算と平文実行領域で行う演算との境界となる、第N層を指定する層指定情報を、通信部110を介して、端末装置200から取得する(ステップS203)。
【0088】
制御部130は、取得した画像等のデータと適用する学習モデルを準同型暗号で暗号化する。そして、0層から第N層までを暗号化実行領域において演算し、その後復号する(ステップS204)。
【0089】
制御部130は、ステップS204において復号した演算結果に基づいて、第(N+1)層から出力層までを平文実行領域において演算し、推論又は学習モデルのパラメータの更新を行う。そして、制御部130は、演算結果を記憶部120に格納し、処理を終了する(ステップS205)。
【0090】
(効果の説明)
本実施形態に係る機械学習装置300は、機械学習における演算の一部を暗号実行領域において、その他の部分を平文実行領域において演算することを前提として、入力画像を平文実行領域で処理した場合の、平文途中演算情報をユーザに提供する。平文途中演算情報を参照することにより、ユーザは、ユーザが求める実用的な計算コストや、セキュリティレベルに応じた、境界となる層の選択が可能となる。
【0091】
以上で実施形態の説明を終了するが、上記実施形態は一例に過ぎない。そのため、機械学習装置100、300の具体的な構成、処理内容等は上記実施形態で説明したものに限られない。
【0092】
また、本開示に係る機械学習装置は、上記装置によらず、例えば、コンピュータがプログラムを実行することで、その機能を実現してもよい。情報提供システムの機能を実現するためのプログラムは、USB(Universal Serial Bus)メモリ、CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)、HDD(Hard Disc Drive)、SSD(Solid State Drive)等のコンピュータ読み取り可能な記録媒体に記憶されてもよいし、ネットワークを介してコンピュータにダウンロードされてもよい。
【0093】
以上、本開示の好ましい実施形態について説明したが、上記実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
【符号の説明】
【0094】
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 推定部。