IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧

<>
  • 特開-機械学習システム及び方法 図1
  • 特開-機械学習システム及び方法 図2
  • 特開-機械学習システム及び方法 図3
  • 特開-機械学習システム及び方法 図4
  • 特開-機械学習システム及び方法 図5
  • 特開-機械学習システム及び方法 図6
  • 特開-機械学習システム及び方法 図7
  • 特開-機械学習システム及び方法 図8
  • 特開-機械学習システム及び方法 図9
  • 特開-機械学習システム及び方法 図10
  • 特開-機械学習システム及び方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023177836
(43)【公開日】2023-12-14
(54)【発明の名称】機械学習システム及び方法
(51)【国際特許分類】
   G09C 1/00 20060101AFI20231207BHJP
   G06N 20/00 20190101ALI20231207BHJP
【FI】
G09C1/00 650Z
G06N20/00
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022090740
(22)【出願日】2022-06-03
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】松本 麻里
(72)【発明者】
【氏名】古田 雅則
(57)【要約】
【課題】機械学習における高い安全性を確保することが可能な機械学習システム及び方法を提供することにある。
【解決手段】実施形態によれば、複数のクライアント端末の各々は、学習処理が実行された機械学習モデルから第1パラメータ列を抽出し、第1パラメータ列の配列を変更し、配列が変更された第1パラメータ列に対して秘密分散を実施することによって第1断片パラメータ列を生成し、第1断片パラメータ列を複数の統合サーバ装置に送信する。複数の統合サーバ装置の各々は、複数のクライアント端末から受信された複数の第1断片パラメータ列の各々の配列を変更し、配列が変更された複数の第1断片パラメータ列に対して統合処理を実行することによって第2断片パラメータ列を生成する。機械学習モデルは、複数の第2断片パラメータ列から復号される第2パラメータ列に基づいて更新される。
【選択図】図5
【特許請求の範囲】
【請求項1】
複数のクライアント端末と、当該複数のクライアント端末と通信可能に接続される複数の統合サーバ装置とを備える機械学習システムにおいて、
前記複数のクライアント端末の各々は、
当該クライアント端末において管理されている学習データを用いて機械学習モデルの学習処理を実行する学習処理手段と、
前記学習処理が実行された機械学習モデルから複数のパラメータが配列された第1パラメータ列を抽出する抽出手段と、
前記抽出された第1パラメータ列における複数のパラメータの配列を変更する第1変更手段と、
前記複数のパラメータの配列が変更された第1パラメータ列に対して秘密分散を実施することによって、前記複数の統合サーバ装置の各々に対応する第1断片パラメータ列を生成する第1生成手段と、
前記生成された第1断片パラメータ列を前記複数の統合サーバ装置の各々に送信する送信手段と
を含み、
前記複数の統合サーバ装置の各々は、
前記複数のクライアント端末の各々に含まれる送信手段によって送信された複数の第1断片パラメータ列を受信する受信手段と、
前記受信された複数の第1断片パラメータ列の各々における複数の断片パラメータの配列を変更する第2変更手段と、
前記複数の断片パラメータの配列が変更された複数の第1断片パラメータ列に対して統合処理を実行することによって第2断片パラメータ列を生成する第2生成手段と
を含み、
前記機械学習モデルは、前記複数の統合サーバ装置の各々に含まれる第2生成手段によって生成された複数の第2断片パラメータ列から復号される第2パラメータ列における複数のパラメータに基づいて更新される
機械学習システム。
【請求項2】
前記第1生成手段は、前記複数の統合サーバ装置の数がN(Nは、2以上の整数)である場合に、k-1(kは、2以上、かつ、N以下の整数)個のランダムな整数環Qの元である第1係数r,…,rk-1と、N台の統合サーバ装置の各々に対応するN個のランダムな前記整数環Qの元である第2係数P,…,Pとを決定し、前記第1パラメータ列における複数のパラメータの各々を切片aとするk-1次多項式
【数3】

に基づいて、前記N台の統合サーバ装置の各々に対応するN個の第1断片パラメータ列を生成し、
前記送信手段は、前記生成されたN個の第1断片パラメータ列の各々を、当該第1断片パラメータ列に対応する統合サーバ装置に送信する
請求項1記載の機械学習システム。
【請求項3】
前記統合処理は、秘密計算により実行される請求項1記載の機械学習システム。
【請求項4】
前記第1生成手段は、前記抽出された第1パラメータ列における複数のパラメータの第1配列と当該第1配列から変更された当該複数のパラメータの第2配列との対応関係を示すインデックス列に対して秘密分散を実施することによって、前記複数の統合サーバ装置の各々に対応する断片インデックス列を生成し、
前記送信手段は、前記生成された断片インデックス列を前記複数の統合サーバ装置の各々に送信し、
前記受信手段は、前記複数のクライアント端末の各々に含まれる送信手段によって送信された複数の断片インデックス列を受信し、
前記第2変更手段は、前記受信された複数の断片インデックス列の各々に基づいて、前記受信された複数の第1断片パラメータ列の各々における複数の断片パラメータの配列を変更する
請求項1記載の機械学習システム。
【請求項5】
前記断片インデックス列は、前記第1断片パラメータ列とは異なるファイルで送信される請求項4記載の機械学習システム。
【請求項6】
前記複数のクライアント端末の各々は、予め用意されている評価用データを用いて前記更新された後の機械学習モデルを評価する評価手段を更に含み、
前記複数のクライアント端末の各々に含まれる学習処理手段は、当該クライアント端末に含まれる評価手段による評価結果に基づいて、前記更新された後の機械学習モデルまたは前記更新される前の機械学習モデルの学習処理を実行する
請求項1記載の機械学習システム。
【請求項7】
前記第1生成手段は、前記抽出された第1パラメータ列における複数のパラメータの第1配列と当該第1配列から変更された当該複数のパラメータの第2配列との対応関係を示す第1インデックス列に対して秘密分散を実施することによって前記複数の統合サーバ装置の各々に対応する第1断片インデックス列を生成し、前記第1インデックス列とは異なる第2インデックス列に対して秘密分散を実施することによって前記複数の統合サーバ装置の各々に対応する第2断片インデックス列を生成し、
前記送信手段は、前記生成された第1及び第2断片インデックス列を前記複数の統合サーバ装置の各々に送信し、
前記受信手段は、前記複数のクライアント端末の各々に含まれる送信手段によって送信された複数の第1断片インデックス列及び複数の第2断片インデックス列を受信し、
前記第2変更手段は、前記受信された複数の第1断片インデックス列及び複数の第2断片インデックス列のうちの予め指定されている複数の第1断片インデックス列の各々に基づいて、前記受信された複数の第1断片パラメータ列の各々における複数の断片パラメータの配列を変更する
請求項1記載の機械学習システム。
【請求項8】
前記第1及び第2断片インデックス列は、前記第1断片パラメータ列とは異なるファイルで送信される請求項7記載の機械学習システム。
【請求項9】
前記受信された複数の第1断片パラメータ列の各々における複数の断片パラメータの配列の変更は、秘密計算により行われる請求項4または7記載の機械学習システム。
【請求項10】
複数のクライアント端末と、当該複数のクライアント端末と通信可能に接続される複数の統合サーバ装置とを備える機械学習システムが実行する方法であって、
前記複数のクライアント端末の各々が、当該クライアント端末において管理されている学習データを用いて機械学習モデルの学習処理を実行するステップと、
前記クライアント端末の各々が、前記学習処理が実行された機械学習モデルから複数のパラメータが配列された第1パラメータ列を抽出するステップと、
前記クライアント端末の各々が、前記抽出された第1パラメータ列における複数のパラメータの配列を変更するステップと、
前記クライアント端末の各々が、前記複数のパラメータの配列が変更された第1パラメータ列に対して秘密分散を実施することによって、前記複数の統合サーバ装置の各々に対応する第1断片パラメータ列を生成するステップと、
前記クライアント端末の各々が、前記生成された第1断片パラメータ列を前記複数の統合サーバ装置の各々に送信するステップと、
前記複数の統合サーバ装置の各々が、前記複数のクライアント端末の各々に含まれる送信手段によって送信された複数の第1断片パラメータを受信するステップと、
前記複数の統合サーバ装置の各々が、前記受信された複数の第1断片パラメータ列の各々における複数の断片パラメータの配列を変更するステップと、
前記複数の統合サーバ装置の各々が、前記複数の断片パラメータの配列が変更された複数の第1断片パラメータ列に対して統合処理を実行することによって第2断片パラメータ列を生成するステップと
を具備し、
前記機械学習モデルは、前記複数の統合サーバ装置の各々において生成された第2断片パラメータ列から復号される第2パラメータ列における複数のパラメータに基づいて更新される
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、機械学習システム及び方法に関する。
【背景技術】
【0002】
近年では、デジタル化されたデータ(情報)を利用した高度な電気通信サービスが提供されている。このような電気通信サービスによれば、様々なデータに基づく環境に合わせた情報提供等を実現することができる。
【0003】
ところで、上記した電気通信サービスの提供を実現するために機械学習(により生成された学習モデル)を用いることが考えられる。機械学習の規模は拡大化する傾向にあり、近年ではクラウドコンピューティングサービスを提供する事業者(以下、クラウド事業者と表記)に当該機械学習に関する演算(計算)を委託し、大規模な機械学習を実現することが行われている。
【0004】
しかしながら、機械学習に用いる学習データには個人情報等が含まれる場合があり、クラウド事業者に機械学習に関する演算を委託した場合には、当該学習データが漏洩するリスクが生じる。具体的には、例えば複数の組織の各々が保有する学習データを収集(集約)して機械学習を行うような場合には、当該複数の組織から学習データを収集する際に当該学習データが漏洩することが考えられるし、当該統合サーバ装置から当該学習データが漏洩する可能性もある。
【0005】
このような学習データの漏洩を抑制するための技術として連合学習が知られている。連合学習は複数の組織に跨る学習データを用いて機械学習を行うための技術であり、当該連合学習においては、例えば当該複数の組織の各々にマスターモデル(グローバルモデル)が配布され、当該複数の組織の各々に分散して保有されている学習データを用いたマスターモデルの学習が当該複数の組織の各々で行われる。このような複数の組織の各々で行われた学習の結果(更新前のマスターモデルと更新後のマスターモデルとの差分)は統合サーバ装置によって収集され、当該収集された学習の結果を用いてマスターモデルが更新される。
【0006】
すなわち、連合学習においては、複数の組織の各々において保有されている学習データを収集することなく、当該学習データが分散された状態で学習が行われる(つまり、学習の結果のみが統合サーバ装置に提供される)ため、学習データの収集時に当該学習データが漏洩するまたは統合サーバ装置が収集した学習データが当該統合サーバから漏洩するようなことを防止することができる。
【0007】
更に、連合学習においては、更新前のマスターモデルと更新後のマスターモデルとの差分(例えば、更新後のマスターモデルのパラメータ)のみが統合サーバ装置によって収集されるため、機械学習を行う際の通信データ量の削減という利点を更に有する。
【0008】
しかしながら、連合学習を適用したとしても統合サーバ装置が収集する情報(学習の過程で得られるパラメータ等)から学習データが推測される脅威を排除することはできないため、当該情報が漏洩した場合には十分な安全性を確保することができない場合がある。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】国際公開第2021/059604号
【発明の概要】
【発明が解決しようとする課題】
【0010】
そこで、本発明が解決しようとする課題は、機械学習における高い安全性を確保することが可能な機械学習システム及び方法を提供することにある。
【課題を解決するための手段】
【0011】
実施形態によれば、複数のクライアント端末と、当該複数のクライアント端末と通信可能に接続される複数の統合サーバ装置とを備える機械学習システムが提供される。前記複数のクライアント端末の各々は、当該クライアント端末において管理されている学習データを用いて機械学習モデルの学習処理を実行する学習処理手段と、前記学習処理が実行された機械学習モデルから複数のパラメータが配列された第1パラメータ列を抽出する抽出手段と、前記抽出された第1パラメータ列における複数のパラメータの配列を変更する第1変更手段と、前記複数のパラメータの配列が変更された第1パラメータ列に対して秘密分散を実施することによって、前記複数の統合サーバ装置の各々に対応する第1断片パラメータ列を生成する第1生成手段と、前記生成された第1断片パラメータ列を前記複数の統合サーバ装置の各々に送信する送信手段とを含む。前記複数の統合サーバ装置の各々は、前記複数のクライアント端末の各々に含まれる送信手段によって送信された複数の第1断片パラメータを受信する受信手段と、前記受信された複数の第1断片パラメータ列の各々における複数の断片パラメータの配列を変更する第2変更手段と、前記複数の断片パラメータの配列が変更された複数の第1断片パラメータ列に対して統合処理を実行することによって第2断片パラメータ列を生成する第2生成手段とを含む。前記機械学習モデルは、前記複数の統合サーバ装置の各々に含まれる第2生成手段によって生成された複数の第2断片パラメータ列から復号される第2パラメータ列における複数のパラメータに基づいて更新される。
【図面の簡単な説明】
【0012】
図1】第1実施形態に係る機械学習システムのネットワーク構成の一例を示す図。
図2】クライアント端末のハードウェア構成の一例を示す図。
図3】クライアント端末の機能構成の一例を示す図。
図4】統合サーバ装置の機能構成の一例を示す図。
図5】機械学習システムの処理手順の一例を示すシーケンスチャート。
図6】配列変更処理の一例を説明するための図。
図7】機械学習システムの第1適用例を説明するための図。
図8】機械学習システムの第2適用例を説明するための図。
図9】第2実施形態におけるクライアント端末の機能構成の一例を示す図。
図10】機械学習システムの処理手順の一例を示すシーケンスチャート。
図11】第3実施形態における配列変更処理の一例を説明するための図。
【発明を実施するための形態】
【0013】
以下、図面を参照して、各実施形態について説明する。
(第1実施形態)
まず、第1実施形態について説明する。図1は、第1実施形態に係る機械学習システムのネットワーク構成の一例を示す。
【0014】
本実施形態に係る機械学習システム1は、複数のクライアント端末及び複数の統合サーバ装置を備え、各種サービス(電気通信サービス)を提供するために利用される機械学習モデルの機械学習を行う(つまり、機械学習によって機械学習モデルを生成する)ために利用される。
【0015】
なお、本実施形態において、複数のクライアント端末はクライアント端末10-1~10-M(Mは、2以上の整数)を含み、複数の統合サーバ装置は統合サーバ装置20-1~20-N(Nは、2以上の整数)を含む。
【0016】
クライアント端末10-1~10-M及び統合サーバ装置20-1~20-Nの各々は、例えばパーソナルコンピュータのような電子機器(計算機)等によって実現される。また、クライアント端末10-1~10-Mと統合サーバ装置20-1~20-Nとは、例えばインターネットのようなネットワーク30を介して通信可能に接続される。
【0017】
クライアント端末10-1~10-Mはそれぞれ対応する組織(クライアント)が保有するデータを管理する(または当該データにアクセスする)ことができるように構成されており、本実施形態においては、当該データを学習データとして用いることによって機械学習モデルの機械学習を行う場合を想定している。なお、クライアント端末10-1~10-Mの各々においては、それぞれ異なる学習データが管理されているものとする。
【0018】
また、統合サーバ装置20-1~20-Nの各々は、上記したクライアント端末10-1~10-Mに対してクラウドコンピューティングサービスを提供するクラウドサーバ装置として実現されていてもよい。
【0019】
なお、本実施形態においてクライアント端末10-1~10-Mの数と統合サーバ装置20-1~20-Nの数とは、同一であってもよいし、異なっていてもよい。
【0020】
ここで、例えばクライアント端末10-1~10-Mの各々において管理されているデータ(学習データ)を収集し、当該収集された学習データを用いて機械学習を行うことが考えられるが、このような構成の場合には、当該クライアント端末10-1~10-Mから学習データを収集する際に当該学習データが漏洩する可能性がある。
【0021】
これに対して、例えば連合学習と称される技術を適用することによって、上記した学習データの漏洩を抑制することができる可能性がある。
【0022】
しかしながら、連合学習においては機械学習を行うことによって得られた機械学習モデル(更新された機械学習モデル)のパラメータを学習の結果として収集する必要がある。この機械学習モデルのパラメータの収集時に当該パラメータが漏洩した場合には、当該パラメータから学習データが推測される可能性があるため、当該学習データの漏洩に対する安全性が十分であるということはできない。
【0023】
このため、本実施形態においては、クライアント端末10-1~10-Mの各々において管理されている学習データを用いて機械学習を行う際に、上記したパラメータを秘匿化(暗号化)する構成を採用する。
【0024】
ところで、上記したような秘匿化を実現する技術(秘匿演算技術)には、準同型暗号と秘密分散法とがあるが、一般的に、準同型暗号は、秘密分散法と比較して、演算量(計算量)が多くなる。このため、本実施形態において適用する秘匿演算技術としては、秘密分散法を用いる。
【0025】
秘密分散法は秘匿化されるデータ(秘匿情報)をシェアと称される複数の断片データに変換する方法であり、当該秘密分散法の一例としてはShamirの秘密分散法等が知られている。
【0026】
以下、Shamirの秘密分散法の概要について説明する。ここでは、秘匿化されるデータaの保有者が当該データaをn個に安全に分散する場合を考える。
【0027】
このような場合、Shamirの秘密分散法によれば、データ保有者はa∈Qとなる体(整数環)Qを選択し、秘密分散を実施する。
【0028】
具体的には、k-1(kは、2以上、かつ、n以下の整数)個のランダムな体Qの元であるr,…,rk-1を選択(決定)し、秘匿化されるデータaを切片とするk-1次多項式である以下の式(1)を構成する。
【数1】
【0029】
また、n個の体Qの元であるP,…,Pを選択(決定)し、当該P,…,Pをそれぞれ上記した式(1)のPに適用することによって、W(P),…,W(P)を計算する。なお、上記したr,…,rk-1及びP,…,Pは、式(1)における係数に相当する。また、P,…,Pはそれぞれ異なる値である。換言すれば、P(t=1,2,…,n)はPt´(t´=1,2,…,n、かつ、t≠t´)とは異なる。
【0030】
上記したように計算されたW(P),…,W(P)は、秘匿化されるデータaのシェア(断片データ)であり、例えば異なるn台のサーバ装置等に送信される。
【0031】
これにより、秘匿化されるデータaをn台のサーバ装置に分散することができる。なお、n台のサーバ装置をサーバ装置S,…,Sとし、サーバ装置S(t=1,2,…,n)に送信されたシェアをW(P)とすると、当該W(P)は、例えば[a]:=W(P)と表される。
【0032】
次に、上記したように分散されたn個のシェアからデータaを復元する場合を考える。この場合、上記したn台のサーバ装置S,…,Sのうちのk台のサーバ装置(以下、サーバ装置St1,…,Stkと表記)を選択し、当該選択されたサーバ装置St1,…,Stkの各々からシェアを受け取る。なお、サーバ装置St1,…,Stkから受け取られたシェアを[a]t1,…,[a]tkとする。
【0033】
この場合、データaは、k個のシェア[a]t1,…,[a]tkから以下の式(2)により復元することができる。
【数2】
【0034】
なお、式(2)におけるλtjは、Lagrange補間法におけるLagrange係数である。
【0035】
上記したShamirの秘密分散法によれば、1つの秘匿化されるデータaからn個のシェア(断片データ)を生成(計算)し、当該n個のシェアをn台のサーバ装置に分散することができるとともに、当該分散されたn個のシェアから予め定められたk個のシェアを集めて元のデータa(秘匿情報)を復元することができる。すなわち、Shamirの秘密分散法は、k≦nを満たすような2以上の整数n及びkについて、n-k個のシェアが消失したとしても元のデータaを復元することができる耐消失性と、k個未満のシェアからは元のデータaを復元することができない機密性を併せ持つ。
【0036】
本実施形態においては、クライアント端末10-1~10-Mの各々において機械学習モデルの学習処理を実行し、上記したShamirの秘密分散法をベースとした秘密分散法を使用することによって、当該学習処理の結果(つまり、更新された機械学習モデルのパラメータ)に対する暗号化(秘匿化)を行うものとする。
【0037】
なお、本実施形態における秘密分散法においては、複数の統合サーバ装置20-1~20-Nが上記したサーバ装置S,…,Sに相当する。
【0038】
以下、本実施形態に係る機械学習システム1について詳細に説明する。まず、図2を参照して、機械学習システム1に備えられるクライアント端末10-1~10-Mのうちのクライアント端末10-1のハードウェア構成の一例について説明する。ここでは便宜的にクライアント端末10-1のハードウェア構成について説明するが、他のクライアント端末10-2~10-Mの各々についても図2と同様のハードウェア構成を有している。
【0039】
図2に示すように、クライアント端末10-1は、CPU11、不揮発性メモリ12、RAM13及び通信デバイス14等を備える。
【0040】
CPU11は、クライアント端末10-1内の様々なコンポーネントの動作を制御するためのプロセッサである。CPU11は、単一のプロセッサであってもよいし、複数のプロセッサで構成されていてもよい。CPU11は、不揮発性メモリ12からRAM13にロードされる様々ンプログラムを実行する。これらのプログラムは、オペレーティングシステム(OS)や様々なアプリケーションプログラムを含む。このようにCPU11によって実行されるアプリケーションプログラムには、機械学習システム1におけるクライアント端末として動作するためのプログラム(以下、クライアントプログラムと表記)が含まれる。
【0041】
不揮発性メモリ12は、補助記憶装置として用いられる記憶媒体である。RAM13は、主記憶装置として用いられる記憶媒体である。図2においては不揮発性メモリ12及びRAM13のみが示されているが、クライアント端末10-1は、例えばHDD(Hard Disk Drive)及びSSD(Solid State Drive)等の他の記憶装置を備えていてもよい。
【0042】
通信デバイス14は、クライアント端末10-1の外部の装置(例えば、複数の統合サーバ装置20-1~20-N)との通信を実行するように構成されたデバイスである。
【0043】
ここではクライアント端末10-1~10-Mの各々が図2に示すハードウェア構成を有するものとして説明したが、機械学習システム1に備えられる複数の統合サーバ装置20-1~20-Nの各々についても当該クライアント端末10-1~10-Mと同様のハードウェア構成を有するものとする。
【0044】
なお、クライアント端末10-1~10-Mの各々においてはCPU11がクライアントプログラムを実行するものとして説明したが、統合サーバ装置20-1~20-Nの各々においてはCPUがサーバプログラム(機械学習システム1における統合サーバ装置20-1~20-Nとして動作するためのプログラム)を実行するものとする。
【0045】
次に、図3を参照して、クライアント端末10-1~10-Mのうちのクライアント端末10-1の機能構成の一例について説明する。ここでは便宜的にクライアント端末10-1の機能構成について説明するが、他のクライアント端末10-2~10-Mの各々についても図3と同様の機能構成を有している。
【0046】
図3に示すように、クライアント端末10-1は、格納部101、学習処理部102、パラメータ抽出部103、配列変更部104、暗号化部105、復号化部106及び更新部107を含む。
【0047】
本実施形態において、クライアント端末10-1に含まれる格納部101は、図2に示す不揮発性メモリ12または他の記憶装置によって実現される。
【0048】
また、クライアント端末10-1に含まれる学習処理部102、パラメータ抽出部103、配列変更部104、暗号化部105、復号化部106及び更新部107の一部または全ては、図2に示すCPU11(つまり、クライアント端末10-1のコンピュータ)に上記したクライアントプログラムを実行させること、すなわち、ソフトウェアによって実現されるものとする。なお、このCPU11によって実行されるクライアントプログラムは、コンピュータ読み取り可能な記憶媒体に格納して頒布されてもよいし、ネットワークを通じてクライアント端末10-1にダウンロードされてもよい。
【0049】
ここではCPU11にクライアントプログラムを実行させることによって各部102~107が実現されるものとして説明したが、当該各部102~107の一部または全ては、例えばIC(Integrated Circuit)等のハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせによって実現されてもよい。
【0050】
格納部101には、上記した学習データ(クライアント端末10-1に対応する組織が保有するデータ)が格納されているものとする。
【0051】
なお、格納部101に格納されている学習データは、クライアント端末10-1において管理されているデータであればよく、例えば当該クライアント端末10-1がアクセスすることができるデータベース等から取得されたデータであっても構わない。ただし、本実施形態におけるクライアント端末10-1は、当該クライアント端末10-1において管理される学習データにアクセスすることができるのであって、他のクライアント端末10-2~10-Mにおいて管理されている学習データにはアクセスすることができないようなネットワーク構成に配置されているものとする。すなわち、本実施形態においては、クライアント端末10-1~10-Mの各々に含まれる格納部101に、それぞれ異なる学習データが格納されているものとする。
【0052】
学習処理部102は、格納部101に格納されている学習データを用いて機械学習モデルに対する学習処理を実行する(つまり、機械学習を行う)。なお、学習処理部102によって学習処理が実行される機械学習モデルは、例えばマスターモデルとして外部装置において予め管理されており、当該外部装置からクライアント端末10-1に配布されるものとする。このように配布された機械学習モデルはローカルモデルとしてクライアント端末10-1内に保持され、学習処理部102は、当該機械学習モデル(ローカルモデル)に対して学習処理を実行する。
【0053】
なお、本実施形態における学習アルゴリズムとしては、例えばニューラルネットワークを使用するものとする。ニューラルネットワークにおいては、入力層、出力層及び1つ以上の中間層(隠れ層)が構成され、当該各層に含まれる複数のノードは、隣接する層に含まれる複数のノードと相互接続される。本実施形態において使用されるニューラルネットワークは、例えば畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)及び再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)等であってもよい。
【0054】
ここで、本実施形態における機械学習モデルは各種サービスを提供するために例えば所定のデータが入力された場合に当該データに基づく予測結果または分析結果等を出力するように構築されており、このような機械学習モデルに対する学習処理が実行されると、当該機械学習モデルを構成するパラメータ(ネットワークパラメータ)が更新される。なお、機械学習モデルを構成するパラメータは、複数存在し、例えば重み係数やバイアス等を含む。
【0055】
パラメータ抽出部103は、学習処理が実行された機械学習モデルを構成する複数のパラメータ(つまり、学習処理が実行されることによって更新された複数パラメータ)が所定の順に配列されたパラメータ列を、当該機械学習モデルから抽出する。
【0056】
配列変更部104は、パラメータ抽出部103によって抽出されたパラメータ列における複数のパラメータの配列を変更する。なお、「パラメータ列における複数のパラメータの配列を変更する」とは、当該複数のパラメータを並び替えることを含む。
【0057】
暗号化部105は、配列変更部104によって配列が変更されたパラメータ列に対して秘密分散を実施することによって当該パラメータ列を暗号化する。これによれば、パラメータ列における複数のパラメータの各々のシェアが配列されたシェア列(断片パラメータ列)が生成される。なお、上記したように機械学習システム1が複数の統合サーバ装置20-1~20-Nを備える(つまり、統合サーバ装置の数がNである)場合、暗号化部105は、当該統合サーバ装置20-1~20-Nの各々に対応するN個のシェア列を生成する。このように暗号化部105によって生成されたN個のシェア列の各々は、統合サーバ装置20-1~20-Nのうちの当該シェア列に対応する統合サーバ装置に送信される。
【0058】
復号化部106は、後述するように統合サーバ装置20-1~20-Nの各々から送信されたシェア列を受信し、当該受信されたシェア列からパラメータ列(機械学習モデルを構成する複数のパラメータ)を復号(復元)する。この場合、クライアント端末10-1においては統合サーバ装置20-1~20-NからN個のシェア列が受信されるが、上記したShamirの秘密分散法によればデータの復元に必要なシェアの数はk個であるため、復号化部106は、当該受信されたNのシェア列のうちのk個のシェア列を用いてパラメータ列を復号する。なお、この場合におけるkは、2以上、かつ、N以下(1<k≦N)を満たす整数である。
【0059】
更新部107は、復号化部106によって復号されたパラメータ列における複数のパラメータをクライアント端末10-1の内部に保持されているローカルモデルに適用する(つまり、当該ローカルモデルを構成する複数のパラメータを当該復号されたパラメータ列における複数のパラメータに更新する)ことによって当該ローカルモデル(機械学習モデル)を更新する。
【0060】
次に、図4を参照して、統合サーバ装置20-1~20-Nのうちの統合サーバ装置20-1の機能構成の一例について説明する。ここでは便宜的に統合サーバ装置20-1について説明するが、他の統合サーバ装置20-2~20-Nの各々についても図4と同様の機能構成を有している。
【0061】
図4に示すように、統合サーバ装置20-1は、配列変更部201、統合処理部202及び更新部203を含む。
【0062】
本実施形態において、統合サーバ装置20-1に含まれる配列変更部201、統合処理部202及び更新部203の一部または全ては、当該統合サーバ装置20-1に備えられるCPU(つまり、統合サーバ装置20-1のコンピュータ)に上記したサーバプログラムを実行させること、すなわち、ソフトウェアによって実現されるものとする。なお、このCPUによって実行されるサーバプログラムは、コンピュータ読み取り可能な記憶媒体に格納して頒布されてもよいし、ネットワークを通じて統合サーバ装置20-1にダウンロードされてもよい。
【0063】
ここではCPUにサーバプログラムを実行させることによって各部201~203が実現されるものとして説明したが、当該各部201~203の一部または全ては、例えばIC等のハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせによって実現されてもよい。
【0064】
配列変更部201は、クライアント端末10-1~10-Mの各々から送信されたM個のシェア列を受信する。ここで、上記したようにクライアント端末10-1~10-Mの各々から送信されるM個のシェア列は、当該クライアント端末10-1~10-Mにおいて配列が変更されたパラメータ列に対して秘密分散が実施されることによって暗号化されたデータであり、当該配列が変更された複数のパラメータの各々のシェアが、当該複数のパラメータと同じ順に配列されている。
【0065】
このため、配列変更部201は、受信されたシェア列毎に、当該シェア列における複数のパラメータのシェアの配列を変更する。具体的には、配列変更部201は、受信されたM個のシェア列の各々における複数のパラメータのシェアを、機械学習モデルから抽出された時点でのパラメータ列における複数のパラメータの配列(つまり、配列変更部104によって配列が変更される前の複数のパラメータの並び順)と同じになるように並び替える。これにより、同一のパラメータのシェアが同一の位置(順番)に配置されたM個のシェア列を得ることができる。
【0066】
統合処理部202は、配列変更部201によって配列が変更されたM個のシェア列に対して統合処理を実行する。これにより、統合処理部202は、M個のシェア列が統合された1つのシェア列を生成する。なお、このようなM個のシェア列を用いて統合されたシェア列は複数の統合サーバ装置20-1~20-Nの各々において生成されるが、当該シェア列は、機械学習が行われることによって得られるマスターモデルのパラメータ列(当該マスターモデルを構成する複数のパラメータが順に配列されたパラメータ列)に対して秘密分散を実施することによって生成されるシェア列(つまり、マスターモデルのパラメータのシェア列)に相当するということができる。
【0067】
更新部203は、機械学習システム1において機械学習が行われることによって得られる機械学習モデル(つまり、マスターモデル)と、クライアント端末10-1~10-Mの内部に保持されている機械学習モデル(つまり、ローカルモデル)とを同期させる処理を実行する。この場合、更新部203は、統合処理部202によって生成されたシェア列(マスターモデルのパラメータのシェア列)をクライアント端末10-1~10-Mの各々に送信する。これにより、クライアント端末10-1~10-Mの各々においては、統合サーバ装置20-1~20-N(更新部203)の各々から送信されたN個のシェア列のうちのk個のシェア列からパラメータ列を復号し、当該復号されたパラメータ列における複数のパラメータに基づいてローカルモデルを更新することができる。
【0068】
以下、図5のシーケンスチャートを参照して、本実施形態に係る機械学習システム1の処理手順の一例について説明する。図5においてはクライアント端末10-1及び統合サーバ装置20-1において実行される処理についてのみが示されているが、他のクライアント端末10-2~10-Mの各々は図5に示すクライアント端末10-1の処理と同様の処理を実行し、他の統合サーバ装置20-2~20-Nの各々は図5に示す統合サーバ装置20-1の処理と同様の処理を実行する。
【0069】
なお、機械学習システム1において機械学習が行われる場合(つまり、図5に示す処理が実行される前)にはマスターモデルがクライアント端末10-1~10-Mに予め配布されており、当該マスターモデルはローカルモデルとして当該クライアント端末10-1~10-Mの内部に保持されているものとする。
【0070】
また、クライアント端末10-1~10-Mの各々に含まれる格納部101には、当該クライアント端末に対応する組織が保有する学習データ(当該クライアント端末において管理されている学習データ)が格納されているものとする。
【0071】
まず、クライアント端末10-1に含まれる学習処理部102は、当該クライアント端末10-1に含まれている格納部101に格納されている学習データを用いてローカルモデルの学習処理を実行する(ステップS1)。
【0072】
以下、ステップS1の処理について説明する。本実施形態において、クライアント端末10-1に含まれる格納部101には複数の学習データが格納されており、当該学習データの各々は、機械学習モデルに入力される入力データと当該入力データが機械学習モデルに入力された際に当該機械学習モデルから出力されるべきデータ(正解データ)とを含む。ステップS1においては、このような学習データの各々を用いた学習処理が繰り返し実行される。なお、学習処理においては、学習データに含まれる入力データが機械学習モデル(ローカルモデル)に入力されることによって当該機械学習モデルから出力される出力データと当該学習データに含まれる正解データとを比較し、当該出力データと正解データとの誤差が小さくなるように当該機械学習モデルを構成するパラメータを更新するような処理が実行される。
【0073】
上記したステップS1における学習処理は、例えば機械学習モデルの精度が目標値を満たす場合に終了される(つまり、学習処理の終了タイミングは、機械学習モデルの学習精度に応じて調整される)ものとする。なお、機械学習モデルの精度は、例えば予め用意されている評価用データ(入力データと正解データとの組)を用いて、当該入力データが機械学習モデルに入力されることによって当該機械学習モデルから出力される出力データと当該評価用データに含まれる正解データとの誤差に基づいて算出されるものとする。このように算出された機械学習モデルの精度が目標値以上である場合にはステップS1の処理(学習処理)は終了され、当該機械学習モデルの精度が目標値未満である場合には当該学習処理が再度実行される。
【0074】
ここでは評価用データを用いて機械学習モデルの精度が算出されるものとして説明したが、例えば格納部101に格納されている複数の学習データのうちの一部を用いて当該機械学習モデルの精度を算出するようにしてもよい。
【0075】
また、ここでは機械学習モデルの精度が目標値を満たす場合にステップS1の処理が終了されるものとして説明したが、当該ステップS1の処理は、予め定められた回数(つまり、予め指定されたエポック数分)の学習処理が実行された場合に終了されるようにしてもよい。
【0076】
次に、パラメータ抽出部103は、ステップS1において学習処理が実行されたローカルモデルからパラメータ列を抽出する(ステップS2)。
【0077】
ここで、本実施形態における学習アルゴリズムとしてニューラルネットワークが使用される場合、ローカルモデル(機械学習モデル)は例えば重み係数及びバイアス(情報)等の複数のパラメータから構成されている。ステップS2においては、このような複数のパラメータが所定の順に配列されたパラメータ列が当該ローカルモデルから抽出される。具体的には、例えばローカルモデルを構成する複数のパラメータの数がLであり、当該L個のパラメータをp,p,…,pと表すものとすると、ステップS2においては、当該複数のパラメータの一次元配列である[p,p,…,p]がパラメータ列として抽出される。以下の説明においては、ステップS2において抽出されたパラメータ列を便宜的に第1パラメータ列と称する。
【0078】
なお、ステップS2の処理はクライアント端末10-1~10-Mの各々において実行されるが、当該クライアント端末10-1~10-Mの各々において抽出されるパラメータ列においては、同一(同種)のパラメータが同じ位置(順番)に配置されているものとする。
【0079】
ステップS2の処理が実行されると、配列変更部104は、上記した第1パラメータ列における複数のパラメータの各々に対応するインデックスが配列されたインデックス列を生成する(ステップS3)。なお、ステップS3において生成されるインデックス列としては例えばパラメータ列における複数のパラメータの各々の順番を表す整数が配列された整数列等を想定しており、上記したステップS2において第1パラメータ列[p,p,…,p]が抽出されている場合、ステップS3においてはインデックス列[1,2,…,L]が生成される。すなわち、このインデックス列[1,2,…,L]は、第1パラメータ列[p,p,…,p]におけるパラメータ「p」の順番が1番目であり、パラメータ「p」の順番が2番目であり、パラメータ「p」の順番がL番目であることを示している。なお、パラメータ「p」、「p」及び「p」以外のパラメータについても同様である。
【0080】
ステップS3の処理が実行されると、配列変更部104は、ステップS2において抽出された第1パラメータ列と当該ステップS3において生成されたインデックス列とを結合する。上記したようにステップS2において第1パラメータ列[p,p,…,p]が抽出され、ステップS3においてインデックス列[1,2,…,L]が生成されている場合、当該第1パラメータ列と当該インデックス列とを結合することによって、[[1,2,…,L],[p,p,…,p]]のような2×Lの2次元配列が生成される。
【0081】
次に、配列変更部104は、上記したように生成された2次元配列における列をランダムに入れ替えることにより、第1パラメータ列における複数のパラメータの配列(モデルパラメータ配列)及びインデックス列における複数のインデックスの配列を変更する(ステップS4)。
【0082】
ここで、図6は、上記したステップS4の処理(第1パラメータ列及びインデックス列に対する配列変更処理)の一例について説明するための図である。図6においては、上記したステップS2において抽出された第1パラメータ列が[p,p,p,p,p]であり、インデックス列が[1,2,3,4,5]である場合を想定している。
【0083】
この場合、ステップS4においては、図6の上段に示す2次元配列(第1パラメータ列とインデックス列とを結合することによって生成された2次元配列)における列をランダムに入れ替えることにより、当該2次元配列が図6の下段に示す2次元配列に変換される。
【0084】
このような図6の下段に示す2次元配列から第1パラメータ列とインデックス列とを分離することによって、第1パラメータ列[p,p,p,p,p]における複数のパラメータの配列が変更された第1パラメータ列[p,p,p,p,p]と、インデックス列[1,2,3,4,5]における複数のインデックスの配列が変更されたインデックス列[4,1,2,5,3]とが取得される。
【0085】
本実施形態においては第1パラメータ列における複数のパラメータとインデックス列における複数のインデックス(当該第1パラメータ列における複数のパラメータの各々の順番を表す整数)とが互いに対応づけられた状態で並び替えられる(つまり、配列が変更される)ため、配列が変更されたインデックス列は、第1パラメータ列における複数のパラメータの変更前の配列と、当該複数のパラメータの変更後の配列との対応関係を示す情報(パラメータの並び替え情報)であるといえる。
【0086】
なお、配列変更部104は、例えば乱数生成部を含み、当該乱数生成部によって生成される乱数を利用して上記したステップS4の処理を実行する構成であってもよい。
【0087】
また、本実施形態においてはインデックス列がパラメータ列における複数のパラメータの各々の順番を表す整数が要素として配列された整数列であるものとして説明したが、当該インデックス列は、上記した複数のパラメータの変更前の配列と変更後の配列との対応関係を示すことができるものであれば、他の要素が配列されたものであってもよい。
【0088】
次に、暗号化部105は、ステップS4の処理が実行されることによって取得された第1パラメータ列(以下、配列変更後の第1パラメータ列と表記)及びインデックス列(以下、配列変更後のインデックス列と表記)を暗号化する(ステップS5)。なお、ステップS5における暗号化においては、上記した秘密分散が実施される。
【0089】
以下、ステップS5において配列変更後の第1パラメータ列を暗号化する場合について説明する。例えば配列変更後の第1パラメータ列においては複数のパラメータが配列されているが、ステップS5においては、秘密分散が実施される(つまり、上記した式(1)を利用する)ことによって当該複数のパラメータの各々からN個のシェアが生成される。具体的には、例えば配列変更後の第1パラメータ列が上記した図6に示す[p,p,p,p,p]である場合、例えば当該第1パラメータ列における1つのパラメータ「p」に対して秘密分散が実施されることによって、N個のシェア「p41´,p42´,…,p4N´」が生成される。このN個のシェア「p41´,p42´,…,p4N´」は、上記したW(P),…,W(P)に相当する。配列変更後の第1パラメータ列における他のパラメータ「p」、「p」、「p」及び「p」についても同様にそれぞれN個のシェアが生成される。秘密分散が実施されることによって生成されるシェアについては上記した通りであるため、ここでは詳しい説明を省略する。
【0090】
なお、配列変更後の第1パラメータ列における複数のパラメータの各々から生成されるシェアの数は、当該統合サーバ装置20-1~20-Nの数と同一である。
【0091】
ステップS5において、暗号化部105は、上記したように配列変更後の第1パラメータ列における複数のパラメータの各々から生成されたN個のシェアに基づいて、統合サーバ装置20-1~20-Nの各々に対応するN個のシェア列(以下、第1パラメータシェア列と表記)を生成する。
【0092】
具体的には、上記したように第1パラメータ列が[p,p,p,p,p]である場合、統合サーバ装置20-1~20-Nの各々に対応するN個の第1パラメータシェア列として、[p41´,p11´,p21´,p51´,p31´],[p42´,p12´,p22´,p52´,p32´],…,[p4N´,p1N´,p2N´,p5N´,p3N´]が生成される。
【0093】
なお、「p11´,p12´,…,p4N´」は「p」に対して秘密分散が実施されることによって生成されたN個のシェアであり、「p21´,p22´,…,p2N´」は「p」に対して秘密分散が実施されることによって生成されたN個のシェアであり、「p51´,p52´,…,p5N´」は「p」に対して秘密分散が実施されることによって生成されたN個のシェアであり、「p31´,p32´,…,p3N´」は「p」に対して秘密分散が実施されることによって生成されたN個のシェアである。
【0094】
ここでは配列変更後の第1パラメータ列を暗号化する場合について説明したが、配列変更後のインデックス列についても同様に暗号化される。具体的には、配列変更後のインデックス列における複数のインデックス「4」、「1」、「2」、「5」及び「3」の各々からN個のシェアが生成されることにより、統合サーバ装置20-1~20-Nの各々に対応するN個のシェア列(以下、インデックスシェア列と表記)が生成される。この場合、統合サーバ装置20-1~20-Nの各々に対応するインデックスシェア列として、[4´,1´,2´,5´,3´],[4´,1´,2´,5´,3´],…,[4´,1´,2´,5´,3´]が生成される。なお、インデックスシェア列における「4´,4´,…,4N´」は、配列変更後のインデックス列におけるインデックス「4」に対して秘密分散を実施することによって生成されたN個のシェアを表している。詳しい説明については省略するが、インデックスのシェア列における「1´,1´,…,1N´」、「2´,2´,…,2N´」、「5´,5´,…,5N´」及び「3´,3´,…,3N´」についても同様である。
【0095】
ステップS5の処理が実行されることによって生成されたN個の第1パラメータシェア列及びN個のインデックスシェア列は、統合サーバ装置20-1~20-Nに送信される(ステップS6)。
【0096】
この場合、ステップS6においては、1つの統合サーバ装置に対して1つの第1パラメータのシェア列が送信(分配)される。具体的には、例えば統合サーバ装置20-1~20-Nのうちの統合サーバ装置20-1に対しては第1パラメータシェア列[p41´,p11´,p21´,p51´,p31´]が送信される。他の統合サーバ装置20-2~20-Nについても同様に、対応する1つの第1パラメータシェア列が送信される。
【0097】
ここでは第1パラメータシェア列について説明したが、インデックスシェア列についても同様である。すなわち、統合サーバ装置20-1~20-Nのうちの統合サーバ装置20-1に対してはインデックスシェア列[4´,1´,2´,5´,3´]が送信される。他の統合サーバ装置20-2~20-Nについても同様に、対応する1つのインデックスシェア列が送信される。
【0098】
なお、本実施形態において、第1パラメータシェア列及びインデックスシェア列は、それぞれ異なるファイルで送信される。
【0099】
統合サーバ装置20-1に含まれる配列変更部201は、ステップS6においてクライアント端末10-1から送信されたパラメータのシェア列及びインデックスのシェア列を受信する。なお、上記したステップS1~S6の処理は他のクライアント端末10-2~10-Mの各々においても実行されるため、結果として、配列変更部201は、クライアント端末10-1~10-Mの各々から送信されたM個の第1パラメータシェア列及びM個のインデックスシェア列を受信する。
【0100】
ここで、例えばクライアント端末10-1から受信された第1パラメータシェア列においては複数のパラメータのシェアが配列されているが、当該第1パラメータシェア列を生成するために用いられた第1パラメータ列における複数のパラメータの配列(並び順)は、当該クライアント端末10-1においてステップS4の処理が実行されることによって変更されている。なお、この配列の変更(複数のパラメータの並び替え)はクライアント端末10-1~10-Mの各々においてランダムに行われているため、当該複数のパラメータ(のシェア)の配列(つまり、並び替え順序)はクライアント端末10-1~10-Mによって異なる。換言すれば、例えばクライアント端末10-1から受信された第1パラメータシェア列における複数のパラメータのシェア(の配列)は、他のクライアント端末10-2~10-Mから受信された第1パラメータシェア列における複数のパラメータのシェア(の配列)と対応していない。
【0101】
このため、配列変更部201は、クライアント端末10-1~10-M毎に、インデックスシェア列に基づいて第1パラメータシェア列における複数のパラメータのシェアの配列を変更する(ステップS7)。
【0102】
ここで、例えばクライアント端末10-1から第1パラメータシェア列[p41´,p11´,p21´,p51´,p31´]及びインデックスシェア列[4´,1´,2´,5´,3´]が受信されたものとする。なお、上記したように第1パラメータシェア列及びインデックスシェア列はそれぞれ異なるファイルで送信されるが、当該第1パラメータシェア列が格納されているファイル及び当該インデックスシェア列が格納されているファイルにはそれぞれ当該ファイルの送信元となるクライアント端末を識別(特定)するための情報(例えば、端末ID等)が付されているものとする。配列変更部201は、このようなファイルに付されている情報を参照することにより、統合サーバ装置20-1において受信されたM個のパラメータシェア列及びM個のインデックスシェア列の中から、同一のクライアント端末(例えば、クライアント端末10-1)から送信された第1パラメータシェア列及びインデックスシェア列を判別(特定)することができる。
【0103】
この場合、配列変更部201は、第1パラメータシェア列[p41´,p11´,p21´,p51´,p31´]とインデックスシェア列[4´,1´,2´,5´,3´]とが結合された2×5の2次元配列[[4´,1´,2´,5´,3´],[p41´,p11´,p21´,p51´,p31´]]における列を、インデックスシェア列(における複数のインデックスのシェアの配列)に基づいて並べ替える。これによれば、上記した2次元配列[[4´,1´,2´,5´,3´],[p41´,p11´,p21´,p51´,p31´]]が2次元配列[[1´,2´,3´,4´,5´],[p11´,p21´,p31´,p41´,p51´]]に変換される(つまり、上記した図6とは逆の変換が行われ、データを暗号化したままインデックス列に基づいて昇順を実行する)。このように変換された2次元配列[[1´,2´,3´,4´,5´],[p11´,p21´,p31´,p41´,p51´]]から第1パラメータシェア列[p11´,p21´,p31´,p41´,p51´]が取得される。
【0104】
ステップS7においては、上記したようにインデックスシェア列における複数のインデックスのシェアの配列に従って第1パラメータシェア列における複数のパラメータのシェアが並べ替えられる(つまり、ソートされる)ことによって、配列変更前の正しい順序で複数のパラメータのシェアが配列された第1パラメータシェア列を取得することができる。
【0105】
ここではクライアント端末10-1から受信された第1パラメータシェア列における複数のパラメータのシェアの配列を変更する場合について説明したが、配列変更部201は、他のクライアント端末10-2~10-M(から受信された第1パラメータ列)についても同様に、当該第1パラメータシェア列における複数のパラメータのシェアの配列を変更する。これによれば、統合サーバ装置20-1に含まれる配列変更部201は、クライアント端末10-1~10-Mの各々に対応するM個の第1パラメータシェア列[p11´,p21´,p31´,p41´,p51´]を取得する。なお、クライアント端末10-1~10-Mの各々においては異なる学習データを用いた学習処理が実行されているため、当該クライアント端末10-1~10-Mの各々に対応する第1パラメータシェア列[p11´,p21´,p31´,p41´,p51´]における各パラメータのシェアの値(つまり、ローカルモデルを構成するパラメータ)はクライアント端末10-1~10-M毎に異なる。
【0106】
ところで、第1パラメータシェア列における複数のパラメータのシェアの配列を変更するためにはインデックスシェア列(における複数のインデックスのシェアの配列)を参照する必要があるが、当該インデックスのシェアは、上記したようにインデックス列における複数のインデックスの各々を暗号化したデータである。このため、上記したステップS7の処理(第1パラメータシェア列における複数のパラメータのシェアを並び替えるための演算)は、秘密計算と称されるデータを暗号化したまま計算することが可能な技術により実行されるものとする。すなわち、本実施形態においては秘密計算により、インデックスシェア列を復号することなく、第1パラメータシェア列における複数のパラメータのシェアの並び替え(つまり、配列の変更)を実現することができる。
【0107】
次に、統合処理部202は、ステップS7の処理が実行されることによって取得されたクライアント端末10-1~10-Mの各々に対応するM個の第1パラメータシェア列に対する統合処理を実行する(ステップS8)。なお、統合処理は、例えばM個の第1パラメータシェア列の各々における同一の位置(順番)に配置されているパラメータのシェアを統合することによって、当該M個の第1パラメータシェア列から1つのパラメータシェア列(以下、第2パラメータシェア列と表記)を生成するような処理に相当する。
【0108】
具体的には、例えば統合サーバ装置20-1においてクライアント端末10-1~10-Mの各々に対応するM個の第1パラメータシェア列[p11´,p21´,p31´,p41´,p51´]が取得されている場合には、当該第1パラメータシェア列の各々におけるパラメータのシェア「p11´」同士を統合し、当該パラメータのシェア列の各々におけるパラメータのシェア「p21´」同士を統合し、当該パラメータのシェア列の各々におけるパラメータのシェア「p31´」同士を統合し、当該パラメータのシェア列の各々におけるパラメータのシェア「p41´」同士を統合し、当該パラメータのシェア列の各々におけるパラメータのシェア「p51´」同士を統合する。これにより、パラメータのシェア「p11´」同士が統合された結果、パラメータのシェア「p21´」同士が統合された結果、パラメータのシェア「p31´」同士が統合された結果、パラメータのシェア「p41´」同士が統合された結果及びパラメータのシェア「p51´」同士が統合された結果が配列された第2パラメータシェア列が生成される。
【0109】
なお、本実施形態における「統合(処理)」とは、複数のデータ(シェア)を1つのデータに集約するような処理であればよく、例えば平均化等の処理であってもよい。
【0110】
また、ステップS8において実行される統合処理において統合されるパラメータのシェアは、上記したように第1パラメータ列における複数のパラメータの各々を暗号化したデータである。このため、ステップS8の処理(統合処理)は、上記した秘密計算により実行されるものとする。
【0111】
ステップS8の処理が実行されると、配列変更部201は、当該ステップS8の処理が実行されることによって生成された第2パラメータシェア列における複数のパラメータのシェアの配列を変更する(ステップS9)。ステップS9においては、ステップ6でクライアント端末10-1~10-Mの各々から受信されたインデックスシェア列(つまり、インデックスの並び順)に基づいて当該クライアント端末10-1~10-M毎に複数のパラメータのシェアの配列を変更する(並び替えを行う)ことにより、当該クライアント端末10-1~10-Mの各々に対応する第2パラメータシェア列が取得される。
【0112】
具体的には、例えばステップS8の処理が実行されることによって生成された第2パラメータシェア列が[P11´,P21´,P31´,P41´,P51´]であり、クライアント端末10-1~10-Mのうちのクライアント端末10-1から受信されたインデックスシェア列が[4´,1´,2´,5´,3´]であるものとすると、配列変更部201は、当該クライアント端末10-1に対応する第2パラメータシェア列[P41´,P11´,P21´,P51´,P31´]を取得する。また、クライアント端末10-2から受信されたインデックスシェア列が[2´,5´,1´,4´,3´]であるものとすると、配列変更部201は、当該クライアント端末10-2に対応する第2パラメータシェア列[P21´,P51´,P11´,P41´,P31´]を取得する。ここではクライアント端末10-1及び10-2の各々に対応する第2パラメータシェア列について説明したが、他のクライアント端末10-3~10-Mの各々に対応する第2パラメータシェア列についても同様に取得される。
【0113】
更新部203は、上記したステップS9の処理が実行されることによって取得された第2パラメータシェア列をクライアント端末10-1~10-Mに送信する(ステップS10)。この場合、上記したようにステップS9の処理が実行されることによって取得されたクライアント端末10-1~10-Mの各々に対応するM個の第2パラメータシェア列のうち、例えばクライアント端末10-1に対応する第2パラメータシェア列[P41´,P11´,P21´,P51´,P31´]は、当該クライアント端末10-1に送信される。同様に、クライアント端末10-2に対応する第2パラメータシェア列[P21´,P51´,P11´,P41´,P31´]は、当該クライアント端末10-2に送信される。ここではクライアント端末10-1及び10-2に送信される第2パラメータのシェア列について説明したが、他のクライアント端末10-3~10-Mに対しても同様に第2パラメータシェア列が送信される。
【0114】
クライアント端末10-1はステップS10において送信された第2パラメータシェア列を受信し、当該クライアント端末10-1に含まれる配列変更部104は、当該第2パラメータシェア列における複数のパラメータのシェアの配列を変更する(ステップS11)。
【0115】
例えばクライアント端末10-1において第2パラメータシェア列[P41´,P11´,P21´,P51´,P31´]が受信された場合、配列変更部201は、上記したステップS4の処理が実行されることによって取得されたインデックス列[4,1,2,5,3](つまり、クライアント端末10-1において保持されている平文のパラメータの並び替え情報)に基づいて当該第2パラメータシェア列における複数のパラメータのシェアの配列を変更する(複数のパラメータのシェアを並び替える)ことによって、第2パラメータシェア列[P11´,P21´,P31´,P41´,P51´]を取得する。
【0116】
ここで、上記したステップS10の処理は例えば統合サーバ装置20-1~20-Nの各々によって実行されるため、クライアント端末10-1においては、当該統合サーバ装置20-1~20-Nの各々から送信されたN個の第2パラメータシェア列が受信される。ステップS11の処理は、このN個の第2パラメータシェア列の各々に対して実行される。
【0117】
この場合、ステップS11の処理が実行されることによって取得されたN個の第2パラメータシェア列の各々は平文のマスターモデルに対するシェア値(つまり、マスターモデルのパラメータのシェア列)ということができるため、復号化部106は、当該N個の第2パラメータシェア列からパラメータ列(以下、第2パラメータ列と表記)を復号する(ステップS12)。
【0118】
なお、ステップS12においては、上記した式(2)を利用することによって、ステップS11の処理が実行されることによって取得されたN個の第2パラメータシェア列の中から選択されたk個の第2パラメータシェア列の各々において同一の位置(順番)に配置されているk個のパラメータのシェアから1つのパラメータを復号する処理が順次実行されることによって、当該復号されたパラメータが順に配列された第2パラメータ列が生成される。
【0119】
ステップS12の処理が実行されると、更新部107は、当該ステップS12の処理が実行されることによって生成された第2パラメータ列における複数のパラメータをクライアント端末10-1の内部において保持されているローカルモデルに適用することによって、当該ローカルモデルを更新する(ステップS13)。
【0120】
なお、上記したステップS10において送信される第2パラメータシェア列におけるパラメータのシェアの配列(並び順)は異なるものの、ステップS11~S13の処理は、クライアント端末10-1~10-Mの各々において実行される。このため、クライアント端末10-1~10-Mの各々においてステップS13の処理が実行された後のローカルモデル(機械学習モデル)は同一となる。
【0121】
すなわち、本実施形態においては、上記したステップS13の処理がクライアント端末10-1~10-Mの各々において実行されることにより、機械学習システム1全体において機械学習が行われることによって得られる機械学習モデル(マスターモデル)と、クライアント端末10-1~10-Mの各々の内部に保持されている機械学習モデル(当該ステップS13において更新されたローカルモデル)とが同期した状態となる。
【0122】
本実施形態においては、このような図5に示す処理が繰り返し実行されることにより、クライアント端末10-1~10-Mの各々において分散して管理されている学習データを用いた機械学習を行うことができる。
【0123】
なお、図5に示す例ではステップS11の処理が実行された後にステップS12の処理が実行されるものとして説明したが、図5に示す処理においては、例えばステップS11の処理が実行される前にステップS12の処理が実行される(つまり、図5に示すステップS11の処理とステップS12の処理との順番を入れ替える)ようにしても構わない。
【0124】
また、図5に示す例では機械学習システム1において継続的に機械学習を行うためにステップS11~S13の処理がクライアント端末10-1~10-Mにおいて実行されるものとして説明したが、当該ステップS11~S13に相当する処理は、クライアント端末10-1~10-Mとは異なる装置において実行されてもよい。具体的には、ステップS11~S13に相当する処理は、例えば機械学習システム1の外部に配置された装置(機械学習モデルを利用してサービスを提供する装置等)によって実行されてもよい。すなわち、機械学習を終了するような場合には、機械学習モデルの更新に関する処理をクライアント端末10-1~10-M以外の装置で実行するようにしても構わない。
【0125】
上記したように本実施形態において、クライアント端末10-1~10-Mの各々は、当該クライアント端末において管理されている学習データを用いて機械学習モデルの学習処理を実行し、当該学習処理が実行された機械学習モデルから複数のパラメータが配列された第1パラメータ列を抽出し、当該抽出された第1パラメータ列における複数のパラメータの配列を変更し、当該複数のパラメータの配列が変更された第1パラメータ列に対して秘密分散を実施することによって、統合サーバ装置20-1~20-Nの各々に対応する第1パラメータシェア列(第1断片パラメータ列)を生成し、当該生成された第1パラメータシェア列を統合サーバ装置20-1~20-Nの各々に送信する。また、本実施形態において、統合サーバ装置20-1~20-Nの各々は、クライアント端末10-1~10-Mの各々から送信されたM個の第1パラメータシェア列を受信し、当該受信されたM個の第1パラメータシェア列の各々における複数のパラメータのシェアの配列を変更し、複数のパラメータのシェアの配列が変更されたM個の第1パラメータシェア列に対して統合処理を実行することによって第2パラメータシェア列(第2断片パラメータ列)を生成する。本実施形態において、機械学習モデルは、統合サーバ装置20-1~20-Nの各々において生成されたN個の第2パラメータシェア列から復号される第2パラメータ列における複数のパラメータに基づいて更新される。
【0126】
本実施形態においては、上記した構成により、機械学習(連合学習)における高い安全性を確保することが可能となる。
【0127】
具体的には、本実施形態においては、秘密分散を実施することによって生成された第1パラメータシェア列がクライアント端末10-1~10-Mから統合サーバ装置20-1~20-Nに送信されるため、当該クライアント端末10-1~10-Mと統合サーバ装置20-1~20-Nとの間の通信においてパラメータ(列)が第三者によって取得され、当該パラメータから学習データが推測される(つまり、学習データが漏洩する)ような事態の発生を抑制することができる。
【0128】
なお、本実施形態における秘密分散は、k-1個のランダムな整数環Qの元である第1係数r,…,rk-1と、統合サーバ装置20-1~20-Nの各々に対応するN個のランダムな整数環Qの元である第2係数P,…,Pとを決定し、第1パラメータ列における複数のパラメータの各々を切片aとするk-1次多項式(上記した式(1))に基づいて、統合サーバ装置20-1~20-Nの各々に対応するN個の第1パラメータシェア列を生成し、当該生成されたN個の第1パラメータシェア列の各々を当該シェア列に対応する統合サーバ装置に送信することによって実現される。
【0129】
ところで、上記したように秘密分散が実施される構成であっても、例えばN個の第1パラメータシェア列のうちのk個の第1パラメータシェア列が第三者によって取得された場合には、当該k個の第1パラメータシェア列からパラメータ列が復号され、当該パラメータ列(における複数のパラメータ)から学習データが推測される可能性がある。
【0130】
しかしながら、本実施形態においては複数のパラメータの配列を変更した上で秘密分散を実施する構成であるため、上記したようにk個の第1パラメータシェア列からパラメータ列が復号されたとしても、当該パラメータ列における複数のパラメータの正しい並び順が不明であるため、当該複数のパラメータ(復号データ)は正しいモデル情報として機能しない(つまり、機械学習モデルを構成する複数のパラメータとして使用することができない)。すなわち、本実施形態においては、各クライアント端末10-1~10-Mから第1パラメータシェア列とその配列順を示すインデックスシェア列との正しい組み合わせを入手した上でソート処理を実行する必要があるため、上記した学習データの推測の困難性が向上すると考えられる。
【0131】
すなわち、本実施形態においては、上記したように連合学習において秘密分散及びパラメータ列における複数のパラメータの配列の変更を適用することにより、学習データの漏洩等に対する高い安全性を実現することができる。
【0132】
なお、本実施形態においては、秘密計算により統合処理が実行される構成により、クライアント端末10-1~10-Mの各々から送信された第1パラメータシェア列から第1パラメータ列を復号することなく当該第1パラメータシェア列を統合することが可能であるため、安全性を更に向上させることが可能となる。
【0133】
また、本実施形態において、クライアント端末10-1~10-Mの各々は、第1パラメータ列における複数のパラメータの配列(第1配列)と当該配列から変更された当該複数のパラメータの配列(第2配列)との対応関係を示すインデックス列(つまり、配列変更後のインデックス列)に対して秘密分散を実施することによって統合サーバ装置20-1~20-Nの各々に対応するインデックスシェア列(断片インデックス列)を生成し、当該生成されたインデックスシェア列を統合サーバ装置20-1~20-Nの各々に送信する。また、本実施形態において、統合サーバ装置20-1~20-Nの各々は、クライアント端末10-1~10-Mの各々から送信されたM個のインデックスシェア列を受信し、当該受信されたM個のインデックスシェア列の各々に基づいて、M個の第1パラメータシェア列の各々における複数のパラメータのシェアの配列を変更する。
【0134】
本実施形態においては、このような構成により、クライアント端末10-1~10-Mの各々においてランダムに並べ替えられた(配列が変更された)M個の第1パラメータシェア列における複数のパラメータの並び順を統一し、当該M個の第1パラメータシェア列を適切に統合することが可能となる。
【0135】
なお、本実施形態においては、例えば第1パラメータシェア列及びインデックスシェア列がそれぞれ異なるファイルでクライアント端末10-1~10-Mから統合サーバ装置20-1~20-Nに送信される構成を採用することにより、当該第1パラメータシェア列とともにインデックスシェア列が取得され、当該第1パラメータシェア列から復号されたパラメータ列における複数のパラメータ(の配列)が正しい順番に並べ替えられることを抑制することができる。
【0136】
また、本実施形態において、上記したインデックスシェア列に基づく第1パラメータシェア列における複数のパラメータのシェアの配列の変更(つまり、並び替えの演算)は、秘密計算により行われるものとする。これによれば、インデックスシェア列からインデックス列を復号する処理が不要であるため、統合サーバ装置20-1~20-Nの各々における処理量を低減することができる。
【0137】
また、本実施形態においては、第2パラメータシェア列が統合サーバ装置20-1~20-Nからクライアント端末10-1~10-Mに送信されるが、当該第2パラメータシェア列における複数のパラメータのシェアの配列の変更は各クライアント端末10-1~10-Mにおいて保持されているインデックス列(平文のパラメータの並び替え情報)に基づいて行われるため、インデックスシェア列は当該統合サーバ装置20-1~20-Nからクライアント端末10-1~10-Mに送信される必要はない。このような構成によれば、仮に第2パラメータシェア列が第三者によって取得されて当該第2パラメータシェア列から第2パラメータ列が復号されたとしても、当該第2パラメータ列における複数のパラメータの並び替えを行うことができない(インデックスシェア列を取得することができない)ため、上記した学習データの漏洩のリスクを低減することができる。なお、上記した平文のパラメータの並び替え情報がクライアント端末10-1~10-Mにおいて破棄されている(保持されていない)場合には、統合サーバ装置20-1~20-Nは、第2パラメータシェア列とともにクライアント端末10-1~10-Mの各々に対応するインデックスシェア列を当該クライアント端末10-1~10-Mに送信するようにしてもよい。この場合、第2パラメータシェア列とインデックスシェア列とはそれぞれ異なるファイルで送信されるものとする。
【0138】
なお、本実施形態においては秘密分散及びパラメータ列における複数のパラメータの配列の変更の両方を適用するものとして説明したが、本実施形態は、秘密分散のみを適用し、パラメータ列における複数のパラメータの配列の変更については省略する構成を採用してもよい。この場合、図5に示すステップS3、S4、S7、S9及びS11の処理を省略することができる。
【0139】
以下、本実施形態に係る機械学習システム1の適用例について簡単に説明する。ここでは、機械学習システム1の第1及び第2適用例について説明する。
【0140】
第1適用例としては、図7に示すように、例えばクライアント端末10-1~10-Mの各々がコンビニエンスストア等の店舗に設置されるPOSレジである場合を想定している。このような第1適用例においては、POSレジが設置されている店舗に関する情報及び当該POSレジにおいて収集された購買情報等を学習データとして用いて機械学習を行うことによって、例えば新規に出店される店舗の売上を予測(分析)するまたは新商品を購入する客層を予測(分析)するようなサービスを提供することが可能な機械学習モデルを得ることができると考えられる。
【0141】
更に、第2適用例としては、図8に示すように、例えばクライアント端末10-1~10-Mの各々が病院等の医療機関に配置され、医師等によって使用されるパーソナルコンピュータのような端末装置(以下、医師端末と表記)である場合を想定している。このような第2適用例においては、医師端末に入力された患者に関する情報(電子カルテの情報)等を学習データとして用いて機械学習を行うことによって、例えば患者に生じるリスク(将来発症する病状等)を予測(分析)するようなサービスを提供することが可能な機械学習モデルを得ることができると考えられる。
【0142】
なお、ここで説明した第1及び第2適用例は一例であり、本実施形態に係る機械学習システム1は、クライアント端末10-1~10-Mの各々に分散して管理されている学習データを用いて機械学習を行う態様であれば、様々な分野に適用することが可能である。
【0143】
(第2実施形態)
次に、第2実施形態について説明する。なお、本実施形態に係る機械学習システムのネットワーク構成、当該機械学習システムに備えられるクライアント端末及び統合サーバ装置のハードウェア構成については、前述した第1実施形態と同様であるため、ここではその詳しい説明を省略し、適宜、図1及び図2を用いて説明する。また、本実施形態においては、前述した第1実施形態と異なる点について主に述べる。
【0144】
本実施形態は、機械学習が行われることによって得られる機械学習モデル(の精度)を評価する構成を有する点で、前述した第1実施形態とは異なる。
【0145】
ここで、図9を参照して、本実施形態におけるクライアント端末10-1の機能構成の一例について説明する。ここでは便宜的にクライアント端末10-1の機能構成について説明するが、他のクライアント端末10-2~10-Mの各々についても図9と同様の機能構成を有している。
【0146】
図9に示すように、クライアント端末10-1は、前述した図3に示す格納部101、学習処理部102、パラメータ抽出部103、配列変更部104、暗号化部105、復号化部106及び更新部107に加えて、評価部108を更に含む。
【0147】
なお、評価部108の一部または全ては、ソフトウェアによって実現されてもよいし、ハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせによって実現されてもよい。
【0148】
評価部108は、更新部107によって更新された機械学習モデルを評価する。本実施形態に係る機械学習システム1においては、評価部108による機械学習モデルの評価結果に基づいて、機械学習モデルの学習処理が再度実行される(つまり、機械学習が繰り返し行われる)。
【0149】
なお、統合サーバ装置20-1~20-Nの機能構成については、前述した第1実施形態と同様であるため、ここではその詳しい説明を省略し、適宜、図4を用いて説明する。
【0150】
以下、図10のシーケンスチャートを参照して、本実施形態に係る機械学習システム1の処理手順の一例について説明する。図10においては、クライアント端末10-1及び統合サーバ装置20-1において実行される処理についてのみが示されているが、他のクライアント端末10-2~10-Mは図9に示すクライアント端末10-1の処理と同様の処理を実行し、他の統合サーバ装置20-2~20-Nの各々は図9に示す統合サーバ装置20-1の処理と同様の処理を実行する。
【0151】
まず、前述した図5に示すステップS1~S13の処理に相当するステップS21~S33の処理が実行される。なお、ステップS33において更新されたローカルモデルは、機械学習システム1全体において機械学習が行われることによって得られる機械学習モデル(以下、第1マスターモデルと表記)に相当する。
【0152】
なお、図10に示す処理は、前述した図5に示す処理と同様に、予め配布されているマスターモデルがローカルモデルとしてクライアント端末10-1(~10-M)の内部に保持された状態で実行されるが、当該マスターモデル(つまり、図10に示す処理が実行される前のマスターモデル)を便宜的に第2マスターモデルと称する。
【0153】
ここで、クライアント端末10-1に含まれる評価部108は、上記した第1マスターモデル(クライアント端末10-1において更新されたローカルモデル)を評価する処理(以下、評価処理と表記)を実行する(ステップS34)。
【0154】
具体的には、ステップS34においては、第1マスターモデルの精度が算出される。なお、第1マスターモデル(機械学習モデル)の精度は、前述した第1実施形態において説明したように、例えば予め用意されている評価用データ(入力データと正解データとの組)を用いて、当該入力データが第1マスターモデルに入力されることによって当該第1マスターモデルから出力される出力データと当該正解データとの誤差に基づいて算出されるものとする。なお、複数の入力データと正解データとの組を用いることによって、出力データと正解データとの誤差が予め定められた範囲内にある場合を正解としたときの正解率を第1マスターモデルの精度として算出してもよい。
【0155】
ステップS34の処理が実行されると、評価部108は、当該ステップS34の処理の結果(つまり、評価結果)に基づいて上記した第1及び第2マスターモデルの一方を選択し、クライアント端末10-1の内部に保持されているローカルモデルを当該選択されたマスターモデルと同期させる(ステップS35)。
【0156】
この場合、評価部108は、ステップS34の処理が実行されることによって算出された第1マスターモデルの精度を目標値と比較し、当該第1マスターモデルの精度が当該目標値以上であるか否かを判定する。
【0157】
第1マスターモデルの精度が目標値以上であると判定された場合、評価部108は、第1マスターモデル(つまり、ステップS33において更新された新たな機械学習モデル)を選択し、ローカルモデルを当該第1マスターモデルと同期させる(つまり、当該第1マスターモデルをローカルモデルとしてクライアント端末10-1の内部に保持させる)。
【0158】
一方、第1マスターモデルの精度が目標値以上でない(つまり、目標値未満である)と判定された場合、評価部108は、第2マスターモデル(つまり、図10に示す処理が実行される時点でのマスターモデル)を選択し、ローカルモデルを当該第2マスターモデルと同期させる(つまり、第2マスターモデルをローカルモデルとして維持する)。
【0159】
すなわち、本実施形態に係る機械学習システム1において繰り返し行われる機械学習では、第1マスターモデルの評価結果(精度)が目標値以上である場合には前述した第1実施形態と同様に当該第1マスターモデル(更新された後の機械学習モデル)の学習処理が実行されるが、当該第1マスターモデルの評価結果(精度)が目標値以上でない場合には第2マスターモデル(更新される前の機械学習モデル)の学習処理が再度実行される。なお、この場合に実行される学習処理においては、既に実行された学習処理に用いられた学習データとは異なる学習データが用いられるものとする。
【0160】
また、上記した第1マスターモデルの精度を算出するために用いられる評価用データは、クライアント端末10-1~10-M毎に異なっている(つまり、個々に用意されている)ものとする。また、評価用データとして、各クライアント端末10-1~10-Mの各々に含まれる格納部101に格納されている学習データの一部を利用してもよい。更に、上記した第1または第2マスターモデルを選択する際に用いられる目標値は、クライアント端末10-1~10-Mに共通の値であってもよいし、当該クライアント端末10-1~10-M毎に異なる値であってもよい。すなわち、本実施形態においては、クライアント端末10-1~10-Mのうちの一部のクライアント端末においてはローカルモデルを第1マスターモデルと同期させ、他のクライアント端末においてはローカルモデルを第2マスターモデルと同期させても構わない。
【0161】
上記したように本実施形態においては、例えば予め用意されている評価用データを用いて第1マスターモデル(更新された後の機械学習モデル)を評価し、当該評価結果に基づいて、第1マスターモデルまたは第2マスターモデル(更新される前の機械学習モデル)の学習処理が実行される。本実施形態においては、このような構成により、第1マスターモデルの精度が低い場合には当該第1マスターモデルを採用しない(更新された機械学習モデルを使用しない)ため、結果として、機械学習システム1において機械学習が行われることによって得られる機械学習モデル(マスターモデル)の精度を向上させることが可能となる。
【0162】
(第3実施形態)
次に、第3実施形態について説明する。なお、本実施形態に係る機械学習システムのネットワーク構成、当該機械学習システムに備えられるクライアント端末及び統合サーバ装置のハードウェア構成及び機能構成については、前述した第1実施形態と同様であるため、ここではその詳しい説明を省略し、適宜、図1図4を用いて説明する。また、本実施形態においては、前述した第1実施形態と異なる点について主に述べる。
【0163】
ここで、前述した第1実施形態においてはクライアント端末10-1~10-Mから統合サーバ装置20-1~20-Nに第1パラメータシェア列及びインデックスシェア列が送信されるものとして説明したが、例えば当該クライアント端末10-1~10-Mの各々から統合サーバ装置20-1~20-Nに送信されるN個の第1パラメータシェア列のうちのk個の第1パラメータのシェア列が第三者によって取得され、かつ、N個のインデックスシェア列のうちのk個のインデックスシェア列が第三者によって取得された場合には、当該k個の第1パラメータのシェア列及びk個のインデックスシェア列から複数のパラメータが正しい順番に並び変えられた第1パラメータ列が復号される場合があり、当該第1パラメータ列が抽出された機械学習モデル(ローカルモデル)の学習処理に用いられた学習データが推測される可能性がある。
【0164】
これに対して、本実施形態は、前述した第1実施形態におけるインデックス列(インデックスシェア列)に加えてダミーのインデックス列を用意(生成)する点で、前述した第1実施形態とは異なる。
【0165】
以下、本実施形態に係る機械学習システム1の処理手順の一例について説明する。ここでは、便宜的に、前述した図5を用いて説明する。
【0166】
まず、前述したステップS1及びS2の処理が実行される。次に、前述した第1実施形態においては第1パラメータ列における複数のパラメータの各々に対応するインデックスが配列された1つのインデックス列が生成されるが、本実施形態において、配列変更部104は、複数のインデックス列(以下、第1及び第2インデックス列と表記)を生成する(ステップS3)。具体的には、例えば前述した第1実施形態において説明したように第1パラメータ列における複数のパラメータの数がLである場合、本実施形態において配列変更部104は、例えば第1インデックス列[1,2,…,L]及び第2インデックス列[1,2,…,L]を結合した2×Lの2次元配列を生成する。なお、ここでは第1及び第2インデックス列が同一のインデックス列であるものとしているが、当該第1及び第2インデックス列は、それぞれ異なる複数のインデックスが配列されたものであってもよい。
【0167】
ステップS3の処理が実行されると、配列変更部104は、ステップS2において抽出された第1パラメータ列における複数のパラメータの配列と当該ステップS3において生成された第1及び第2インデックス列における複数のインデックスの配列を変更する(ステップS4)。
【0168】
ここで、図11は、上記したステップS4の処理(第1パラメータ列と第1及び第2インデックス列とに対する配列変更処理)の一例について説明するための図である。図11においては、上記したステップS2において抽出された第1パラメータ列が[p,p,p,p,p]であり、第1及び第2インデックス列が[1,2,3,4,5]である場合を想定している。
【0169】
この場合、ステップS4においては、図11の上段に示す2次元配列(第1パラメータ列と第1及び第2インデックス列とを結合することによって生成された2次元配列)における列をランダムに入れ替えることにより、当該2次元配列が図11の中段に示す2次元配列に変換される。
【0170】
更に、ステップS4においては、図11の中段に示す2次元配列における第2インデックス列における複数のインデックス(の列)のみを更にランダムに入れ替えることにより、当該2次元配列が図11の下段に示す2次元配列に変換される。
【0171】
このような図11の下段に示す2次元配列から第1パラメータ列と第1インデックス列と第2インデックス列とを分離することによって、第1パラメータ列[p,p,p,p,p]における複数のパラメータの配列が変更された第1パラメータ列[p,p,p,p,p]と、第1インデックス列[1,2,3,4,5]における複数のインデックスの配列が変更された第1インデックス列[4,1,2,5,3]と、第2インデックス列[1,2,3,4,5]における複数のインデックスの配列が変更された第2インデックス列[1,5,2,4,3]とが取得される。
【0172】
このようにステップS4において配列が変更された第1インデックス列は、前述した第1実施形態におけるインデックス列と同様に、第1パラメータ列における複数のパラメータの変更前の配列と、当該複数のパラメータの変更後の配列との対応関係を示す情報(パラメータの並び替え情報)に相当する。一方、ステップS4において配列が変更された第2インデックス列は、第1パラメータ列における複数のパラメータの変更前の配列と、当該複数のパラメータの変更後の配列とは異なる配列との対応関係を示す情報に相当し、ダミーのインデックス列(ダミーの並び替え情報)であるといえる。
【0173】
なお、上記した図11を用いて説明したステップS4の処理は一例であり、ステップS4においては、前述した第1実施形態におけるインデックス列と同様に第1インデックス列における複数のインデックスの配列を変更するとともに、当該配列とは異なる配列に第2インデックス列における複数のインデックスの配列を変更するような処理が実行されればよい。
【0174】
次に、暗号化部105は、ステップS4の処理が実行されることによって取得された第1パラメータ列、第1インデックス列及び第2インデックス列を暗号化する(ステップS5)。なお、詳しい説明については省略するが、このステップS5においては、前述した第1実施形態において説明したインデックス列を暗号化する処理に代えて、第1及び第2インデックス列の各々を暗号化する処理が実行されればよい。第1パラメータ列を暗号化する処理については、前述した第1実施形態と同様である。すなわち、本実施形態においてステップS5の処理が実行された場合には、N個の第1パラメータシェア列、N個の第1インデックスシェア列及びN個の第2インデックスシェア列が生成される。
【0175】
ステップS5の処理が実行されると、当該ステップS5の処理が実行されることによって生成されたN個の第1パラメータシェア列、N個の第1インデックスシェア列及びN個の第2インデックスシェア列々が、統合サーバ装置20-1~20-Nに送信される(ステップS6)。この場合、1つの統合サーバ装置に対して1つの第1パラメータシェア列、1つの第1インデックスシェア列及び1つの第2インデックスシェア列が送信される。
【0176】
なお、本実施形態において、第1パラメータシェア列と第1及び第2インデックスシェア列とは、それぞれ異なるファイルで送信されるものとする。更に、第1及び第2インデックスシェア列がそれぞれ異なるファイルで送信されてもよい。
【0177】
ここで、前述した第1実施形態においては例えば統合サーバ装置20-1に含まれる配列変更部201がクライアント端末10-1~10-Mの各々から送信されたインデックスシェア列に基づいて第1パラメータシェア列における複数のパラメータのシェアの配列を変更する(当該複数のパラメータのシェアを並び替える)ものとして説明したが、本実施形態においては第1及び第2インデックスシェア列のうちの第1インデックスシェア列に基づいて第1パラメータシェア列における複数のパラメータのシェアの配列を変更する必要がある。すなわち、統合サーバ装置20-1は、第1パラメータ列における複数のパラメータの配列を変更する際に第1インデックスシェア列を参照すべきことを把握しておく必要がある。
【0178】
具体的には、繰り返し行われる機械学習において参照すべきインデックスシェア列(つまり、第1インデックス列を参照すべきこと)が固定されている場合には、当該第1インデックス列を参照すべきことが統合サーバ装置20-1(~20-N)において予め設定(指定)されていればよい。
【0179】
一方、繰り返し行われる機械学習毎に参照すべきインデックスシェア列が変更される構成であってもよく、この場合には、当該インデックスシェア列を各クライアント端末10-1~10-Mにおいて指定する必要がある。このようにクライアント端末10-1~10-Mにおいて指定されたインデックスシェア列(配列を変更する際の指標)は統合サーバ装置20-1~20-Nと共有する(つまり、統合サーバ装置20-1~20-Nに指示される)必要があるが、例えば第1及び第2インデックスシェア列が2次元配列の形式でクライアント端末10-1~10-Mから送信される場合には、当該指定されたインデックス列を示す当該2次元配列の行番号が格納されたファイルを別途送信するようにしてもよいし、当該2次元配列中(例えば、固定の配列座標番号)に当該インデックスシェア列を示す数値等を挿入するようにしてもよい。
【0180】
なお、本実施形態においては第1及び第2インデックスシェア列のうちの参照すべきインデックスシェア列を統合サーバ装置20-1~20-Nが把握することができるように構成されていればよく、当該インデックスシェア列を指定(共有)するための手法については限定されない。
【0181】
上記した図11においては第1インデックスシェア列が配列を変更する際の指標である場合にについて説明したが、第2インデックスシェア列が配列を変更する際の指標として指定される場合には、当該図11の中段に示す2次元配列における第1インデックス列における複数のインデックス(の列)のみを更にランダムに入れ替えるようにすればよい。
【0182】
以下、前述した第1実施形態において説明したステップS8~S13の処理が実行される。なお、上記したようにステップS7において第1インデックスシェア列に基づいて第1パラメータシェア列における複数のパラメータのシェアの配列が変更されている場合、ステップS9においては、当該第1インデックスシェア列に基づいて第2パラメータシェア列における複数のパラメータのシェアの配列が変更される。また、ステップS11においては平文のパラメータの並び替え情報(第1インデックス列)に基づいて第2パラメータシェア列における複数のパラメータのシェアの配列が変更されるため、ステップS10においては第1インデックスシェア列を送信する必要はないが、前述した第1実施形態と同様に、当該平文のパラメータの並び替え情報がクライアント端末10-1~10-Mにおいて破棄されている場合には、ステップS10において第2パラメータシェア列とともに第1インデックスシェア列がクライアント端末10-1~10-Mに送信されてもよい。ただし、この場合には第1インデックスシェア列とともに第2インデックスシェア列を送信することが好ましい。
【0183】
上記したように本実施形態において、クライアント端末10-1~10-Mの各々は、第1パラメータ列における複数のパラメータの配列(第1配列)と当該配列から変更された複数のパラメータの配列(第2配列)との対応関係を示す第1インデックス列に対して秘密分散を実施することによって統合サーバ装置20-1~20-Nの各々に対応する第1インデックスシェア列(第1断片インデックス列)を生成するとともに、第1インデックス列とは異なる第2インデックス列に対して秘密分散を実施することによって統合サーバ装置20-1~20-Nの各々に対応する第2インデックスシェア列(第2断片インデックス列)を生成し、当該第1及び第2インデックスシェア列を統合サーバ装置20-1~20-Nの各々に送信する。
【0184】
本実施形態においては、このような構成により、例えばN個の第1パラメータシェア列のうちのk個の第1パラメータシェア列が第三者によって取得され、かつ、N個の第1及び第2インデックスシェア列のうちのk個の第1及び第2インデックスシェア列が第三者によって取得されたとしても、当該k個の第1パラメータシェア列(第1パラメータ列における複数のパラメータ)を第1及び第2インデックス列のいずれを参照して並び替えればよいかを当該第三者は把握することができないため、当該複数のパラメータから学習データが推測される可能性を低減する(すなわち、機械学習における安全性を向上させる)ことができる。
【0185】
更に、本実施形態において、統合サーバ装置20-1~20-Nの各々は、クライアント端末10-1~10-Mの各々から送信されたM個の第1インデックスシェア列及びM個の第2インデックスシェア列を受信し、当該受信されたM個の第1インデックスシェア列及びM個の第2インデックスシェア列のうちの予め指定されているM個の第1インデックスシェア列の各々に基づいてM個の第1パラメータシェア列の各々における複数のパラメータのシェアの配列を変更する。
【0186】
本実施形態においては、このような構成により、上記したように第1インデックスシェア列に加えて第2インデックスシェア列(ダミーのインデックス列)がクライアント端末10-1~10-Mから送信された場合であっても、統合サーバ装置20-1~20-Nの各々において当該クライアント端末10-1~10-Mの各々から送信された第1パラメータシェア列を適切に統合することができる。
【0187】
また、本実施形態においては、例えば第1パラメータシェア列と第1及び第2インデックスシェア列とがそれぞれ異なるファイルでクライアント端末10-1~10-Mから統合サーバ装置20-1~20-Nに送信される構成を採用することにより、当該第1パラメータシェア列とともに第1及び第2インデックスシェア列が取得され、当該第1パラメータシェア列から復号されたパラメータ列における複数のパラメータ(の配列)が正しい順番に並べ替えられることを抑制することができる。
【0188】
また、本実施形態においては第1インデックスシェア列に基づく第1パラメータシェア列における複数のパラメータのシェアの配列の変更(つまり、並び替えの演算)を秘密計算により行うことにより、当該インデックスシェア列からインデックス列を復号する処理を実行する必要がないため、統合サーバ装置20-1~20-Nの各々における処理量を低減することができる。
【0189】
なお、本実施形態においては、ダミーのインデックス列として第2インデックス列を用意(生成)するものとして説明したが、当該第2インデックス列は複数であっても構わない。この場合、複数の第2インデックス列は、それぞれ異なる配列に変更されるものとする。具体的には、例えば図11に示すように配列が変更された第1パラメータ列が[p,p,p,p,p]であり、当該配列が変更された第1インデックス列が[4,1,2,5,3]である場合には、配列が変更された複数の第2インデックス列は、例えば[1,5,2,4,3]及び[3,4,5,2,1]等とすることができる。ここでは第2インデックス列の数が2つである場合について説明したが、当該第2インデックス列の数は3以上であってもよい。
【0190】
更に、本実施形態においては前述した第1実施形態において説明した構成においてダミーとなるインデックス列(第2インデックス列)を用意するものとして説明したが、本実施形態は、前述した第2実施形態に適用されても構わない(つまり、第2実施形態において説明した構成においてダミーとなるインデックス列を用意する構成であってもよい)。
【0191】
以上述べた少なくとも1つの実施形態によれば、機械学習における高い安全性を確保することが可能な機械学習システム及び方法を提供することができる。
【0192】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0193】
1…機械学習システム、10-1~10-M…クライアント端末、11…CPU、12…不揮発性メモリ、13…RAM、14…通信デバイス、20-1~20-N…統合サーバ装置、30…ネットワーク、101…格納部、102…学習処理部、103…パラメータ抽出部、104…配列変更部、105…暗号化部、106…復号化部、107…更新部、108…評価部、201…配列変更部、202…統合処理部、203…更新部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11