JP2022012178A - 学習システム、モデル生成装置、学習方法およびプログラム - Google Patents

学習システム、モデル生成装置、学習方法およびプログラム Download PDF

Info

Publication number
JP2022012178A
JP2022012178A JP2020113824A JP2020113824A JP2022012178A JP 2022012178 A JP2022012178 A JP 2022012178A JP 2020113824 A JP2020113824 A JP 2020113824A JP 2020113824 A JP2020113824 A JP 2020113824A JP 2022012178 A JP2022012178 A JP 2022012178A
Authority
JP
Japan
Prior art keywords
distributed
data
unit
model
training data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020113824A
Other languages
English (en)
Other versions
JP7414655B2 (ja
Inventor
麻里 松本
Mari Matsumoto
雅則 古田
Masanori Furuta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2020113824A priority Critical patent/JP7414655B2/ja
Priority to US17/180,707 priority patent/US20220004815A1/en
Publication of JP2022012178A publication Critical patent/JP2022012178A/ja
Application granted granted Critical
Publication of JP7414655B2 publication Critical patent/JP7414655B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Neurology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】秘匿化した学習モデルの訓練を少ない計算量で実行させる。【解決手段】学習システムは、モデル生成装置と、n個の計算装置とを備える。モデル生成装置は、分割部と、秘密分散部と、シェア送信部とを有する。分割部は、m×n個の訓練データを、n個の計算装置に一対一に対応した、m個の訓練データを含むn個のグループに分割する。秘密分散部は、n個のグループのそれぞれについて秘密分散法における分散処理によりm個の分散訓練データを生成するものであって、n個のグループのうちのi番目のグループに含まれるm個の訓練データのそれぞれについて、n個の元(P1,P2,…,Pi,…,Pn)のうちのi番目の元(Pi)を用いて秘密分散法における分散処理により分散訓練データを生成する。シェア送信部は、n個の計算装置のそれぞれに、対応するm個の分散訓練データを送信する。【選択図】図2

Description

本発明の実施形態は、学習システム、モデル生成装置、学習方法およびプログラムに関する。
近年、個人情報等の活用による高度な電気通信サービス、および、企業情報を遠隔サーバに預けるクラウドサービス等が提供されている。例えば、個人情報を活用してユーザの趣味嗜好に合わせた情報を提供するサービス、工場の機器等から得られる多種類のセンサ情報に基づく故障予知のサービス等が提供されている。これらのサービス提供を実現する手段の一つとして、機械学習を用いた方法がある。
近年、大規模な機械学習の計算を、クラウド事業者に委託する場合がある。しかし、クラウド事業者に機械学習の計算を委託した場合、訓練データの漏洩のリスク、および、訓練後の学習モデルの漏洩のリスクが生じる。
ところで、入力情報を秘匿しながら計算を行う秘匿計算技術が研究されている。秘匿計算技術を利用することにより、訓練データおよび学習モデルを秘匿化した状態で、クラウド事業者に機械学習を委託することが可能となると考えられる。
秘匿計算の方法には、大きく分けて準同型暗号を用いた方法と秘密分散法とがある。一般的に、準同型暗号を用いた方法は、秘密分散法と比較して計算量が多くなる。一方、秘密分散法は、一般的に3台以上の別々に管理された装置が必要となり、準同型暗号を用いた方法と比較してシステムの規模が大きくなる。従って、秘密分散法を用いて秘匿化した機械学習を実行させる場合、できるだけ少ない計算量で実行できることが好ましい。
特開2019-144405号公報 特許第6556659号公報
Naohisa Nishida, et al., "精度劣化を抑えた秘匿BinarizedCNNの提案(Efficient Secure Binarized CNN Protocol Reducing Accuracy Degradation)",Computer Security Symposium 2019, P1588-1595,2019年10月21-24日 Sameer Wagh, et al., "Neuromorphic Electronic Circuits for Building Autonomous Cognitive Systems",Privacy Enhancing Technologies Symposium (PETS) 2019
本発明が解決しようとする課題は、訓練データおよび学習モデルのパラメータ群を秘匿化した学習モデルの訓練を、少ない計算量で実行させることができる学習システム、モデル生成装置、学習方法およびプログラムを提供することにある。
実施形態に係る学習システムは、学習モデルを訓練する。前記学習システムは、モデル生成装置と、n個(nは、3以上の整数)の計算装置とを備える。前記n個の計算装置は、前記モデル生成装置とネットワークを介して接続される。
前記モデル生成装置は、取得部と、分割部と、秘密分散部と、シェア送信部とを有する。前記取得部は、前記学習モデルを訓練するためのm×n個(mは、2以上の整数)の訓練データを取得する。前記分割部は、前記m×n個の訓練データを、前記n個の計算装置に一対一に対応した、m個の訓練データを含むn個のグループに分割する。前記秘密分散部は、前記n個のグループのそれぞれについて秘密分散法における分散処理によりm個の分散訓練データを生成するものであって、前記n個のグループのうちのi番目(iは、1以上n以下の整数)のグループに含まれる前記m個の訓練データのそれぞれについて、n個の元(P1,P2,…,Pi,…,Pn)のうちのi番目の元(Pi)を用いて前記秘密分散法における分散処理により分散訓練データを生成する。前記シェア送信部は、前記n個の計算装置のそれぞれに、対応する前記m個の分散訓練データを送信する。
前記n個の計算装置のそれぞれは、シェア受信部と、訓練部と、パラメータ送信部とを有する。前記シェア受信部は、前記モデル生成装置から前記m個の分散訓練データを受信する。前記訓練部は、受信した前記m個の分散訓練データにより、前記学習モデルと同一の構造の分散学習モデルを訓練する。前記パラメータ送信部は、前記分散学習モデルにおける訓練後の分散パラメータ群を前記モデル生成装置に送信する。
前記モデル生成装置は、パラメータ受信部と、パラメータ復元部とをさらに有する。前記パラメータ受信部は、前記n個の計算装置のうちの、k1個(k1は、2以上、n-1以下の予め定められた整数)の計算装置のそれぞれから訓練後の前記分散パラメータ群を受信する。前記パラメータ復元部は、前記k1個の計算装置のそれぞれから受信した前記分散パラメータ群に基づき、前記秘密分散法における復元処理により前記学習モデルのパラメータ群を生成する。
第1実施形態に係る学習システムの構成を示す図。 第1実施形態に係るモデル生成装置および計算装置の学習時の構成図。 第1実施形態に係る推論装置および計算装置の推論時の構成図。 秘密分散法について説明するための図。 訓練データに対する秘密分散処理の内容を示す図。 訓練処理における1番目の処理のフローチャート。 訓練処理における2番目の処理のフローチャート。 訓練処理における3番目の処理のフローチャート。 訓練処理における4番目の処理のフローチャート。 訓練処理における5番目の処理のフローチャート。 推論処理における1番目の処理のフローチャート。 推論処理における2番目の処理のフローチャート。 推論処理における3番目の処理のフローチャート。 第2実施形態に係る学習システムの構成を示す図。 第2実施形態に係るモデル生成装置および計算装置の学習時の構成図。 第2実施形態に係る推論装置の構成図。 第2実施形態に係る推論処理のフローチャート。 情報処理装置のハードウェア構成の一例を示す図。
以下、図面を参照しながら実施形態に係る学習システム10について説明する。
(第1実施形態)
図1は、第1実施形態に係る学習システム10の構成を示す図である。第1実施形態に係る学習システム10は、訓練データおよび学習モデルのパラメータ群を秘匿化しながら学習モデルの訓練を実行させるとともに、入力データおよび結果データを秘匿化しながら学習モデルを用いた推論を実行させる。
学習システム10は、管理装置20と、n個(nは、3以上の整数)の計算装置30とを備える。
管理装置20は、情報処理装置により実現される。n個の計算装置30のそれぞれは、管理装置20とは異なる情報処理装置により実現される。n個の計算装置30のそれぞれは、管理装置20とネットワークを介して接続される。n個の計算装置30のそれぞれは、ネットワーク上のサーバであってよい。また、n個の計算装置30のそれぞれは、ネットワーク上の複数の情報処理装置により構成されるクラウドにより実現されてもよい。
管理装置20は、モデル生成装置40と、推論装置42とを有する。
モデル生成装置40は、m×n個(mは、2以上の整数)の訓練データを取得する。ここで、学習モデルは、構造が予め定められている。例えば、学習モデルがニューラルネットワークである場合、レイヤ構造および各レイヤのノード数等が予め定められている。本実施形態において、学習モデルは、入力されるデータと、出力するデータとが同一となるように訓練がされるモデルである。例えば、学習モデルは、オートエンコーダである。オートエンコーダは、入力レイヤに含まれるノード数と、出力レイヤに含まれるノード数とが同一であり、隠れレイヤに含まれるノード数が入力レイヤおよび出力レイヤに含まれるノード数よりも少ない3レイヤ構造のニューラルネットワークである。
モデル生成装置40は、m×n個の訓練データを秘密分散法による分散処理により秘匿化したm×n個の分散訓練データを生成する。そして、モデル生成装置40は、n個の計算装置30のそれぞれに、m×n個の分散訓練データのうちの、対応するm個の分散訓練データを送信する。
n個の計算装置30のそれぞれは、受信したm個の分散訓練データを用いて、予め定められた構造の分散学習モデルを訓練する。分散学習モデルは、管理装置20において管理されている学習モデルと同一の構造を有する。そして、n個の計算装置30のそれぞれは、訓練後の分散学習モデルに設定されているパラメータ群である分散パラメータ群をモデル生成装置40に送信する。
モデル生成装置40は、n個の計算装置30のうちの少なくともk1個(k1は、2以上、n-1以下の予め定められた整数)の計算装置30のそれぞれから、分散パラメータ群を受信する。そして、モデル生成装置40は、秘密分散法における復元処理により、受信したk1個の分散パラメータ群から、予め定められた構造の学習モデルのパラメータ群を復元する。
モデル生成装置40は、c個(cは、2以上の整数)の判定用データを取得する。モデル生成装置40は、復元したパラメータ群およびc個の判定用データを用いて判定閾値を生成する。そして、モデル生成装置40は、生成した判定閾値を推論装置42に与える。
さらに、モデル生成装置40は、復元した学習モデルのパラメータ群を秘密分散法による分散処理により秘匿化したn個のシェアパラメータ群を生成する。そして、モデル生成装置40は、n個の計算装置30のそれぞれに、対応するシェアパラメータ群を送信する。
推論装置42は、入力データを取得する。推論装置42は、入力データを秘密分散法による分散処理により秘匿化したn個の分散入力データを生成する。そして、モデル生成装置40は、n個の計算装置30のそれぞれに、対応する分散入力データを送信する。
n個の計算装置30のそれぞれは、予め受信したシェアパラメータ群が設定された分散学習モデルを用いて、受信した分散入力データから、分散結果データを算出する。そして、n個の計算装置30のそれぞれは、算出した分散結果データを推論装置42に送信する。
推論装置42は、n個の計算装置30のうちの少なくともk2個(k2は、2以上、n-1以下の予め定められた整数)の計算装置30のそれぞれから、分散結果データを受信する。そして、推論装置42は、秘密分散法における復元処理により、受信したk2個の分散結果データから、結果データを復元する。結果データは、入力データに基づき学習モデルにより推論されたデータである。
推論装置42は、入力データ、復元された結果データおよび判定閾値に基づき、入力データの評価結果を表す判定結果を生成する。そして、推論装置42は、判定結果を出力する。
図2は、第1実施形態に係るモデル生成装置40および計算装置30の学習時の機能構成を示す図である。
モデル生成装置40は、取得部50と、分割部52と、秘密分散部54と、シェア送信部56と、パラメータ受信部64と、パラメータ復元部66と、判定データ取得部68と、閾値算出部70と、モデル秘密分散部72と、モデル送信部74とを備える。n個の計算装置30のそれぞれは、シェア受信部58と、訓練部60と、パラメータ送信部62と、モデル受信部76と、モデル記憶部78とを備える。
取得部50は、m×n個の訓練データを取得する。m×n個の訓練データは、学習モデルを訓練するためのデータセットである。
例えば、m×n個の訓練データのそれぞれは、システムを監視するために設置された複数のセンサから同時刻に出力された複数の出力値を含むデータである。また、m×n個の訓練データは、時系列に並んだデータセットであってもよい。また、学習モデルをシステムの異常を検知するように訓練する場合、例えば、m×n個の訓練データは、システムの正常動作時における複数のセンサの出力値のデータセットであり、且つ、センサの異常を検知するためデータセットである。なお、m×n個の訓練データは、システムの異常を検知するように学習モデルを訓練するためのデータセットに限らず、どのようなデータセットであってもよい。
分割部52は、取得部50により取得されたm×n個の訓練データを、n個のグループに分割する。n個のグループは、n個の計算装置30に一対一に対応する。n個のグループは、m個の訓練データを含む。
秘密分散部54は、n個のグループのそれぞれについて、秘密分散法における分散処理によりm個の分散訓練データを生成する。この場合において、秘密分散部54は、n個のグループのうちのi番目(iは、1以上n以下の任意の整数)のグループに含まれるm個の訓練データのそれぞれについて、n個の元(P,P,…,P,…,P)のうちのi番目の元(P)を用いて、秘密分散法における分散処理により分散訓練データを生成する。このような処理をすることにより、秘密分散部54は、n個のグループのそれぞれに対応するm個の分散訓練データを生成することができる。
シェア送信部56は、n個の計算装置30のそれぞれに、対応するm個の分散訓練データを送信する。
n個の計算装置30のそれぞれのシェア受信部58は、モデル生成装置40からm個の分散訓練データを受信する。n個の計算装置30のそれぞれの訓練部60は、受信したm個の分散訓練データにより、学習モデルと同一の構造の分散学習モデルを訓練する。n個の計算装置30のそれぞれのパラメータ送信部62は、分散学習モデルにおける訓練後の分散パラメータ群をモデル生成装置40に送信する。
パラメータ受信部64は、n個の計算装置30のうちの、少なくともk1個の計算装置30のそれぞれから訓練後の分散パラメータ群を受信する。パラメータ復元部66は、k1個の計算装置30から受信したk1個の分散パラメータ群に基づき、秘密分散法における復元処理により学習モデルのパラメータ群を生成する。
判定データ取得部68は、c個の判定用データを取得する。c個の判定用データは、学習モデルに入力されるデータと学習モデルから出力されるデータとの誤差値を評価する判定閾値を生成するためのデータセットである。
c個の判定用データのそれぞれは、m×n個の訓練データと同一環境で取得したデータセットである。例えば、m×n個の訓練データがシステムの正常動作時における複数のセンサの出力値のデータセットであり、且つ、センサの異常を検知するためデータセットである場合、c個の判定用データも、同様のデータセットである。
閾値算出部70は、秘密分散法における復元処理により生成されたパラメータ群が設定された学習モデルに対して、c個の判定用データを入力することにより、判定閾値を算出する。判定閾値は、入力データと結果データとが同一であると判定するか、入力データと結果データとが同一ではないと判定するかの誤差値の境界を表す。閾値算出部70は、判定閾値を推論装置42に与える。
モデル秘密分散部72は、パラメータ復元部66により復元された学習モデルのパラメータ群について、秘密分散法における分散処理によりn個のシェアパラメータ群を生成する。例えば、モデル秘密分散部72は、パラメータ群に含まれるそれぞれのパラメータについて、秘密分散法における分散処理によりn個のシェアパラメータ群を生成する。n個のシェアパラメータ群は、n個の計算装置30に一対一で対応する。
モデル送信部74は、n個の計算装置30のそれぞれに、n個のシェアパラメータ群のうちの対応するシェアパラメータ群を送信する。
n個の計算装置30のそれぞれのモデル受信部76は、モデル生成装置40からシェアパラメータ群を受信する。n個の計算装置30のそれぞれのモデル記憶部78は、受信したシェアパラメータ群を記憶する。
図3は、第1実施形態に係る推論装置42および計算装置30の推論時の機能構成を示す図である。
推論装置42は、入力データ取得部80と、入力データ秘密分散部82と、分散入力データ送信部84と、結果受信部92と、結果復元部94と、閾値記憶部96と、判定部98とを備える。n個の計算装置30のそれぞれは、さらに、分散入力データ受信部86と、推論部88と、結果送信部90とを備える。
入力データ取得部80は、推論処理において、学習モデルにより推論させるための入力データを取得する。入力データは、m×n個の訓練データを出力した環境から取得されるデータである。例えば、m×n個の訓練データのそれぞれが、システムを監視するために設置された複数のセンサから同時刻に出力された複数の出力値を含むデータである場合、入力データも同一の複数のセンサから同時刻に出力された複数の出力値を含むデータである。
入力データ秘密分散部82は、取得した入力データについて、秘密分散法における分散処理によりn個の分散入力データを生成する。n個の分散入力データは、n個の計算装置30に一対一で対応する。分散入力データ送信部84は、n個の計算装置30のそれぞれに、n個の分散入力データのうちの対応する分散入力データを送信する。
n個の計算装置30のそれぞれの分散入力データ受信部86は、推論装置42から分散入力データを受信する。n個の計算装置30のそれぞれの推論部88は、モデル記憶部78からシェアパラメータ群を取得する。そして、n個の計算装置30のそれぞれの推論部88は、シェアパラメータ群が設定された分散学習モデルと、受信した分散入力データとに基づき、分散結果データを生成する。推論部88が生成する分散結果データは、学習モデルに入力データを与えて得られる結果データを、秘密分散法における分散処理により分散したn個の分散結果データのうちの、計算装置30に対応するデータである。n個の計算装置30のそれぞれの結果送信部90は、推論部88により生成された分散結果データを推論装置42に送信する。
結果受信部92は、n個の計算装置30のうちの、k2個の計算装置30のそれぞれから分散結果データを受信する。結果復元部94は、k2個の計算装置30から受信したk2個の分散結果データに基づき、秘密分散法における復元処理により結果データを生成する。
閾値記憶部96は、モデル生成装置40の閾値算出部70により算出された判定閾値を記憶する。判定部98は、入力データ、復元された結果データおよび判定閾値に基づき、入力データの評価結果を表す判定結果を生成する。
より具体的には、判定部98は、入力データと結果データとの誤差値を算出する。続いて、判定部98は、誤差値と判定閾値とを比較する。判定部98は、誤差値が判定閾値より小さい場合、入力データと復元された結果データとが同一であることを示す判定結果を出力する。また、判定部98は、誤差値が判定閾値以上の場合、入力データと復元された結果データとが同一ではないことを示す判定結果を出力する。そして、判定部98は、判定結果を出力する。
図4は、秘密分散法について説明するための図である。本実施形態に係る学習システム10は、秘密分散法として、Shamirのしきい値秘密分散法を用いる。なお、Shamirのしきい値秘密分散法をしきい値秘密分散法とも記載する。
しきい値秘密分散法は、分散処理において、1つの元データからn個の分散データを生成し、n個の分散データをn台の機器に分散して送信する。また、しきい値秘密分散法は、復元処理において、n個の分散データのうちの予め定められた個数(K個)の分散データを取得し、取得したK個の分散データに基づき元データを復元する。なお、K、nは、K≦nの関係を満たす。しきい値秘密分散法は、(n-K)個の分散データが消失しても元データを復元できる耐消失性と、K個未満の分散データからは元データを復元できない機密性とを有する。
データ保有者が、しきい値秘密分散法を用いて元データ(a)をn台のサーバ{S,S,…,S}に安全に分散して保管させたいとする。この場合、データ保有者は、次のような、秘密分散法における分散処理を行う。
まず、データ保有者は、a∈Kとなる体Kを選択する。続いて、データ保有者は、(K-1)個(1<K≦n)のランダムなKの元(r,r,…,rk-1)を選択する。続いて、データ保有者は、下記の式(1)に示す、aを切片とする(K-1)次多項式(W(P))を生成する。
Figure 2022012178000002
続いて、データ保有者は、n個のKの元(P,P,…,P)を選択し、n個の多項式(W(P),W(P),…W(P))を演算する。そして、データ保有者は、W(P)を、サーバSに送信する。tは、1以上、n以下の任意の整数である。なお、この場合、データ保有者は、異なる2つのサーバに同一のW(P)を送信しない。また、W(P)は、サーバSに送信される元データ(a)の分散データであり、[a]t:=W(P)とも表記する。
データ保有者は、以上の処理を実行することにより、しきい値秘密分散法を用いて元データ(a)をn台のサーバ{S,S,…,S}に安全に分散して保管させることができる。
つぎに、データ保有者が、しきい値秘密分散法を用いて、n台のサーバ{S,S,…,S}に分散して保管された分散データ([a]t1,[a]t2,…,[a]tn)から、元データ(a)を復元したいとする。この場合、データ保有者は、次の処理を行う。
まず、データ保有者は、n台のサーバ{S,S,…,S}のうちK台のサーバ{St,St,…,St}を選択する。なお、この場合、データ保有者は、全て異なるサーバを選択する。続いて、データ保有者は、K台のサーバ{St,St,…,St}からK個の分散データ([a]t1,[a]t2,…,[a]tK)を取得する。
続いて、データ保有者は、下記の式(2)を演算して、元データ(a)を復元する。
Figure 2022012178000003
なお、式(2)において、λtjは、Lagrange補間法におけるLagrange係数である。
データ保有者は、以上の処理を行うことにより、しきい値秘密分散法を用いて、n台のサーバ{S,S,…,S}に分散して保管された分散データ([a]t1,[a]t2,…,[a]tn)から、元データ(a)を復元することができる。
実施形態において、モデル生成装置40は、分散処理におけるデータ保有者に対応する処理を実行する。また、実施形態において、推論装置42は、復元処理におけるデータ保有者に対応する処理を実行する。また、実施形態において、n個の計算装置30のそれぞれは、サーバに対応する処理を実行する。
図5は、g番目の訓練データXに対する秘密分散法における処理の内容を示す図である。
m×n個の訓練データのそれぞれ、c個の判定用データのそれぞれおよび入力データは、同一のデータ構造を有する。例えば、学習モデルがオートエンコーダであり、且つ、入力レイヤおよび出力レイヤのノード数がh個(hは、2以上の整数)である場合、これらのデータは、1×h個のサブデータを含む配列である。例えば、これらのデータは、同時刻におけるh個のセンサの出力値である。
ここで、m×n個の訓練データのうちのg番目(gは、1以上、m×n以下の任意の整数)の訓練データをXとする。また、Xは、h個のサブデータ(xg-1,xg-2,…,xg-h)を含む配列であるとする。
モデル生成装置40は、Xに対して秘密分散法における分散処理をする場合、Xに含まれるh個のサブデータのそれぞれについて、秘密分散法における分散処理によりn個の分散サブデータを生成する。
つまり、この場合、モデル生成装置40は、1番目のサブデータ(xg-1)について、n個の分散サブデータ(x´g-1(P),x´g-1(P),…,x´g-1(P))を生成する。また、モデル生成装置40は、2番目のサブデータ(xg-2)について、n個の分散サブデータ(x´g-2(P),x´g-2(P),…,x´g-2(P))を生成する。また、モデル生成装置40は、h番目のサブデータ(xg-h)について、n個の分散サブデータ(x´g-h(P),x´g-g(P),…,x´g-h(P))を生成する。
また、モデル生成装置40は、1つの訓練データに対して秘密分散法における分散処理をした場合、n個の分散訓練データを生成する。例えば、Xに対して秘密分散法における分散処理をした場合、モデル生成装置40は、n個の分散訓練データ(x´(P),x´(P),…,x´(P))を生成する。
ここで、n個の分散訓練データのそれぞれは、同一の元に基づき生成されたh個の分散サブデータを含む配列である。例えば、n個の分散訓練データのうちのPを元とする分散訓練データ(x´(P))は、Pを元とするh個の分散サブデータ(x´g-1(P),x´g-2(P),…,x´g-h(P))を含む配列である。また、Pを元とする分散訓練データ(x´(P))は、Pを元とするh個の分散サブデータ(x´g-1(P),x´g-2(P),…,x´g-h(P))を含む配列である。また、Pを元とする分散訓練データ(x´(P))は、Pを元とするh個の分散サブデータ(x´g-1(P),x´g-2(P),…,x´g-h(P))を含む配列である。
そして、訓練処理において、n個の計算装置30のそれぞれは、取得した分散訓練データに含まれるh個の分散サブデータのそれぞれを、分散学習モデル(例えばオートエンコーダ)の入力レイヤに含まれるh個のノードのうちの対応するノードに与える。
また、推論装置42も、入力データに対して同様の処理を行う。そして、推論処理において、n個の計算装置30のそれぞれは、取得した分散入力データに含まれるh個の分散サブデータのそれぞれを、分散学習モデルの入力レイヤに含まれるh個のノードのうちの対応するノードに与える。
図6、図7、図8、図9および図10は、学習システム10の訓練処理の流れを示すフローチャートである。学習システム10は、訓練処理において、図6、図7、図8、図9および図10に示す流れで処理を行う。
まず、S11において、取得部50は、学習モデルを訓練するためのm×n個の訓練データを取得する。本例においては、取得部50は、m×n個の訓練データとして、X,…,X,Xm+1,…,X2m,…,X(n-1)m+1,…,Xnmを取得する。X,…,Xnmのそれぞれは、平文である。例えば、X,…,Xnmは、時系列に連続したデータである。
続いて、S12において、分割部52は、m×n個の訓練データを、それぞれがm個の訓練データを含むn個のグループに分割する。例えば、X,…,Xnmが時系列に連続したデータである場合、分割部52は、1つのグループに含まれるm個の訓練データが時系列に連続するように、[X,…,X],[Xm+1,…,X2m],…,[X(n-1)m+1,…,Xnm]といったように分割する。
続いて、S13において、秘密分散部54は、n個のグループのそれぞれについて、秘密分散法における分散処理によりm個の分散訓練データを生成する。この場合において、秘密分散部54は、n個のグループのうちのi番目のグループに含まれるm個の訓練データのそれぞれについて、n個の元(P,P,…,P,…,P)のうちのi番目の元(P)を用いて秘密分散法における分散処理により分散訓練データを生成する。
本例においては、Xに対して元Pにより秘密分散した分散訓練データをX´(P)と表す。秘密分散部54は、1番目のグループに含まれる[X,…,X]のそれぞれについて、元Pにより分散処理をした[X´(P),…,X´(P)]を生成する。また、秘密分散部54は、2番目のグループに含まれる[Xm+1,…,X2m]のそれぞれについて、元Pにより分散処理をした[X´m+1(P),…,X´2m(P)]を生成する。また、秘密分散部54は、i番目のグループに含まれる[X(i-1)m+1,…,Xim]のそれぞれについて、元Pにより分散処理をした[X´(i-1)m+1(P),…,X´im(P)]を生成する。また、秘密分散部54は、n番目のグループに含まれる[X(n-1)m+1,…,Xnm]のそれぞれについて、元Pにより分散処理をした[X´(n-1)m+1(P),…,X´nm(P)]を生成する。
続いて、S14において、シェア送信部56は、n個の計算装置30のそれぞれに、対応するm個の分散訓練データを送信する。
続いて、S15において、n個の計算装置30のそれぞれのシェア受信部58は、モデル生成装置40からm個の分散訓練データを受信する。例えば、第1の計算装置30-1は、[X´(P),…,X´(P)]を受信する。例えば、第2の計算装置30-2は、[X´m+1(P),…,X´2m(P)]を受信する。例えば、第iの計算装置30-iは、[X´(i-1)m+1(P),…,X´im(P)]を受信する。例えば、第nの計算装置30-nは、[X´(n-1)m+1(P),…,X´nm(P)]を受信する。
続いて、S16において、n個の計算装置30のそれぞれの訓練部60は、受信したm個の分散訓練データにより分散学習モデルを訓練する。分散学習モデルは、学習モデルと同一の構造である。モデル生成装置40およびn個の計算装置30のそれぞれは、学習モデルおよび分散学習モデルの構造を共有している。例えば、分散学習モデルがオートエンコーダである場合、入力レイヤおよび出力レイヤのノード数、および、中間レイヤのノード数を共有している。そして、分散学習モデルがオートエンコーダである場合、n個の計算装置30のそれぞれの訓練部60は、分散訓練データを入力した場合に、入力した分散訓練データと同一のデータが出力されるように、分散学習モデルを訓練する。
続いて、S17において、n個の計算装置30のそれぞれのパラメータ送信部62は、分散学習モデルにおける訓練後の分散パラメータ群をモデル生成装置40に送信する。例えば、分散学習モデルがオートエンコーダである場合、パラメータ送信部62は、訓練した結果として得られた複数の重みおよび複数のバイアスを、訓練後の分散パラメータ群としてモデル生成装置40に送信する。なお、n個の計算装置30のそれぞれは、互いに異なるm個の分散訓練データにより分散学習モデルを訓練する。従って、n個の計算装置30のそれぞれは、互いに異なる分散パラメータ群をモデル生成装置40に送信する。
続いて、S18において、モデル生成装置40のパラメータ受信部64は、n個の計算装置30のうちの、k1個の計算装置30のそれぞれから訓練後の分散パラメータ群を受信する。ここで、k1個は、学習モデルを表す式の逆関数を、秘密分散法における復元処理により復元するために必要となるシェアの数である。学習モデルを表す式の逆関数は、学習もでるから出力される結果データを変数とし、学習モデルに入力される訓練データを値とする関数である。また、この場合において、シェアは、訓練後の分散パラメータ群である。
続いて、S19において、パラメータ復元部66は、k1個の計算装置30から受信したk1個の分散パラメータ群に基づき、秘密分散法における復元処理により学習モデルのパラメータ群を生成する。
より具体的には、パラメータ復元部66は、k1個の計算装置30のそれぞれ毎に、結果データを変数とし、訓練データを値とする式で表したモデル式の逆関数に、対応する分散パラメータ群を代入する。続いて、パラメータ復元部66は、対応する分散パラメータ群を代入したk1個の逆関数を用いて、秘密分散法における復元処理により、学習モデルの逆関数を復元する。そして、パラメータ復元部66は、復元した学習モデルの逆関数に基づき、学習モデルのパラメータ群を生成する。
続いて、S20において、判定データ取得部68は、c個の判定用データを取得する。本例においては、判定データ取得部68は、c個の判定用データとして、[Y,…,Yc]を取得する。
続いて、S21において、閾値算出部70は、秘密分散法における復元処理により生成されたパラメータ群が設定された学習モデルに対してc個の判定用データを入力することにより、判定閾値を算出する。判定閾値は、入力データと結果データとが同一であると判定するか同一ではないと判定するかの誤差値の境界を表す。判定データ取得部68は、判定結果の精度(Accuracy)が最も高くなるような判定閾値を算出する。本例においては、判定データ取得部68は、判定閾値としてdを算出する。閾値算出部70は、判定閾値を推論装置42に与える。
続いて、S22において、モデル秘密分散部72は、復元された学習モデルのパラメータ群について、秘密分散法における分散処理によりn個のシェアパラメータ群を生成する。例えば、モデル秘密分散部72は、パラメータ群に含まれるそれぞれのパラメータについて、秘密分散法における分散処理によりn個のシェアパラメータ群を生成する。例えば、学習モデルがオートエンコーダである場合、モデル秘密分散部72は、復元された複数の重みおよび複数のバイアスのそれぞれについて、秘密分散法における分散処理によりn個のシェアパラメータ群を生成する。なお、n個のシェアパラメータ群は、n個の計算装置30に一対一で対応する。
続いて、S23において、モデル送信部74は、n個の計算装置30のそれぞれに、n個のシェアパラメータ群のうちの対応するシェアパラメータ群を送信する。
続いて、S24において、n個の計算装置30のそれぞれのモデル受信部76は、モデル生成装置40からシェアパラメータ群を受信する。そして、S25において、n個の計算装置30のそれぞれのモデル記憶部78は、受信したシェアパラメータ群を記憶する。
このように、訓練処理において、学習システム10は、S11からS25の処理を実行する。これにより、学習システム10は、訓練データをn個の計算装置30に対して秘匿化した状態で、n個の計算装置30に学習モデルを訓練させることができる。
図11、図12および図13は、学習システム10の推論処理の流れを示すフローチャートである。学習システム10は、推論処理において、図11、図12および図13に示す流れで処理を行う。
まず、S61において、推論装置42の入力データ取得部80は、学習モデルにより推論させるための入力データを取得する。本例においては、入力データ取得部80は、入力データとして、Zを取得する。なお、入力データ取得部80は、時系列に並んだ複数の入力データ(Z,…,Z)(sは、2以上の整数)を取得してもよい。この場合、推論装置42およびn個の計算装置30のそれぞれは、複数の入力データ(Z,…,Z)のそれぞれに対して、Zと同一の処理を実行する。
続いて、S62において、入力データ秘密分散部82は、取得した入力データについて、秘密分散法における分散処理によりn個の分散入力データを生成する。本例においては、Zに対して元Pで秘密分散した分散訓練データをZ´(P)と表す。従って、入力データ秘密分散部82は、Z´(P),Z´(P),…,Z´(P),…,Z´(P)を生成する。n個の分散入力データは、n個の計算装置30に一対一で対応する。
続いて、S63において、分散入力データ送信部84は、n個の計算装置30のそれぞれに、n個の分散入力データのうちの対応する分散入力データを送信する。
続いて、S64において、n個の計算装置30のそれぞれの分散入力データ受信部86は、推論装置42から分散入力データを受信する。例えば、第1の計算装置30-1は、Z´(P)を受信する。例えば、第2の計算装置30-2は、Z´(P)を受信する。例えば、第iの計算装置30-iは、Z´(P),を受信する。例えば、第nの計算装置30-nは、Z´(P)を受信する。
続いて、S65において、n個の計算装置30のそれぞれの推論部88は、モデル記憶部78から、シェアパラメータ群を取得する。そして、推論部88は、シェアパラメータ群が設定された分散学習モデルと、受信した分散入力データとに基づき、分散結果データを生成する。n個の計算装置30のそれぞれの推論部88が生成する分散結果データは、学習モデルに入力データを与えて得られる結果データを、秘密分散法における分散処理により分散したn個の分散結果データのうちの、対応する分散結果データである。例えば、分散学習モデルがオートエンコーダである場合、推論部88は、取得した分散入力データに含まれるh個の分散サブデータのそれぞれを、入力レイヤに含まれるh個のノードのうちの対応するノードに与える。
本例においては、第1の計算装置30-1の推論部88は、dec´(P)を生成する。第2の計算装置30-2の推論部88は、dec´(P)を生成する。第iの計算装置30-iの推論部88は、dec´(P)生成する。例えば、第nの計算装置30-nの推論部88は、dec´(P)を生成する。
ここで、n個の計算装置30のそれぞれの推論部88は、例えば、非特許文献1(Naohisa Nishida, et al., “精度劣化を抑えた秘匿BinarizedCNNの提案(Efficient Secure Binarized CNN Protocol Reducing Accuracy Degradation)”,Computer Security Symposium 2019, P1588-1595,2019年10月21-24日)に示された処理方法で、推論処理を実行する。
非特許文献1には、マルチパーティ計算(MPC)を行うことで、Shamirのしきい値秘密分散法により算出された分散データに対するニューラルネットワークによる推論処理をサーバに実行させる手法が記載されている。分散データは、マルチパーティ計算を行うことで、和、積、論理和および論理積を実行することができる。マルチパーティ計算は、自分の持つ秘密情報を相手に漏らすことなく、サーバ間で通信を行って、秘密情報に対する計算を実行する手法である。例えば、Shamirのしきい値秘密分散法を用いた場合、サーバは、分散データ(シェア)同士の和、分散データ(シェア)と平文の和、分散データ(シェア)と平文の積を他のサーバと通信することなく、実行可能である。ただし、サーバは、分散データ(シェア)同士の積を算出する場合には、他のサーバと通信する。
続いて、S66において、n個の計算装置30のそれぞれの結果送信部90は、生成された分散結果データを推論装置42に送信する。
続いて、S67において、推論装置42の結果受信部92は、n個の計算装置30のうちの、k2個の計算装置30のそれぞれから分散結果データを受信する。k2個は、結果データを秘密分散法における復元処理により復元するために必要となるシェアの数である。この場合、シェアは、計算装置30において分散入力データから推論された分散結果データである。
続いて、S68において、結果復元部94は、k2個の計算装置30から受信したk2個の分散結果データに基づき、秘密分散法における復元処理により結果データを生成する。本例においては、結果復元部94は、k2個の分散結果データdec´から、結果データdecを復元する。なお、結果復元部94は、複数の入力データ(Z,…,Z)を取得した場合には、複数の入力データのそれぞれに対応する複数の結果データ(dec,…,dec)を復元する。
続いて、S69において、判定部98は、入力データと結果データとの誤差値を算出する。さらに、判定部98は、算出した誤差値と、閾値記憶部96に記憶された判定閾値(d)とを比較する。
続いて、S70において、判定部98は、誤差値が判定閾値(d)より小さい場合、入力データと復元された結果データとが同一であることを示す判定結果を出力する。また、判定部98は、誤差値が判定閾値(d)以上の場合、入力データと復元された結果データとが同一ではないことを示す判定結果を出力する。なお、複数の入力データ(Z,…,Z)を取得した場合、判定部98は、複数の入力データのそれぞれに対する判定結果を出力してもよいし、複数の入力データのそれぞれに対する判定結果に基づき、複数の入力データが取得されたシステムに何らかの異常が発生したことを表す情報を出力してもよい。そして、判定部98は、判定結果を出力する。
このように、推論処理において、学習システム10は、S61からS70の処理を実行する。これにより、学習システム10は、入力データをn個の計算装置30に対して秘匿化した状態で、n個の計算装置30に推論処理をさせることができる。
以上のように、本実施形態に係る学習システム10は、n個の計算装置30に対して訓練データ、学習モデルのパラメータ群および入力データを秘匿化した状態、n個の計算装置30に対して学習処理のための計算および推論処理のための計算をさせることができる。さらに、本実施形態に係る学習システム10は、学習処理において、n個の計算装置30のそれぞれに対して、対応する元により秘匿化したm個の分散訓練データを送信して、分散学習モデルを訓練させる。従って、本実施形態に係る学習システム10は、n個の計算装置30のそれぞれに対して与えるデータ量を少なくし、n個の計算装置30のそれぞれにおける訓練時の計算量を少なくすることができる。
(第2実施形態)
つぎに、第2実施形態に係る学習システム10について説明する。第2実施形態に係る学習システム10は、第1実施形態と略同一の機能および構成を有する。第2実施形態の説明については、第1実施形態と同一の機能および構成を有する構成要素については同一の符号を付けて、相違点を除き詳細な説明を省略する。
図14は、第2実施形態に係る学習システム10の構成を示す図である。第2実施形態に係る学習システム10は、訓練データおよび学習モデルのパラメータ群を秘匿化しながら学習モデルの訓練を実行させる。
第2実施形態に係るモデル生成装置40は、学習モデルのパラメータ群を復元した後、復元したパラメータ群を、判定閾値とともに推論装置42に与える。なお、第2実施形態に係るモデル生成装置40は、復元したパラメータ群からn個のシェアパラメータ群を生成せず、n個の計算装置30にもシェアパラメータ群を送信しない。
第2実施形態に係る推論装置42は、推論処理において、復元したパラメータ群を設定した学習モデルを用いて、入力データから結果データを算出する。そして、第2実施形態に係る推論装置42は、入力データ、結果データおよび判定閾値に基づき、入力データの評価結果を表す判定結果を生成する。そして、推論装置42は、判定結果を出力する。なお、第2実施形態に係るn個の計算装置30のそれぞれは、推論時において処理を実行しない。
図15は、第2実施形態に係るモデル生成装置40および計算装置30の学習時の機能構成を示す図である。
第2実施形態に係るモデル生成装置40は、取得部50と、分割部52と、秘密分散部54と、シェア送信部56と、パラメータ受信部64と、パラメータ復元部66と、判定データ取得部68と、閾値算出部70とを備える。すなわち、第2実施形態に係るモデル生成装置40は、第1実施形態と比較して、モデル秘密分散部72およびモデル送信部74を備えない構成である。第2実施形態に係るn個の計算装置30のそれぞれは、シェア受信部58と、訓練部60と、パラメータ送信部62とを備える。すなわち、第2実施形態に係るn個の計算装置30のそれぞれは、第1実施形態と比較して、モデル受信部76およびモデル記憶部78を備えない構成である。
第2実施形態において、パラメータ復元部66は、復元した学習モデルのパラメータ群を推論装置42に与える。
図16は、第2実施形態に係る推論装置42の機能構成を示す図である。
第2実施形態に係る推論装置42は、入力データ取得部80と、第2モデル記憶部100と、第2推論部102と、閾値記憶部96と、判定部98と、を備える。すなわち、第2実施形態に係る推論装置42は、第1実施形態と比較し、入力データ秘密分散部82、分散入力データ送信部84、結果受信部92および結果復元部94を備えず、第2モデル記憶部100および第2推論部102をさらに備える。
第2モデル記憶部100は、モデル生成装置40のパラメータ復元部66により復元された学習モデルのパラメータ群を記憶する。第2推論部102は、第2モデル記憶部100からパラメータ群を取得する。そして、第2推論部102は、パラメータ群が設定された学習モデルと、取得した入力データとに基づき、結果データを生成する。判定部98は、入力データ、第2推論部102により生成された結果データおよび判定閾値に基づき、入力データの評価結果を表す判定結果を生成する。
図17は、第2実施形態に係る学習システム10の推論処理の流れを示すフローチャートである。第2実施形態に係る学習システム10は、学習処理において、第1実施形態で説明した図6~図8に示すS11からS21の処理を行う。また、第2実施形態に係る学習システム10は、推論処理において、図17に示す流れで処理を行う。
まず、S81において、入力データ取得部80は、学習モデルにより推論させるための入力データを取得する。
続いて、S82において、第2推論部102は、第2モデル記憶部100から、パラメータ群を取得する。そして、第2推論部102は、パラメータ群が設定された学習モデルと、取得した入力データとに基づき、結果データを生成する。例えば、学習モデルがオートエンコーダである場合、第2推論部102は、取得した入力データに含まれるh個の分散サブデータのそれぞれを、入力レイヤに含まれるh個のノードのうちの対応するノードに与える。
続いて、S83において、判定部98は、入力データと結果データとの誤差値を算出する。さらに、判定部98は、算出した誤差値と、閾値記憶部96に記憶された判定閾値(d)とを比較する。
続いて、S84において、判定部98は、誤差値が判定閾値(d)より小さい場合、入力データと復元された結果データとが同一であることを示す判定結果を出力する。また、判定部98は、誤差値が判定閾値(d)以上の場合、入力データと復元された結果データとが同一ではないことを示す判定結果を出力する。なお、複数の入力データ(Z,…,Z)を取得した場合、判定部98は、複数の入力データのそれぞれに対する判定結果を出力してもよいし、複数の入力データのそれぞれに対する判定結果に基づき、複数の入力データが取得されたシステムに何らかの異常が発生したことを表す情報を出力してもよい。そして、判定部98は、判定結果を出力する。
以上のように、本実施形態に係る学習システム10は、n個の計算装置30に対して訓練データ、学習モデルのパラメータ群および入力データを秘匿化した状態、n個の計算装置30に対して学習処理のための計算および推論処理のための計算をさせることができる。従って、本実施形態に係る学習システム10は、n個の計算装置30のそれぞれに対して与えるデータ量を少なくし、n個の計算装置30のそれぞれにおける訓練時の計算量を少なくすることができる。
(ハードウェア構成)
図18は、計算装置30、モデル生成装置40および推論装置42のハードウェア構成の一例を示す図である。計算装置30は、例えば図18に示すようなハードウェア構成の情報処理装置により実現される。モデル生成装置40および推論装置42も、同様のハードウェア構成により実現される。情報処理装置は、CPU(Central Processing Unit)301と、RAM(Random Access Memory)302と、ROM(Read Only Memory)303と、操作入力装置304と、表示装置305と、記憶装置306と、通信装置307とを備える。そして、これらの各部は、バスにより接続される。なお、情報処理装置は、操作入力装置304および表示装置305を備えない構成であってもよい。
CPU301は、プログラムに従って演算処理および制御処理等を実行するプロセッサである。CPU301は、RAM302の所定領域を作業領域として、ROM303および記憶装置306等に記憶されたプログラムとの協働により各種処理を実行する。
RAM302は、SDRAM(Synchronous Dynamic Random Access Memory)等のメモリである。RAM302は、CPU301の作業領域として機能する。ROM303は、プログラムおよび各種情報を書き換え不可能に記憶するメモリである。
操作入力装置304は、マウスおよびキーボード等の入力デバイスである。操作入力装置304は、ユーザから操作入力された情報を指示信号として受け付け、指示信号をCPU301に出力する。
表示装置305は、LCD(Liquid Crystal Display)等の表示デバイスである。表示装置305は、CPU301からの表示信号に基づいて、各種情報を表示する。
記憶装置306は、フラッシュメモリ等の半導体による記憶媒体、または、磁気的若しくは光学的に記録可能な記憶媒体等にデータを書き込みおよび読み出しをする装置である。記憶装置306は、CPU301からの制御に応じて、記憶媒体にデータの書き込みおよび読み出しをする。通信装置307は、CPU301からの制御に応じて外部の機器とネットワークを介して通信する。
情報処理装置をモデル生成装置40として機能させるためのプログラムは、取得モジュールと、分割モジュールと、秘密分散モジュールと、シェア送信モジュールと、パラメータ受信モジュールと、パラメータ復元モジュールと、判定データ取得モジュールと、閾値算出モジュールと、モデル秘密分散モジュールと、モデル送信モジュールとを含む。このプログラムは、CPU301(プロセッサ)によりRAM302上に展開して実行されることにより、情報処理装置を、取得部50、分割部52、秘密分散部54、シェア送信部56、パラメータ受信部64、パラメータ復元部66、判定データ取得部68、閾値算出部70、モデル秘密分散部72およびモデル送信部74として機能させる。なお、これらの一部または全部がハードウェア回路で実現されてもよい。
情報処理装置を推論装置42として機能させるためのプログラムは、入力データ取得モジュールと、入力データ秘密分散モジュールと、分散入力データ送信モジュールと、結果受信モジュールと、結果復元モジュールと、判定モジュールとを含む。このプログラムは、CPU301(プロセッサ)によりRAM302上に展開して実行されることにより、情報処理装置を、入力データ取得部80、入力データ秘密分散部82、分散入力データ送信部84、結果受信部92、結果復元部94および判定部98として機能させる。なお、これらの一部または全部がハードウェア回路で実現されてもよい。また、このプログラムは、記憶装置306を閾値記憶部96として機能させる。
情報処理装置を計算装置30として機能させるためのプログラムは、シェア受信モジュールと、訓練モジュールと、パラメータ送信モジュールと、モデル受信モジュールと、分散入力データ受信モジュールと、推論モジュールと、結果送信モジュールとを含む。このプログラムは、CPU301(プロセッサ)によりRAM302上に展開して実行されることにより、情報処理装置を、シェア受信部58、訓練部60、パラメータ送信部62、モデル受信部76、分散入力データ受信部86、推論部88および結果送信部90として機能させる。なお、これらの一部または全部がハードウェア回路で実現されてもよい。また、このプログラムは、記憶装置306をモデル記憶部78として機能させる。
また、情報処理装置で実行されるプログラムは、コンピュータにインストール可能な形式または実行可能な形式のファイルで、CD-ROM、フレキシブルディスク、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、情報処理装置で実行されるプログラムを、ROM303等に予め組み込んで提供するように構成してもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
10 学習システム
20 管理装置
30 計算装置
40 モデル生成装置
42 推論装置
50 取得部
52 分割部
54 秘密分散部
56 シェア送信部
58 シェア受信部
60 訓練部
62 パラメータ送信部
64 パラメータ受信部
66 パラメータ復元部
68 判定データ取得部
70 閾値算出部
72 モデル秘密分散部
74 モデル送信部
76 モデル受信部
78 モデル記憶部
80 入力データ取得部
82 入力データ秘密分散部
84 分散入力データ送信部
86 分散入力データ受信部
88 推論部
90 結果送信部
92 結果受信部
94 結果復元部
96 閾値記憶部
98 判定部
100 第2モデル記憶部
102 第2推論部

Claims (12)

  1. 学習モデルを訓練する学習システムであって、
    モデル生成装置と、
    前記モデル生成装置とネットワークを介して接続されたn個(nは、3以上の整数)の計算装置と、
    を備え、
    前記モデル生成装置は、
    前記学習モデルを訓練するためのm×n個(mは、2以上の整数)の訓練データを取得する取得部と、
    前記m×n個の訓練データを、前記n個の計算装置に一対一に対応した、m個の訓練データを含むn個のグループに分割する分割部と、
    前記n個のグループのそれぞれについて秘密分散法における分散処理によりm個の分散訓練データを生成するものであって、前記n個のグループのうちのi番目(iは、1以上n以下の整数)のグループに含まれる前記m個の訓練データのそれぞれについて、n個の元(P1,P2,…,Pi,…,Pn)のうちのi番目の元(Pi)を用いて前記秘密分散法における分散処理により分散訓練データを生成する秘密分散部と、
    前記n個の計算装置のそれぞれに、対応する前記m個の分散訓練データを送信するシェア送信部と、
    を有し、
    前記n個の計算装置のそれぞれは、
    前記モデル生成装置から前記m個の分散訓練データを受信するシェア受信部と、
    受信した前記m個の分散訓練データにより、前記学習モデルと同一の構造の分散学習モデルを訓練する訓練部と、
    前記分散学習モデルにおける訓練後の分散パラメータ群を前記モデル生成装置に送信するパラメータ送信部と、
    を有し、
    前記モデル生成装置は、
    前記n個の計算装置のうちの、k1個(k1は、2以上、n-1以下の予め定められた整数)の計算装置のそれぞれから訓練後の前記分散パラメータ群を受信するパラメータ受信部と、
    前記k1個の計算装置のそれぞれから受信した前記分散パラメータ群に基づき、前記秘密分散法における復元処理により前記学習モデルのパラメータ群を生成するパラメータ復元部とをさらに有する
    学習システム。
  2. 前記パラメータ復元部は、
    前記k1個の計算装置のそれぞれ毎に、結果データを変数とし、訓練データを値とする式で表したモデル式の逆関数に、対応する前記分散パラメータ群を代入し、
    対応する前記分散パラメータ群を代入したk1個の逆関数を用いて、前記秘密分散法における復元処理により、前記学習モデルの逆関数を復元し、
    復元した前記学習モデルの逆関数に基づき、前記学習モデルの前記パラメータ群を生成する
    請求項1に記載の学習システム。
  3. 前記学習モデルは、入力されるデータと、出力するデータとが同一となるように訓練がされるモデルである
    請求項1または2に記載の学習システム。
  4. 前記モデル生成装置は、
    前記学習モデルに入力されるデータと前記学習モデルから出力されるデータとの誤差値を評価するためのc個(cは、2以上)の判定用データを取得する判定データ取得部と、
    前記秘密分散法における復元処理により生成された前記パラメータ群が設定された前記学習モデルに対して前記c個の判定用データを入力することにより、入力データと結果データとが同一であると判定するか同一ではないと判定するかの前記誤差値の境界を表す判定閾値を算出する閾値算出部と、
    をさらに有する請求項3に記載の学習システム。
  5. 前記学習モデルは、入力レイヤに含まれるノード数と、出力レイヤに含まれるノード数とが同一であり、隠れレイヤに含まれるノード数が前記入力レイヤおよび前記出力レイヤに含まれるノード数よりも少ない3レイヤ構造のニューラルネットワークである
    請求項4に記載の学習システム。
  6. 前記入力レイヤおよび前記出力レイヤのノード数は、h個(hは、3以上の整数)であり、
    前記m×n個の訓練データのそれぞれ、前記入力データおよび前記結果データのそれぞれは、h個のサブデータを含み、
    前記分散訓練データは、h個の分散サブデータを含み、
    前記モデル生成装置の前記秘密分散部は、前記i番目のグループに含まれる前記m個の訓練データのそれぞれに対して、前記h個のサブデータのそれぞれ毎に前記i番目の元(Pi)を用いて前記秘密分散法における分散処理により分散サブデータを生成し、
    前記n個の計算装置のそれぞれの前記訓練部は、前記分散学習モデルの前記入力レイヤに含まれるh個のノードのそれぞれに、前記h個の分散サブデータのうちの対応する1つの分散サブデータを与える
    請求項5に記載の学習システム。
  7. 前記秘密分散法は、Shamirのしきい値秘密分散法である
    請求項1から6の何れか1項に記載の学習システム。
  8. 推論装置をさらに備え、
    前記モデル生成装置は、
    復元された前記学習モデルの前記パラメータ群について、前記秘密分散法における分散処理によりn個のシェアパラメータ群を生成するモデル秘密分散部と、
    前記n個の計算装置のそれぞれに、前記n個のシェアパラメータ群のうち対応するシェアパラメータ群を送信するモデル送信部と、
    をさらに有し、
    前記n個の計算装置のそれぞれは、
    前記モデル生成装置から前記シェアパラメータ群を受信するモデル受信部と、
    をさらに有し、
    前記推論装置は、
    推論処理において、前記学習モデルにより推論させるための入力データについて、前記秘密分散法における分散処理によりn個の分散入力データを生成する入力データ秘密分散部と、
    前記n個の計算装置のそれぞれに、前記n個の分散入力データのうち対応する分散入力データを送信する分散入力データ送信部と、
    をさらに有し、
    前記n個の計算装置のそれぞれは、
    受信した前記シェアパラメータ群が設定された前記分散学習モデルと、受信した前記分散入力データとに基づき、前記学習モデルに前記入力データを与えて得られる結果データを前記秘密分散法における分散処理により分散したn個の分散結果データのうちの、対応する分散結果データを生成する推論部と、
    前記分散結果データを前記推論装置に送信する結果送信部と、
    をさらに有し、
    前記推論装置は、
    前記n個の計算装置のうちの、k2個(k2は、2以上、n-1以下の予め定められた整数)の前記計算装置のそれぞれから受信した前記分散結果データに基づき、前記秘密分散法における復元処理により前記結果データを生成する結果復元部をさらに有する
    請求項1から7の何れか1項に記載の学習システム。
  9. 推論装置をさらに備え、
    前記推論装置は、
    復元された前記学習モデルの前記パラメータ群が設定された前記学習モデルと、前記学習モデルにより推論させるための入力データとに基づき、前記学習モデルに前記入力データを与えて得られる結果データを生成する第2推論部を有する
    請求項1から7の何れか1項に記載の学習システム。
  10. ネットワークを介してn個(nは、3以上の整数)の計算装置と接続されたモデル生成装置であって、
    前記モデル生成装置は、
    学習モデルを訓練するためのm×n個(mは、2以上の整数)の訓練データを取得する取得部と、
    前記m×n個の訓練データを、前記n個の計算装置に一対一に対応した、m個の訓練データを含むn個のグループに分割する分割部と、
    前記n個のグループのそれぞれについて秘密分散法における分散処理によりm個の分散訓練データを生成するものであって、前記n個のグループのうちのi番目(iは、1以上n以下の整数)のグループに含まれる前記m個の訓練データのそれぞれについて、n個の元(P1,P2,…,Pi,…,Pn)のうちのi番目の元(Pi)を用いて前記秘密分散法における分散処理により分散訓練データを生成する秘密分散部と、
    前記n個の計算装置のそれぞれに、対応する前記m個の分散訓練データを送信するシェア送信部と、
    を有し、
    前記n個の計算装置のそれぞれは、
    前記モデル生成装置から前記m個の分散訓練データを受信するシェア受信部と、
    受信した前記m個の分散訓練データにより、前記学習モデルと同一の構造の分散学習モデルを訓練する訓練部と、
    前記分散学習モデルにおける訓練後の分散パラメータ群を前記モデル生成装置に送信するパラメータ送信部と、
    を有し、
    前記モデル生成装置は、
    前記n個の計算装置のうちの、k1個(k1は、2以上、n-1以下の予め定められた整数)の計算装置のそれぞれから訓練後の前記分散パラメータ群を受信するパラメータ受信部と、
    前記k1個の計算装置のそれぞれから受信した前記分散パラメータ群に基づき、前記秘密分散法における復元処理により前記学習モデルのパラメータ群を生成するパラメータ復元部とをさらに有する
    モデル生成装置。
  11. モデル生成装置とネットワークを介して接続されたn個(nは、3以上の整数)の計算装置とにより、学習モデルを訓練する学習方法であって、
    前記モデル生成装置が、前記学習モデルを訓練するためのm×n個(mは、2以上の整数)の訓練データを取得し、
    前記モデル生成装置が、前記m×n個の訓練データを、前記n個の計算装置に一対一に対応した、m個の訓練データを含むn個のグループに分割し、
    前記モデル生成装置が、前記n個のグループのそれぞれについて秘密分散法における分散処理によりm個の分散訓練データを生成するものであって、前記n個のグループのうちのi番目(iは、1以上n以下の整数)のグループに含まれる前記m個の訓練データのそれぞれについて、n個の元(P1,P2,…,Pi,…,Pn)のうちのi番目の元(Pi)を用いて前記秘密分散法における分散処理により分散訓練データを生成し、
    前記モデル生成装置が、前記n個の計算装置のそれぞれに、対応する前記m個の分散訓練データを送信し、
    前記n個の計算装置のそれぞれが、前記モデル生成装置から前記m個の分散訓練データを受信し、
    前記n個の計算装置のそれぞれが、受信した前記m個の分散訓練データにより、前記学習モデルと同一の構造の分散学習モデルを訓練し、
    前記n個の計算装置のそれぞれが、前記分散学習モデルにおける訓練後の分散パラメータ群を前記モデル生成装置に送信し、
    前記モデル生成装置が、前記n個の計算装置のうちの、k1個(k1は、2以上、n-1以下の予め定められた整数)の計算装置のそれぞれから訓練後の前記分散パラメータ群を受信し、
    前記モデル生成装置が、前記k1個の計算装置のそれぞれから受信した前記分散パラメータ群に基づき、前記秘密分散法における復元処理により前記学習モデルのパラメータ群を生成する
    学習方法。
  12. ネットワークを介してn個(nは、3以上の整数)の計算装置と接続されたモデル生成装置として、情報処理装置を機能させるためのプログラムであって、
    前記情報処理装置を、
    学習モデルを訓練するためのm×n個(mは、2以上の整数)の訓練データを取得する取得部と、
    前記m×n個の訓練データを、前記n個の計算装置に一対一に対応した、m個の訓練データを含むn個のグループに分割する分割部と、
    前記n個のグループのそれぞれについて秘密分散法における分散処理によりm個の分散訓練データを生成するものであって、前記n個のグループのうちのi番目(iは、1以上n以下の整数)のグループに含まれる前記m個の訓練データのそれぞれについて、n個の元(P1,P2,…,Pi,…,Pn)のうちのi番目の元(Pi)を用いて前記秘密分散法における分散処理により分散訓練データを生成する秘密分散部と、
    前記n個の計算装置のそれぞれに、対応する前記m個の分散訓練データを送信するシェア送信部と、
    して機能させ、
    前記n個の計算装置のそれぞれは、
    前記モデル生成装置から前記m個の分散訓練データを受信するシェア受信部と、
    受信した前記m個の分散訓練データにより、前記学習モデルと同一の構造の分散学習モデルを訓練する訓練部と、
    前記分散学習モデルにおける訓練後の分散パラメータ群を前記モデル生成装置に送信するパラメータ送信部と、
    を有し、
    前記情報処理装置を、
    前記n個の計算装置のうちの、k1個(k1は、2以上、n-1以下の予め定められた整数)の計算装置のそれぞれから訓練後の前記分散パラメータ群を受信するパラメータ受信部と、
    前記k1個の計算装置のそれぞれから受信した前記分散パラメータ群に基づき、前記秘密分散法における復元処理により前記学習モデルのパラメータ群を生成するパラメータ復元部
    としてさらに機能させるプログラム。
JP2020113824A 2020-07-01 2020-07-01 学習システム、情報処理装置、学習方法およびプログラム Active JP7414655B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020113824A JP7414655B2 (ja) 2020-07-01 2020-07-01 学習システム、情報処理装置、学習方法およびプログラム
US17/180,707 US20220004815A1 (en) 2020-07-01 2021-02-19 Learning system, learning method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020113824A JP7414655B2 (ja) 2020-07-01 2020-07-01 学習システム、情報処理装置、学習方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2022012178A true JP2022012178A (ja) 2022-01-17
JP7414655B2 JP7414655B2 (ja) 2024-01-16

Family

ID=79167530

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020113824A Active JP7414655B2 (ja) 2020-07-01 2020-07-01 学習システム、情報処理装置、学習方法およびプログラム

Country Status (2)

Country Link
US (1) US20220004815A1 (ja)
JP (1) JP7414655B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024057388A1 (ja) * 2022-09-13 2024-03-21 日本電気株式会社 統合システム、組織サーバ、統合方法、分析方法、および記録媒体
WO2024069957A1 (ja) * 2022-09-30 2024-04-04 日本電気株式会社 学習装置、学習システム、学習方法、およびコンピュータ可読媒体

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114611143A (zh) * 2022-03-11 2022-06-10 上海熵熵微电子科技有限公司 一种数据的脱密共享方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04149663A (ja) * 1990-10-09 1992-05-22 Fujitsu Ltd 逆モデル生成方法および該方法による制御システム
JP2008250856A (ja) * 2007-03-30 2008-10-16 Sony Corp 学習装置、学習方法、及びプログラム
JP2017207839A (ja) * 2016-05-17 2017-11-24 日本電信電話株式会社 ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム
JP2018206016A (ja) * 2017-06-02 2018-12-27 株式会社日立製作所 機械学習システム及び機械学習方法
JP2019179400A (ja) * 2018-03-30 2019-10-17 エヌ・ティ・ティ・コミュニケーションズ株式会社 監視装置、監視方法および監視プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11461690B2 (en) 2016-07-18 2022-10-04 Nantomics, Llc Distributed machine learning systems, apparatus, and methods
CN110955915B (zh) 2019-12-14 2022-03-25 支付宝(杭州)信息技术有限公司 一种隐私数据的处理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04149663A (ja) * 1990-10-09 1992-05-22 Fujitsu Ltd 逆モデル生成方法および該方法による制御システム
JP2008250856A (ja) * 2007-03-30 2008-10-16 Sony Corp 学習装置、学習方法、及びプログラム
JP2017207839A (ja) * 2016-05-17 2017-11-24 日本電信電話株式会社 ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム
JP2018206016A (ja) * 2017-06-02 2018-12-27 株式会社日立製作所 機械学習システム及び機械学習方法
JP2019179400A (ja) * 2018-03-30 2019-10-17 エヌ・ティ・ティ・コミュニケーションズ株式会社 監視装置、監視方法および監視プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024057388A1 (ja) * 2022-09-13 2024-03-21 日本電気株式会社 統合システム、組織サーバ、統合方法、分析方法、および記録媒体
WO2024069957A1 (ja) * 2022-09-30 2024-04-04 日本電気株式会社 学習装置、学習システム、学習方法、およびコンピュータ可読媒体

Also Published As

Publication number Publication date
JP7414655B2 (ja) 2024-01-16
US20220004815A1 (en) 2022-01-06

Similar Documents

Publication Publication Date Title
US11902413B2 (en) Secure machine learning analytics using homomorphic encryption
JP2022012178A (ja) 学習システム、モデル生成装置、学習方法およびプログラム
CN110032878B (zh) 一种安全的特征工程方法和装置
EP3506550A1 (en) Providing security against user collusion in data analytics using random group selection
US20210357800A1 (en) Distributed decentralized machine learning model training
CN110427969B (zh) 数据处理方法、装置和电子设备
US20230214684A1 (en) Privacy preserving machine learning using secure multi-party computation
JPWO2012046692A1 (ja) 秘密分散システム、秘密分散装置、秘密分散方法、秘密ソート方法、秘密分散プログラム
CN110610093A (zh) 在参数数据集中进行分布式训练
JP2021515271A (ja) コンピュータにより実施される投票処理およびシステム
JP6556659B2 (ja) ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム
JP5860557B1 (ja) 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
CN113221153B (zh) 图神经网络训练方法、装置、计算设备及存储介质
JP7361928B2 (ja) 勾配ブースティングを介したプライバシーを守る機械学習
CN108028751B (zh) 用于移动主动秘密共享的系统、计算机可读介质和方法
EP4016506B1 (en) Softmax function secret calculation system, softmax function secret calculation device, softmax function secret calculation method, neural network secret calculation system, neural network secret learning system, and program
García-Hernández et al. Multi-objective configuration of a secured distributed cloud data storage
Sanon et al. Fully Homomorphic Encryption: Precision Loss in Wireless Mobile Communication
Chao et al. Priority visual secret sharing of random grids for threshold access structures
Farhadi Stability of linear dynamic systems over the packet erasure channel: a co-design approach
Awan et al. Privacy-Preserving Big Data Security for IoT With Federated Learning and Cryptography
WO2023188259A1 (ja) 秘密グローバルモデル計算装置、秘密グローバルモデル計算システム構成方法、プログラム
Bedi et al. Trust-based access control for collaborative systems
WO2023243141A1 (ja) 連合学習システム及び連合学習方法
JP2017129913A (ja) 秘匿決定木計算システム、装置、方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231020

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231228

R151 Written notification of patent or utility model registration

Ref document number: 7414655

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151