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

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

▶ 独立行政法人情報通信研究機構の特許一覧

<>
  • 特許-学習システム及び学習方法 図1
  • 特許-学習システム及び学習方法 図2
  • 特許-学習システム及び学習方法 図3
  • 特許-学習システム及び学習方法 図4
  • 特許-学習システム及び学習方法 図5
  • 特許-学習システム及び学習方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-14
(45)【発行日】2022-04-22
(54)【発明の名称】学習システム及び学習方法
(51)【国際特許分類】
   G06N 3/08 20060101AFI20220415BHJP
【FI】
G06N3/08
【請求項の数】 6
(21)【出願番号】P 2018001656
(22)【出願日】2018-01-10
(65)【公開番号】P2019121256
(43)【公開日】2019-07-22
【審査請求日】2020-11-26
【新規性喪失の例外の表示】特許法第30条第2項適用 (刊行物名) Network and System Security 2017 予稿集(公開者) レ チュウ フォン(発行日) 平成29年7月26日(集会名) 国立研究開発法人情報通信研究機構 オープンハウス2017(公開者) レ チュウ フォン(開催日) 平成29年11月9日(集会名) AIP若手研究交流会(公開者) レ チュウ フォン(開催日) 平成29年12月19日
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成29年度、国立研究開発法人科学技術振興機構、戦略的創造研究推進事業に係る委託研究、産業技術力強化法第19条の適用を受ける特許出願
(73)【特許権者】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】100120868
【弁理士】
【氏名又は名称】安彦 元
(72)【発明者】
【氏名】レ チュウ フォン
【審査官】松崎 孝大
(56)【参考文献】
【文献】特開2017-174298(JP,A)
【文献】特表2017-519282(JP,A)
【文献】米国特許出願公開第2017/0109322(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
サーバを介した複数のユーザ端末の間で、深層学習における再現性の最適化を行う学習システムであって、
複数の前記ユーザ端末に含まれる第1ユーザ端末において、前記第1ユーザ端末の有する第1参照データと、予め取得された重み変数とを参照し、第1重み変数を算出する第1算出手段と、
前記サーバにおいて、前記第1重み変数を前記第1ユーザ端末から取得し、前記サーバの制御部が複数の前記ユーザ端末に含まれる第2ユーザ端末に送信する送受信手段と、
前記第2ユーザ端末において、前記第2ユーザ端末の有する第2参照データと、前記第1重み変数とを参照し、第2重み変数を算出する第2算出手段と、
を備えることを特徴とする学習システム。
【請求項2】
前記送受信手段は、前記第1重み変数を、複数の前記ユーザ端末のうち、前記第2ユーザ端末のみに送信すること
を特徴とする請求項1記載の学習システム。
【請求項3】
複数の前記ユーザ端末に取得される共通鍵暗号を生成する生成手段をさらに備え、
前記第1算出手段は、前記第1ユーザ端末において、前記共通鍵暗号を用いて、前記第1重み変数を暗号化する暗号化手段を有し、
前記送受信手段は、
前記第2ユーザ端末において、前記共通鍵暗号を用いて、暗号化された前記第1重み変数を復号する復号手段を有し、
前記サーバにおいて、前記暗号化された前記第1重み変数を前記第1ユーザ端末から取得し、
前記暗号化された前記第1重み変数を、前記制御部が前記第2ユーザ端末に送信すること
を特徴とする請求項1又は2記載の学習システム。
【請求項4】
前記第1重み変数及び前記第2重み変数は、確率的勾配降下法を用いて算出され、
前記第1算出手段は、
前記第1参照データと、前記重み変数とを参照して第1勾配情報を導出し、
前記第1勾配情報及び前記重み変数に基づく前記第1重み変数を算出し、
前記第2算出手段は、
前記第2参照データと、前記第1重み変数とを参照して第2勾配情報を導出し、
前記第2勾配情報及び前記第1重み変数に基づく前記第2重み変数を算出すること
を特徴とする請求項1~3の何れか1項記載の学習システム。
【請求項5】
前記送受信手段は、複数の前記ユーザ端末のうち、1つのユーザ端末を前記第2ユーザ端末として、前記サーバ内において設定すること
を特徴とする請求項1~4の何れか1項記載の学習システム。
【請求項6】
サーバを介した複数のユーザ端末の間で、深層学習における再現性の最適化を行う学習方法であって、
複数の前記ユーザ端末に含まれる第1ユーザ端末において、前記第1ユーザ端末の有する第1参照データと、予め取得された重み変数とを参照し、第1重み変数を算出する第1算出ステップと、
前記サーバにおいて、前記第1重み変数を前記第1ユーザ端末から取得し、前記サーバの制御部が複数の前記ユーザ端末に含まれる第2ユーザ端末に送信する送受信ステップと、
前記第2ユーザ端末において、前記第2ユーザ端末の有する第2参照データと、前記第1重み変数とを参照し、第2重み変数を算出する第2算出ステップと、
を備えることを特徴とする学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバを介した複数のユーザ端末の間で、深層学習における再現性の最適化を行う学習システム及び学習方法に関するものである。
【背景技術】
【0002】
近年、深層学習(deep learning)と呼ばれる機械学習の手法は、学術界及び産業界を含む幅広い分野で期待されている。深層学習に関する技術のうち、複数のユーザ端末が保有する参照データに基づき、深層学習を分散させて実行する方法が注目を集めており、分散協調学習や分散深層学習等と呼ばれている。この場合、例えば確率的勾配降下法(SGD: Stochastic gradient descent)等を用いることで、再現性の最適化が行われている。
【0003】
上述した技術として、例えば非特許文献1では、各ユーザ端末に接続された中央サーバが、ニューラルネットワークの有するノード間の重み変数を更新する技術が開示されている。非特許文献1では、各ユーザは、各ユーザ端末の有する参照データを参照して勾配情報を導出し、導出した勾配を中央サーバに送信する。中央サーバは、各ユーザ端末において導出された勾配情報に基づいて重み変数を算出し、算出した重み変数を各ユーザ端末に送信する。
【0004】
また、特許文献1では、量子化勾配の情報を用いる分散深層学習装置が提案されている。特許文献1では、複数の学習装置との間で量子化勾配を交換して分散して深層学習を行うための分散深層学習装置であって、他の学習装置との間で通信によって量子化勾配を交換する通信部と、現在のパラメータの勾配を計算する勾配計算部と、勾配計算部で求めた勾配に対して、前回勾配を量子化した時の剰余分に所定倍率を乗算したものを加算する量子化剰余加算部と、量子化剰余加算部によって所定倍後の剰余分が加算された勾配を量子化する勾配量子化部と、通信部で受信した量子化勾配を本来の精度の勾配に復元する勾配復元部と、勾配量子化部において勾配を量子化した時の剰余分を記憶する量子化剰余記憶部と、通信部で集められた勾配を集約して集約された勾配を計算する勾配集約部と、勾配集約部で集約された勾配に基づいてパラメータを更新するパラメータ更新部とを備える分散深層学習装置について開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特許第6227813号公報
【非特許文献】
【0006】
【文献】Reza Shokri, Vitaly Shmatikov: Privacy-Preserving Deep Learning. ACM Conference on Computer and Communications Security 2015: 1310-1321
【発明の概要】
【発明が解決しようとする課題】
【0007】
ここで、上述した開示技術では、各ユーザ端末等で導出された勾配情報を用いて、深層学習における再現性の最適化を行っている。しかしながら、勾配情報は、入力データ(参照データ)や重み変数等に基づく関数を含み、データ容量が大きい。このため、深層学習における再現性の向上等に伴い、送受信に必要となる勾配情報の容量が飛躍的に増大する可能性がある。これにより、端末間における勾配情報の送受信に時間を浪費し、学習効率の低下が懸念として挙げられる。
【0008】
そこで本発明は、上述した問題点に鑑みて案出されたものであり、その目的とするところは、学習効率の向上を図ることができる学習システム及び学習方法を提供することにある。
【課題を解決するための手段】
【0009】
本発明者らは、上述した問題点を解決するために、サーバを介した複数のユーザ端末の間で、深層学習における再現性の最適化を行う学習システム及び学習方法を発明した。学習システムは、第1算出手段と、送受信手段と、第2算出手段とを備える。第1算出手段は、複数のユーザ端末に含まれる第1ユーザ端末の有する第1参照データと、予め取得された重み変数とを参照し、第1重み変数を算出する。送受信手段は、サーバを介して第1重み変数を、第1ユーザ端末から複数のユーザ端末に含まれる第2ユーザ端末に送信する。第2算出手段は、第2ユーザ端末の有する第2参照データと、第1重み変数とを参照し、第2重み変数を算出する。
【0010】
請求項1に記載の学習システムは、サーバを介した複数のユーザ端末の間で、深層学習における再現性の最適化を行う学習システムであって、複数の前記ユーザ端末に含まれる第1ユーザ端末において、前記第1ユーザ端末の有する第1参照データと、予め取得された重み変数とを参照し、第1重み変数を算出する第1算出手段と、前記サーバにおいて、前記第1重み変数を前記第1ユーザ端末から取得し、前記サーバの制御部が複数の前記ユーザ端末に含まれる第2ユーザ端末に送信する送受信手段と、前記第2ユーザ端末において、前記第2ユーザ端末の有する第2参照データと、前記第1重み変数とを参照し、第2重み変数を算出する第2算出手段と、を備えることを特徴とする。
【0011】
請求項2に記載の学習システムは、請求項1記載の学習システムにおいて、前記送受信手段は、前記第1重み変数を、複数の前記ユーザ端末のうち、前記第2ユーザ端末のみに送信することを特徴とする。
【0012】
請求項3に記載の学習システムは、請求項1又は請求項2記載の学習システムにおいて、複数の前記ユーザ端末に取得される共通鍵暗号を生成する生成手段をさらに備え、前記第1算出手段は、前記第1ユーザ端末において、前記共通鍵暗号を用いて、前記第1重み変数を暗号化する暗号化手段を有し、前記送受信手段は、前記第2ユーザ端末において、前記共通鍵暗号を用いて、暗号化された前記第1重み変数を復号する復号手段を有し、前記サーバにおいて、前記暗号化された前記第1重み変数を前記第1ユーザ端末から取得し、前記暗号化された前記第1重み変数を、前記制御部が前記第2ユーザ端末に送信することを特徴とする。
【0013】
請求項4に記載の学習システムは、請求項1~請求項3の何れか記載の学習システムにおいて、前記第1重み変数及び前記第2重み変数は、確率的勾配降下法を用いて算出され、前記第1算出手段は、前記第1参照データと、前記重み変数とを参照して第1勾配情報を導出し、前記第1勾配情報及び前記重み変数に基づく前記第1重み変数を算出し、前記第2算出手段は、前記第2参照データと、前記第1重み変数とを参照して第2勾配情報を導出し、前記第2勾配情報及び前記第1重み変数に基づく前記第2重み変数を算出することを特徴とする。
【0014】
請求項5に記載の学習システムは、請求項1~請求項4の何れか記載の学習システムにおいて、前記送受信手段は、複数の前記ユーザ端末のうち、1つのユーザ端末を前記第2ユーザ端末として、前記サーバ内において設定することを特徴とする。
【0015】
請求項6に記載の学習方法は、サーバを介した複数のユーザ端末の間で、深層学習における再現性の最適化を行う学習方法であって、複数の前記ユーザ端末に含まれる第1ユーザ端末において、前記第1ユーザ端末の有する第1参照データと、予め取得された重み変数とを参照し、第1重み変数を算出する第1算出ステップと、前記サーバにおいて、前記第1重み変数を前記第1ユーザ端末から取得し、前記サーバの制御部が複数の前記ユーザ端末に含まれる第2ユーザ端末に送信する送受信ステップと、前記第2ユーザ端末において、前記第2ユーザ端末の有する第2参照データと、前記第1重み変数とを参照し、第2重み変数を算出する第2算出ステップと、を備えることを特徴とする。
【発明の効果】
【0016】
上述した構成からなる本発明によれば、送受信手段は、第1重み変数を、第1ユーザ端末から第2ユーザ端末に送信する。すなわち、各ユーザ端末で算出された重み変数を、サーバにおいて第1ユーザ端末から取得し、サーバの制御部が第2ユーザ端末に送信し、深層学習における再現性の最適化を行う。このため、勾配情報をユーザ端末間で送受信した場合に比べて、送受信に必要となるデータ容量を大幅に縮小させることができる。これにより、ユーザ端末間におけるデータの送受信に費やす時間を削減でき、学習効率の向上を図ることが可能となる。
【0017】
また、上述した構成からなる本発明によれば、送受信手段は、サーバにおいて、第1重み変数を第1ユーザ端末から取得し、サーバの制御部が第2ユーザ端末に送信する。すなわち、各ユーザ端末間において直接重み変数の送受信を行わない。このため、例えば第2ユーザ端末に送信される第1重み変数が、第1ユーザ端末において算出されたことを、他のユーザに対して秘匿することができる。これにより、ユーザ端末を保有するユーザに起因する情報の漏洩を抑制することが可能となる。
【0018】
また、上述した構成からなる本発明によれば、送受信手段は、第1重み変数を、第2ユーザ端末のみに送信する。すなわち、各ユーザ端末において順番に重み変数が算出される手段を備える。このため、1つのユーザ端末において算出された勾配情報等を、複数のユーザ端末等に送信する手段に比べて、再現性の精度を飛躍的に向上させることができる。これにより、学習効率の向上を容易に図ることが可能となる。また、勾配情報等を複数のユーザ端末等に送信する必要が無いため、データの送受信に費やす時間をさらに削減することが可能となる。
【0019】
また、上述した構成からなる本発明によれば、送受信手段は、暗号化された第1重み変数を、サーバにおいて第1ユーザ端末から取得し、サーバの制御部が第2ユーザ端末に送信する。このため、サーバでは暗号化された第1重み変数を復元できず、第1重み変数の内容を把握することができない。これにより、サーバを保有する管理者等に起因する情報の漏洩を抑制することが可能となる。
【0020】
また、上述した構成からなる本発明によれば、第1算出手段は、第1勾配情報及び重み変数に基づく第1重み変数を算出する。すなわち、ユーザ端末毎に勾配情報を導出し、重み変数を算出する。このため、勾配情報に含まれるユーザ端末毎に有する参照データを推定できる情報は、他のユーザ端末等に送信する必要が無い。これにより、各ユーザ端末の有ずる参照データの漏洩を抑制することが可能となる。
【0021】
また、上述した構成からなる本発明によれば、送受信手段は、複数のユーザ端末のうち、1つのユーザ端末を第2ユーザ端末として、サーバ内において設定する。このため、重み変数が送受信される順番を、ユーザに知られないようにすることができる。これにより、ユーザ端末を保有するユーザに起因する情報の漏洩を容易に抑制することが可能となる。
【図面の簡単な説明】
【0022】
図1】本発明が適用される学習システムの一例を示す模式図である。
図2】本実施形態における学習の対象となるニューラルネットワークの一例を示す模式図である。
図3】本発明が適用される学習システムの動作の一例を示すフローチャートである。
図4】ユーザ端末等の構成の一例を示す模式図である。
図5】本発明が適用される学習システムの変形例を示す模式図である。
図6】本発明が適用される学習システムの動作の変形例を示すフローチャートである。
【発明を実施するための形態】
【0023】
(実施形態:学習システム100の構成)
以下、本発明の実施形態としての学習システムについて説明する。図1は、本実施形態における学習システム100の一例を示す模式図である。
【0024】
図1に示すように、学習システム100は、サーバ10と、複数のユーザ端末20とを備え、各ユーザ端末20は、例えば公衆通信網30を介してサーバ10に接続される。学習システム100は、サーバ10を介した複数のユーザ端末20の間で、深層学習における再現性の最適化を行うために用いられる。
【0025】
学習システム100では、1つのユーザ端末20において深層学習を行い、学習した結果を重み変数Wとして算出し、サーバ10を介して他のユーザ端末20に送信する。他のユーザ端末20は、受信した重み変数Wを参照し、新たな重み変数Wを算出する。この動作を繰り返し行うことで、深層学習における再現性の最適化を行う。
【0026】
各ユーザ端末20が重み変数Wを算出するとき、予め取得した重み変数Wに加えて、各ユーザ端末20の有する参照データを参照する。このため、各ユーザ端末20の有する参照データを1つのユーザ端末20等に集約することなく、精度の高い学習を実現することができる。各ユーザ端末20は、例えばそれぞれ異なる参照データを有することで、深層学習に用いる参照データ数を増やすことができる。
【0027】
<ニューラルネットワーク>
図2は、本実施形態における学習の対象となるニューラルネットワークの一例を示す模式図である。図2に示すように、ニューラルネットワークは、第1層に入力層(Input layer)と、第2層及び第3層に隠れ層(Hidden layers)と、第4層に出力層(Output layer)とを有し、各層は複数のノードNを有する。なお、図2では、2層の隠れ層、並びに第1層に6つのノードN11~N16、第2層に4つのノードN21~N24、第3層に6つのノードN31~N36、及び第4層に4つのノードN41~N44を示しているが、隠れ層の総数及び各層におけるノードNの数は任意である。各ユーザ端末20は、それぞれ等しい層数及びノード数のニューラルネットワークを有する。
【0028】
各ノードNは、例えばアクティブ化関数と関連付けられる。アクティブ化関数として、例えば下記の[数1]に示すランプ関数のほか、例えばhyperbolic tangent、sigmoid等が用いられる。また、例えば任意のノードNを、上述したアクティブ化関数を関連付けられないバイアス項としてもよい(図2ではN16、N24、N36)。
【数1】
【0029】
<重み変数W>
各ノードNは、隣接する層のノードNに対して重み変数Wで紐づけられている(図2の矢印)。重み変数Wは、ノードNの間毎に異なる値を示し、深層学習における再現性に影響する変数である。重み変数Wは、例えば行列で示される。重み変数Wを各ユーザ端末20において順番に算出し、更新することで、深層学習における再現性の精度向上を図ることができる。
【0030】
重み変数Wは、例えば確率的勾配降下法(SGD: Stochastic Gradient Descent)を用いて算出される。この場合、各ユーザ端末20では、ユーザ端末20毎に有する参照データと、予め取得された重み変数Wとを参照して、下記の[数2]に示す勾配情報Gを導出する。その後、勾配情報G及び重み変数Wに基づき、下記の[数3]に示す重み変数Wuを算出(更新)する。この演算をユーザ端末20毎に繰り返すことにより、[数2]に示すコスト関数Jを最小化する重み変数Wが算出され、深層学習における再現性の最適化を実現できる。なお、[数3]で示した重み変数Wu及び重み変数Wの違いは、更新前後の違いを示すのみであるため、以下の説明では重み変数Wuを単にWと記載する場合がある。
【数2】
ここで、xは参照データの入力値を示し、yは参照データの真理値を示し、Jは入力値x、真理値y、及び予め取得された重み変数Wについて定義されたコスト関数を示す。
【数3】
ここで、αは任意の学習率を示す。なお、本実施形態では、ユーザ端末20毎に異なる学習率αが設定されてもよい。
【0031】
本実施形態によれば、各ユーザ端末20において順番に重み変数Wを算出する。このため、ユーザ端末20間に送受信するデータ容量を最小限に抑制することができる。すなわち、重み変数Wは、ユーザ端末20毎に有する参照データについて定義された関数等を含まないため、勾配情報Gに比べてデータ容量が小さい傾向を示す。このため、ユーザ端末20間におけるデータの送受信に費やす時間を削減できる。
【0032】
また、本実施形態によれば、重み変数Wの算出及び送信を、1つのユーザ端末20毎に行う。すなわち、本実施形態における学習システム100では、従来用いられている1つのユーザ端末において算出された勾配情報G等を、複数のユーザ端末等に送信して並列演算する手段(非同期型)ではなく、同期型の最適化が用いられる。このため、再現性の精度を飛躍的に向上させることができる。
【0033】
<サーバ10>
サーバ10は、図1に示すように、複数のユーザ端末20と接続され、重み変数W等の各種情報を送受信及び保存する。サーバ10は、例えばクラウドサーバのように、管理者等に代わって各種情報の記憶等を行う第三者機関(業務委託先等)が保有するサーバでもよい。
【0034】
サーバ10は、例えばSSL/TLS(Secure Sockets Layer / Transport Layer Security)等の暗号化技術を利用して、各ユーザ端末20とそれぞれ独立して接続される。このため、ユーザ端末20同士の接続を独立させた状態で、サーバ10を介して各種情報を送受信できる。これにより、ユーザ端末20間における各種情報の送受信は、必ずサーバ10を介して行われるようにすることができる。
【0035】
サーバ10は、制御部11と、記憶部12と、通信インターフェース13とを有する。制御部11は、サーバ10内の各種制御を行う。制御部11は、例えば複数のユーザ端末20に対して、重み変数Wを送信する順番を制御する。この場合、複数のユーザ端末20の有するユーザは、サーバ10から受信した重み変数Wがどこのユーザ端末20で算出されたかを、確認することができない。
【0036】
記憶部12は、ユーザ端末20から受信した重み変数W等の各種情報を記憶する。通信インターフェース13は、公衆通信網30を介してユーザ端末20と接続され、重み変数W等の各種情報を送受信する。
【0037】
<ユーザ端末20>
ユーザ端末20は、深層学習における再現性の最適化に必要となる重み変数Wを算出する。ユーザ端末20は、深層学習に必要となる参照データを有し、ユーザ端末20毎に異なる参照データを有する。このため、深層学習における再現性の最適化は、ユーザ端末20の数によって得られる精度が変わる。なお、図1ではnつのユーザ端末20(20a、20b、・・・、20n)を示しているが、ユーザ端末20の数は任意である。
【0038】
ユーザ端末20は、算出部21と、記憶部22と、通信インターフェース23とを有する。算出部21は、ユーザ端末20毎に有する参照データと、予め取得された重み変数Wとを参照し、重み変数Wを算出する。算出部21は、例えば確率的勾配降下法を用いた場合、[数2]に示した勾配情報Gを導出し、[数3]に示した重み変数Wu(W)を算出する。
【0039】
記憶部22は、参照データや、重み変数W等の各種情報を記憶する。通信インターフェース23は、公衆通信網30を介してサーバ10と接続され、重み変数W等の各種情報を送受信する。
【0040】
<公衆通信網30>
公衆通信網30(ネットワーク)は、サーバ10等が通信回路を介して接続されるインターネット網等である。公衆通信網30は、いわゆる光ファイバ通信網で構成されてもよい。また、公衆通信網30は、有線通信網には限定されず、無線通信網で実現してもよい。公衆通信網30は、例えば図1に示すように、ユーザ端末20毎に複数の通信網30a、30b、・・・、30nを有してもよく、各ユーザ端末20とサーバ10との各種情報の送受信が実現できれば、任意の構成を備えることができる。
【0041】
(実施形態:学習システム100の動作)
次に、本実施形態における学習システム100の動作について説明する。図3は、本実施形態における学習システム100の動作の一例を示すフローチャートである。
【0042】
学習システム100の動作は、第1算出手段S110と、送受信手段S120と、第2算出手段S130とを備える。第1算出手段S110は、例えば初期値設定手段S111を有する。送受信手段S120は、例えば第1手段S121と、第2手段S122とを有する。
【0043】
<第1算出手段:S110>
先ず、複数のユーザ端末20に含まれる1つのユーザ端末20(以下、第1ユーザ端末20aとする)において、重み変数W(以下、第1重み変数W1とする)を算出する。第1ユーザ端末20aの算出部21は、第1参照データと、予め取得された重み変数Wとを参照し、第1重み変数W1を算出する。ここで、予め取得された重み変数Wは、例えば初期値として算出部21で設定されてもよい(初期値設定手段S111)ほか、例えば他のユーザ端末20において算出された重み変数Wを取得してもよい。第1ユーザ端末20aの記憶部22は、例えば算出した第1重み変数W1を記憶する。
【0044】
第1重み変数W1を算出するとき、例えば上述した確率的勾配降下法を用いてもよい。この場合、第1ユーザ端末20aの算出部21は、第1参照データと、重み変数Wとを参照して、[数2]に示した勾配情報G(以下、第1勾配情報G1とする)を導出し、第1勾配情報G1及び重み変数Wに基づき、[数3]に示した算出方法で第1重み変数Wu(W1)を算出してもよい。なお、第1重み変数W1を算出するとき、例えば確率的勾配降下法以外の公知の方法を用いてもよい。
【0045】
<送受信手段:S120>
次に、サーバ10を介して第1重み変数W1を、第1ユーザ端末20aから他のユーザ端末20(以下、第2ユーザ端末20bとする)に送信する(送受信手段S120)。このとき、例えば第1重み変数W1を、複数のユーザ端末20のうち第2ユーザ端末20bのみに送信し、その他のユーザ端末20には送信されない。
【0046】
第1ユーザ端末20aの算出部21は、各通信インターフェース23、13を介して、第1重み変数W1をサーバ10に送信する(第1手段S121)。サーバ10の記憶部12は、例えば取得した第1重み変数W1を記憶する。
【0047】
その後、サーバ10の制御部11は、各通信インターフェース13、23を介して、第1重み変数W1を他のユーザ端末20(以下、第2ユーザ端末20bとする)に送信する(第2手段S122)。第2ユーザ端末20bの記憶部22は、例えば取得した第1重み変数W1を記憶する。
【0048】
例えば制御部11は、複数のユーザ端末20のうち、1つのユーザ端末20を第2ユーザ端末20bとして設定する。この場合、第2ユーザ端末20bのユーザには、第1重み変数W1が第1ユーザ端末20aによって算出されたことを秘匿することができる。
【0049】
<第2算出手段:S130>
次に、第2ユーザ端末20bにおいて、重み変数W(以下、第2重み変数W2とする)を算出する(第2算出手段S130)。第2ユーザ端末20bの算出部21は、第2参照データと、第1重み変数W1とを参照し、第2重み変数W2を算出する。第1ユーザ端末20aの記憶部22は、例えば算出した第2重み変数W2を記憶する。
【0050】
第2重み変数W2を算出するとき、例えば上述した確率的勾配降下法を用いてもよい。この場合、第2ユーザ端末20bの算出部21は、第2参照データと、第1重み変数W1とを参照して、[数2]に示した勾配情報G(以下、第2勾配情報G2とする)を導出し、第2勾配情報G2及び第1重み変数W1に基づき、[数3]に示した算出方法で第2重み変数Wu(W2)を算出してもよい。なお、第2重み変数W2を算出するとき、例えば確率的勾配降下法以外の公知の方法を用いてもよい。
【0051】
上述した動作を実施することで、本実施形態における学習システム100の動作は終了する。なお、上述した動作は、2つのユーザ端末20を用いた場合の最小限の動作を示しており、nつ(任意)のユーザ端末20を用いる場合には、送受信手段S120と、第2算出手段S130とを複数回繰り返し行うことで、深層学習における再現性の最適化を行うことができる。また、1つのユーザ端末20が複数回の重み変数Wを算出してもよく、この場合においても、送受信手段S120と、第2算出手段S130とを複数回繰り返し行うことで、深層学習における再現性の最適化を行うことができる。
【0052】
次に、本実施形態におけるユーザ端末20の構成の一例を説明する。なお、サーバ10においても、ユーザ端末20と同様の構成を備えることができるため、説明を省略する。
【0053】
図4は、ユーザ端末20の構成の一例を示す模式図である。ユーザ端末20として、パーソナルコンピュータ(PC)等の電子機器が用いられる。ユーザ端末20は、CPU201と、ROM202と、RAM203と、保存部204と、I/F205~207とを備える。各構成201~207は、内部バス210により接続され、筐体211内に格納される。
【0054】
CPU(Central Processing Unit)201は、ユーザ端末20全体を制御する。ROM(Read Only Memory)202は、CPU201の動作コードを格納する。RAM(Random Access Memory)203は、CPU201の動作時に使用される作業領域である。保存部204は、記憶部22を介して各種情報が保存される。保存部204としてデータ保存装置が用いられ、例えばHDD(Hard Disk Drive)、SSD(solid state drive)等が用いられる。
【0055】
I/F205は、公衆通信網30等と接続するためのインターフェース部品であり、例えばI/F205を介してサーバ10等との各種情報の送受信が行われる。
【0056】
I/F206は、入力部分208との情報の送受信を行うためのインターフェース部品である。入力部分208として、例えばキーボードが用いられ、ユーザ端末20のユーザ等は、入力部分208を介して、各種情報又はユーザ端末20の制御コマンド等を入力できる。I/F207は、出力部分209との各種情報の送受信を行うためのインターフェース部品である。出力部分209は、保存部204に保存された各種情報、又はユーザ端末20の処理状況等を出力できる。出力部分209として、例えばディスプレイが用いられる。なお、算出部21、記憶部22、及び通信インターフェース23は、CPU201が、RAM203を作業領域として、保存部204等に保存されたプログラム(命令)を実行することにより実現される。
【0057】
本実施形態によれば、送受信手段S120は、第1重み変数W1を、第1ユーザ端末20aから第2ユーザ端末20bに送信する。すなわち、各ユーザ端末20で算出された重み変数Wを、サーバ10を介したユーザ端末20間で送受信し、深層学習における再現性の最適化を行う。このため、勾配情報Gをユーザ端末20間で送受信した場合に比べて、送受信に必要となるデータ容量を大幅に縮小させることができる。これにより、ユーザ端末20間におけるデータの送受信に費やす時間を削減でき、学習効率の向上を図ることが可能となる。
【0058】
また、本実施形態によれば、送受信手段S120は、サーバ10を介して第1重み変数W1を、第1ユーザ端末20aから第2ユーザ端末20bに送信する。すなわち、各ユーザ端末20間において直接重み変数Wの送受信を行わない。このため、例えば第2ユーザ端末20bに送信される第1重み変数W1が、第1ユーザ端末20aにおいて算出されたことを他のユーザに対して秘匿することができる。これにより、ユーザ端末20を保有するユーザに起因する情報の漏洩を抑制することが可能となる。
【0059】
また、本実施形態によれば、送受信手段S120は、第1重み変数W1を、第2ユーザ端末20bのみに送信する。すなわち、各ユーザ端末20において順番に重み変数Wが算出される手段を備える。このため、従来のような1つのユーザ端末において算出された勾配情報等を、複数のユーザ端末等に送信する手段に比べて、再現性の精度を飛躍的に向上させることができる。これにより、学習効率の向上を容易に図ることが可能となる。また、従来のような勾配情報等を複数のユーザ端末等に送信する必要が無いため、データの送受信に費やす時間をさらに削減することが可能となる。
【0060】
また、本実施形態によれば、第1算出手段S110は、第1勾配情報G1及び重み変数Wに基づく第1重み変数W1を算出する。すなわち、ユーザ端末20毎に勾配情報Gを導出し、重み変数Wを算出する。このため、勾配情報Gに含まれるユーザ端末20毎に有する参照データを推定できる情報は、他のユーザ端末20等に送信する必要が無い。これにより、各ユーザ端末20の有ずる参照データの漏洩を抑制することが可能となる。
【0061】
また、本実施形態によれば、送受信手段S120は、複数のユーザ端末20のうち、1つのユーザ端末20を第2ユーザ端末20bとして、サーバ10内において設定する。このため、重み変数Wが送受信される順番を、ユーザに知られないようにすることができる。これにより、ユーザ端末20を保有するユーザに起因する情報の漏洩を容易に抑制することが可能となる。
【0062】
(実施形態:学習システム100の変形例)
次に、本実施形態における学習システム100の変形例について説明する。上述した実施形態における学習システム100の一例と、変形例との違いは、暗号化された重み変数WKが送受信される点である。なお、上述した内容と同様の構成等については、説明を省略する。
【0063】
図5は、本実施形態における学習システム100の変形例を示す模式図である。図5に示すように、各ユーザ端末20は、暗号部24を有する。なお、サーバ10は、暗号部24に該当する構成を有しない。
【0064】
各ユーザ端末20は、それぞれ等しい共通鍵暗号Kを有する。共通鍵暗号Kとして、例えばシーザ暗号、AES(Advanced Encryption Standard)、DES(Data Encryption Standard)等の公知のものが用いられる。暗号部24は、共通鍵暗号Kを用いて重み変数Wの暗号化及び復号を行う。なお、共通鍵暗号方式は、例えば以下の多項式時間アルゴリズムから構成される。生成アルゴリズムKeGen(1λ)は、セキュリティパラメータλを取り、共通鍵暗号Kを生成する。暗号化アルゴリズムEncK(m)(又はEnc(K、m))は、重み変数Wを暗号化する。復元アルゴリズムDec(K、c)は、暗号化された重み変数WKを復元する。例えばCPA(Ciphertext indistinguishability against chosen plaintext attacks)によって、暗号化された重み変数WKに含まれる情報の漏洩を防止することができる。
【0065】
ユーザ端末20は、算出された重み変数Wを暗号化し、サーバ10を介して暗号化された重み変数WKを他のユーザ端末20に送信する。このため、サーバ10では、暗号化された重み変数WKを復号できず、重み変数Wを確認することができない。また、各ユーザ端末20は、それぞれ等しい共通鍵暗号Kを有するため、何れのユーザ端末20において暗号化された重み変数WKに対しても、復号することができる。
【0066】
(実施形態:学習システム100の動作の変形例)
次に、本実施形態における学習システム100の動作の変形例について説明する。図6は、本実施形態における学習システム100の動作の変形例を示すフローチャートである。本変形例によれば、学習システム100は生成手段S150をさらに備え、第1算出手段S110は暗号化手段S112を有し、送受信手段S120は復号手段S123を有する。
【0067】
<生成手段:S150>
先ず、共通鍵暗号Kを生成する(生成手段S150)。1つのユーザ端末20(以下、第1ユーザ端末20aとする)の暗号部24は、共通暗号鍵を生成する。暗号部24は、例えばSSL/TLS等の暗号化技術を利用して、生成した共通暗号鍵を直接他のユーザ端末20(例えば第2ユーザ端末20b~第nユーザ端末20n)に送信する。他のユーザ端末20のそれぞれの記憶部22(22b~22n)は、取得した共通暗号鍵を記憶する。
【0068】
このとき、サーバ10を介さずにユーザ端末20で共通鍵暗号Kの送受信を行うため、サーバ10が共通鍵暗号Kを取得することを防止できる。また、各ユーザ端末20が共通の共通鍵暗号Kを取得するため、1つのユーザ端末20で暗号化された重み変数WKに対し、他のユーザ端末20の何れにおいても復号でき、重み変数Wを取得することができる。
【0069】
次に、上述した第1算出手段S110と同様に、第1ユーザ端末20aの算出部21は、第1重み変数W1を算出する。その後、第1ユーザ端末20aの暗号部24は、共通鍵暗号Kを用いて、第1重み変数W1を暗号化する(暗号化手段S112)。
【0070】
次に、上述した送受信手段S120と同様に、第1ユーザ端末20aの算出部21は、暗号化された第1重み変数WK1をサーバ10に送信する。サーバ10の制御部11は、暗号化された第1重み変数WK1を第2ユーザ端末20bに送信する。
【0071】
その後、第2ユーザ端末20bの暗号部24は、共通鍵暗号Kを用いて、暗号化された第1重み変数WK1を復号する(復号手段S123)。これにより、第2ユーザ端末20bは、第1重み変数W1を取得する。
【0072】
次に、上述した第2算出手段S130と同様に、第2重み変数W2を算出し、本実施形態における学習システム100の動作は終了する。なお、上述した動作は、2つのユーザ端末20を用いた場合の最小限の動作を示しており、nつ(任意)のユーザ端末20を用いる場合には、第2算出手段S130のあと、暗号化手段S112~第2算出手段S130を複数回繰り返し行うことで、深層学習における再現性の最適化を行うことができる。また、1つのユーザ端末20が複数回の重み変数Wを算出してもよく、この場合においても、暗号化手段S112~第2算出手段S130を複数回繰り返し行うことで、深層学習における再現性の最適化を行うことができる。
【0073】
本変形例によれば、上述した実施形態と同様に、送受信手段S120は、第1重み変数W1を、第1ユーザ端末20aから第2ユーザ端末20bに送信する。すなわち、各ユーザ端末20で算出された重み変数Wを、サーバ10を介したユーザ端末20間で送受信し、深層学習における再現性の最適化を行う。このため、勾配情報Gをユーザ端末20間で送受信した場合に比べて、送受信に必要となるデータ容量を大幅に縮小させることができる。これにより、ユーザ端末20間におけるデータの送受信に費やす時間を削減でき、学習効率の向上を図ることが可能となる。
【0074】
また、本変形例によれば、上述した実施形態と同様に、送受信手段S120は、サーバ10を介して第1重み変数W1を、第1ユーザ端末20aから第2ユーザ端末20bに送信する。すなわち、各ユーザ端末20間において直接重み変数Wの送受信を行わない。このため、例えば第2ユーザ端末20bに送信される第1重み変数W1が、第1ユーザ端末20aにおいて算出されたことを他のユーザに対して秘匿することができる。これにより、ユーザ端末20を保有するユーザに起因する情報の漏洩を抑制することが可能となる。
【0075】
また、本変形例によれば、送受信手段S120は、暗号化された第1重み変数WK1を、サーバ10を介して第1ユーザ端末20aから第2ユーザ端末20bに送信する。このため、サーバ10では暗号化された第1重み変数WK1を復元できず、第1重み変数W1の内容を把握することができない。これにより、サーバ10を保有する管理者等に起因する情報の漏洩を抑制することが可能となる。
【0076】
本実施形態における学習方法は、上述した学習システム100における第1算出手段S110と、送受信手段S120と、第2算出手段S130との代わりに、第1算出ステップと、送受信ステップと、第2算出ステップとを備えることで、上述した内容と同様に、勾配情報Gをユーザ端末20間で送受信した場合に比べて、送受信に必要となるデータ容量を大幅に縮小させることができる。これにより、ユーザ端末20間におけるデータの送受信に費やす時間を削減でき、学習効率の向上を図ることが可能となる。
【符号の説明】
【0077】
10 :サーバ
11 :制御部
12 :記憶部
13 :通信インターフェース
20 :ユーザ端末
21 :算出部
22 :記憶部
23 :通信インターフェース
24 :暗号部
30 :公衆通信網
100 :学習システム
201 :CPU
202 :ROM
203 :RAM
204 :保存部
205 :I/F
206 :I/F
207 :I/F
208 :入力部分
209 :出力部分
210 :内部バス
211 :筐体
G :勾配情報
K :共通鍵暗号
N :ノード
S110 :第1算出手段
S120 :送受信手段
S130 :第2算出手段
W :重み変数
図1
図2
図3
図4
図5
図6