(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023184198
(43)【公開日】2023-12-28
(54)【発明の名称】連合学習システム及び連合学習方法
(51)【国際特許分類】
G09C 1/00 20060101AFI20231221BHJP
H04L 9/30 20060101ALI20231221BHJP
G06N 20/00 20190101ALI20231221BHJP
【FI】
G09C1/00 650Z
H04L9/30 A
G06N20/00
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022098213
(22)【出願日】2022-06-17
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】山本 恭平
(72)【発明者】
【氏名】吉野 雅之
(72)【発明者】
【氏名】横張 由美子
(72)【発明者】
【氏名】佐藤 尚宜
(57)【要約】
【課題】
複数の特徴量を多重に暗号化し、多重に暗号化された暗号化特徴量を異なるサーバで多段階に分けて復号化すること。
【解決手段】
学習モデルと複数の学習データから複数の特徴量を算出し、複数の特徴量を多重に暗号化して複数の暗号化特徴量を送信情報として生成する1又は複数のデータ送信装置と、データ送信装置の生成による送信情報を入力し、入力した複数の暗号化特徴量を集約して暗号化集約特徴量を生成する特徴量集約サーバと、特徴量集約サーバから受信した情報を基に学習モデルを更新する学習モデル更新サーバとを備え、特徴量集約サーバは、暗号化集約特徴量を多段階に分けて復号化する複数の復号化処理のうち最初の復号化処理を実行し、学習モデル更新サーバは、複数の復号化処理のうち最後の復号化処理を実行する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
学習モデルと複数の学習データの各々とから複数の特徴量の各々を算出し、算出した前記複数の特徴量の各々を多重に暗号化して複数の暗号化特徴量をそれぞれ送信情報として生成する1又は複数のデータ送信装置と、
前記データ送信装置の生成による前記送信情報を、それぞれ通信ネットワークを介して入力し、入力した前記送信情報に属する前記複数の暗号化特徴量の各々をそれぞれ集約して暗号化集約特徴量を生成する特徴量集約サーバと、
前記特徴量集約サーバと前記通信ネットワークを介して情報の送受信を行い、前記特徴量集約サーバから受信した情報を基に前記学習モデルを更新する学習モデル更新サーバと、を備え、
前記特徴量集約サーバは、
前記暗号化集約特徴量を多段階に分けて復号化する複数の復号化処理のうち最初の復号化処理を実行し、
前記学習モデル更新サーバは、
前記複数の復号化処理のうち最後の復号化処理を実行することを特徴とする連合学習システム。
【請求項2】
請求項1に記載の連合学習システムにおいて、
前記特徴量集約サーバは、
前記暗号化集約特徴量を一次復号化して一次復号済暗号化集約特徴量を生成し、
前記学習モデル更新サーバは、
前記特徴量集約サーバの生成による前記一次復号済暗号化集約特徴量を二次復号化して集約特徴量を生成し、生成した前記集約特徴量で前記学習モデルを更新することを特徴とする連合学習システム。
【請求項3】
請求項2に記載の連合学習システムにおいて、
前記特徴量集約サーバは、
前記データ送信装置の暗号化で用いる暗号化方式に関する情報を基に一次公開鍵と一次秘密鍵の情報をそれぞれ生成し、生成した前記一次公開鍵の情報を、前記通信ネットワークを介して前記データ送信装置に送信し、生成した前記一次秘密鍵で前記暗号化集約特徴量を一次復号化し、
前記学習モデル更新サーバは、
前記データ送信装置の暗号化で用いる前記暗号化方式に関する情報を基に二次公開鍵と二次秘密鍵の情報をそれぞれ生成し、生成した前記二次公開鍵の情報を、前記通信ネットワークを介して前記データ送信装置に送信し、生成した前記二次秘密鍵で前記一次復号済暗号化集約特徴量を二次復号化することを特徴とする連合学習システム。
【請求項4】
請求項3に記載の連合学習システムにおいて、
前記データ送信装置は、
前記特徴量集約サーバから受信した前記一次公開鍵で前記特徴量を一重暗号化し、前記学習モデル更新サーバから受信した前記二次公開鍵で前記特徴量を二重暗号化することを特徴とする連合学習システム。
【請求項5】
請求項1に記載の連合学習システムにおいて、
前記データ送信装置は、
前記複数の特徴量の各々を複数の公開鍵で多重に暗号化して前記暗号化特徴量を生成する第1の暗号化処理、又は前記複数の公開鍵を加算して加算公開鍵を生成し、生成した前記加算公開鍵で前記複数の特徴量の各々を暗号化して前記暗号化特徴量を生成する第2の暗号化処理を実行することを特徴とする連合学習システム。
【請求項6】
請求項3に記載の連合学習システムにおいて、
前記特徴量集約サーバは、
前記データ送信装置のうち2以上のデータ送信装置から前記暗号化特徴量をそれぞれ入力し、入力した前記暗号化特徴量をそれぞれ集約して1層目暗号化集約特徴量を生成する複数の1層目特徴量集約サーバと、
前記複数の1層目特徴量集約サーバの各々の生成による前記1層目暗号化集約特徴量をそれぞれ入力し、入力した前記1層目暗号化集約特徴量をそれぞれ集約して前記暗号化集約特徴量を生成する2層目特徴量集約サーバと、を含むことを特徴とする連合学習システム。
【請求項7】
請求項6に記載の連合学習システムにおいて、
前記2層目特徴量集約サーバは、
前記暗号化集約特徴量を前記一次秘密鍵で一次復号化して前記一次復号済暗号化集約特徴量を生成し、
前記学習モデル更新サーバは、
前記2層目特徴量集約サーバから前記一次復号済暗号化集約特徴量の情報を受信した場合、受信した前記一次復号済暗号化集約特徴量を前記二次秘密鍵で二次復号化して前記集約特徴量を生成することを特徴とする連合学習システム。
【請求項8】
請求項1に記載の連合学習システムにおいて、
前記特徴量集約サーバは、
前記データ送信装置のうち2以上のデータ送信装置から前記暗号化特徴量を順次入力し、入力した前記暗号化特徴量が設定数に達したときの第1タイミングと、前記データ送信装置から前記暗号化特徴量を入力する入力開始時間から設定時間経過したときの第2タイミングをそれぞれ監視し、少なくとも前記第1タイミング又は前記第2タイミングで、入力した前記暗号化特徴量をそれぞれ集約することを特徴とする連合学習システム。
【請求項9】
1又は複数のデータ送信装置と、特徴量集約サーバと、学習モデル更新サーバと、を備えた連合学習システムにおける方法であって、
前記データ送信装置が、学習モデルと複数の学習データの各々とから複数の特徴量の各々を算出し、算出した前記複数の特徴量の各々を多重に暗号化して複数の暗号化特徴量をそれぞれ送信情報として生成する送信情報生成ステップと、
前記特徴量集約サーバが、前記データ送信装置の生成による前記送信情報を、それぞれ通信ネットワークを介して入力し、入力した前記送信情報に属する前記複数の暗号化特徴量の各々をそれぞれ集約して暗号化集約特徴量を生成する暗号化集約特徴量生成ステップと、
前記学習モデル更新サーバが、前記特徴量集約サーバと前記通信ネットワークを介して情報の送受信を行い、前記特徴量集約サーバから受信した情報を基に前記学習モデルを更新する学習モデル更新ステップと、
前記特徴量集約サーバが、前記暗号化集約特徴量を多段階に分けて復号化する複数の復号化処理のうち最初の復号化処理を実行する第1の復号化ステップと、
前記学習モデル更新サーバが、前記複数の復号化処理のうち最後の復号化処理を実行する第2の復号化ステップと、を備えることを特徴とする連合学習方法。
【請求項10】
請求項9に記載の連合学習方法において、
前記特徴量集約サーバは、
前記第1の復号化ステップでは、前記暗号化集約特徴量を一次復号化して一次復号済暗号化集約特徴量を生成し、
前記学習モデル更新サーバは、
前記第2の復号化ステップでは、前記特徴量集約サーバの生成による前記一次復号済暗号化集約特徴量を二次復号化して集約特徴量を生成し、生成した前記集約特徴量で前記学習モデルを更新することを特徴とする連合学習方法。
【請求項11】
請求項10に記載の連合学習方法において、
前記特徴量集約サーバは、
前記第1の復号化ステップでは、前記データ送信装置の暗号化で用いる暗号化方式に関する情報を基に一次公開鍵と一次秘密鍵の情報をそれぞれ生成し、生成した前記一次公開鍵の情報を、前記通信ネットワークを介して前記データ送信装置に送信し、生成した前記一次秘密鍵で前記暗号化集約特徴量を一次復号化し、
前記学習モデル更新サーバは、
前記第2の復号化ステップでは、前記データ送信装置の暗号化で用いる前記暗号化方式に関する情報を基に二次公開鍵と二次秘密鍵の情報をそれぞれ生成し、生成した前記二次公開鍵の情報を、前記通信ネットワークを介して前記データ送信装置に送信し、生成した前記二次秘密鍵で前記一次復号済暗号化集約特徴量を二次復号化することを特徴とする連合学習方法。
【請求項12】
請求項11に記載の連合学習方法において、
前記データ送信装置は、
前記送信情報生成ステップでは、前記特徴量集約サーバから受信した前記一次公開鍵で前記複数の特徴量の各々を一重暗号化し、前記学習モデル更新サーバから受信した前記二次公開鍵で前記複数の特徴量の各々を二重暗号化することを特徴とする連合学習方法。
【請求項13】
請求項9に記載の連合学習方法において、
前記データ送信装置は、
前記送信情報生成ステップでは、前記複数の特徴量の各々を複数の公開鍵で多重に暗号化して前記暗号化特徴量を生成する第1の暗号化処理、又は前記複数の公開鍵を加算して加算公開鍵を生成し、生成した前記加算公開鍵で前記複数の特徴量の各々を暗号化して前記暗号化特徴量を生成する第2の暗号化処理を実行することを特徴とする連合学習方法。
【請求項14】
請求項11に記載の連合学習方法において、
前記特徴量集約サーバは、
前記第1の復号化ステップで前記データ送信装置のうち2以上のデータ送信装置から前記暗号化特徴量をそれぞれ入力し、入力した前記暗号化特徴量をそれぞれ集約して1層目暗号化集約特徴量を生成する複数の1層目特徴量集約サーバと、
前記第1の復号化ステップで前記複数の1層目特徴量集約サーバの各々の生成による前記1層目暗号化集約特徴量をそれぞれ入力し、入力した前記1層目暗号化集約特徴量をそれぞれ集約して前記暗号化集約特徴量を生成する2層目特徴量集約サーバと、を含むことを特徴とする連合学習方法。
【請求項15】
請求項14に記載の連合学習方法において、
前記2層目特徴量集約サーバは、
前記第1の復号化ステップでは、前記暗号化集約特徴量を前記一次秘密鍵で一次復号化して前記一次復号済暗号化集約特徴量を生成し、
前記学習モデル更新サーバは、
前記第2の復号化ステップでは、前記2層目特徴量集約サーバから前記一次復号済暗号化集約特徴量の情報を受信した場合、受信した前記一次復号済暗号化集約特徴量を前記二次秘密鍵で二次復号化して前記集約特徴量を生成することを特徴とする連合学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、連合学習システム及び連合学習方法に関する。
【背景技術】
【0002】
金融、医療、及び製造などの様々な分野でAI(Artificial Intelligence)の普及が進んでいる。その中で、より高精度なAIを開発するため、複数組織で連携する動きがある。しかしながら、各組織が保有するデータを直接共有することは、情報漏洩のリスクが高まるため望ましくない。そこで、各組織が保有するデータを直接共有することなく、共同のAIを開発する手法として連合学習が提案されている。
【0003】
連合学習とは、複数のデータ送信装置と中央サーバとを含むシステムで実行される情報処理方法である。各データ送信装置は、中央サーバから配布された共通の学習モデルと自身が保有するデータを用いて、学習モデルの更新に必要な特徴量を計算する。その後、各データ送信装置から中央サーバへ特徴量が送られ、中央サーバは、各データ送信装置から受信した特徴量をそれぞれ集約して学習モデルを更新する。連合学習を採用したシステムでは、各データ送信装置が特徴量のみを中央サーバと共有するため、プライバシ保護性能が高いと考えられているが、近年特徴量から学習に用いたデータを復元する攻撃が報告されている。
【0004】
特徴量からデータを復元する攻撃への対策として、暗号技術を用いて特徴量を秘匿する手法が提案されている。暗号技術を連合学習に適用する技術として、非特許文献1、非特許文献2がある。非特許文献1に記載の技術は、共通鍵暗号技術と秘密分散技術を連合学習に適用した手法であり、非特許文献2に記載の技術は、公開鍵暗号技術を連合学習に適用した手法である。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Keith Bonawitz,外8名, “Practical Secure Aggregation for Privacy-Preserving Machine Learning.”, ACM SIGSAC Conference on Computer and Communications Security, Pages:1175-1191、2017年10月30日
【非特許文献2】Le Trieu Phong,外4名, “Privacy-Preserving Deep Learning via Additively Homomorphic Encryption”、2017年12月29日、IEEE Transactions on Information Forensics and Security(Volume:13,Issue:5,pages:1333-1345)
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1の連合学習では、鍵共有処理や秘密分散処理の影響で、各データ送信装置の計算コスト及び通信コストがデータ送信装置数に依存するため、データ送信装置数が多い大規模なシステムでは効率が低下するおそれがある。一方、非特許文献2の連合学習では、各データ送信装置の計算コスト及び通信コストがデータ送信装置数に非依存であるが、データ送信装置が集約特徴量を入手する構成となっており、中央サーバが集約特徴量を入手するシステムに適用することは困難である。
【0007】
このため、中央サーバが、各データ送信装置で暗号化された特徴量を集約する機能と、集約された特徴量を復号化して学習モデルを更新する機能とを有するシステムに、非特許文献2の方法を適用しても、中央サーバが、集約した特徴量を復号化することが可能であり、特徴量を集約する中央サーバで特徴量が復号化されるリスクが生じる。
【0008】
そこで、本発明の目的は、中央サーバで集約特徴量を入手可能でかつ、大規模なシステムに適用可能な、セキュアな連合学習システムを実現することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明は、学習モデルと複数の学習データの各々とから複数の特徴量の各々を算出し、算出した前記複数の特徴量の各々を多重に暗号化して複数の暗号化特徴量をそれぞれ送信情報として生成する1又は複数のデータ送信装置と、前記データ送信装置の生成による前記送信情報を、それぞれ通信ネットワークを介して入力し、入力した前記送信情報に属する前記複数の暗号化特徴量の各々をそれぞれ集約して暗号化集約特徴量を生成する特徴量集約サーバと、前記特徴量集約サーバと前記通信ネットワークを介して情報の送受信を行い、前記特徴量集約サーバから受信した情報を基に前記学習モデルを更新する学習モデル更新サーバと、を備え、前記特徴量集約サーバは、前記暗号化集約特徴量を多段階に分けて復号化する複数の復号化処理のうち最初の復号化処理を実行し、前記学習モデル更新サーバは、前記複数の復号化処理のうち最後の復号化処理を実行することを特徴とする。
【発明の効果】
【0010】
本発明によれば、中央サーバで集約特徴量を入手可能でかつ、大規模なシステムに適用可能な、セキュアな連合学習システムを実現することができる。
【0011】
上記した以外の課題、構成及び効果は、以下の実施の形態の説明により明らかにされる。
【図面の簡単な説明】
【0012】
【
図1】本発明の実施例1に係る連合学習システムの構成例を示すブロック図である。
【
図2】本発明の実施例1に係る連合学習システムの処理の概要を示す模式図である。
【
図3】本発明の実施例1に係る特徴量集約サーバのハードウェア構成例を示すブロック図である。
【
図4】本発明の実施例1に係る学習モデル更新サーバのハードウェア構成例を示すブロック図である。
【
図5】本発明の実施例1に係るデータ送信装置のハードウェア構成例を示すブロック図である。
【
図6】本発明の実施例1に係るデータ受信装置のハードウェア構成例を示すブロック図である。
【
図7】本発明の実施例1に係る連合学習システムの処理の一例を示すシーケンス図である。
【
図8】本発明の実施例1に係るデータ送信装置の処理の一例を示すフローチャートである。
【
図9】本発明の実施例2に係る連合学習システムの処理の概要を示す模式図である。
【
図10】本発明の実施例2に係る連合学習システムの処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【0013】
以下、添付図面を参照して本発明の実施の形態を説明する。本実施の形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施の形態は、本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。本実施の形態では、データ送信装置が保有する学習データの安全性を保護したまま、学習データから得られた特徴量を基に学習モデルを更新するシステムについて説明する。
【実施例0014】
図1は、本発明の実施例1に係る連合学習システムの構成例を示すブロック図である。
図1において、連合学習システム10は、特徴量集約サーバ100と、学習モデル更新サーバ200と、データ送信装置300と、データ受信装置400と、通信ネットワーク500と、を備える。データ送信装置300は、例えば、複数の学習データ(学習用データ)を保持し、複数の学習データと学習モデルとを用いて複数の特徴量を算出し、算出した各特徴量を暗号化して複数の暗号化特徴量をそれぞれ送信情報として生成する。学習データとしては、例えば、動物の写真やレントゲン写真などの画像データ、株の売買データを含むログデータ等が用いられる。学習モデルとしては、例えば、DeepLearningで用いられるDeep Neural Networkやランダムフォレスト等が用いられる。特徴量としては、学習モデルをDeep Neural Networkとした場合、Deep Neural Networkのパラメータ数分の実数値が算出される。
【0015】
特徴量集約サーバ100は、データ送信装置300で生成された複数の暗号化特徴量を受信した場合、受信した複数の暗号化特徴量をそれぞれ集約して暗号化集約特徴量を生成し、生成された暗号化集約特徴量の一次復号化を行う。学習モデル更新サーバ200は、特徴量集約サーバ100で一次復号化された暗号化集約特徴量の二次復号化を行い、二次復号化された集約特徴量を基に学習モデルを更新する。データ受信装置400は、学習モデル更新サーバ200で更新された学習モデルを学習モデル更新サーバ200から受信する。
【0016】
特徴量集約サーバ100と、学習モデル更新サーバ200と、データ送信装置300及びデータ受信装置400は、インターネット等の通信ネットワーク500を介して相互に情報を送受信する。なお、特徴量集約サーバ100、学習モデル更新サーバ200、データ送信装置300、及びデータ受信装置400の詳細な構成については後述する。また、連合学習システム10に含まれる装置の一部又は全部が一体化されていてもよい。例えば、特徴量集約サーバ100と、学習モデル更新サーバ200と、が一体化されていてもよいし、データ送信装置300とデータ受信装置400とが一体化されていてもよい。
【0017】
図2は、本発明の実施例1に係る連合学習システムの処理の概要を示す模式図である。
図2において、データ送信装置300は、例えば、複数台又は複数の情報処理系統(暗号化処理系統)で構成される。データ送信装置300が複数台で構成された場合、各データ送信装置300は、例えば、学習モデル更新サーバ200から送信された学習モデル320と、各データ送信装置300が学習モデル320を用いた学習で得られた学習データ321を保持し、学習モデル320と学習データ321とを基に各データ送信装置300特有の特徴量322をそれぞれ生成する。この後、各データ送信装置300は、生成した各特徴量322を多重に暗号化する。この際、各データ送信装置300は、各特徴量322を一次公開鍵323と二次公開鍵324でそれぞれ暗号化し、二重暗号化された各暗号化特徴量325を生成し、生成した各暗号化特徴量325の情報を特徴量集約サーバ100に送信する。また、データ送信装置300が、複数の情報処理系統(暗号化処理系統)で構成された場合、データ送信装置300では、複数の情報処理系統(暗号化処理系統)の処理により、開発対象の学習モデル320と複数の学習データ321とから複数の特徴量322が生成され、生成された各特徴量322から複数の暗号化特徴量324が生成される。
【0018】
特徴量集約サーバ100は、各データ送信装置300から各暗号化特徴量325の情報を受信した場合、受信した各暗号化特徴量325をそれぞれ集約して、暗号化集約特徴量120を生成し、生成した暗号化集約特徴量120を、一次秘密鍵121を用いて復号化して、一次復号済暗号化集約特徴量122を生成し、生成した一次復号済暗号化集約特徴量122の情報を学習モデル更新サーバ200に送信する特徴量集約装置として構成される。すなわち、特徴量集約サーバ100には、各暗号化特徴量325を集約する機能と、各暗号化特徴量325をそれぞれ集約して得られた暗号化集約特徴量120を、一次秘密鍵121を用いて復号化する機能が付与されている。この際、特徴量集約サーバ100は、暗号化集約特徴量325を多段階に分けて復号化する複数の復号化処理のうち最初の復号化処理(1段目の復号化処理)を実行する。
【0019】
学習モデル更新サーバ200は、特徴量集約サーバ100から一次復号済暗号化集約特徴量122の情報を受信した場合、受信した一次復号済暗号化集約特徴量122を、二次秘密鍵220を用いて復号化して、集約特徴量221を生成し、生成した集約特徴量221を基に学習モデル223(学習モデル320に相当する学習モデル)を更新し、更新された学習モデル223の情報をデータ受信装置400に送信する学習モデル更新装置として構成される。すなわち、学習モデル更新サーバ200には、特徴量集約サーバ100から受信した一次復号済暗号化集約特徴量122を、二次秘密鍵220を用いて復号化して、集約特徴量221を生成し、生成した集約特徴量221を基に学習モデル223を更新する機能が付与されている。この際、学習モデル更新サーバ200は、暗号化集約特徴量325を多段階に分けて復号化する複数の復号化処理のうち最後の復号化処理(2段目の復号化処理)を実行する。データ受信装置400は、更新された学習モデル223の情報を学習モデル更新サーバ200から受信した場合、受信した学習モデル223の情報をメモリ等に格納する。
【0020】
図3は、本発明の実施例1に係る特徴量集約サーバのハードウェア構成例を示すブロック図である。
図3において、特徴量集約サーバ100は、例えば、プロセッサ(CPU)101、補助記憶装置102、メモリ103、表示装置105、入出力インターフェース106、及び通信インターフェース107を有する計算機によって構成され、各装置が、バス等の内部信号線104を介して互いに接続される。
【0021】
プロセッサ101は、メモリ103に格納されたプログラムを実行し、各装置を統括制御する処理装置である。メモリ103は、不揮発性の非一時的な記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変なプログラム(たとえばBIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサ101が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【0022】
補助記憶装置102は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の非一時的な記憶装置であり、プロセッサ101が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置102から読み出されて、メモリ103にロードされ、その後、プロセッサ101によって実行される。
【0023】
入出力インターフェース(I/F)106は、キーボードやマウスなどの入力装置に接続され、オペレータの操作による情報を入力するインターフェースである。また、入出力インターフェース106は、表示装置105やプリンタなどの出力装置に接続され、プログラムの実行結果を、オペレータが視認可能な形式の情報に変換して出力するインターフェースでもある。表示装置105は、入出力インターフェース106から出力されたプログラムの実行結果を表示する。
【0024】
通信インターフェース(I/F)107は、所定のプロトコルに従って、通信ネットワーク500を介して他の装置との通信を制御するネットワークインターフェースである。また、通信インターフェース107は、例えば、USB(Universal Serial Bus)等のシリアルインターフェースを含んでもよい。
【0025】
プロセッサ101が実行するプログラムの一部又は全部は、非一時的記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)、又は非一時的記憶装置を備える外部計算機から通信ネットワーク500を介して特徴量集約サーバ100に提供され、非一時的記憶媒体である不揮発性の補助記憶装置102に格納されてもよい。このため、特徴量集約サーバ100は、リムーバブルメディアからデータを読み込むインターフェースを有する構成とすることができる。これは、学習モデル更新サーバ200、データ送信装置300、及びデータ受信装置400についても同様である。
【0026】
特徴量集約サーバ100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。これは、学習モデル更新サーバ200、データ送信装置300、及びデータ受信装置400についても同様である。
【0027】
プロセッサ101は、ソフトウェア資源として、例えば、鍵生成部111、特徴量集約部112、及び復号処理部113を備える。例えば、プロセッサ101は、メモリ103にロードされた鍵生成プログラムに従って動作することで、鍵生成部111として機能し、メモリ103にロードされた特徴量集約プログラムに従って動作することで、特徴量集約部112として機能し、メモリ103にロードされた復号処理プログラムに従って動作することで、復号処理部113として機能する。
【0028】
鍵生成部111は、例えば、各データ送信装置300の暗号化で用いる暗号化方式に関する情報を基に、特徴量を暗号化するための一次公開鍵と、特徴量を復号化するための一次秘密鍵を生成する。この際、鍵生成部111は、暗号技術として、例えば、加法準同型暗号を用いる。加法準同型暗号とは、暗号化された状態のまま暗号文同士の加算を行うことができる技術である。
【0029】
以下、加法準同型暗号について数式を用いて説明する。M1,M2を任意の値とし、暗号鍵をpk、暗号化関数をEncとする。例えば、Enc(M,pk)は、値Mを暗号鍵pkで暗号化して得られた暗号文を指す。さらに、暗号化した状態のまま加算を行うための演算を*とする。このとき、加法準同型性より次の(1)式が成り立つ。
【0030】
Enc(M1,pk)*Enc(M2,pk)=Enc(M1+M2,pk)・・・(1)
【0031】
上記(1)式より、M1の暗号文とM2の暗号文から、加算した値M1+M2の暗号文を生成できる。また、加法準同型暗号の中には、公開鍵の加算が可能な暗号方式が存在する。pk1とpk2を公開鍵とし、Mを任意の値とし、*を公開鍵加算のための演算とした場合に、公開鍵の加算を数式で表現すると、次の(2)式のようになる。
【0032】
Enc(M,pk1)*Enc(M,pk2)=Enc(M,pk1+pk2)・・・(2)
【0033】
公開鍵の加法性を用いることで、暗号処理の計算コストを削減できる。ここで、連合学習システム10に適用する暗号技術として、例えば、上記公開鍵の加法性を有する加法準同型暗号方式である、楕円ElGamal暗号の適用等が考えられる。
【0034】
この際、特徴量集約部112は、例えば、各データ送信装置300から受信した暗号化特徴量325に対する集約として加算や平均を行い、暗号化集約特徴量120を生成する。復号処理部113は、鍵生成部111で生成した秘密鍵121を用いて、特徴量集約部112で生成した暗号化集約特徴量120を復号化して、一次復号済暗号化集約特徴量122を生成する。
【0035】
図4は、本発明の実施例1に係る学習モデル更新サーバのハードウェア構成例を示すブロック図である。
図4において、学習モデル更新サーバ200は、例えば、プロセッサ(CPU)201、補助記憶装置202、メモリ203、表示装置205、入出力インターフェース206、及び通信インターフェース207を有する計算機によって構成され、各装置が、バス等の内部信号線204を介して互いに接続される。
【0036】
プロセッサ201、補助記憶装置202、メモリ203、内部信号線204、表示装置205、入出力インターフェース206、及び通信インターフェース207のハードウェアとしての構成は、プロセッサ101、補助記憶装置102、メモリ103、内部信号線104、表示装置105、入出力インターフェース106、及び通信インターフェース107のハードウェアとしての構成と同様であるため、これらの説明を省略する。
【0037】
プロセッサ201は、ソフトウェア資源として、鍵生成部211、学習モデル更新部212、及び復号処理部213を備える。この際、例えば、プロセッサ201は、メモリ203にロードされた鍵生成プログラムに従って動作することで、鍵生成部211として機能し、メモリ203にロードされた学習モデル更新プログラムに従って動作することで、学習モデル更新部212として機能し、メモリ103にロードされた復号処理プログラムに従って動作することで、復号処理部213として機能する。
【0038】
鍵生成部211は、例えば、各データ送信装置300の暗号化で用いる暗号化方式に関する情報を基に、特徴量を暗号化するための二次公開鍵と、特徴量を復号化するための二次秘密鍵を生成する。この際、鍵生成部111は、暗号技術として、例えば、加法準同型暗号を用いる。復号処理部213は、特徴量集約サーバ100から受信した一次復号済暗号化集約特徴量122を、鍵生成部211で生成した二次秘密鍵を用いて復号化して、集約特徴量221を生成する。学習モデル更新部212は、復号処理部213で生成した集約特徴量221と学習モデル223を用いて、例えば、加算や平均により学習モデル223の更新を行う。
【0039】
図5は、本発明の実施例1に係るデータ送信装置のハードウェア構成例を示すブロック図である。
図5において、データ送信装置300は、例えば、プロセッサ(CPU)301、補助記憶装置302、メモリ303、表示装置305、入出力インターフェース306、及び通信インターフェース307を有する計算機によって構成され、各装置が、バス等の内部信号線304を介して互いに接続される。
【0040】
プロセッサ301、補助記憶装置302、メモリ303、内部信号線304、表示装置305、入出力インターフェース306、及び通信インターフェース307のハードウェアとしての構成は、プロセッサ101、補助記憶装置102、メモリ103、内部信号線104、表示装置105、入出力インターフェース106、及び通信インターフェース107のハードウェアとしての構成と同様であるため、これらの説明を省略する。
【0041】
プロセッサ301は、ソフトウェア資源として、例えば、特徴量計算部311と暗号処理部312を備える。この際、例えば、プロセッサ301は、メモリ303にロードされた特徴量計算プログラムに従って動作することで、特徴量計算部311として機能し、メモリ303にロードされた暗号処理プログラムに従って動作することで、暗号処理部312として機能する。
【0042】
データ送信装置300の補助記憶装置302は、プロセッサ301が、開発対象の学習モデル320を用いて学習して得られた学習データ321と学習モデル320を保持する。なお、学習モデル320と学習データ321は、データ送信装置300のメモリ303に格納されていてもよい。
【0043】
特徴量計算部311は、学習データ321と学習モデル320を用いて特徴量322の算出を行う。暗号処理部312は、例えば、特徴量集約サーバ100の鍵生成部111で生成された一次公開鍵323と、学習モデル更新サーバ200の鍵生成部211で生成された二次公開鍵324を用いて特徴量322を暗号化して、暗号化特徴量325を生成する。この際、データ送信装置300は、特徴量集約サーバ100及び学習モデル更新サーバ200と情報の送受信を行うことで、学習モデル320、一次公開鍵323、及び二次公開鍵324に関する情報を入力することができる。なお、データ送信装置300が、複数台で構成された場合、複数のデータ送信装置300の処理により、開発対象の学習モデル320と複数の学習データ321とから複数の特徴量322が生成され、生成された各特徴量322から複数の暗号化特徴量325が生成される。また、データ送信装置300が、複数の情報処理系統(暗号化処理系統)で構成された場合、特徴量計算部311と暗号処理部312により複数の情報処理系統(暗号化処理系統)が構成される。
【0044】
図6は、本発明の実施例1に係るデータ受信装置のハードウェア構成例を示すブロック図である。
図6において、データ受信装置400は、例えば、プロセッサ(CPU)401、補助記憶装置402、メモリ403、表示装置405、入出力インターフェース406、及び通信インターフェース407を有する計算機によって構成され、各装置が、バス等の内部信号線404を介して互いに接続される。
【0045】
プロセッサ401、補助記憶装置402、メモリ403、内部信号線404、表示装置405、入出力インターフェース406、及び通信インターフェース407のハードウェアとしての構成は、プロセッサ101、補助記憶装置102、メモリ103、内部信号線104、表示装置105、入出力インターフェース106、及び通信インターフェース107のハードウェアとしての構成と同様であるため、これらの説明を省略する。
【0046】
なお、プロセッサ401は、通信インターフェース407が、学習モデル更新サーバ200から、更新された学習モデル223の情報を受信した場合、受信した情報を補助記憶装置402に格納すると共に、表示装置405の画面上に表示する。
【0047】
図7は、本発明の実施例1に係る連合学習システムの処理の一例を示すシーケンス図である。
図7において、学習モデル更新サーバ200は、まず、初期フェーズP701の処理として、二次公開鍵324の鍵生成を行い(S701)、開発対象の学習モデル320と生成した二次公開鍵324及び暗号パラメータの情報を、通信ネットワーク500を介してデータ送信装置300に送信し(S702)、さらに、暗号パラメータの情報を、通信ネットワーク500を介して特徴量集約サーバ100に送信する(S703)。特徴量集約サーバ100は、受信した暗号パラメータの情報を基に一次公開鍵323の鍵生成を行い(S704)、生成した一次公開鍵323の情報を、通信ネットワーク500を介して複数のデータ送信装置300へ送信する(S705)。
【0048】
学習モデル更新サーバ200による鍵生成処理(S701)と、特徴量集約サーバ100による鍵生成処理(S704)では、例えば、加法準同型暗号の一つである、楕円Elgamal暗号を用いる。この場合、ステップS702やステップS703で送信される暗号パラメータは、例えば、楕円Elgamal暗号を利用するという情報や、使用する楕円曲線、基点の情報などを含む。なお、暗号パラメータの設定は、学習モデル更新サーバ200が行ってもよいし、特徴量集約サーバ100が行ってもよい。開発対象の学習モデル320としては、例えば、決定木やDeepLearningなどの機械学習モデルが使用される。
【0049】
各データ送信装置300は、保有する学習データ321と学習モデル更新サーバ200から受信した学習モデル320を用いて特徴量322をそれぞれ算出する(S706)。ここで、各データ送信装置300では、各特徴量322を算出する前に、epoch数と呼ばれる学習をローカルで行う回数を定める必要がある。Epoch数は、各データ送信装置300が個別に定めても良いし、特徴量集約サーバ100や、学習モデル更新サーバ200が事前に定めておいてもよい。各特徴量322の算出方法は、例えば、決定木の場合は、線形回帰やロジスティック回帰があり、DeepLearningの場合は、統計的勾配降下法などがある。
【0050】
次に、各データ送信装置300は、ステップS702で受信した二次公開鍵324と、ステップS705で受信した一次公開鍵323を用いて特徴量322の暗号化を行い、暗号化特徴量325を生成する(S707)。特徴量322を暗号化するに際して、例えば、公開鍵の数だけ特徴量を暗号化する方法や、公開鍵を先に加算し、算出された加算公開鍵を用いて一度だけ暗号化を行う方法が考えられる。
【0051】
各データ送信装置300は、ステップS707で生成した暗号化特徴量325の情報を、通信ネットワーク500を介して特徴量集約サーバ100へ送信する(S708)。
【0052】
特徴量集約サーバ100は、各データ送信装置300から暗号化特徴量325の情報を受信した場合、各暗号化特徴量325の情報を集約して、暗号化集約特徴量120を生成する(S709)。各暗号化特徴量325の情報の集約方法として、例えば、加算や平均が考えられる。加法準同型暗号を用いることにより、暗号化した状態のまま加算を行うことが可能となる。集約を行うタイミングについては、全てのデータ送信装置300から暗号化特徴量325を受信してから集約を行ってもよいし、時間や暗号化特徴量325の数に関する閾値を定めて、一定時間経過もしくは一定個数以上の暗号化特徴量325を受信したら集約を行ってもよい。
【0053】
例えば、特徴量集約サーバ100は、複数のデータ送信装置300の各々から暗号化特徴量325を順次入力し、入力した暗号化特徴量325が設定数に達したときの第1タイミング(第1時間)と、複数のデータ送信装置300の各々から暗号化特徴量325を入力する入力開始時時間から設定時間経過したときの第2タイミング(第2時間)をそれぞれ監視し、少なくとも第1タイミング又は第2タイミングで、入力した暗号化特徴量325をそれぞれ集約する。これにより、特徴量集約サーバ100は、設定した第1タイミング又は第2タイミングから、入力した暗号化特徴量325をそれぞれ集約する処理を開始することができる。
【0054】
特徴量集約サーバ100は、ステップS704で生成した一次秘密鍵121を用いて、ステップS709で生成した暗号化集約特徴量120の復号化を行い、一次復号済暗号化集約特徴量122を生成する(S710)。ここで、特徴量集約サーバ100は、ステップS701で学習モデル更新サーバ200により生成された二次秘密鍵220を保有していないため、暗号化集約特徴量120を完全に復号することはできない。このように、特徴量集約サーバ100において集約後に一次復号化を行うので、万一、集約前の暗号化特徴量325が漏えいしたとしても多重に暗号化されているため、二次秘密鍵220しか持たない学習モデル更新サーバ200は完全には復号できず元の特徴量322の安全性は確保できる。
【0055】
この後、特徴量集約サーバ100は、ステップS710で生成した一次復号済暗号化集約特徴量122の情報を、通信ネットワーク500を介して学習モデル更新サーバ200へ送信する(S711)。
【0056】
学習モデル更新サーバ200は、一次復号済暗号化集約特徴量122の情報を受信した場合、ステップS701で生成した二次秘密鍵220を用いて、一次復号済暗号化集約特徴量122を復号化して、集約特徴量221を生成する(S712)。
【0057】
次に、学習モデル更新サーバ200は、ステップS712で生成した集約特徴量221を用いて学習モデル223を更新する(S713)。学習モデル223を更新する際は、例えば、集約特徴量221を学習モデル223に加算する方法や、集約特徴量221をデータ送信装置300の数で除算するなどの処理を行ったうえで加算する方法等が考えられる。
【0058】
この後、学習モデル更新サーバ200は、更新された学習モデル223の情報を、通信ネットワーク500を介してデータ受信装置400へ送信する(S714)。
【0059】
ステップS701~ステップS705を初期フェーズP701とし、ステップS706~ステップS714を繰り返しフェーズP702とした場合、初期フェーズP701の処理を終えた後、繰り返しフェーズP702の処理を繰り返し行っても良い。すなわち、ステップS714の後、再びステップS706から同様の手順で処理を行っても良い。また、ステップS713の後、ステップS714の処理を行わずに、ステップS706から同様の手順で処理を行っても良い。
【0060】
ここで、ステップS707~ステップS712の具体的な処理として、例えば、暗号方式として楕円ElGamal暗号を用いた場合について説明する。この際、暗号パラメータの一つである楕円曲線上の基点をG、一次秘密鍵である整数値をa、二次秘密鍵である整数値をb、一次公開鍵をaG、二次公開鍵をbGとする。暗号化する2つの楕円曲線上の点をM1、M2とする。また、暗号化において、一次公開鍵aGと二次公開鍵bGを先に加算して加算公開鍵(a+b)Gを算出し、上記加算公開鍵を用いて暗号化する場合を考える。このとき、楕円曲線上の点M1、M2の暗号文は、それぞれランダムな整数値r1、r2を乱数として用いて、(r1G,r1(a+b)G+M1),(r2G,r2(a+b)G+M2)となり(S707)、これらの暗号文は、暗号化特徴量325として、各データ送信装置300から特徴量集約サーバ100へ送られる(S708)。なお、整数値r1、r2を乱数として用いない場合、同じデータは、同じ暗号文に変換されるので、整数値r1、r2は毎回生成される。
【0061】
特徴量集約サーバ100は、各暗号文の集約を行うことで、暗号化集約特徴量120として、((r1+r2)G,(r1+r2)(a+b)G+M1+M2)を算出し(S709)、更に一次秘密鍵aと暗号化集約特徴量120を用いて、以下の計算を行う(S710)。
((r1+r2)(a+b)G+M1+M2)―a((r1+r2)G)=b(r1+r2)G+M1+M2・・・(3)
【0062】
この際、特徴量集約サーバ100は、算出した((r1+r2)G,b(r1+r2)G+M1+M2)を一次復号済暗号化集約特徴量122として、学習モデル更新サーバ200へ送信する(S711)。
【0063】
学習モデル更新サーバ200は、一次復号済暗号化集約特徴量122を受信した場合、二次秘密鍵bと一次復号済暗号化集約特徴量122を用いて以下の計算を行う(S712)。
(b(r1+r2)G+M1+M2)―b((r1+r2)G)=M1+M2・・・(4)
【0064】
上記計算により、学習モデル更新サーバ200は、(4)式による復号化処理により集約特徴量221として、M1+M2を生成する。ただし、連合学習システム10では、ステップS707において、特徴量322を暗号化する必要がある。この際、特徴量322は、実数値、楕円曲線上の点は整数値であるため、楕円ElGamal暗号を用いる場合、特徴量322と楕円曲線上の点を変換する仕組みが必要になる。変換する方法として、例えば、事前にnbitと楕円曲線上の点の変換表を作成しておき、特徴量をbit数nの2進数表現に変換したのち、上記変換表を用いて楕円曲線上の点へ変換する方法が考えられる。
【0065】
また、特徴量322を暗号化するに際しては、暗号化と復号化を効率的に行うために、特徴量322を丸める方法を採用することができる。特徴量322を丸める方法としては、例えば、値nを設定し、特徴量322に対して、切り上げ又は切り下げ処理を実行し、nビット表現に統一する方法を採用することができる。すなわち、特徴量322を丸めずに暗号化すると、暗号化集約特徴量を復号化する際に参照するルックアップテーブル(対応表)の情報量が多くなり、復号化に時間がかかるので、特徴量322を丸める方法が採用される。この際、各データ送信装置300は、特徴量322を多重に暗号化する前に、特徴量322に対して切り上げ処理又は切り下げ処理を実行し、特徴量322の値を設定されたビット情報に統一する。これにより、特徴量集約サーバ100や学習モデル更新サーバ200は、特徴量の復号化を効率的に行うことができる。
【0066】
ここで、具体例として、例えば、特徴量(feature)を、0<又は=feature<又は=1を満たす実数値とし、特徴量を丸めた後の値を、fとすると、n=2の場合、2ビットなので、次の4通りの値に特徴量を丸めることができる。この際、特徴量を丸める方法としては、以下の方法が採用される。
【0067】
f=0 if 0<又は=feature<0.25 ・・・(a)
f=0.33 if 0.25<又は=feature<0.5 ・・・(b)
f=0.67 if 0.5<又は=feature<0.75 ・・・(c)
f=1 if 0.75<又は=feature<又は=1 ・・・(d)
なお、n=4の場合、4ビットなので、16通りの値に特徴量を丸めることができる。
【0068】
図8は、本発明の実施例1に係るデータ送信装置の処理の一例を示すフローチャートである。この処理は、
図7のステップS706、S708の詳細である。この際、epoch数は、データ送信装置300が定める場合を想定している。
【0069】
図8において、各データ送信装置300は、学習データ321を入力し(S801)、その後、epoch数(一つの学習デー321タを何回繰り返して学習させるかを示す数)を指定する(S802)。
【0070】
次に、各データ送信装置300は、入力した学習データ321が、指定のepoch数を満たす場合、学習データ321と学習モデル320とから特徴量322を算出して出力し(S803)、算出した特徴量322を暗号化し、暗号化された特徴量322を、暗号化特徴量325として特徴量集約サーバ100に送信するか否かを判定する(S804)。
【0071】
この後、各データ送信装置300は、ステップS804で肯定(Yes)の判定結果を得た場合、暗号化特徴量325を特徴量集約サーバ100に送信し(S805)、その後、このルーチンでの処理を終了する。一方、各データ送信装置300は、ステップS804で否定(No)の判定結果を得た場合、その後、このルーチンでの処理を終了する。
【0072】
本実施例において、特徴量集約サーバ100は、暗号化集約特徴量120の復号化を、暗号化特徴量325の集約後に行っているが、暗号化特徴量325の集約前に暗号化集約特徴量120の復号化を行うことも可能である。
【0073】
本実施例においては、学習モデル更新サーバ200が二次秘密鍵220の生成をする代わりに、データ送信装置300が二次秘密鍵220の生成を実施し、データ送信装置300で生成した二次秘密鍵220を、学習モデル更新サーバ200が、データ送信装置300から受信しても良い。すなわち、特徴量集約サーバ100に学習モデル更新サーバ200の二次秘密鍵220が漏洩しない限り、特徴量集約サーバ100は、一次復号済暗号化集約特徴量120を復号化することはできない。
【0074】
本実施例においては、データ送信装置300が秘密鍵の生成を実施する場合、複数のデータ送信装置300がそれぞれ秘密鍵を生成し、各データ送信装置300で生成された秘密鍵から導出される値を二次秘密鍵220としても良い。例えば、n個の秘密鍵の合計を二次秘密鍵220としても良い。
【0075】
さらに、本実施例においては、2種類(一次と二次)の秘密鍵と公開鍵のペアを用いたが、暗号化と復号化の種類数に限定は無く、例えば、各データ送信装置300がそれぞれ特徴量を5重に暗号化し、特徴量集約サーバ100が暗号化特徴量を2重に復号化し、モデル更新サーバ200が暗号化特徴量を3重に復号化しても良い。
【0076】
本実施例によれば、複数の特徴量を多重に暗号化し、多重に暗号化された複数の暗号化特徴量を集約して異なる装置で多段階に分けて復号化することができる。結果として、暗号化特徴量を多段階に分けて復号化する過程で、特徴量が復号化されるリスクを低減することができ、高い情報セキュリティを確保することが可能になる。
【0077】
また、本実施例によれば、各データ送信装置300は、一次公開鍵323と二次公開鍵324を用いる公開鍵暗号方式で特徴量322を多重(二重)に暗号化しているので、各データ送信装置300の計算量と通信量が、各データ送信装置300の数に依存することはなく、データ送信装置数の多い大規模なシステムに連合学習システム10を適用することができる。
【0078】
さらに、本実施例によれば、各データ送信装置300が、加法準同型暗号方式を用いて特徴量322を暗号化しているので、特徴量集約サーバ100は、各データ送信装置300からの暗号化特徴量325を任意のタイミングで集約することができる。すなわち、特徴量集約サーバ100の権限で、一次復号済暗号化集約特徴量122を生成し学習モデル更新サーバ200へ送信することが可能になる。この結果、例えば、いずれかのデータ送信装置300との通信が途絶えた場合でも他のデータ送信装置300から正常に受信した暗号化特徴量325を集約して一次復号済暗号化集約特徴量122を生成し学習モデル更新サーバ200へ送信することで、連合学習システム10として連合学習を継続することが可能になる。
【0079】
また、本実施例によれば、学習モデル更新サーバ200が二次秘密鍵220を保有しているため、学習モデル更新サーバ200で二次秘密鍵220を用いて一次復号済暗号化集約特徴量122を復号化して集約特徴量221を生成することができる。
【0080】
なお、特徴量集約サーバ100が特徴量322を漏洩しないこと、及び学習モデル更新サーバ200が一次復号済暗号化集約特徴量以外を復号化しないことを条件に、特徴量322を一重暗号化(一次公開鍵のみを用いた暗号化)するだけで、特徴量322を二重暗号化(一次公開鍵と二次公開鍵を用いた暗号化)する場合と同等のセキュリティを確保することは可能である。
実施例2は、特徴量集約サーバを多層的に配置し、集約処理を複数の特徴量集約サーバに分散することで、各特徴量集約サーバの計算量と通信量を削減するものである。この際、連合学習システムを階層構造になっている組織構成に適用可能となる。
各データ送信装置300は、例えば、学習モデル更新サーバ200から送信された学習モデル320と、各データ送信装置300が学習モデル320を用いた学習で得られた学習データ321を保持し、学習モデル320と学習データ321とを基に各データ送信装置300特有の特徴量をそれぞれ生成する。この後、各データ送信装置300は、生成した各特徴量を一次公開鍵323と二次公開鍵324でそれぞれ暗号化して各暗号化特徴量325を生成し、生成した各暗号化特徴量325の情報を、複数の1層目特徴量集約サーバ600のうち通信対象となる指定の1層目特徴量集約サーバ600に送信する。
各1層目特徴量集約サーバ600は、2以上のデータ送信装置300から暗号化特徴量325の情報をそれぞれ受信した場合、受信した各暗号化特徴量325をそれぞれ集約して、暗号化集約特徴量601を1層目暗号化集約特徴量として生成し、生成した暗号化集約特徴量601の情報を2層目特徴量集約サーバ700に送信する。
2層目特徴量集約サーバ700は、複数の1層目特徴量集約サーバ600から暗号化集約特徴量601の情報を受信した場合、受信した暗号化集約特徴量601をそれぞれ集約して、暗号化集約特徴量701を生成し、生成した暗号化集約特徴量701を、一次秘密鍵702(一次秘密鍵121に相当する秘密鍵)を用いて復号化して、一次復号済暗号化集約特徴量703(一次復号済暗号化集約特徴量122に相当する一次復号済暗号化集約特徴量)を生成し、生成した一次復号済暗号化集約特徴量703の情報を学習モデル更新サーバ200に送信する。
学習モデル更新サーバ200は、2層目特徴量集約サーバ700から一次復号済暗号化集約特徴量703の情報を受信した場合、受信した一次復号済暗号化集約特徴量703を、二次秘密鍵220を用いて復号化して、集約特徴量221を生成し、生成した集約特徴量221を基に学習モデル223を更新し、更新された学習モデル223の情報をデータ受信装置400に送信する。
データ受信装置400は、更新された学習モデル223の情報を学習モデル更新サーバ200から受信した場合、受信した学習モデル223の情報をメモリ等に格納する。
学習モデル更新サーバ200による鍵生成処理(S701)と、2層目特徴量集約サーバ700による鍵生成処理(S704)では、例えば、加法準同型暗号の一つである、楕円Elgamal暗号を用いる。この場合、ステップS702やステップS703で送信される暗号パラメータは、例えば、楕円Elgamal暗号を利用するという情報や、使用する楕円曲線、基点の情報などを含む。なお、暗号パラメータの設定は、学習モデル更新サーバ200が行ってもよいし、2層目特徴量集約サーバ700が行ってもよい。開発対象の学習モデル320としては、例えば、決定木やDeepLearningなどの機械学習モデルが使用される。
各データ送信装置300は、保有する学習データ321と学習モデル更新サーバ200から受信した学習モデル320を用いて特徴量322をそれぞれ算出する(S706)。ここで、各データ送信装置300では、各特徴量322を算出する前に、epoch数と呼ばれる学習をローカルで行う回数を定める必要がある。Epoch数は、各データ送信装置300が個別に定めても良いし、特徴量集約サーバ100や、学習モデル更新サーバ200が事前に定めておいてもよい。各特徴量の算出方法は、例えば、決定木の場合は、線形回帰やロジスティック回帰があり、DeepLearningの場合は、統計的勾配降下法などがある。
次に、各データ送信装置300は、ステップS702で受信した二次公開鍵324と、ステップS705で受信した一次公開鍵323を用いて特徴量322の暗号化を行い、暗号化特徴量325を生成する(S707)。特徴量322を暗号化するに際して、例えば、公開鍵の数だけ特徴量を暗号化する方法や、公開鍵を先に加算し、算出された加算公開鍵を用いて一度だけ暗号化を行う方法が考えられる。
各データ送信装置300は、ステップS707で生成した暗号化特徴量325の情報を、通信ネットワーク500を介して、通信対象となる1層目特徴量集約サーバ600へ送信する(S708)。
各1層目特徴量集約サーバ600は、複数のデータ送信装置300から暗号化特徴量325の情報を受信した場合、受信した各暗号化特徴量325の情報を集約して、暗号化集約特徴量601を生成し(S709)、生成した暗号化集約特徴量601の情報を、通信ネットワーク500を介して、2層目特徴量集約サーバ700へ送信する(S1001)。
各暗号化特徴量325の情報の集約方法として、例えば、加算や平均が考えられる。加法準同型暗号を用いることにより、暗号化した状態のまま加算を行うことが可能となる。集約を行うタイミングについては、全てのデータ送信装置300から暗号化特徴量325を受信してから集約を行ってもよいし、時間や暗号化特徴量325の数に関する閾値を定めて、一定時間経過もしくは一定個数以上の暗号化特徴量325を受信したら集約を行ってもよい。
2層目特徴量集約サーバ700は、複数の1層目特徴量集約サーバ600から暗号化集約特徴量601の情報を受信した場合、受信した各暗号化集約特徴量601を集約して、暗号化集約特徴量701を生成し(S1002)、生成した暗号化集約特徴量701を、一次秘密鍵702を用いて一次復号化して、一次復号済暗号化特徴量703を生成し(S710)、生成した一次復号済暗号化特徴量703の情報を、通信ネットワーク500を介して、学習モデル更新サーバ200へ送信する(S711)。
ここで、2層目特徴量集約サーバ700は、学習モデル更新サーバ200により生成された二次秘密鍵220を保有していないため、暗号化集約特徴量701を完全に復号することはできない。
学習モデル更新サーバ200は、一次復号済暗号化集約特徴量703の情報を受信した場合、二次秘密鍵220を用いて、一次復号済暗号化集約特徴量703を復号化して、集約特徴量221を生成する(S712)。
次に、学習モデル更新サーバ200は、ステップS712で生成した集約特徴量221を用いて学習モデル223を更新する(S713)。学習モデル223を更新する際は、例えば、集約特徴量を学習モデルに加算する方法や、集約特徴量を送信装置の数で除算するなどの処理を行ったうえで加算する方法等が考えられる。
ステップS701~S705を初期フェーズP701とし、ステップS706~714を繰り返しフェーズP702とした場合、初期フェーズP701の処理を終えた後、繰り返しフェーズP702の処理を繰り返し行っても良い。すなわち、ステップS714の後、再びステップS706から同様の手順で処理を行っても良い。また、ステップS713の後、ステップS714の処理を行わずに、ステップS706から同様の手順で処理を行っても良い。
本実施例においては、特徴量集約サーバを2層に配置しているが、特徴量集約サーバを3層、4層など多層に配置することも可能である。また本実施例において、鍵生成は、2層目特徴量集約サーバ700と学習モデル更新サーバ200が行っているが、任意の1層目特徴量集約サーバ600、2層目特徴量集約サーバ700、学習モデル更新サーバ200のうちいずれかが鍵生成を行っても良い。この際、鍵生成を行う特徴量集約サーバ600又は700、或いは学習モデル更新サーバ200は、生成した秘密鍵を保持し、保持した秘密鍵で復号化処理を行う。
本実施例においては、暗号化特徴量325を復号化するための2つの秘密鍵702、220を、2層目特徴量集約サーバ700と学習モデル更新サーバ200がそれぞれ保有する構成を説明したが、3次秘密鍵を1層目特徴量集約サーバ600が生成し、データ送信装置300がさらに3次公開鍵で暗号化しても良い。さらに、特徴量集約サーバを多層化した場合は、多層化した分だけ公開鍵と秘密鍵のペアを増やしても良いし、少数の秘密鍵を特徴量集約サーバが共有して使っても良い。
さらに、本実施例においては、鍵生成は、任意の特徴量集約サーバと学習モデル更新サーバ200が実行可能である。この際、鍵生成を行わない特徴量集約サーバが存在してもよい。その場合、鍵生成を実行しない特徴量集約サーバが、暗号化集約特徴量を暗号化する場合、鍵生成を実行する特徴量集約サーバから秘密鍵の情報を受信することになる。
本実施例によれば、実施例1と同様の効果を奏することができる。また、本実施例によれば、特徴量集約サーバ600、700を多層的に配置して、集約処理を複数の特徴量集約サーバ600、700に分散するようにしたので、各特徴量集約サーバ当たりの計算量と通信量を削減することができる。さらに、本実施例によれば、階層構造になっている組織構成に連合学習システム20を適用することが可能になる。また、本実施例によれば、各データ送信装置300が、加法準同型暗号方式を用いて特徴量322を暗号化しているので、各1層目特徴量集約サーバ600は、各データ送信装置300からの暗号化特徴量325を任意のタイミングで集約することができる。すなわち、各1層目特徴量集約サーバ600の権限で、暗号化特徴量325を集約して暗号化集約特徴量601を生成し、2層目特徴量集約サーバ700の権限で、暗号化集約特徴量601を集約して一次復号済暗号化集約特徴量703を生成し、生成した一次復号済暗号化集約特徴量703を学習モデル更新サーバ200へ送信することが可能になる。この結果、例えば、いずれかのデータ送信装置300との通信が途絶えた場合でも他のデータ送信装置300から正常に受信した暗号化特徴量325を集約して生成された一次復号済暗号化集約特徴量703を学習モデル更新サーバ200へ送信することで、連合学習システム10として連合学習を継続することが可能になる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加や削除、置換をすることが可能である。
また、上記の各構成、機能手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。