(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-27
(45)【発行日】2024-12-05
(54)【発明の名称】機械学習システム及び機械学習方法
(51)【国際特許分類】
G06N 20/20 20190101AFI20241128BHJP
G06F 21/32 20130101ALI20241128BHJP
G06F 21/62 20130101ALI20241128BHJP
【FI】
G06N20/20
G06F21/32
G06F21/62 345
(21)【出願番号】P 2022006933
(22)【出願日】2022-01-20
【審査請求日】2024-02-26
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】加賀 陽介
(72)【発明者】
【氏名】高橋 健太
(72)【発明者】
【氏名】中村 渉
(72)【発明者】
【氏名】鈴木 優聖
【審査官】千葉 久博
(56)【参考文献】
【文献】中国特許出願公開第113705823(CN,A)
【文献】中国特許出願公開第110399742(CN,A)
【文献】HOSSEINI, Hossein, et al.,Federated Learning of User Verification Models Without Sharing Embeddings,arXiv,v2,2021年06月07日,[online] [検索日 2022.10.13] <URL: https://arxiv.org/abs/2104.08776>
【文献】ARIVAZHAGAN, Manoj Ghuhan, et al.,Federated Learning with Personalization Layers,arXiv,v1,2019年12月02日,[online] [検索日 2022.10.13] <URL: https://arxiv.org/abs/1912.00818>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/20
G06F 21/32
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
機械学習システムであって、
共通モデルを保持するサーバと、
それぞれが秘匿対象データ及び個別モデルを保持する複数のクライアントと、を含み、
前記サーバは、前記複数のクライアントに前記共通モデルを送信し、
前記複数のクライアントそれぞれは、
自身が保持する前記秘匿対象データ及び前記個別モデルに基づいて、前記共通モデルを更新した学習結果を生成し、
前記生成した学習結果を前記サーバに送信し、
前記サーバは、前記複数のクライアントそれぞれから受信した学習結果に基づいて、自身が保持する前記共通モデルを更新
し、
前記複数のクライアントそれぞれは、
自身が保持する個別モデルに対して秘匿変換を実行して秘匿個別モデルを生成し、
前記生成した秘匿個別モデルを、当該クライアントを識別する識別情報と対応づけて前記サーバに送信し、
前記サーバは、
前記複数のクライアントが送信した秘匿個別モデルに基づいて、前記秘匿個別モデルそれぞれを更新し、
更新後の秘匿個別モデルそれぞれを、対応する識別情報が示すクライアントに送信し、
前記複数のクライアントそれぞれは、
前記サーバから受信した更新後の秘匿個別モデルから、更新後の個別モデルを復元し、
自身が保持する個別モデルを更新する、機械学習システム。
【請求項2】
請求項1に記載の機械学習システムであって、
前記秘匿変換は、正規直交行列をパラメータとする射影変換を含む、機械学習システム。
【請求項3】
請求項1に記載の機械学習システムであって、
パラメータを保持するパラメータサーバを含み、
前記パラメータサーバは、前記パラメータを前記複数のクライアントに送信し、
前記複数のクライアントそれぞれは、前記パラメータサーバから受信したパラメータを用いて前記秘匿変換を実行する、機械学習システム。
【請求項4】
請求項1に記載の機械学習システムであって、
前記秘匿対象データは、個人データであり、
前記複数のクライアントに含まれる第1クライアントは、
前記共通モデルと、
登録用個人データを前記共通モデルに入力して得られた登録用特徴ベクトルに基づくテンプレートと、
認証用個人データと、を保持し、
前記認証用個人データを前記共通モデルに入力して認証用特徴ベクトルを取得し、
前記テンプレートと、前記取得した認証用特徴ベクトルと、に基づいて、個人認証を実行する、機械学習システム。
【請求項5】
請求項1に記載の機械学習システムであって、
前記複数のクライアントそれぞれが保持する前記個別モデルは、
当該クライアントによって専有されている、固定のモデルであり、
前記共通モデル及び当該クライアントが保持する個人データに基づいて生成されたものである、機械学習システム。
【請求項6】
機械学習システムによる機械学習方法であって、
前記機械学習システムは、
共通モデルを保持するサーバと、
それぞれが秘匿対象データ及び個別モデルを保持する複数のクライアントと、を含み、
前記機械学習方法は、
前記サーバが、前記複数のクライアントに前記共通モデルを送信し、
前記複数のクライアントそれぞれが、自身が保持する前記秘匿対象データ及び前記個別モデルに基づいて、前記共通モデルを更新した学習結果を生成し、
前記複数のクライアントそれぞれが、前記生成した学習結果を前記サーバに送信し、
前記サーバが、前記複数のクライアントそれぞれから受信した学習結果に基づいて、自身が保持する前記共通モデルを更新し、
前記複数のクライアントそれぞれが、自身が保持する個別モデルに対して秘匿変換を実行して秘匿個別モデルを生成し、
前記複数のクライアントそれぞれが、前記生成した秘匿個別モデルを、当該クライアントを識別する識別情報と対応づけて前記サーバに送信し、
前記サーバが、前記複数のクライアントが送信した秘匿個別モデルに基づいて、前記秘匿個別モデルそれぞれを更新し、
前記サーバが、更新後の秘匿個別モデルそれぞれを、対応する識別情報が示すクライアントに送信し、
前記複数のクライアントそれぞれが、前記サーバから受信した更新後の秘匿個別モデルから、更新後の個別モデルを復元し、
前記複数のクライアントそれぞれが、自身が保持する個別モデルを更新する、機械学習方法。
【請求項7】
請求項6に記載の機械学習方法であって、
前記秘匿変換は、正規直交行列をパラメータとする射影変換を含む、機械学習方法。
【請求項8】
請求項6に記載の機械学習方法であって、
前記機械学習システムは、パラメータを保持するパラメータサーバを含み、
前記機械学習方法は、
前記パラメータサーバが、前記パラメータを前記複数のクライアントに送信し、
前記複数のクライアントそれぞれが、前記パラメータサーバから受信したパラメータを用いて前記秘匿変換を実行する、機械学習方法。
【請求項9】
請求項6に記載の機械学習方法であって、
前記秘匿対象データは、個人データであり、
前記複数のクライアントに含まれる第1クライアントは、
前記共通モデルと、
登録用個人データを前記共通モデルに入力して得られた登録用特徴ベクトルに基づくテンプレートと、
認証用個人データと、を保持し、
前記機械学習方法は、
前記第1クライアントが、前記認証用個人データを前記共通モデルに入力して認証用特徴ベクトルを取得し、
前記第1クライアントが、前記テンプレートと、前記取得した認証用特徴ベクトルと、に基づいて、個人認証を実行する、機械学習方法。
【請求項10】
請求項6に記載の機械学習方法であって、
前記複数のクライアントそれぞれが保持する前記個別モデルは、
当該クライアントによって専有されている、固定のモデルであり、
前記共通モデル及び当該クライアントが保持する個人データに基づいて生成されたものである、機械学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習システム及び機械学習方法に関する。
【背景技術】
【0002】
個人認証は利用者が予め登録した本人であることを確認する処理であり、様々なIT(Information Technology)システムにおいて行われる。個人認証のうち個人の身体的又は行動的特徴に基づき本人であることを確認する生体認証は、利用者がパスワードの暗記、及びIC(Integrated Circuit)カードのような持ち物の携帯する必要がないため、利便性が高く、確実な本人確認手段として注目されている。
【0003】
生体認証で用いられる特徴としては、利用者の指紋、顔、虹彩、及び静脈などがある。生体認証では、これらの身体的又は行動的特徴から、特徴量を抽出し、抽出した特徴量を登録時の特徴量を比較することで本人かどうかを判定する。特徴量としては、専門家が設計した画像特徴量を用いることが多かったが、近年は深層学習に代表される機械学習を用いて特徴抽出を行うことが一般的となってきた。
【0004】
機械学習に基づく個人認証では、学習データに基づき識別能力の高い特徴量を学習するため、高精度な認証を達成するためには膨大な学習データが必要となる。しかしながら、近年GDPR(General Data Protection Regulation)などの個人データのプライバシに関する法令が厳格化し、個人データの収集には明確な同意取得や確実なデータ管理などが求められるため、学習データとして指紋、顔、虹彩、及び静脈などの生体情報を膨大に収集するのは困難となっている。
【0005】
この問題を解決する技術の一つとして、連合学習(Federated Learning)と呼ばれる技術が提案されている。連合学習は、個人データを収集せず、個人データを使って学習したモデルの重みのみを集約して学習する技術であり、個人データのプライバシを保護したまま機械学習モデルを学習することができる。この連合学習が適用された個人認証では、膨大な個人データ収集をせずに高精度なモデルを学習することが期待される。
【0006】
しかしながら、連合学習の欠点として、クライアント毎にデータの偏りがある場合に精度が低下することが挙げられる。個人認証では、基本的にある個人がクライアントを占有しており、クライアントが収集する個人データはある一人の個人に紐づいたものであると想定される。このようにあるクライアントに1クラスのデータのみが含まれる状況は、データの偏りが最も顕著な状況であり、クライアントによる学習で他のクラスとの比較が行えないため、大幅な精度低下を招く。このため、一般的な分類問題向けに提案されている連合学習をそのまま個人認証に適用することが困難である。
【0007】
非特許文献1に記載の技術は、1つのクライアントには1人分の個人データのみが格納されるという前提の下で、高精度なモデルを学習する。非特許文献1に記載の技術において、各クライアントで個人に紐づいた代表ベクトルを定義し、各クライアントは個人データから機械学習で抽出した特徴ベクトルが代表ベクトルに近づくように学習を行う。
【0008】
また、非特許文献2に記載の技術は、非特許文献1に記載の技術と同様に1つのクライアントには1人分の個人データのみが格納されるという前提の下で、プライバシを保護した学習を行う。
【先行技術文献】
【非特許文献】
【0009】
【文献】“Federated Learning with Only Positive Labels. Proceedings of the 37th International Conference on Machine Learning, in Proceedings of Machine Learning Research 119:10946-10956”、Yu, F., Rawat, A.S., Menon, A., Kumar, S.. 、2020年、[令和4年1月4日検索]、インターネット<https://proceedings.mlr.press/v119/yu20f.html>
【文献】“Federated Learning of User Verification Models Without Sharing Embeddings. Proceedings of the 38th International Conference on Machine Learning, in Proceedings of Machine Learning Research 139:4328-4336“、Hosseini, H., Park, H., Yun, S., Louizos, C., Soriaga, J., Welling, M..,2021年、[令和4年1月4日検索]、インターネット<https://proceedings.mlr.press/v139/hosseini21a.html>
【発明の概要】
【発明が解決しようとする課題】
【0010】
非特許文献1に記載の技術では、複数のクライアントが代表ベクトルをサーバへ送信し、サーバが各代表ベクトル同士の距離が十分大きくなるように学習を行う。仮に、サーバが代表ベクトルの学習を行わない場合は、異なるクラスの特徴ベクトル同士の距離が大きくならないため、全てのクラスに対する特徴ベクトルが同一のベクトルへ収束し、クラス間を識別できないモデルが学習されてしまう。これに対して、非特許文献1に記載の技術において、サーバが代表ベクトルの学習を行うことで、異なるクラスの特徴ベクトル間の距離が大きくなるため、クラス間を識別できる高精度なモデルを学習できる。
【0011】
つまり、非特許文献1に記載の技術では、クライアントとサーバとの間で各クラスの代表ベクトルを共有することが必要となる。代表ベクトルは、認証時に用いられる特徴ベクトルの代表値であるため、代表ベクトルを入手した第三者は、代表ベクトルに紐づいた個人へのなりすましを行うことが可能となる。
【0012】
さらに、代表ベクトルと学習済みモデルを入手した第三者は、Model Inversion Attackと呼ばれる手法で元の個人データを推測することが可能となる。従って、非特許文献1に記載の技術のように代表ベクトルをサーバへ共有するこの手法では、通信の盗聴やサーバへのサイバー攻撃により、なりすましや個人データ漏洩が発生するリスクがあり、プライバシ保護が十分でないと言える。
【0013】
一方、非特許文献2に記載の技術では、各クライアントがランダムに一定以上離れた代表ベクトルを割り当て、個人データから機械学習で抽出した特徴ベクトルが代表ベクトルに近づくように学習を行う。非特許文献2に記載の技術において、クライアントが代表ベクトルを管理して、サーバには代表ベクトルは送信されない。従って、非特許文献2に記載の技術において、代表ベクトルに関するプライバシは保護される、つまり個人へのなりすましや個人データ漏洩に対するリスクは回避できる。
【0014】
しかし、非特許文献2に記載の技術では、代表ベクトルがランダムに割り当てられ、クラス間の類似性が考慮されない。例えば、非常に似ている個人は特徴ベクトルも近くなり、かつ全く似ていない個人は特徴ベクトルも離れるはずであるが、非特許文献2に記載の技術では、このような類似性が考慮されず、似た個人の代表ベクトルが大きく離れている事態が発生するおそれがある。非特許文献2に記載の技術のように、クラス間の類似性を考慮しない代表ベクトルを用いると、学習で得られるモデルの精度が十分高くならない。
【0015】
つまり、代表ベクトル(個別モデルの一例)のプライバシを保護しつつ、クラス間の類似性を考慮した代表ベクトルを割り当てて学習を行うことで、なりすましや個人データ漏洩のリスクを低減しつつ高精度な学習済みモデル(共通モデルの一例)を得ることが可能となる。
【0016】
そこで本発明の一態様は、秘匿対象データ及び個別モデルを保護しつつ、高精度な共通モデルを獲得する。
【課題を解決するための手段】
【0017】
上記課題を解決するために本発明の一態様は以下の構成を採用する。機械学習システムは、共通モデルを保持するサーバと、それぞれが秘匿対象データ及び個別モデルを保持する複数のクライアントと、を含み、前記サーバは、前記複数のクライアントに前記共通モデルを送信し、前記複数のクライアントそれぞれは、自身が保持する前記秘匿対象データ及び前記個別モデルに基づいて、前記共通モデルを更新した学習結果を生成し、前記生成した学習結果を前記サーバに送信し、前記サーバは、前記複数のクライアントそれぞれから受信した学習結果に基づいて、自身が保持する前記共通モデルを更新する。
【発明の効果】
【0018】
本発明の一態様によれば、個人データ及び個別モデルを保護しつつ、高精度な共通モデルを獲得することができる。
【0019】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0020】
【
図1】第一の実施形態に係る機械学習システムの構成例を示すブロック図である。
【
図2】第一の実施形態に係るクライアント、学習サーバ、及びパラメータサーバそれぞれを実現する計算機のハードウェア構成例を示すブロック図である。
【
図3】第一の実施形態に係る個人認証向け連合学習処理の一例を示すシーケンス図である。
【
図4】第一の実施形態に係る個人データ収集処理の一例を示すフローチャートである。
【
図5】第一の実施形態に係るローカル学習処理の一例を示すフローチャートである。
【
図6】第一の実施形態に係るモデル更新処理の一例を示すフローチャートである。
【
図7】第一の実施形態に係る個別モデル格納処理の一例を示すフローチャートである。
【
図8】第一の実施形態に係る共通モデルを用いた個人認証処理の一例を示すシーケンス図である。
【
図9】第二の実施形態に係る個人認証向け連合学習処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【0021】
以下、本発明の実施形態を図面に基づいて詳細に説明する。本実施形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
【0022】
<第一の実施形態>
第一の実施形態では、クライアントが、個人データから生成される代表ベクトル(個別モデルの一例)に対して秘匿変換を施した上で学習サーバと共有し、学習サーバが、代表ベクトルの最適化を行った上でクライアントと共有し、クライアントが、秘匿変換の逆変換を施した上で代表ベクトルを保管する機械学習システムを説明する。
【0023】
図1は、機械学習システムの構成例を示すブロック図である。機械学習システムは、例えば、互いにインターネット等のネットワークで接続された、クライアント1000、学習サーバ1100、及びパラメータサーバ1200を含む。なお、
図1の例では、機械学習システムが1台のクライアント1000を含んでいるが、複数台のクライアント1000を含んでいてもよい。
【0024】
クライアント1000は、それぞれ機能部である、個人データ取得部1010、ローカル学習部1020、モデル変換部1030、データ暗号化部1040、データ復号部1050、及び認証結果出力部1060を含む。また、クライアント1000は、それぞれデータを格納する記憶領域である、個人データ格納部1090、共通モデル格納部1091、及びテンプレート格納部1092を含む。
【0025】
個人データ取得部1010は、個人(例えばクライアント1000のユーザ)に紐づくデータを個人から取得する。ローカル学習部1020は、個人データ取得部1010が取得した個人データに基づき、共通モデル及び個別モデルを学習する。モデル変換部1030は、個人データ及び共通モデルから生成された代表ベクトルに対して秘匿変換を施す。
【0026】
データ暗号化部1040は、個人データや代表ベクトルに対して暗号化を施し、個人情報漏洩を防止する。データ復号部1050は、データ暗号化部1040で暗号化された個人データや代表ベクトルを復号し、元のデータを抽出する。認証結果出力部1060は、個人データを用いた個人認証の結果を出力する。
【0027】
個人データ格納部1090は、個人データ及び代表ベクトルを保持する。共通モデル格納部1091は、学習された共通モデルを保持する。学習された共通モデルは、個人認証に活用される。テンプレート格納部1092は、学習した共通モデルを用いた個人認証処理のために用いられるテンプレートを保持する。
【0028】
学習サーバ1100は、例えば、それぞれ機能部である、クライアント選出部1110及びモデル更新部1120を含む。また、学習サーバ1100は、データを格納する領域である、共通モデル格納部1190を含む。
【0029】
クライアント選出部1110は、学習に参加可能なクライアント1000から、今回の学習ラウンドで参加するクライアント1000を選出する。モデル更新部1120は、個人データを用いて共通モデル及び個別モデルの重みを更新する。モデル更新部1120は、例えば、モデルに対して損失関数を定義し、当該損失関数を最小化することで重みの更新を実現する。共通モデル格納部1190は、学習した共通モデルを保持する。
【0030】
パラメータサーバ1200は、例えば、機能部であるパラメータ生成部1210と、データを格納する記憶領域であるパラメータ格納部1290と、を含む。なお、パラメータサーバ1200は、クライアント1000及び学習サーバ1100とは独立した装置であり、情報が漏洩するリスクが十分低いことが想定されているが、十分な安全性が確保できれば学習サーバ1100と同じ物理サーバ内の異なる仮想環境上など、同一の装置内に存在してもよい。また、クライアント1000とパラメータサーバ1200が一体化していてもよい、つまりクライアント1000がパラメータを生成して管理していてもよい。
【0031】
パラメータ生成部1210は、個別モデルの秘匿変換に用いるパラメータを生成する。秘匿変換は、個別モデルに対して暗号化を施すことでパラメータを知らない第三者が個別モデルの復元や推測することを困難とする処理である。個別モデルに対する暗号化を実現する方式として、例えばランダム射影又はランダムパディング、等が適用される。特に、変換基底として正規直交行列が用いられる場合、秘匿変換前の個別モデル間の距離と秘匿変換後の個別モデル間の距離を等しくすることが可能となる。パラメータ格納部1290は、パラメータ生成部1210が生成したパラメータを保持する。
【0032】
図2は、クライアント1000、学習サーバ1100、及びパラメータサーバ1200それぞれを実現する計算機のハードウェア構成例を示すブロック図である。計算機は、例えば、それぞれがバス等の内部通信線によって接続された、CPU(Central Processing Unit)2010、メモリ2020、補助記憶装置2030、入力装置2040、出力装置2050、及び通信装置2060を含む。
【0033】
CPU2010は、プロセッサを含み、メモリ2020に格納されたプログラムを実行する。メモリ2020は、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変のプログラム(例えば、BIOS(Basic Input/Output System))などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU2010が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【0034】
補助記憶装置2030は、例えば、磁気記憶装置(HDD(Hard Disk Drive))、フラッシュメモリ(SSD(Solid State Drive))等の大容量かつ不揮発性の記憶装置であり、CPU2010が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置2030から読み出されて、メモリ2020にロードされて、CPU2010によって実行される。
【0035】
入力装置2040は、キーボード、タッチパネル、スマートデバイス、及びマウスなどの、オペレータからの入力を受ける装置である。また、入力装置2040は、生体センサ、スキャナ、及びカメラ等の生体情報(個人データの一例)を取得するための装置を含む。出力装置2050は、ディスプレイ装置やプリンタなどの、プログラムの実行結果をオペレータが視認可能な形式で出力する装置である。
【0036】
通信装置2060は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信装置2060は、例えば、USB(Universal Serial Bus)等のシリアルインターフェースを含んでもよい。
【0037】
CPU2010が実行するプログラムの一部またはすべては、非一時的記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)又は、非一時的記憶装置を備える外部計算機からネットワークを介して計算機に提供され、非一時的記憶媒体である不揮発性の補助記憶装置2030に格納されてもよい。このため、計算機は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【0038】
クライアント1000、学習サーバ1100、及びパラメータサーバ1200それぞれは、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【0039】
クライアント1000を構成する計算機のCPU2010は、個人データ取得部1010、ローカル学習部1020、モデル変換部1030、データ暗号化部1040、及びデータ復号部1050を含む。学習サーバ1100を構成する計算機のCPU2010は、クライアント選出部1110及びモデル更新部1120を含む。パラメータサーバ1200を構成する計算機のCPU2010は、パラメータ生成部1210を含む。
【0040】
例えば、クライアント1000を構成する計算機のCPU2010は、当該計算機のメモリ2020にロードされた個人データ取得プログラムに従って動作することで、個人データ取得部1010として機能し、当該計算機のメモリ2020にロードされたローカル学習プログラムに従って動作することで、ローカル学習部1020として機能する。
【0041】
クライアント1000を構成する計算機のCPU2010に含まれる他の機能部についても、プログラムと機能部の関係は同様である。また、学習サーバ1100を構成する計算機のCPU2010に含まれる機能部、及びパラメータサーバ1200を構成する計算機のCPU2010に含まれる機能部についても、プログラムと機能部の関係は同様である。
【0042】
また、クライアント1000を構成する計算機の補助記憶装置2030は、個人データ格納部1090、共通モデル格納部1091、及びテンプレート格納部1092を実現するための記憶領域を提供する。学習サーバ1100を構成する計算機の補助記憶装置2030は、共通モデル格納部1190を実現するための記憶領域を提供する。パラメータサーバ1200を構成する計算機の補助記憶装置2030は、パラメータ格納部1290を実現するための記憶領域を提供する。
【0043】
図3は、個人認証向け連合学習処理の一例を示すシーケンス図である。クライアント1000、学習サーバ1100、及びパラメータサーバ1200、の三者が、個人認証に用いるモデルの連合学習を行う。
図3の例では、複数台(2台)のクライアント1000が記載されているが、クライアント1000はそれぞれ同様の処理を実行するため、クライアント1000の処理については重複を省略して説明する。
【0044】
クライアント1000の個人データ取得部1010は、利用者210(例えば、当該クライアント1000のユーザ)から個人データを取得する(S3010)。個人データは、個人認証で用いられるデータであり、例えば指紋、顔、虹彩、又は静脈などの身体的情報や、個人の加速度情報、移動履歴、閲覧履歴、及び購買履歴などの行動的特徴を示す情報を含む。なお、個人データに変えて任意の秘匿対象データが用いられてもよい。
【0045】
なお、ステップS3010の個人データ取得処理は、データ収集のみを目的として行われてもよいし、認証を目的として、取得した個人データが蓄積されてもよい。ステップS3010の処理が繰り返し行われることで、クライアント1000には利用者210の個人データが蓄積されていく。
【0046】
なお、クライアント1000を1人の利用者210が占有している場合、特定の利用者210の1人分の個人データが蓄積される。一方、例えば、複数人の利用者210が共用するクライアント1000が当該複数人の利用者の個人データを蓄積しても良いし、別の複数のクライアント1000が蓄積した個人データを1つのクライアント1000に集約して連合学習に用いてもよい。ステップS3010の詳細は、
図4を参照して後述する。
【0047】
学習サーバ1100のクライアント選出部1110は、今回のラウンドで学習に参加する参加クライアント1000を選出する(S3110)。具体的には、例えば、クライアント選出部1110は、全クライアント1000を選出する方法、クライアント1000に学習に参加可能かを問い合わせ参加可能という応答があったクライアント1000を選出する方法、予め定められた割合に従ってランダムにクライアント1000を選出する方法、予め定められた上限に従ってクライアント1000を選出する方法、クライアント1000に対する評価値(例えば、個人データの収集数が多いほど高い評価値、最後に学習に参加した日時が古い方が高い評価値)を算出し、算出した評価値が上位又は下位の所定数のクライアント1000を選出する方法、算出した評価値に応じて重みを付けた上でランダムに所定数のクライアント1000を選出する方法、などによって、参加クライアント1000を選出する。
【0048】
なお、ステップS3110におけるクライアント選出は、学習サーバ1100に代えてパラメータサーバ1200が実行してもよい。この場合、パラメータサーバ1200は、参加可能なクライアント1000を管理し、参加可能なクライアント1000から上記に示す選出方法でクライアントを選出する。
【0049】
学習サーバ1100のモデル更新部1120は、パラメータサーバ1200に対してパラメータ生成要求を行い(S3120)、パラメータサーバ1200のパラメータ生成部1210はパラメータを生成する(S3210)。
【0050】
学習サーバ1100のモデル更新部1120は、ステップS3110で選出した参加クライアント1000それぞれを一意に特定する識別子としての、IPアドレスや端末番号を、パラメータ生成要求に含めてもよい。ただし、ステップS3110のクライアント選出処理をパラメータサーバ1200が実行する場合には、学習サーバ1100のモデル更新部1120は、クライアント1000を特定するためのデータをパラメータ生成要求に含める必要はない。
【0051】
連合学習においては、ラウンドと呼ばれる一定期間で参加クライアント1000とやり取りをしてモデルを更新していくが、当該パラメータは今回のラウンドにおける全ての参加クライアント1000に対して共通で用いられる。このパラメータは、後述するステップS3050の個別モデル変換処理において利用されるものであり、例えば、ランダムに生成されたベクトルや行列の形で定義される。
【0052】
学習サーバ1100のモデル更新部1120は、共通モデル格納部1190に格納されている共通モデルを各参加クライアント1000へ送信する(S3130)。共通モデルは、個人データを入力して特徴ベクトルを出力する機械学習モデルであり、例えば、ニューラルネットワークなどの一般的な機械学習モデルである。
【0053】
例えば、指紋、顔、虹彩、又は静脈などの画像データを個人データとして用いる場合は、CNN(Convolutional Neural Networks)、Transformerなどの深層学習モデルを、共通モデルとして、適用することができる。なお、共通モデルは、学習開始時にランダムな重みで予め初期化されていてもよいし、クライアント1000に格納されているものとは別の個人データを使って事前学習した重みで予め最適化されていてもよい。
【0054】
参加クライアント1000は、学習サーバ1100から共通モデルを受信し(S3020)、参加クライアント1000のローカル学習部1020は個人データを利用して、共通モデル及び個別モデルを更新するローカル学習処理を実行する(S3030)。
【0055】
共通モデルは、ステップS3130で説明した通り、機械学習モデルである一方、個別モデルは、共通モデルとは異なり学習サーバ1100にそのままの形で共有されない(暗号化して共有される)モデルであり、クライアント1000毎に異なるモデルである。
【0056】
例えば、個人データから特徴ベクトルを抽出して、その特徴ベクトル間の距離が個人データ間の類似性を反映したものにする距離学習では、個別モデルとして特徴ベクトルの代表ベクトルを用いることができる。この代表ベクトルは、クライアント1000の利用者210に紐づく機微情報であり、このデータを第三者が入手した場合、なりすましや個人データ漏洩のリスクが発生する。ステップS3030におけるローカル学習処理の詳細は、
図5を参照して後述する。
【0057】
参加クライアント1000のモデル変換部1030は、パラメータサーバ1200に対してパラメータ要求を行う(S3040)。なお、
図3の例では、パラメータサーバ1200がパラメータを参加クライアント1000に配信することで、各参加クライアント1000が同期をとる仕組みとなっているが、各参加クライアント1000がパラメータを入手する方法はこれに限定されない。
【0058】
例えば、各参加クライアント1000が、日時などの各参加クライアント1000が共通に得られるデータに対してハッシュ関数などによる変換を施すことでパラメータを生成してもよい。また、各参加クライアント1000が、秘密情報を格納したハードウェアトークン等を管理して、トークン上で共通のパラメータを生成できるようにしてもよい。このように、各参加クライアント1000が、パラメータサーバ1200に依存しないパラメータ生成を行う場合は、機械学習システムはパラメータサーバ1200を含んでいなくてもよい。
【0059】
パラメータサーバ1200のパラメータ生成部1210は、参加クライアント1000からのパラメータ要求の検証を行う(S3220)。パラメータは後述するステップS3050の個別モデル変換処理で用いられる暗号鍵に相当するデータであるため、秘匿変換したデータとパラメータを同時に入手した第三者は、元のデータを復号することができる。従って、パラメータは正しい参加クライアント1000のみに共有されることが望ましい。
【0060】
このため、パラメータ生成部1210は、ステップS3220のパラメータ要求の検証において、パラメータ要求を送信した参加クライアント1000が今回のラウンドの参加クライアント1000であるかどうかを判定し、参加クライアント1000であると判定した場合にのみ、当該参加クライアント1000にパラメータを送信する(S3230)。
【0061】
パラメータ生成部1210は、参加クライアント1000ではないクライアント1000からパラメータ要求を受信したと判定した場合は、当該クライアント1000にパラメータを送信しない、又は本来のパラメータとは異なるパラメータを当該クライアント1000に送信する等の対応により、パラメータを秘匿する。
【0062】
参加クライアント1000のモデル変換部1030は、パラメータサーバ1200から受信したパラメータに基づき、個別モデルに対する秘匿変換を行うことで、秘匿個別モデルを生成する(S3050)。
【0063】
個別モデルは、ベクトル又は行列などで定義される個人に紐づくモデルである。例えば、個人データに対する特徴ベクトルに対する距離学習を行う場合、個別モデルとして特徴ベクトルの代表ベクトルを用いることができる。個別モデルは、個人データに対する特徴ベクトルに関する情報を含んでおり、個別モデルを用いてなりすましや個人データの推測が可能となる。従って、参加クライアント1000は、学習サーバ1100、パラメータサーバ1200、及び他のクライアント1000に、個別モデルを共有する際には個別モデルに秘匿変換を施して元の個別モデルを、これらの装置が入手できない状態にする。
参加クライアント1000のモデル変換部1030は、学習結果として共通モデル及び秘匿個別モデルを学習サーバ1100に送信する(S3060)。
【0064】
なお、参加クライアント1000から学習サーバ1100へ学習結果を直接送信した場合、学習サーバ1100は、送信した学習結果がどの参加クライアント1000から送信されたものかを認識することができる。この場合、仮に共通モデルや秘匿個別モデルから何らかの個人情報が漏洩したときにそれがどの参加クライアント1000の物かが特定される。これを防止するために、参加クライアント1000から学習サーバ1100へ学習結果を送信する際に、参加クライアント1000と学習サーバ1100との間にシャッフルサーバを介在させて、シャッフルサーバがクライアント1000から受信した学習結果に対して順序入れ替えや、別の識別子の付与などを行ってもよい。このようにすることで、学習サーバ1100から受信したデータとクライアント1000との対応関係が把握できなくなり、より高い安全性を達成することができる。
【0065】
学習サーバ1100は、複数の参加クライアント1000から共通モデル及び秘匿個別モデルを受信し、学習サーバ1100のモデル更新部1120は、共通モデルの集約及び個別モデルの最適化を含む、モデル更新処理を実行する(S3140)。ステップS3140のモデル更新処理の詳細は、
図6を参照して後述する。
【0066】
学習サーバ1100のモデル更新部1120は、ステップS3140で更新した秘匿個別モデルを各参加クライアントへ送信する(S3150)。なお、秘匿個別モデルは参加クライアント1000毎に存在するため、モデル更新部1120は、各秘匿個別モデルを対応する参加クライアント1000に対してのみ送信する。仮に、モデル更新部1120が、秘匿個別モデルを誤って別の参加クライアント1000へ送信してしまうと、当該参加クライアント1000は、パラメータを知っているため他の参加クライアント1000の個別モデルを復号することが可能となり、なりすましや個人データ推測が行われるリスクが発生する。
【0067】
参加クライアント1000のモデル変換部1030は、学習サーバ1100から受信した秘匿個別モデルに対して秘匿変換の逆変換を施すことで個別モデルを取得し、取得した個別モデルを当該参加クライアント1000の個人データ格納部1090へ格納する(S3070)。ステップS3070における個別モデル格納処理の詳細については、
図7を参照して後述する。
【0068】
以上の処理により、クライアント1000内の個人データ及び個別モデルのプライバシを保護しつつ、学習サーバ1100において共通モデルを連合学習することが可能となる。
【0069】
図4は、ステップS3010における個人データ収集処理の一例を示すフローチャートである。クライアント1000の個人データ取得部1010は、利用者210から個人データを取得する(S4010)。個人データは、ステップS3010で説明した通り、例えば利用者210の指紋、顔、虹彩、静脈などの身体的情報や、利用者210の加速度情報、移動履歴、閲覧履歴、又は購買履歴などの行動的特徴を示す情報を含む。
【0070】
個人データ取得部1010は、ステップS4010で取得した個人データから連合学習に用いる個人データを選択する(S4020)。なお、ステップS4020の個人データ選択処理が省略されて、ステップS4010で個人データ取得部1010が取得した全ての個人データが学習に用いられてもよいが、個人データ取得部1010は、ステップS4020のデータ選択処理を実行することで個人データを削減することができ、ひいては学習の計算量や個人データ格納部1090の記憶容量を削減することができる。
【0071】
また、個人データ取得部1010が、ステップS4020の個人データ選択処理において、学習に対して貢献が少ない個人データや、学習に対して悪影響のある個人データを除外することで、最終的に得られる共通モデルの精度を向上させることができる。
【0072】
なお、個人データ取得部1010は、ステップS4020の個人データ選択処理において、具体的には、例えば、個人データ毎に評価値を算出し、当該評価値が所定の閾値以上の個人データ、当該評価値が所定の閾値未満の個人データ、当該評価値が上位から所定数個の個人データ、当該評価値が下位から所定数個の個人データ、又は当該評価値が所定範囲内の個人データを選択する。
【0073】
なお、個人データ取得部1010は、個人データ毎に評価値を算出せず、例えば、取得した個人データ間の距離に対する評価値、又は取得した個人データの集合に対する評価値を算出し、当該評価値に基づき個人データの除外を繰り返すことで、個人データ選択を行ってもよい。
【0074】
例えば、個人データとして顔画像が用いられる場合、動画上に現れる顔画像は毎フレーム非常に類似しており、類似した大量の顔画像が学習されても効率が悪く精度も高くなりづらい。また、真横を向いている、手で顔を遮蔽している、撮像範囲から顔がはみ出している、といった顔画像は、誤差が大きすぎて学習データとしては不適格である。
【0075】
個人データ取得部1010は、このような個人データを除外するため、例えば顔画像毎に特徴抽出を行って特徴ベクトルを生成し、当該特徴ベクトル間の距離が十分に小さい場合、つまり顔画像が十分に類似している場合は、一方を学習データから除外することで、類似した個人データを除外することができる。また、個人データ取得部1010は、顔画像から顔の向きや遮蔽の有無、及びはみ出しの有無などを含む品質値を算出し、その品質値が所定値以上の顔画像除外する、又は品質値が所定値未満である顔画像を除外することで、不適格な個人データを除外することができる。
【0076】
続いて、クライアント1000のデータ暗号化部1040は、ステップS4020で選択した個人データを暗号化する(S4030)。ステップS4030の個人データ暗号化処理は、クライアント1000への第三者の不正アクセス及びマルウェア感染などによる個人データ漏洩を防止するために行われる。
【0077】
なお、例えば、クライアント1000が信頼できる場合や、データの暗号化以外の手段でクライアント1000の安全性が担保されている場合等には、個人データ取得部1010は、ステップS4030の個人データ暗号化処理を行わなくてもよい。
【0078】
なお、個人データを暗号化するためには、一般に秘密鍵が必要である。この秘密鍵は、クライアント1000内の補助記憶装置2030、TEE(Trusted Execution Environment)のようなクライアント1000内の安全な領域、又はハードウェアトークンなどの外部媒体、などに格納されている。
【0079】
なお、データ暗号化部1040は、Fuzzy Extractorなどのバイオメトリック暗号技術を用いて、生体情報などの個人データから動的に秘密鍵を生成してもよい。この場合、データ暗号化部1040が、学習対象の個人データから動的に秘密鍵を生成して個人データ暗号化処理を実行することができ、暗号化のために秘密鍵が予め用意されている必要がない。
【0080】
続いて、データ暗号化部1040は、ステップS4030で暗号化した個人データを個人データ格納部1090に格納する(S4040)。以上により、クライアント1000は、利用者210から個人データを取得して、取得した個人データを安全な形に暗号化した上で個人データ格納部1090に格納することができる。
【0081】
図5は、ステップS3030におけるローカル学習処理の一例を示すフローチャートである。参加クライアント1000のデータ復号部1050は、個人データ格納部1090に格納されている個人データを復号する(S5010)。なお、個人データの復号には、個人データを暗号化したときの秘密鍵が必要となる。データ復号部1050は、この秘密鍵をステップS4030と同様の手順で取得又は生成する。
【0082】
続いて、参加クライアント1000のローカル学習部1020は、ステップS5010で復号した個人データから、ローカル学習に用いる学習データを選択する(S5020)。具体的には、例えば、ローカル学習部1020は、復号した個人データからランダムに所定数の個人データを選択する。
【0083】
また、ローカル学習部1020は、個人データ毎に評価値を算出して、当該評価値が所定の閾値以上の個人データ、当該評価値が所定の閾値未満の個人データ、当該評価値が上位から所定数個の個人データ、当該評価値が下位から所定数個の個人データ、又は当該評価値が所定範囲内である個人データを、学習データとして選択してもよい。
【0084】
なお、ローカル学習部1020は、個人データ毎に評価値を算出せず、例えば、取得した個人データ間の距離に対する評価値、又は取得した個人データの集合に対する評価値を算出し、当該評価値に基づき個人データの除外を繰り返して学習データとしての個人データを選択してもよい。
【0085】
さらに、学習の観点からは、個人データから算出した特徴ベクトルと代表ベクトルとの距離が、近すぎると学習に対する貢献が小さく有効性が低く、遠すぎると学習で距離を近づけることが困難となる。このため、ローカル学習部1020は、特徴ベクトルと代表ベクトルとの距離を算出し、当該距離が所定の範囲内の個人データのみを学習データとして残すことで、効率的かつ高精度な学習を行うことができる。
【0086】
続いて、ローカル学習部1020は、個人データ格納部1090に個別モデルが格納されているか否かを判定する(S5030)。ローカル学習部1020が、個人データ格納部1090に個別モデルが格納されていると判定した場合は(S5030:あり)、データ復号部1050は、暗号化された個別モデルを個人データ格納部1090から読み出して復号する(S5041)。
【0087】
ローカル学習部1020は、個人データ格納部1090に個別モデルが格納されていないと判定した場合は(S5030:なし)、個別モデルを生成する(S5040)。具体的には、例えば、ローカル学習部1020は、個人データを共通モデルへ入力して特徴ベクトルを生成し、得られた特徴ベクトルに対する平均値又は中央値などの所定の統計的演算を行うことで、個別モデルを生成する。ローカル学習部1020は、連合学習開始時の事前学習モデルを共通モデルとして保管し、当該保管した共通モデルを用いて個別モデルを生成してもよいし、ステップS3020で参加クライアント1000が受信した最新の共通モデルを用いて個別モデルを生成してもよい。なお、ローカル学習部1020は、個人データを用いずにランダムな重みによって個別モデルを初期化することで、個別モデルを生成してもよい。
【0088】
ローカル学習部1020は、ステップS5020で選択した学習データ、ステップS5040復号化した又はステップS5041で生成した個別モデル、及びステップS3020で受信した共通モデルを用いて、共通モデルと個別モデルを学習する(S5050)。具体的には、例えば、ローカル学習部1020は、モデルに対する損失関数を定義して、損失関数を最小化する重みを探索することで、これらのモデルを更新する。
【0089】
損失関数は、個人データとそれに対する共通モデル及び個別モデルがどの程度理想的な関係にあるかをモデル化して、理想的な関係に対する損失として定義する関数である。例えば、個人データから生成した特徴ベクトルの代表ベクトルが個別モデルとして用いられる場合、全ての個人データを共通モデルへ入力して生成した特徴ベクトルが代表ベクトルと等しくなるのが理想的な関係である。
【0090】
このため、損失関数として特徴ベクトルと代表ベクトルとの距離の二乗の総和が採用された場合、ローカル学習部1020が当該損失関数を最小化することで、特徴ベクトルが代表ベクトルに近づいていき理想的な関係が形成されていく。
【0091】
また、共通モデルとしてCNN(Convolutional Neural Networks)、Transformerなどの深層学習モデルが用いられる場合は、ローカル学習部1020は、確率的勾配降下法等の最適化手法を適用して、損失関数を最小化する共通モデル及び個別モデルの重みを探索することで、これらのモデルを学習する。
【0092】
なお、ローカル学習部1020は、これらのモデル学習時に、個人データへノイズを付与した上で学習を行ってもよい。参加クライアント1000での学習結果から学習に用いた個人データが推測できることが知られているが、このノイズ付与によって個人データの推測を困難にすることができる。
【0093】
図6は、ステップS3140のモデル更新処理の一例を示すフローチャートである。学習サーバ1100のモデル更新部1120は、学習結果を学習サーバ1100に送信した各参加クライアント1000が、ステップS3110で選出された正しい参加クライアント1000であるかどうかを判定する(S6110)。
【0094】
クライアント選出部1110はステップS3110において選出した参加クライアント1000を識別する情報として、端末番号やIPアドレスなどを記録しておき、モデル更新部1120は、ステップS3140で学習結果を学習サーバ1100に送信した参加クライアント1000と、上記した識別情報と、を照合することでステップS6110の判定を行う。
【0095】
モデル更新部1120は、正しい参加クライアント1000に対しては、当該参加クライアント1000についてステップS6120以降の処理を実行し、正しくないクライアント1000をモデル更新処理の対象から除外する。参加クライアント1000が不正な学習結果を送信してモデルの精度を低下させるModel Poisoning Attackと呼ばれる攻撃が知られており、モデル更新部1120は、当該攻撃を防止する目的でステップS6110の処理を行う。
【0096】
続いて、モデル更新部1120は、複数の参加クライアント1000から受信した共通モデルを集約する(S6120)。具体的には、例えば、モデル更新部1120は、各参加クライアント1000が学習した共通モデルそれぞれの重みから、単一の共通モデルの重みを算出する。
【0097】
例えば、モデル更新部1120は、各参加クライアント1000が学習した共通モデルの重みの平均値を集約後の重みとして算出するFederated Averagingを用いる。
【0098】
なお、共通モデルの重みから個人データが推測できることが知られているため、参加クライアント1000が共通モデルをそのままの形で学習サーバ1100へ送信せずに、モデル更新部1120は、共通モデルの重みが秘匿されたまま当該重みを集約することが望ましい。共通モデルの重みを秘匿したまま当該重みの集約を実現する手法として、Secure Aggregationと呼ばれる技術が提案されており、本実施形態と併用することで個々の共通モデルの重みを学習サーバ1100に対して秘匿したまま、共通モデルの平均化した重みを算出することができる。
【0099】
続いて、モデル更新部1120は、各参加クライアント1000から受信した個別モデルを最適化する(S6130)。例えば、個人データから生成された特徴ベクトルに対する代表ベクトルが個別モデルとして用いられている場合には、各参加クライアント1000の利用者210の代表ベクトルを秘匿化したものが学習サーバ1100に集約される。この代表ベクトルは、各利用者210の個人データが共通モデルへ入力されることで出力される特徴ベクトルの中心に位置するベクトルであるため、ある2人の利用者210の代表ベクトル間の距離が小さいと、当該2人の利用者210を特徴ベクトルによって識別することが困難になり識別能力が低下する。従って、全ての代表ベクトル間の距離が所定値以上であることが望ましい。
【0100】
モデル更新部1120は、この性質を表現する損失関数を小さくする(例えば、損失関数に対する代表ベクトルの勾配を求め、勾配方向に更新した)代表ベクトルを求めることで、代表ベクトルを最適化することができる。具体的には、例えば、代表ベクトル間のマージンの値を定義し、代表ベクトル間の距離がマージンよりも小さいときに、マージンと代表ベクトル間距離の二乗を算出し、算出した二乗距離の総和による損失関数を定義することができる。この損失関数の値が0になると、全ての代表ベクトル間距離がマージン以上の値となる理想的な状態となる。なお、損失関数はマージンと代表ベクトル間距離が利用されたものに限定されず、Softmax Cross Entropy関数など代表ベクトル間の距離が長くなったときに出力が小さくなる任意の関数を適用することができる。
【0101】
なお、個別モデルはパラメータを使って秘匿化された状態で参加クライアント1000から送信されるが、秘匿化の手法によっては秘匿化した状態であっても、秘匿化していないときと等価な最適化を行うことができる。例えば、パラメータとして正規直交行列が用いられ、射影変換を用いた秘匿化が行われると、秘匿化前の代表ベクトル間の距離と秘匿化後の代表ベクトル間の距離が等しくなるため、等価な最適化が行える。
【0102】
続いて、モデル更新部1120は、ステップS6120で集約した共通モデルを共通モデル格納部1190に格納する(S6140)。
【0103】
図7は、ステップS3070における個別モデル格納処理の一例を示すフローチャートである。参加クライアント1000のモデル変換部1030は、ステップS3150で学習サーバ1100が送信した秘匿個別モデルに秘匿変換の逆変換を施し、個別モデルを生成する(S7010)。
【0104】
この逆変換は、学習サーバ1100によって最適化された秘匿個別モデルから最適化された個別モデルへの変換であり、当該変換によってステップS5050のモデル学習に活用することができる個別モデルが取得される。例えば、秘匿変換として正規直交行列パラメータによる射影変換が用いられた場合は、モデル変換部1030は、パラメータの逆行列による射影変換を行うことで最適化された個別モデルを取得することができる。
【0105】
続いて、参加クライアント1000のデータ暗号化部1040は、ステップS7010において逆変換して得られた個別モデルを暗号化する(S7020)。具体的には、例えば、データ暗号化部1040は、ステップS4030の個人データの暗号化処理において説明したいずれかの方法による、秘密鍵を用いた暗号化を実行する。モデル変換部1030は、ステップS7020で暗号化された個別モデルを個人データ格納部1090に格納する(S7030)。
【0106】
図8は、
図3の手順で学習した共通モデルを用いた個人認証処理の一例を示すシーケンス図である。
図8では、個人認証処理に加えて、個人認証処理が行われるためのモデル設定処理及び個人登録処理を説明する。
【0107】
まず、モデル設定処理としてステップS8010及びステップS8110の処理が実行される。学習サーバ1100のモデル更新部1120は、共通モデル格納部1190から共通モデルを取得してクライアント1000へ送信する(S8110)。クライアント1000のローカル学習部1020は、共通モデルを受信して共通モデル格納部1091へ格納する(S8010)。なお、モデル設定処理は、個人認証が行われる度に行われる必要はなく、新たに認証システムの運用が開始されるタイミング、及び認証システムのバージョンアップ時等に、認証システムの開発者や管理者が実施する。
【0108】
次に、個人登録処理として、ステップS8020、ステップS8030、及びステップS8040の処理が実行される。クライアント1000の個人データ取得部1010は、利用者210から(登録用)個人データを取得し(S8020)、取得した個人データを共通モデル格納部1091に格納されている共通モデルへ入力して特徴ベクトルを生成する(S8030)。
【0109】
個人データ取得部1010は、生成した特徴ベクトルから登録用のテンプレートを生成して、テンプレート格納部1092に格納する(S8040)。テンプレートは、個人データから生成した登録用の情報である。個人データ取得部1010は、特徴ベクトルそのものをテンプレートにして扱ってもよい。なお、個人データ取得部1010は、テンプレートを生成する際に所定のテンプレート保護技術を適用することで、テンプレートから元の個人データが漏洩しない対策を施してもよい。
【0110】
最後に、個人認証処理として、ステップS8050、ステップS8060、ステップS8070、及びステップS8080の処理が実行される。個人データ取得部1010は、利用者210から(認証用)個人データを取得し(S8050)、取得した個人データを共通モデル格納部1091に格納されている共通モデルへ入力して特徴ベクトルを生成する(S8060)。
【0111】
認証結果出力部1060は、ステップS8060で生成した特徴ベクトルとテンプレート格納部1092に格納されているテンプレートとを照合し、照合結果として、類似度又は非類似度等を算出する(S8070)。
【0112】
認証結果出力部1060は、例えば、特徴ベクトル間の距離に基づき認証を行う場合は、特徴ベクトル間のハミング距離やユークリッド距離などを算出して、算出した距離を非類似度として扱う。認証結果出力部1060は、照合結果に閾値処理などを施して、認証成功か認証失敗かの認証結果を決定して、例えばクライアント1000を構成する計算機の出力装置2050に出力する(S8080)。
【0113】
なお、照合結果は類似度又は非類似度などの連続値に限らず、テンプレート保護技術を用いてテンプレートが生成された場合には、認証成功か認証失敗かの2値が照合結果として得られることもある。その場合、認証結果出力部1060は、上記した閾値処理を実行する必要がなく、照合結果そのものを認証結果として出力すればよい。
【0114】
以上、第一の実施形態における機械学習システムは、個別モデルのプライバシを保護したまま高精度な共通モデルを学習することができる。
【0115】
<第二の実施形態>
第二の実施形態に係る機械学習システムは、第一の実施形態において行っていた個別モデルの秘匿変換処理を行わない。また、第二の実施形態に係る機械学習システムは、最初に個人データに基づき割り当てた個別モデルを固定的に用いる、つまり個別モデル最適化を行わない。従って、第二の実施形態に係る機械学習システムは、秘匿変換を行った個別モデルさえも送受信する必要がなくなり、第一の実施形態よりも高いプライバシ保護を実現できる。
【0116】
但し、第二の実施形態に係る機械学習システムは、個別モデルの更新を行わないため、異なる2つのクライアント1000の個別モデルが初期の割り当てで類似したものである可能性があり、その場合、当該異なる2つのクライアント1000の利用者に対して類似した特徴ベクトルが出力される共通モデルが学習され、精度が低下する。
【0117】
このため、第二の実施形態の機械学習システムが高精度な共通モデルを学習するためには、共通モデルをある程度識別能力の高い重みで初期化しておく必要がある。この場合、個別モデルは変化しないため個人間の識別能力は学習できず、個人内の変動を小さくしてあらゆる個人データが個別モデルに近くなるようにすることで精度を高める。
【0118】
図9は、個人認証向け連合学習処理の一例を示すシーケンス図である。以下、
図9の処理のうち、
図3との相違点を説明し、
図3の処理と同様の処理については適宜説明を省略する。
【0119】
図9の処理では秘匿変換に用いるパラメータが使用されないため、第二の実施形態の機械学習システムは、パラメータサーバ1200は含まなくてもよい。さらに、パラメータの送受信やパラメータを使った変換が不要となるため、ステップS3120、ステップS3040、ステップS3050、ステップS3150、ステップS3070の処理が実行されない。さらに、ステップS3030のローカル学習処理に含まれるステップS5050のモデル学習処理において、個別モデルの更新処理が行われない。
【0120】
第一の実施形態では、クライアント1000の利用者以外の第三者が高度な攻撃により、秘匿個別モデルとパラメータの両方を入手した場合、逆変換により個別モデルを入手することができてしまう。
【0121】
個別モデルを入手した第三者は、なりすましや個人データの推定を行うことができるため、個別モデルの漏洩は防止される必要がある。そのため、第一の実施形態ではセキュリティ対策を行い、学習サーバ1100とパラメータサーバ1200が同時に攻撃されて情報が漏洩するリスクを最小限に抑える必要がある。
【0122】
一方、第二の実施形態では、そもそもクライアント1000の外に個別モデルに関係する情報が一切出ないため、仮に学習サーバ1100が攻撃されても直ちに個別モデルや個人データが漏洩することはない。これにより、第二の実施形態では、第一の実施形態よりも安全な連合学習を実現することができる。
【0123】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0124】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0125】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0126】
1000 クライアント、1010 個人データ取得部、1020 ローカル学習部、1030 モデル変換部、1040 データ暗号化部、1050 データ復号部、1090 個人データ格納部、1091 共通モデル格納部、1100 学習サーバ、1110 クライアント選出部、1120 モデル更新部、1190 共通モデル格納部、1200 パラメータサーバ、1210 パラメータ生成部、1290 パラメータ格納部