JP6921233B2 - 秘密分散を使用したロジスティック回帰モデリング方式 - Google Patents

秘密分散を使用したロジスティック回帰モデリング方式 Download PDF

Info

Publication number
JP6921233B2
JP6921233B2 JP2019559292A JP2019559292A JP6921233B2 JP 6921233 B2 JP6921233 B2 JP 6921233B2 JP 2019559292 A JP2019559292 A JP 2019559292A JP 2019559292 A JP2019559292 A JP 2019559292A JP 6921233 B2 JP6921233 B2 JP 6921233B2
Authority
JP
Japan
Prior art keywords
scn
slrm
data
sample
share
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.)
Active
Application number
JP2019559292A
Other languages
English (en)
Other versions
JP2020525814A (ja
Inventor
ホアジョン・ワン
リチュン・リ
シャン・イン
Original Assignee
アドバンスド ニュー テクノロジーズ カンパニー リミテッド
アドバンスド ニュー テクノロジーズ カンパニー リミテッド
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 アドバンスド ニュー テクノロジーズ カンパニー リミテッド, アドバンスド ニュー テクノロジーズ カンパニー リミテッド filed Critical アドバンスド ニュー テクノロジーズ カンパニー リミテッド
Publication of JP2020525814A publication Critical patent/JP2020525814A/ja
Application granted granted Critical
Publication of JP6921233B2 publication Critical patent/JP6921233B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、秘密分散を使用したロジスティック回帰モデリング方式に関する。
機械学習は、統計モデルを使用して洞察を引き出し、予測を行うデータサイエンスのサブセットである。データ交換および連携を円滑にするために、様々な関係者が協力して機械学習モデルを確立し得る。従来の機械学習プロジェクトは、複数の関係者から取得されたトレーニングデータを1か所に集約する。次いで、機械学習プロセスのトレーニングフェーズで、集約されたデータに基づいて機械学習ツールを使用してトレーニングモデルが構築され、したがって、モデルを一様にトレーニングできるようになる。トレーニングデータは、任意の参加当事者によって、またはすべての参加当事者によって信頼され選択された第三者で集約され得る。
本明細書では、秘密分散技法を使用した、マルチパーティのセキュアなロジスティック回帰モデル(SLRM)のトレーニングについて説明する。
一般に、本明細書において説明する主題の発明的態様は、秘密分散(SS)を使用して、セキュアなロジスティック回帰モデル(SLRM)のサンプルトレーニングデータを複数のシェアに分割することであり、各シェアが、セキュアな計算ノード(SCN)に配布される、分割することと、サンプルトレーニングデータの各シェアを使用して、SLRMに関連付けられたパラメータを反復して更新することであり、反復更新が、あらかじめ定められた条件が出現するまで続く、更新することと、SLRMに関連付けられたパラメータを反復して更新した後、各SCNによって使用するように構成されたトレーニング結果を出力することとのアクションを含む方法で実現することができる。本態様の他の実施形態は、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイスに記録されたコンピュータプログラムを含み、各々方法のアクションを実行するように構成されている。
上記および他の実施形態は各々、以下の特徴のうちの1つまたは複数を、単独でまたは組み合わせて、随意に含むことができる。特に、一実装形態は、以下の特徴をすべて組み合わせて含む。
本明細書は、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、本明細書で提供される方法の実装形態に従って動作を実行させる命令を記憶する1つまたは複数の非一時的コンピュータ可読記憶媒体も提供する。
本明細書は、本明細書で提供される方法を実施するためのシステムをさらに提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、本明細書で提供される方法の実装形態に従って動作を実行させる命令を記憶する1つまたは複数のプロセッサに結合されたコンピュータ可読記憶媒体とを含む。
本明細書による方法は、本明細書で説明される態様および特徴の任意の組合せを含み得ることが諒解される。すなわち、本明細書による方法は、本明細書で具体的に説明した態様および特徴の組合せに限定されず、提供される態様および特徴の任意の組合せも含む。
本明細書の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載されている。本明細書の他の特徴および利点は、説明および図面、ならびに特許請求の範囲から明らかになるであろう。
本明細書の実装形態による、秘密分散を使用してマルチパーティ機械学習のセキュアなロジスティック回帰モデル(SLRM)をトレーニングするための環境の一例を示す図である。 本明細書の実装形態による、SLRMのパラメータを反復して更新するためのサブプロセスの一例を示す図である。 本明細書の実装形態による、SLRMのパラメータを反復して更新するためのサブプロセスの一例を示す図である。 本明細書の実装形態による、SLRMのパラメータを反復して更新するためのサブプロセスの一例を示す図である。 本明細書の実装形態による、SLRMのパラメータを反復して更新するためのサブプロセスの一例を示す図である。 本明細書の実装形態による、SLRMのパラメータを反復して更新するためのサブプロセスの一例を示す図である。 本明細書の実装形態による、SLRMのパラメータの更新の反復を終了するかどうかを決定するプロセスの一例を示す図である。 本明細書の実装形態による、イベント駆動型の対話式のセキュアなモデリング手順を使用して、マルチパーティSLRMをトレーニングするためのプロセスの一例を示す図である。 本明細書の実装形態に従って実行することができるプロセスの一例を示す図である。 本明細書の実装形態に従って実行することができるプロセスの一例を示す図である。 本明細書の実装形態による装置のモジュールを示す図の一例を示す図である。
様々な図面における同様の参照番号および名称は、同様の要素を示す。
以下の詳細な説明は、秘密分散に基づくセキュアなロジスティック回帰モデル(SLRM)のトレーニングについて説明し、当業者が1つまたは複数の特定の実装形態のコンテキストで開示された主題を製作および使用できるように提示される。開示された実装形態の様々な修正、変更、および置換を行うことができ、当業者には容易に明らかであり、定義された一般原理は、本明細書の範囲から逸脱することなく、他の実装および用途に適用され得る。いくつかの事例では、不必要な詳細で1つまたは複数の説明された実装形態を不明瞭にしないように、また、そのような詳細が当業者の技術の範囲内である限り、説明された主題の理解を得るために不必要な詳細は省略されてもよい。本明細書は、説明または図示された実装形態に限定されるものではなく、説明された原理および特徴と一致する最も広い範囲を与えられるものとする。
ロジスティック回帰は、一般化された線形回帰であり、分類および予測アルゴリズムの一種である。ロジスティック回帰アルゴリズムは、一連の既知の従属変数から離散値を推定し、データを論理関数に適合させることによって、イベントの発生の確率を推定する。ロジスティック回帰は、分類(たとえば、スパムメールの分類など)、信用リスクの計算、および他の用途に使用することができる。
消費者の習慣、マーケティングキャンペーンのターゲット、および他の用途の理解を提供するために、消費者に関する情報を含む大きいデータセットを活用することができる。一部の組織は、セキュアなデータトレーニングモデルを構築し、組織間のデータ交換を円滑にするために、連携的なデータラボを確立している。データ連携プロセス中に、様々な参加組織から取得されたデータに基づいて機械学習モデルが構築される。
消費者データの共有に関連するプライバシーの問題に対処するために、連携する組織は、様々な方法を使用して、モデルのトレーニング中にプライベートの消費者データが他の連携する組織に公開されないようにする。たとえば、準同型暗号化技法を使用して、消費者データを暗号化することができる。暗号化は準同型であるので、モデルトレーニングは、復号されると、トレーニングから取得されるトレーニング結果を、暗号化されていないトレーニングデータと照合する暗号化された結果を生成する。モデルトレーニングの出力結果は、参加当事者に返され、したがって、参加当事者は、最終結果を復号し、取得することができるようになる。
現在のデータ連携技術には様々な問題がある。たとえば、現在の手法では、各当事者は、それ自体の(おそらく機密性の高い)データを他の当事者に公開する必要があり、データ漏洩のリスクが生じる。さらに、多くのデータラボでは、クラウドコンピューティング、マルチテナント分離(multi-tenant separation)、データ減感(data desensitization)、データ監査、およびデータプライバシーを確保するための他の技法などの技法を実装しているが、当事者は、データが安全に保たれているという保証は依然としてない。したがって、データを集約し、集約されたデータを処理するために参加当事者または中立の第三者を選択することは、当事者間の信頼の欠如により困難な場合がある。さらに、データ連携の一般に認められた標準またはガイドラインがないので、各当事者は、各自の標準を開発する必要があり、これには時間および費用がかかる場合がある。さらに、準同型暗号化または差分プライバシーに基づく機械学習方式は、計算効率が悪いので、大量の処理能力が必要になる可能性があり、コストの増加につながり得る。さらに、従来のモデリングツールおよびプロセスは、強力ではあるが、モデラを求めており、トレーニングモデルを構築するためにかなりの時間および労力を必要とする。
本明細書の実装形態は、秘密分散およびイベント駆動型の対話式のセキュアなモデリング手順を使用することによるSLRMのトレーニングの新しい手法を紹介する。記載される実装形態は、両方の当事者から受信されたトレーニングデータを供給することによって、SLRMを反復して更新することができる技法について記載している。
SLRMは、トレーニングデータをモデルに提供することによってトレーニングされる。トレーニングデータのソースは、独立したセキュアな計算ノード(SCN)であり、各SCNは、秘密分散方式を使用して、そのトレーニングデータを他のノードから秘密に保つ。前述のように、トレーニングデータは、異なるエンティティによって制御される異なるSCNから提供される可能性があるので、SCN間で共有するためのトレーニングデータをセキュアにすることが重要になり、そのため、トレーニングデータ内のいかなる機密情報も、トレーニングデータを提供するエンティティ以外のエンティティに明らかにされない。具体的には、そのような連携を強化するために、記載される技法は、各SCNがそのプライベートトレーニングデータを他のSCNから保護できるようにするために、乱数を導入する。
さらに、SCN間のトレーニングデータの共有は、イベント駆動型の統合的なセキュアなモデリング手順によって制御することができる。いくつかの実装形態では、イベント駆動型の対話式のセキュアなモデリング手順は、イベント駆動型モデル(または、いわゆる「パブリッシュ/サブスクライブ」モデル)に基づく。このモデルは、それ自体のタスクを完了するために相互に依存する当事者を分離することができる。このモデルを使用することによって、両方の当事者は、それ自体のサービスプロセスに焦点を当てることができる。一方の当事者(「パブリッシャ」)は、そのサービスプロセスが完了すると通知を送信する。他方の当事者(「サブスクライバ」)は、通知を監視し、通知が受信されると、それに応じて、そのサービスプロセスをトリガすることができる。トレーニングプロセス中、各SCNは、メッセージキューを維持して、他方の当事者からデータを受信し、それに応答して、SLRMを実行するために、対応するモデリングステップをトリガする。
記載される技法には、様々な用途があり得る。たとえば、この技法は、金融機関、金融機関と政府機関、または他の組織間のデータ連携に適用することができる。
いくつかの実装形態では、開示されたフレームワークは、SLRMおよび秘密分散方式を使用する。秘密分散方式は、マルチパーティの連携を伴うシナリオで使用される暗号化の一種である。秘密分散方式では、秘密(たとえば、暗号化キーまたはデータセット)は、あらかじめ定められた方法でいくつかの異なるシェアに分割され、各シェアは、異なる参加当事者に提供される。単一の参加当事者によって秘密を回復または復元することはできず、このようにして、秘密の機密およびセキュリティが確実にされる。本明細書では、SLRMによって使用されるトレーニングを保護するために使用されるアルゴリズムは、秘密分散に限定されない。準同型暗号化と比較して、秘密分散を使用することによって、全体的な計算効率が大幅に向上する。さらに、生のトレーニングデータは変換されないので、トレーニングプロセスは、生のトレーニングデータに基づく正確な計算であり、トレーニングの出力モデル結果は、生のトレーニングデータに基づく正確にトレーニングされたモデルである。
いくつかの実装形態では、分散モデルトレーニングフレームワークが実装され、フレームワークは、独立した第三者の乱数サービスを導入する。これらの実装形態では、任意の生データがトレーニングモデルに入力される前に、第三者の乱数サービスによって生成され、配布された乱数とともに計算プロセスが行われる。そのような実装形態では、分散モデルの効率を向上させるために、イベント駆動型の対話式のセキュアな手順がさらに採用されている。このようにして、生データの情報漏洩を防ぐことができ、モデリング結果の整合性およびモデルの精度が保証される。
図1は、本明細書の実装形態による、秘密分散を使用してマルチパーティ機械学習のセキュアなロジスティック回帰モデル(SLRM)をトレーニングするための環境100の一例を示す。データ連携サービスは、組織にデータ連携のためのプラットフォーム/環境を提供する1つまたは複数のサーバによって実行することができる。例示的な環境100は、ユーザ102、セキュリティ管理エージェント104、ノード管理エージェント106、乱数プロバイダ108、ネットワーク110、ならびに少なくとも2つのセキュアな計算ノード(SCN)SCN A112およびSCN B114を含む。例示的な環境100は、追加のユーザ、セキュアな計算ノードコンピュータ、ネットワーク、システム、または他のコンポーネントを含み得る。環境100は、いくつかの実装形態では別の方法で構成することができる。
いくつかの実装形態では、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはこれらもしくは他のネットワークの組合せを含む。ネットワーク110は、ワイヤレスネットワークまたはワイヤラインネットワークのうちの1つまたは複数を含むことができる。ネットワーク110は、コンピューティングデバイス(たとえば、サーバ104〜108)とセキュアな計算ノード(たとえば、SCN112、114)とを接続する。いくつかの実装形態では、ネットワーク110は、ワイヤードおよび/またはワイヤレス通信リンクを介してアクセスできる。
いくつかの場合には、トレーニングプロセスの開始前に、ユーザ102は、SLRMに関連付けられた様々なパラメータおよび設定をあらかじめ決定することができる。これらのパラメータには、たとえば、トレーニングデータのサイズ、トレーニングデータの特徴、および対応するデータ処理設定、またはモデルのハイパーパラメータ(すなわち、事前分布のパラメータ)があり得る。モデル設定を初期化した後、モデルに関連付けられた情報がセキュリティ管理エージェント104に送信され、その後、特定のモデリングロジックを完了するために、SCNと協調させることができる。
いくつかの実装形態では、セキュリティ管理エージェント104およびノード管理エージェント106は、モデリングプロセス、ならびにプロセスに参加するSCN(たとえば112、114)を管理し、制御するための単一のコンポーネントとして統合することができる。セキュリティ管理エージェント104およびノード管理エージェント106は、図1に示されるように、別個のコンポーネントであってもよい。
いくつかの実装形態では、セキュリティ管理エージェント104は、トレーニングモデルの構成、モデリング、反復計算、およびプロセス管理を含むSLRMのトレーニングを管理するように構成され得る。具体的には、セキュリティ管理エージェント104は、たとえば各反復サイクルの初期化、およびいくつかの反復円の後にトレーニングモデルが収束されるかどうかの決定を含む、SCN112、114によって共同で実行されるモデリングプロセスを促進することができる。加えて、セキュリティ管理エージェント104は、各SCNから特定のデータ構造およびトレーニングデータに関連付けられた他の情報を取得することもできる。たとえば、トレーニングデータのソース、トレーニングデータの特徴(たとえば、各トレーニングデータセットの行および列の数)などの情報を取得する。
いくつかの実装形態では、ノード管理エージェント106は、ノード選択、ノード管理、プロジェクトデータ管理などを実行するように構成することができる。たとえば、セキュリティ管理エージェント104がSCN A112およびSCN B114からモデリング要求を受信し、SCN AおよびBの対応するデータ情報を収集すると、ノード管理エージェント106は、セキュリティ管理エージェント104を介して、連携する必要がある他のSCNの識別情報、追加のトレーニングデータを取得する場所を各SCNに通知し、トレーニングプロセスに参加する各SCNに対応するパラメータを配布することができる。さらに、ノード管理エージェント106は、SCN AおよびBに、乱数プロバイダ108の位置も通知する。
示した例では、SCN A112およびSCN B114は、相互のデータ交換またはデータ連携を促進しようとする別個のユーザに関するデータセットを所有する別個の組織によって動作され得る。たとえば、SCN A112およびSCN B114を動作させる組織は、トレーニングデータセットP0およびP1をそれぞれ所有し得、P0とP1の両方が機械学習モデルへの入力である。トレーニングモデルの出力結果は、たとえば、SCN A112またはSCN B114の顧客にローンを発行するリスクの予測など、たとえば、あるサービスを実行するために、SCN A112とSCN B114の両方によって使用することができる予測結果とすることができる。SCN A112およびB114は、セキュリティ管理エージェント104からモデルパラメータおよび設定を受信した後、互いにネットワーク通信を介してモデリングタスクを完了する必要がある。セキュリティ上の目的で、特に、各SCNが所有するトレーニングデータが非常に機密性の高いプライバシデータである場合、SCN A112およびB114は互いにトレーニングデータの一部を隠す、または難読化することができる。トレーニングデータを難読化するために、SCN A112およびB114は、乱数プロバイダ108に乱数を要求し、各自のトレーニングデータ、および受信された乱数を使用して、計算を実行することができる(たとえば、乱数およびデータの一部の加算または乗算)。乱数を使用して、トレーニングデータのデータの難読化または暗号化を提供することができる。いくつかの場合には、非常に機密性の高いプライバシデータ(たとえば、ユーザの個人情報など)を含むトレーニングデータの一部のみを難読化または暗号化することができ、それによって、他方の当事者は、データの機密性の低い部分をトレーニングに使用することができ、機密性の高いプライバシデータにアクセスすることはできない。RSA、DES/TripleDES、および他のよく知られている暗号化方式など、任意の適切な暗号化方式を使用することができる。いくつかの実装形態では、乱数は、数字、ベクトル、または行列などとすることができる。いくつかの実装形態では、乱数は、SCN112、114のいずれかによって生成することができる。いくつかの実装形態では、共有およびトレーニング中に他のSCNによってプライベートデータが決して暴露されないようにするために、独立した第三者によって乱数を提供することができる。いくつかの実装形態では、乱数プロバイダ108、セキュリティ管理エージェント104、およびノード管理エージェント106に関連するサービスは、相互に選択された信頼できる第三者エージェントによって提供され、実行され得る。
SCNごとに、乱数を使用してデータが暗号化された後、暗号化されたデータを他のSCNに送信することができる。SCN112、114の間で送信されるデータは暗号化されているため、データの機密情報は公開されない。いくつかの実装形態では、SCN AおよびB 112、114からの計算結果は、機械学習モデルのトレーニングに使用される。具体的には、各SCNは、SLRMの基になっているロジスティック回帰関数のパラメータを反復して更新するために、受信された暗号化データをSLRMへの入力として使用する。いくつかの反復の後、トレーニングは、あらかじめ定められた条件に基づいて終了され得る。いくつかの実装形態では、ローカルデータ管理は、各SCN112、114によって実行され、データベース、オブジェクトストア、インメモリデータストア(たとえばRedisなど)、または他のタイプのストレージへのデータの記憶を含み得る。
図2Aは、本明細書の実装形態による、SLRMのパラメータを反復して更新するためのサブプロセス200aの一例を示す。
図示された例では、SLRMの目的関数を最適化するために、ミニバッチ確率勾配降下(SGD)法が使用されている。SGDは、勾配降下最適化の確率近似に基づいて、微分可能な目的関数を最適化するための反復法である。本明細書では、目的関数を最適化するために、SGD法は次の反復を実行することになる。
Figure 0006921233
式中、mは、ミニバッチSGDのサンプルサイズを表す。この例では、Xは、m*kサンプル行列である。行列Xの各行は、サンプルを表し、Xiは、行列Xのi番目の行を表し、[j]は、ベクトルXiのj番目の要素を表す。θは、パラメータ列ベクトルを表す。Yiは、ミニバッチサンプルのi番目のサンプルのラベルを表し、ここでは、Yiは、0または1とすることができる。αおよびλは、機械学習ネットワーク構造、およびネットワークがどのようにトレーニングされるかを決定するハイパーパラメータである。それらは、トレーニングの前に、ユーザによって設定することができる。
この図示の例では、秘密分散を使用することによって、式(1)で使用されるすべてのサンプルトレーニングデータセットが2つのシェアに分割される。すなわち、SLRMのサンプルトレーニングデータは、SCN P0およびSCN P1の2つのソースから取得される。具体的には、サンプルデータ行列Xは、XLおよびXRに分割され、そのため、サンプルデータXLは、SCN P0に属し、XRはSCN P1に属する。SCN P0およびSCN P1のサンプルデータは、それぞれ特徴k0およびk1、ならびにk=k0+k1を有すると仮定する。サンプルデータセットXiの場合、SCN P0は、Xi,[1],Xi,[2], ...Xi,[k0]と表されるXi,の要素を含み、SCN P1は、Xi,[k0+1],Xi,[k0+2], ...Xi,[k]と表されるXi,の要素を含む。同様に、パラメータ列ベクトルθは、θLおよびθRに分割することもできる。したがって、これらの再定義されたパラメータを使用して、垂直データ分割下で、式(1)を次のように表すことができる。
Figure 0006921233
式中、XおよびYは、保護されるべき入力データである。Xは、特徴データを表し、Yは、特徴データに基づいて行われた予測を表す。たとえば、ローン借入のシナリオでは、Xは、収入、教育史、信用履歴などとすることができる。情報に基づいて、銀行は、予測Yを行うことができ、これは、ローンの借り手のリスクが、ローンを発行するのに十分に低いかどうかである。θは、保護する必要がある暫定結果であり、トレーニングプロセスが終了した後、θは、トレーニング結果の最終出力でもある。式(2)に列挙されている他のパラメータは、日常的に使用されるよく知られているパラメータである。
SLRMで使用される安全なロジスティック回帰トレーニングアルゴリズムは、2次正則化を有するミニバッチSGDに基づき、2パーティABYセキュア計算フレームワーク(two-party ABY secured computation framework)の数学回路(mathematic circuit)(A)およびGabled Circuit(Yao)を適用する。数学回路(A)は、乗算トリプルおよび秘密分散に基づいており、加算、減算、乗算の計算に使用できるので、アルゴリズムで使用される多項式、ドット積、および行列乗算を計算することができる。一方、Gabled Circuit(Yao)を使用して、他のタイプの計算を実行することができる。この計算フレームワークでは、各SCNは、セキュアな計算のために秘密分散を使用する。各計算ステップの後、中間計算結果が生成され、シェア(等しくても等しくなくてもよい)に分割され、各SCNは、中間計算結果の1つのシェアを取得する。各ステップの後、両方のSCNは、取得されたシェアを使用して次のステップに入り、最終的に、反復の終了時に、最後に生成されたシェアを結合する。
反復ループが開始される前に、モデルの更新に使用されるすべてのパラメータが最初に初期化される。初期化プロセス中、両方のSCNは、初期化されたパラメータ列ベクトルθのシェアとしてランダムな列ベクトルを生成し、ここで、dim(θ)=(k0+k1+1,1)、dim(θL)=(k0+1,1)、dim(θR)=(k1,1)である。初期化されたパラメータ列ベクトルθは、そのシェアによって次のように表すことができる。
θL=<θL>0+<θL>1
式3
θR=<θR>0+<θR>1
式4
ここで、<>は、シェアを表し、[i]は、ベクトルのi番目の要素を表す(すなわち、θ[i]=<θ[i]>0+<θ[i]>1)。したがって、SCN P0で生成されたランダム列ベクトルは、次の式で表すことができる。
<θ>0=(<θ[1]>0,<θ[2]>0,<θ[3]>0,…<θ[k]>0) 式5
各サンプルデータセットは垂直に分割されるので、次の2つの列ベクトルによってさらに分割することができる。
L>0=(<θL[1]>0,<θL[2]>0,<θL[3]>0,…<θL[k0]>0) 式6
R>0=(<θR[1]>0,<θR[2]>0,<θR[3]>0,…<θR[k1]>0) 式7
式中、<θ>0=<θL>0||<θR>0であり、||は、接続関係を表す。
同様に、SCN P1で生成されたランダム列ベクトルは、次の式で表すことができる。
=(<θ[1]>1,<θ[2]>1,<θ[3]>1,…<θ[k]>1)
式8
各サンプルデータセットは垂直に分割されるので、次の2つの列ベクトルによってさらに分割することができる。
L>1=(<θL[1]>1,<θL[2]>1,<θL[3]>1,…<θL[k0]>1) 式9
R>1=(<θR[1]>1,<θR[2]>1,<θR[3]>1,…<θR[k1]>1) 式10
式中、<θ>1=<θL>1||<θR>1であり、||は、接続関係を表す。
反復のプロセスは、図2〜図6に示されている。前に説明したように、反復の目的は、式(2)に示すパラメータθを更新することである。
図2Aは、1回の反復中の反復円の第1のステップ(ここでは「ステップ1」)の第1のサブステップ(ここでは「ステップ1.1」)を示す。ステップ1で、各SCNは、最初に、次の式に基づいてAのシェアを計算する。
A=Xθ=XLθL+XRθR
式11
式中、Aは、ミニバッチサンプルベクトルXにパラメータθの列ベクトルを掛けたものを使用して計算される。
いくつかの実装形態では、XLおよびXRは、反復円のステップ3でのパラメータを更新するためにも使用される。いくつかの実装形態では、同じミニバッチサンプルデータを、後の反復で計算するために使用することができる。
図2A(ステップ1.1)は、乗算トリプルおよび秘密分散を使用した=XLθLの値の計算を示す。図2Aに示すように、SCN P0は、元のデータを提供する当事者である。元のデータを隠すために、SCN P0およびSCN P1は、最初に乱数を取得する。いくつかの実装形態では、乱数は、数字、ベクトル、または行列とすることができる。いくつかの実装形態では、乱数は、SCNによって生成することができる。いくつかの実装形態では、乱数は、たとえば図1に示す乱数プロバイダ108などの第三者機関に要求され、そこから受信することができる。
図2Aに示すように、取得された乱数は、ランダム行列u、ランダムベクトルv、および乱数zを含む。取得された乱数は、SCN P0とSCN P1との間で配布される。いくつかの実装形態では、SCN P0は、ランダム行列u、v0として表されるvのシェア、z0として表されるzのシェアを取得する。SCN P1は、v1として表されるvのシェア、およびz1として表されるzのシェアを取得する。いくつかの実装形態では、zのシェアは、準同型計算によって生成することができる。いくつかの実装形態では、ランダムベクトルuは、SCN P0によって生成され、ランダムベクトルvのシェアv0およびv1は、それぞれSCN P0およびSCN P1によって生成される。いくつかの実装形態では、u、v、およびz、ならびにそれに対応するシェアはすべて、信頼できる第三者のコモディティサーバによって生成される。乱数の各々、および対応する乱数のシェアは、相互に関連しており、それらの間の関係は、次のように表すことができる。
z0+z1=u*v=u*(v0+v1)
式12
a=XL、およびbo=<θL>0と仮定する。SCN P0のデータを隠すには、たとえば、aおよびuの加算、減算、または乗算を実行して、uを使用してaを暗号化する。ある実装形態では、ランダム行列uは、後の反復で同じ=XLを隠すときに同じである可能性がある。同様に、<θL>0は、ランダムベクトルv0を使用して暗号化される。図2Aに示すように、SCN P0は、暗号化されたXL(e=a-uとして表される)および暗号化された<θL>0(b0-v0として表される)をSCN P1に送信する。いくつかの実装形態では、同じランダム行列uを使用して、後の反復で同じXLを隠す場合、暗号化されたXL(e=a-uとして表される)が再送信される必要はない。SCN P1側では、b1=<θL>1と仮定する。この場合、ランダムなベクトルシェアv1は、<θL>1の値を隠すために使用され、(b1-v1)がSCN P1からSCN P0に送信される。
SCN P0とSCN P1とのデータ交換の後、SCN P0でのステップ1.1のデータキューは、次のように更新される。
c0=u*f+e*b0+z0 式13
式中、f=b-vである。
また、SCN P1でのステップ1.1のデータキューは、次のように更新される。
c1=e*b1+z1 式14
式中、c0およびc1の各々は、XLθLのシェアである。
上記の式に基づいて、XLθLは、次のように計算することができる。
XLθL=c0+c1 式15
c0+c1=u*f+e*b+u*v 式16
c0+c1=u*b-u*v+a*b-u*b+u*v 式17
図2Bは、本明細書の実装形態による、SLRMのパラメータを反復して更新するためのサブプロセス200bの一例を示す。
具体的には、図2Bは、反復円のステップ1の第2のサブステップ(ここではステップ1.2)を示す。ステップ1.2で、乗算トリプルおよび秘密分散を使用して、XRθRの値が計算される。図2Bに示すように、SCN P1は、元のデータを提供する当事者である。元のデータを隠すために、SCN P1およびSCN P0は、最初に乱数を取得する。
図2Bに示すように、取得された乱数は、ランダム行列u、ランダムベクトルv、および乱数zを含む。取得された乱数は、SCN P1とSCN P0との間で配布される。SCN P1は、ランダム行列u、v0として表されるvのシェア、z0として表されるzのシェアを取得する。SCN P0は、v1として表されるvのシェア、およびz1として表されるzのシェアを取得する。いくつかの実装形態では、zのシェアは、準同型計算によって生成することができる。いくつかの実装形態では、ランダムベクトルuは、SCN P1によって生成され、ランダムベクトルvのシェアv0およびv1は、それぞれSCN P1およびSCN P0によって生成される。いくつかの実装形態では、u、v、およびz、ならびにそのシェアはすべて、信頼できる第三者のコモディティサーバによって生成される。乱数の各々、および対応する乱数のシェアは、相互に関連しており、式(12)に示すような関係を満たす。
a=XR、およびbo=<θR>0と仮定して、aのデータ情報を隠すには、SCN P1は最初にaをuで暗号化し、たとえば、aとuとの間で加算、減算、または乗算を実行する。ある実装形態では、ランダム行列uは、後の反復で同じXRを隠すときに同じである可能性がある。同様に、<θR>0は、まず、ランダムベクトルv0を使用して暗号化される。図2Bに示すように、SCN P1は、暗号化されたXR(e=a-uとして表される)および暗号化された<θR>0((b0-v0)として表される)をSCN P0に送信する。いくつかの実装形態では、同じランダム行列uを使用して、後の反復で同じXLを隠す場合、暗号化されたXL(e=a-u)が再送信される必要はない。SCN P0側では、b1=<θR>1と仮定する。この場合、ランダムなベクトルシェアv1は、<θR>1の値を隠すために使用され、(b1-v1)がSCN P0からSCN P1に送信される。
SCN P1とSCN P0との間のデータ交換の後、SCN P1でのステップ1.2のデータキューは、式(13)によって更新され、SCN P0でのステップ1.2のデータキューは、式(14)によって更新される。上記の式に基づいて、XLθLは、式(16)および(17)、ならびに次の式によって計算することができる。
XRθR=c0+c1 式18
したがって、1つの反復円のステップ1が完了し、式(11)は、式(15)および(18)の結果を組み合わせることによって計算することができる。
図3は、本明細書の実装形態による、SLRMのパラメータを反復して更新するためのサブプロセス300の一例を示す。具体的には、図3は、反復サイクルの第2のステップ(ここでは「ステップ2」と呼ぶ)を示す。
ステップ2で、次の式を使用して、予測誤差の列ベクトルが計算される。
E=g(A)-Yi
式19
式中、Aは、ステップ1で説明した式(11)と同じ値である。gは、シグモイド関数のフィッティング関数であり、多項式関数フィッティングとすることができる。すなわち、g()は、多項式関数であり、その最高次数はdである。本明細書で示されている例では、d=7を設定し、g(x)は、次の式で表すことができる。
g(x)=0.5+1.73496*(x/8)-4.19407*+(x/8)3 5.43402*(x/8)5-2.50739*(x/8)7 式20
式中、g(A)は、g(A[1]), g(A[2]), ...g(A[m])で構成される列ベクトルを表す。
乗算トリプルおよび秘密分散を使用して、SCN P0およびSCN P1の各々は、g(<A[i]0>+<A[i]1>)を計算する必要がある。p=<A[i]0>、およびq=<A[i]1>と仮定する。多項式関数g(p+q)は、関数として拡張することができる。
g(p+q)=h0(q)+h1(q)p+h2(q)p2+…+hd(q)pd
式21
式中、h0, h1,…hdの各々は、qの多項式関数であり、SCN P1によって計算することができ、p, p2, p3...pdは、SCN P0によって計算することができる。
ベクトルa=(p, p2, p3...pd)、およびベクトルb=(h1(q), h2(q),…hd(q))と仮定し、そのため、g(p+q)=a・b+h0(q)であり、式中、内積(a・b)は、図3に示されるプロセスによって計算することができ、最適化された乗算トリプルおよび秘密共有を含む。Eの最終結果は、秘密分散に基づいて加算を実行することによって計算することができる。
図3に示すように、取得された乱数は、ランダム行列u、ランダムベクトルv、および乱数zを含む。取得された乱数は、SCN P0とSCN P1との間で配布される。SCN P0は、ランダム行列u、z0として表されるzのシェアを取得する。SCN P1は、ランダム行列v、およびz1として表されるzのシェアを取得する。乱数の各々、および対応する乱数のシェアは、相互に関連しており、それらの間の関係は、次のように表すことができる。
z0+z1=u*v 式22
次いで、図3に示すように、SCN P0は、まず、暗号化データe=a-uをSCN P1に送信し、SCN P1は、暗号化データf=b-vをSCN P0に送信する。ステップおよび計算は、ステップ1のものと類似しており、詳細については、図2Aおよび図2Bの前の説明を参照されたい。
SCN P0とSCN P1との間のデータ交換の後、SCN P0でのステップ2のデータキューは、次のように更新される。
c0=u*f+z0 式23
また、SCN P1でのステップ2のデータキューは、次のように更新される。
c1=e*b+z1 式24
上記の式に基づいて、(a・b)は次のように計算することができる。
(a・b)=c0+c1 式25
c0+c1=u*f+e*b+u*v 式26
c0+c1=u*b-u*v+a*b-u*b+u*v 式27
図4Aは、本明細書の実装形態による、SLRMのパラメータを反復して更新するためのサブプロセス400aの一例を示す。図4Bは、本明細書の実装形態による、SLRMのパラメータを反復して更新するためのサブプロセス400bの一例を示す。
具体的には、図4Aおよび図4Bは、1つの反復円の第3のステップ(本明細書では「ステップ3」)を実行するためのプロセスを示す。
ステップ3で、列ベクトルθ、ならびにSCN P0およびSCN P1の各々が、更新されたθのシェアを取得することができる。このステップでは、更新されたθは、次のように表現することができる。
Figure 0006921233
式中、Eは、ステップ2の式(19)の同じEであり、
XTE=(XL)TE||(XR)TE 式29
(XL)TEを計算するための方法は、XLθLの計算の方法と同じであり、(XR)TEを計算するための方法は、XRθRの計算の方法と同じであり、ここでは繰り返さない。式(29)では、Xは、複数のサンプルの特徴データを含む行列を表し、Eは、誤りベクトルを表す。
ステップ3の後、1つの反復円が完了し、トレーニングプロセスは、次の反復円に入り、ステップ1〜3を繰り返す、または、以下に詳細に記載されるように、条件が満たされた場合、トレーニングプロセスが終了する。
図5は、本明細書の実装形態による、SLRMのパラメータの更新の反復を終了するかどうかを決定するプロセス500の一例を示す。
いくつかの実装形態では、完了した反復円の数があらかじめ定められた数に達したときに、反復を終了することができる。いくつかの実装形態では、しきい値があらかじめ定められており、2つの連続した反復結果の間の差がそのしきい値未満であるとき、反復は終了する。
具体的には、たとえば、1つの反復円の前後のパラメータをθおよびθ'と仮定し、秘密分散を使用して差D=(θ'-θ)を計算する。a0=<DT>0、a1=<DT>1、b0=<D>0、およびb1=<D>1と仮定する。SCN P0およびSCN P1の各々は、乗算トリプルおよび秘密分散を使用してDTDのシェアを計算し、各結果を結合してDを取得する。
図5に示すように、いくつかの実装形態では、SCN P0は、ランダム行列u0およびv0を生成し、SCN P1は、ランダム行列u1およびv1を生成する。その後の計算の方法は、図2および図4で前述した方法と同様であり、ここでは繰り返さない。SCN P0とSCN P1との間でデータが交換された後、SCN P0での計算結果は次のとおりである。
c0=-e*f+a0*f+eb0+z0 式30
式中、f=b-vである。
SCN P1での計算結果は次のとおりである。
c1=a1*f+eb1+z1 式31
式中、c0およびc1の各々は、DTDのシェアである。
上記の式に基づいて、DTDは、次のように計算することができる。
DTD=c0+c1 式32
c0+c1=e*f+a*f+e*b+u*v 式33
c0+c1=u*f+a*b-u*b+u*v 式34
c0+c1=u*b-u*v+a*b-u*b+u*v 式35
図6は、本明細書の実装形態による、イベント駆動型の対話式のセキュアなモデリング手順を使用して、マルチパーティSLRMをトレーニングするためのプロセス600の一例を示す。
いくつかの実装形態では、方法600の様々なステップは、並行して、組み合わせて、ループで、または任意の順序で実行することができる。提示を明快にするために、以下の説明では、本明細書での他の図の文脈で方法600を一般的に説明する。しかしながら、方法600は、たとえば、任意の適切なシステム、環境、ソフトウェア、およびハードウェア、または、必要に応じて、システム、環境、ソフトウェア、およびハードウェアの組合せによって実行され得ることを理解されるよう。たとえば、方法600は、秘密分散を使用して機械学習アルゴリズムを実行するように構成された1つまたは複数のデータ処理装置によって実行することができる。データ処理装置は、たとえば、汎用CPU、またはGPU、FPGA、さらにはカスタムASICプロセッサなどのハードウェアアクセラレータのうちの1つまたは複数を含むことができ、またはそれらによって実装することができる。
いくつかの実装形態では、図6に示すように、プロセス600a(ステップ602a〜622aを含む)は、ノードAによってデータベースと連携して実行され、プロセス600b(ステップ602b〜624bを含む)は、ノードBによってデータベースと連携して実行される。データベースは、Remote Dictionary Server(Redis)とすることができ、ノードAおよびBのデータの送信および一時的記憶をサポートする。いくつかの実装形態では、データベースを経由することなく、SCN AとB 112、114との間でデータを送信することができ、サブスクリプションキューは、ノードAおよびノードBの各々でローカルに記憶され、更新されてもよい。反復プロセスが開始する前に、ノードAおよびノードBの各々は、独立したモデリングプロセスに入り、1回のバッチ反復を開始する。ノードAおよびノードBの各々は、データを発行し、サブスクライブすることができるため、ノードAおよびノードBの各々は、パブリッシャ(または「プロデューサ」)であり、サブスクライバ(または「コンシューマ」)でもある。この例のイベント駆動型モデルでは、ノードAおよびノードBが相互に応答する場合でも、モデリングプロセス600aと600bとは独立しており、個別に処理される。
602aおよび602bで、ノードAおよびノードBは各々、1つの独立したバッチ反復に入る。602aおよび602bは、同時に、または連続して行われる可能性がある。602aの後、プロセス600aは604aに進む。602bの後、プロセス600bは604bに進む。
604aで、ノードAは、ステップ1のデータをノードBに発行する。いくつかの実装形態では、暗号化されたサンプルデータをデータベースに送信することによって、ステップ1のデータが発行され、そのため、データベースは、サブスクライバキューを記憶し、更新することができる。ノードAがこのステップを完了すると、ノードAからのステップ1のデータの発行が完了したことをノードBに通知する通知がノードBに送信される場合がある。604aの後、プロセス600aは606aに進む。
606aで、ノードAは、ノードBからのステップ1のデータをサブスクライブする。いくつかの場合には、SLRMは、秘密分散に基づいてトレーニングされるので、ノードAは、トレーニング自体を完了することができず、ノードAとBからの両方のデータが、モデルへの入力として使用される。いくつかの実装形態では、ノードAは、ノードBからのステップ1のデータをノードBに要求することによって、そのようなサブスクリプションを行う。データベース内のデータキューがノードBからのステップ1のデータによって更新されると、ノードAは、通知を受信する。この時点で、ノードAはノードBから通知を受信していないので、600aの次のステップをトリガすることができず、プロセス600aは、一時的に中断される。
一方、604bで、ノードBは、ステップ1のデータをノードAに発行する。いくつかの実装形態では、暗号化されたサンプルデータをデータベースに送信することによって、ステップ1のデータが発行され、そのため、データベースは、サブスクライバキューを記憶し、更新することができる。ノードBがこのステップを完了すると、ノードBからのステップ1のデータの発行が完了したことをノードAに通知する通知がノードAに送信される場合がある。604bの後、プロセス600bは606bに進む。
606bで、ノードBはノードBからのステップ1データをサブスクライブする。この時点で、ノードAはステップ1のデータをすでに発行し、ノードBはノードAから通知をすでに受信しているので、次のステップがトリガされ、606bの後、プロセス600bは608bに進む。
608bで、ノードBは、それ自体のデータおよびノードAから受信されたステップ1のデータを使用して、ステップ1の結果をローカルに計算する。このステップの式および詳細なステップは、前述の図2Bを参照することができる。608bの後、プロセス600bは610bに進む。
ステップ610bと612bの両方は、ノードBによって独立して実行することができるので、ノードBは、ノードAのアクションに依存することなく、これら2つのステップを一緒に、または連続して実行することができる。ステップ610bおよび612bの後、データベース内のサブスクライバキューは、ノードBによって発行されたステップ2のデータを使用して更新され、発行の通知がノードAに送信される。ステップ612bの後、ノードBはノードAから通知を受信していないので、次のステップは、トリガすることができず、プロセス600bは、一時的に中断される。
プロセス600aのステップ606aに戻る。その時点で、ノードBがステップ604bをすでに実行し、ノードAがノードBから通知をすでに受信している場合、プロセス600aの次のステップがトリガされ、606aの後、プロセス600aは608aに進む。
ステップ608a〜612aは、ノードBからのデータなしでノードAによって独立して実行することができるので、ノードAは、これらのステップを連続して実行することができる。ステップ610aの後、データベース内のサブスクライバキューは、ノードAによって発行されたステップ2のデータを使用して更新され、発行の通知がノードBに送信される。ステップ612aの後、ノードBがステップ610bをすでに実行し、ノードAが対応する通知を受信している場合、600aの次のステップがトリガされ、プロセス600aは614aに進む。そうでない場合、プロセス600aは、ステップ610bが実行されるまで一時的に中断される。
ステップ614a〜618aは、ノードAによって独立して実行することができるので、ノードAは、これらのステップを連続して実行することができる。ステップ614aおよび616aの後、データベース内のサブスクライバキューは、ノードAによって発行されたステップ3のデータを使用して更新され、発行の通知がノードBに送信される。ステップ618aの後、ノードAはノードBから通知を受信していないので、プロセス600aは、ノードBからの通知が受信されるまで一時的に中断され得る。
プロセス600bに戻る。ノードAがそのステップ2のデータを発行し、対応する通知を送信したステップ610aの後、プロセス600bの次のステップがトリガされ、プロセス600bは、614bに進むことができる。614bで、ノードBは、それ自体のデータおよびノードAから受信されたステップ2のデータを使用して、ステップ2の結果をローカルに計算する。この計算ステップの式および詳細なステップは、前述の図3を参照することができる。614bの後、プロセス600bは616bに進む。
616b〜620bの各ステップは、ノードBによって独立して実行することができるので、ノードBは、これら3つのステップを連続して実行することができる。616bで、式(20)を使用してシグモイドの値(wx)-yが計算される。ステップ618bおよび620bの後、データベース内のサブスクライバキューは、ノードBによって発行されたステップ3のデータを使用して更新され、発行の通知がノードAに送信される。ステップ620bの後、その時点で、ノードAが616aをすでに実行しており、ノードBがノードAから通知を受信している場合、600bの次のステップがトリガされ、プロセス600bは622bに進む。
622bで、ノードBは、それ自体のデータおよびノードAから受信されたステップ3のデータを使用して、ステップ3の結果をローカルに計算する。計算の式および詳細なステップは、前述の図4Bで詳述した。622bの後、次の反復に入るかどうかはノードAおよびノードBによって共同で決定され、622bの後、ノードBはノードBから通知を受信していないので、プロセス600bは一時的に中断される。
プロセス600aに戻ると、ノードBがそのステップ3のデータを発行し、対応する通知を送信したステップ618bの後、プロセス600bの次のステップがトリガされ、プロセス600aは、620aに進むことができる。620aで、ノードAは、それ自体のデータおよびノードAから受信されたステップ3のデータを使用して、ステップ3の結果をローカルに計算する。この計算ステップの式および詳細なステップは、前述の図3を参照することができる。620aの後、ノードAとノードBの両方が反復円を完了している。
図4で前述したように、反復円を終了するかどうかは、あらかじめ定められた条件が満たされるかどうかに依存する。そうである場合、プロセス600aと600bの両方が622aおよび624aに進み、602a〜620a、および602b〜622bからのステップを再び繰り返す。そうでない場合、反復は終了し、両方のプロセス600aおよび600bは、それぞれ618aおよび622bで停止する。
図7は、本明細書の実装形態に従って実行することができるプロセス700の一例を示す。いくつかの実装形態では、方法700の様々なステップは、並行して、組み合わせて、ループで、または任意の順序で実行することができる。提示を明快にするために、以下の説明では、本明細書での他の図の文脈で方法700を一般的に説明する。しかしながら、方法700は、たとえば、任意の適切なシステム、環境、ソフトウェア、およびハードウェア、または、必要に応じて、システム、環境、ソフトウェア、およびハードウェアの組合せによって実行され得ることを理解されるよう。たとえば、方法700は、秘密分散を使用して機械学習アルゴリズムを実行するように構成された装置を処理する1つまたは複数のデータによって実行することができる。データ処理装置は、たとえば、汎用CPU、またはGPU、FPGA、さらにはカスタムASICプロセッサなどのハードウェアアクセラレータのうちの1つまたは複数を含むことができ、またはそれらによって実装することができる。
702で、秘密分散を使用してSLRMのサンプルトレーニングデータが2つのシェアに分割され、各シェアがSCNに配布される。いくつかの実装形態では、サンプルデータ行列Xは、XLおよびXRに分割され、サンプルデータ行列XLは、SCN1に属し、サンプルデータ行列XRは、SCN2に属する。702の後、プロセス700は704に進む。
704で、サンプルトレーニングデータの各シェアを使用して、SLRMのパラメータが反復して更新される。いくつかの実装形態では、SLRMの目的関数は、ミニバッチ確率勾配降下(SGD)法を使用して最適化される。
いくつかの実装形態では、SLRMは、次のように表すことができるロジスティック回帰関数に基づく。
Figure 0006921233
式中、mは、ミニバッチSGDのサンプルサイズを表す。Xは、m*kサンプル行列を表す。行列Xの各行は、サンプルを表し、Xiは、行列Xのi番目の行を表し、[j]は、ベクトルXiのj番目の要素を表す。サンプルデータ行列Xは、XLおよびXRに分割され、サンプルデータXLは、SCN P0に属し、XRは、SCN P1に属する。θは、パラメータ列ベクトルを表し、列ベクトルθは、θLおよびθRに垂直に分割され得る。
いくつかの実装形態では、SLRMのトレーニングは、イベント駆動型モデルの使用を含む。704の後、プロセス700は706に進む。
706で、SCNごとに、Aのシェアが以下に基づいて計算される。
A=Xθ=XLθL+XRθR
いくつかの実装形態では、XLθLおよびXRθRを計算することは、乱数を使用して各SCNから提供された元のデータを隠し、SCN間で隠されたデータを交換することを含む。いくつかの実装形態では、元のデータを隠す前に、各SCNによって乱数が取得される。いくつかの実装形態では、乱数は、数字、ベクトル、または行列とすることができる。いくつかの実装形態では、乱数は、SCNによって生成することができる。いくつかの実装形態では、乱数は、第三者機関に要求し、そこから受信することができる。706の後、プロセス700は708に進む。
ステップ708で、以下に基づいて、予測誤差の列ベクトルが計算される。
E=g(A)-Yi
式中、gは、シグモイド関数のフィッティング関数であり、多項式関数フィッティングとすることができる。いくつかの実装形態では、次数またはg(x)が7の場合、g(x)は次の式で表すことができる。
g(x)=0.5+1.73496*(x/8)-4.19407*+(x/8)3 5.43402*(x/8)5 -2.50739*(x/8)7
式中、g(A)は、g(A[1]), g(A[2]), ... g(A[m])で構成される列ベクトルを表す。708の後、プロセス700は710に進む。
710で、更新された列ベクトルθを次のように表すことができる。
Figure 0006921233
式中、XTE=(XL)TE||(XR)TEであり、
710の後、プロセス700は712に進む。
712で、あらかじめ定められた条件が満たされる場合、反復は終了する。いくつかの実装形態では、完了した反復円の数があらかじめ定められた数に達したときに、反復を終了することができる。
いくつかの実装形態では、しきい値があらかじめ定められており、2つの連続した反復結果の間の差がそのしきい値未満であるとき、反復は終了する。712の後、プロセス700は停止し得る。
図8は、本明細書の実装形態に従って実行することができるプロセス800の一例を示す。いくつかの実装形態では、方法700の様々なステップは、並行して、組み合わせて、ループで、または任意の順序で実行することができる。提示を明快にするために、以下の説明では、本明細書での他の図の文脈で方法800を一般的に説明する。しかしながら、方法800は、たとえば、任意の適切なシステム、環境、ソフトウェア、およびハードウェア、または、必要に応じて、システム、環境、ソフトウェア、およびハードウェアの組合せによって実行され得ることを理解されるよう。たとえば、方法800は、秘密分散を使用して機械学習アルゴリズムを実行するように構成された1つまたは複数のデータ処理装置によって実行することができる。データ処理装置は、たとえば、汎用CPU、またはGPU、FPGA、さらにはカスタムASICプロセッサなどのハードウェアアクセラレータのうちの1つまたは複数を含むことができ、またはそれらによって実装することができる。
802で、SLRMに関連付けられたパラメータの数を決定することによって、SLRMは、ユーザによって初期化される。いくつかの実装形態では、パラメータは、トレーニングデータのサイズ、SLRMの設定に対応するトレーニングデータに関連付けられた特徴、SLRMのハイパーパラメータを含むことができる。
いくつかの実装形態では、ユーザがSLRMを初期化した後、SLRMに関連付けられた情報がセキュリティ管理エージェントに送信される。いくつかの実装形態では、セキュリティ管理エージェントは、モデルに供給されたSLRMおよびトレーニングデータを処理する。いくつかの実装形態では、ノード管理エージェントは、トレーニングに参加するSCNを選択し、管理するように構成されている。いくつかの実装形態では、セキュリティ管理エージェントとノード管理エージェントの両方を第三者のエージェントとして構成することができる。802の後、プロセス800は804に進む。
804で、乱数が、少なくとも2つのSCNによって乱数プロバイダに要求され、要求された乱数は、各SCNに記憶されたデータを暗号化するために使用される。いくつかの実装形態では、乱数は、数字、ベクトル、または行列などとすることができる。いくつかの実装形態では、乱数は、少なくとも1つのSCNによって生成することができる。いくつかの実装形態では、乱数は、独立した第三者によって提供することができる。
いくつかの実装形態では、データの暗号化は、データおよび受信された乱数を使用した計算の実行を含む。いくつかの実装形態では、実行される計算は、加算、減算、乗算のうちの少なくとも1つである。802の後、プロセス800は804に進む。
806で、暗号化されたデータは、秘密共有に基づいて、SLRMのパラメータを反復して更新するための入力として使用される。このステップの詳細は、図7でさらに説明される。806の後、プロセス800は808に進む。
808で、トレーニングされたSLRMの出力を使用して、各SCNのサービスを実行する。いくつかの実装形態では、サービスは、予測サービスまたは分類サービスとすることができる。808の後、プロセス800は停止する。
図9は、本明細書の実装形態による装置のモジュールを示す図900の一例を示す。装置900は、マルチパーティのセキュアなロジスティック回帰モデルをトレーニングするための装置の例示的な実装とすることができる。装置900は、上述の実装形態に対応することができ、装置900は、秘密分散(SS)を使用して、セキュアなロジスティック回帰モデル(SLRM)のサンプルトレーニングデータを複数のシェアに分割するための分割器または分割ユニット902であり、各シェアが、セキュアな計算ノード(SCN)に配布される、分割器または分割ユニット902と、サンプルトレーニングデータの各シェアを使用して、SLRMに関連付けられたパラメータを反復して更新するためのアップデータまたは更新ユニット904であり、反復更新が、あらかじめ定められた条件が出現するまで続く、アップデータまたは更新ユニット904と、SLRMに関連付けられたパラメータを反復して更新した後、各SCNによって使用されるように構成されたトレーニング結果を出力するための出力器または出力ユニット906とを含む。
オプションの実装形態では、SLRMの目的関数は、ミニバッチ確率勾配降下(SGD)法を使用して最適化されるロジスティック回帰関数であり、ロジスティック回帰関数は、式(2)で表される。
オプションの実装形態では、アップデータまたは更新ユニット904を使用して、イベント駆動モデルに従ってSLRMに関連付けられたパラメータを反復して更新する。
オプションの実装形態では、アップデータまたは更新ユニット904を使用して、SCNごとに、列ベクトルを表すAの値を計算し、計算は、式(11)に基づいて実行され、式(19)に基づいて、予測誤差の列ベクトルを決定し、式(28)および(29)に基づいて更新された列ベクトルを決定する。
オプションの実装形態では、列ベクトルを表すAのシェアの計算は、乱数を使用して各SCNによって提供される元のデータを暗号化し、SCN間で暗号化されたデータを交換することを含む。
オプションの実装形態では、乱数の各々は、数字、ベクトル、または行列のうちの少なくとも1つである。
オプションの実装形態では、あらかじめ定められた条件は、あらかじめ定められたしきい値未満の2つの連続した反復結果間の差異の出現である。
前の実装形態で示されたシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用することによって実装することができ、あるいはある機能を有する製品を使用することによって実装することができる。典型的な実装デバイスはコンピュータであり、コンピュータは、たとえば、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き携帯電話、スマートフォン、パーソナルデジタルアシスタント、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲーム機、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せとすることができる。
装置内の各ユニットの機能および役割の実装プロセスについては、以前の方法の対応するステップの実装プロセスを参照することができる。簡単のために、詳細はここでは省略する。
装置の実装は、基本的に、方法の実装に対応するので、関連する部分については、方法の実装の関連する説明を参照することができる。前に説明した装置の実装は一例にすぎない。別々の部分として記載されているユニットは、物理的に別個であってもなくてもよく、ユニットとして表示されている部分は、物理ユニットであってもなくてもよく、1つの位置に配置されてもいくつかのネットワークユニットに分散されてもよい。本明細書の解決策の目的を達成するために、モジュールの一部または全部を、実際の要求に基づいて選択することができる。当業者は、創造的な取り組みなしに本出願の実装形態を理解し実施することができる。
再び図9を参照すると、これは、内部機能モジュールおよびマルチパーティのセキュアなロジスティック回帰モデルをトレーニングするための装置の構造を示すものと解釈することができる。実行装置は、モデリングトレーニングを可能にするように構成された装置の一例であり得る。
本明細書に記載された主題およびアクションおよび動作の実装形態は、デジタル電子回路、有形に具現化されたコンピュータソフトウェアまたはファームウェア、本明細書に開示される構造およびそれらの構造的均等物を含むコンピュータハードウェア、またはそれらの1つもしくは複数の組合せに実装することができる。本明細書に記載される主題の実装形態は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置によって実行される、またはデータ処理装置の動作を制御するためのコンピュータプログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。キャリアは、有形の非一時的コンピュータ記憶媒体であってもよい。代替的にまたは追加として、キャリアは、人工的に生成された伝搬信号、たとえば、データ処理装置によって実行するための適切な受信機装置への送信のために情報を符号化するために生成された機械生成電気、光学、または電磁信号とすることができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはそれらの1つもしくは複数の組合せとすることができ、またはその一部とすることができる。コンピュータ記憶媒体は、伝搬信号ではない。
「データ処理装置」という用語は、たとえば、プログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイスおよび機械を包含する。データ処理装置は、FPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、またはGPU(グラフィックス処理ユニット)などの専用論理回路を含むことができる。装置は、ハードウェアに加えて、コンピュータプログラムの実行環境を生成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つまたは複数の組合せを構成するコードを含むこともできる。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードとも呼ばれるまたは記述されることもあるコンピュータプログラムは、コンパイルもしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む、任意の形式のプログラミング言語で記述することができ、それは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、エンジン、サブルーチン、もしくはコンピューティング環境での実行に適した他のユニットとしてなど、あらゆる形式で展開でき、環境は、1つまたは複数の場所にデータ通信ネットワークによって相互接続された1つまたは複数のコンピュータを含む場合がある。
コンピュータプログラムは、必ずしも必要はないが、ファイルシステム内のファイルに対応し得る。コンピュータプログラムは、問題のプログラム専用の単一のファイル、あるいは、たとえば、1つもしくは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイルなど、複数のコーディネートされたファイルに、たとえば、マークアップ言語文書に記憶された1つもしくは複数のスクリプトなど、他のプログラムまたはデータを保持するファイルの一部に記憶することができる。
本明細書に記載のプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって動作を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のコンピュータによって実行することができる。プロセスおよび論理フローは、たとえばFPGAまたはASICまたはGPUなどの専用論理回路によって、あるいは専用論理回路と1つまたは複数のプログラムされたコンピュータとの組合せによっても実行することができる。
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサ、もしくはその両方、または他の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読取り専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの要素は、命令を実行するための中央処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスを含むことができる。中央処理装置およびメモリは、専用論理回路によって補うことができ、またはそれに組み込むことができる。
一般に、コンピュータは、1つまたは複数の大容量記憶デバイスを含むか、1つまたは複数の大容量記憶デバイスからデータを受信する、もしくはそこにデータを転送するように動作可能に結合される。大容量記憶デバイスは、たとえば、磁気、光磁気、もしくは光ディスク、またはソリッドステートドライブとすることができる。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブルストレージデバイス中に組み込むことができる。
ユーザとの対話を提供するために、本明細書で説明する主題の実装は、情報をユーザに表示するためのディスプレイデバイス、たとえばLCD(液晶ディスプレイ)モニタ、およびユーザがコンピュータに入力を提供できる入力デバイス、たとえばキーボード、およびマウス、トラックボールまたはタッチパッドなどのポインティングデバイスを有するコンピュータ上に実装され、またはそれと通信するように構成され得る。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによってなど、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、またはスマートフォンや電子タブレットなどのユーザデバイスで実行されているアプリと対話することによってユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送信し、代わりに、ユーザから応答メッセージを受信することによって、ユーザと対話することができる。
本明細書は、多くの具体的な実装の詳細を含むが、これらは、特許請求の範囲自体によって定義される特許請求の範囲に対する限定ではなく、むしろ特定の実装に固有であり得る特徴の説明として解釈されるものとする。別個の実装形態の文脈において本明細書で説明されるいくつかの特徴は、単一の実装形態において組み合わせて実現することもできる。逆に、単一の実装形態の文脈で記載されている様々な特徴は、複数の実装形態で別々にまたは任意の適切な部分組合せで実現することもできる。さらに、特徴は、いくつかの組合せで作用するものとして上述され、当初はそのように請求され得るが、いくつかの場合、請求された組合せからの1つまたは複数の特徴を、組合せから削除することができ、特許請求の範囲は、部分組合せ、または部分組合せの変形を対象とし得る。
同様に、動作が図面に示され、特許請求の範囲に特定の順序で記載されているが、これは、そのような動作が、示された特定の順序で、または順番に実行されること、あるいは望ましい結果を達成するために、図示されたすべての動作が実行されることを必要とするものとして理解されないものとする。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上述した実装形態における様々なシステムモジュールおよび構成要素の分離は、すべての実装形態においてそのような分離を必要とするものと理解されないものとし、記述されたプログラム構成要素およびシステムを、一般に、単一のソフトウェア製品に一緒に組み入れることができ、または複数のソフトウェア製品にパッケージ化することができることを理解されたい。
主題の特定の実装形態が記載されている。他の実装形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に列挙されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。いくつかの場合には、マルチタスキングおよび並列処理が有利であり得る。
100 環境
102 ユーザ
104 セキュリティ管理エージェント
106 ノード管理エージェント
108 乱数プロバイダ
110 ネットワーク
112 セキュアな計算ノード(SCN)SCN A
114 SCN B
200a サブプロセス
200b サブプロセス
300 サブプロセス
400a サブプロセス
400b サブプロセス
500 プロセス
600 プロセス
600a プロセス
600b プロセス
700 プロセス
800 プロセス
900 装置
902 分割器または分割ユニット
904 アップデータまたは更新ユニット
906 出力器または出力ユニット

Claims (17)

  1. マルチパーティのセキュアなロジスティック回帰モデルをトレーニングするためのコンピュータ実装方法であって、
    秘密分散(SS)を使用して、セキュアなロジスティック回帰モデル(SLRM)のサンプルトレーニングデータを複数のシェアに分割するステップであり、各シェアが、セキュアな計算ノード(SCN)に配布される、ステップと、
    前記サンプルトレーニングデータの各シェアを使用して、前記SLRMに関連付けられたパラメータを反復して更新するステップであり、反して更新するステップが、あらかじめ定められた条件が出現するまで続く、ステップと、
    前記SLRMに関連付けられた前記パラメータを反復して更新した後、各SCNによって使用するように構成されたトレーニング結果を出力するステップと
    を含み、
    前記SLRMに関連付けられたパラメータを反復して更新するステップが、
    乱数を使用して各SCNによって提供される元のデータを暗号化するステップと、
    前記SCN間の前記暗号化されたデータを交換するステップと
    を含む、
    コンピュータ実装方法。
  2. 前記SLRMの目的関数が、ミニバッチ確率勾配降下(SGD)法を使用して最適化されるロジスティック回帰関数であり、前記ロジスティック回帰関数が、次のように表され、
    Figure 0006921233
    式中、
    αおよびλは、機械学習ネットワーク構造を決定するハイパーパラメータであり、
    mは前記ミニバッチSGDのサンプルサイズを表し、
    Xによって示される行列はm*kサンプル行列を表し、
    前記行列Xの各行はサンプルを表し、
    Xiは前記行列Xのi番目の行を表し、
    [j]はベクトルXiのj番目の要素を表し、
    XLはSCNに属するサンプルデータのシェアを表し、
    XRはSCNに属するサンプルデータのもう1つのシェアを表し、
    列ベクトルθはパラメータ列ベクトルを表し、前記列ベクトルθが、θLおよびθRに垂直に分割され得る
    請求項1に記載のコンピュータ実装方法。
  3. 前記SLRMに関連付けられたパラメータを反復して更新することが、イベント駆動モデルに従って実行される、請求項1に記載のコンピュータ実装方法。
  4. 前記SLRMに関連付けられたパラメータを反復して更新するステップが、
    SCNごとに、列ベクトルを表すAの値を計算するステップであり、前記計算は
    A=Xθ=XLθL+XRθR
    に基づいて実行され、式中、
    XLθLおよびXRθRは各々、SCNのAのシェアを表す、
    ステップと、
    E=g(A)-Y i
    基づいて、予測誤差の列ベクトルを決定するステップであり、
    式中、
    gは、多項式関数フィッティングとすることができるシグモイド関数のフィッティング関数である、
    ステップと、
    次の式に基づいて更新された列ベクトルを決定するステップであり、
    Figure 0006921233
    式中、
    αおよびλは、機械学習ネットワーク構造を決定するハイパーパラメータであり、
    XTE=(XL)TE||(XR)TE
    である、ステップと
    を含む請求項1に記載のコンピュータ実装方法。
  5. 前記乱数の各々が、数字、ベクトル、または行列のうちの少なくとも1つである、請求項1に記載のコンピュータ実装方法。
  6. 前記あらかじめ定められた条件が、あらかじめ定められたしきい値未満の2つの連続した反復結果間の差異の出現である、請求項5に記載のコンピュータ実装方法。
  7. 1つまたは複数のコンピュータに結合され、命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令が、
    秘密分散(SS)を使用して、セキュアなロジスティック回帰モデル(SLRM)のサンプルトレーニングデータを複数のシェアに分割し、各シェアが、セキュアな計算ノード(SCN)に配布され、
    前記サンプルトレーニングデータの各シェアを使用して、前記SLRMに関連付けられたパラメータを反復して更新し、反して更新することが、あらかじめ定められた条件が出現するまで続き、
    前記SLRMに関連付けられた前記パラメータを反復して更新した後、各SCNによって使用するように構成されたトレーニング結果を出力する
    ように前記1つまたは複数のコンピュータによって実行可能であ
    前記SLRMに関連付けられたパラメータを反復して更新することが、
    乱数を使用して各SCNによって提供される元のデータを暗号化することと、
    前記SCN間の前記暗号化されたデータを交換することと
    を含む、
    非一時的コンピュータ可読記憶媒体。
  8. 前記SLRMの目的関数が、ミニバッチ確率勾配降下(SGD)法を使用して最適化されるロジスティック回帰関数であり、前記ロジスティック回帰関数が、次のように表され、
    Figure 0006921233
    式中、
    αおよびλは、機械学習ネットワーク構造を決定するハイパーパラメータであり、
    mは前記ミニバッチSGDのサンプルサイズを表し、
    Xはm*kサンプル行列を表し、
    前記行列Xの各行はサンプルを表し、
    Xiは前記行列Xのi番目の行を表し、
    [j]はベクトルXiのj番目の行を表し、
    XLはSCNに属するサンプルデータXのシェアを表し、
    XRはSCNに属するサンプルデータXのシェアを表し、
    θはパラメータ列ベクトルを表し、前記列ベクトルθが、θLおよびθRに垂直に分割され得る
    請求項7に記載の非一時的コンピュータ可読記憶媒体。
  9. 前記SLRMに関連付けられたパラメータを反復して更新することが、イベント駆動モデルに従って実行される、請求項7に記載の非一時的コンピュータ可読記憶媒体。
  10. 前記SLRMに関連付けられたパラメータを反復して更新することが、
    SCNごとに、列ベクトルを表すAの値を計算することであり、前記計算は
    A=Xθ=XLθL+XRθR
    に基づいて実行され、式中、
    XLθLおよびXRθRは各々、SCNのAのシェアを表す、
    計算することと、
    E=g(A)-Y i
    基づいて、予測誤差の列ベクトルを決定することであり、
    式中、
    gは、多項式関数フィッティングとすることができるシグモイド関数のフィッティング関数である、
    決定することと、
    次の式に基づいて更新された列ベクトルを決定することであり、
    Figure 0006921233
    式中、
    αおよびλは、機械学習ネットワーク構造を決定するハイパーパラメータであり、
    XTE=(XL)TE||(XR)TE
    である、決定することと
    を含む、請求項7に記載の非一時的コンピュータ可読記憶媒体。
  11. 前記乱数の各々が、数字、ベクトル、または行列のうちの少なくとも1つである、請求項7に記載の非一時的コンピュータ可読記憶媒体。
  12. 前記あらかじめ定められた条件が、あらかじめ定められたしきい値未満の2つの連続した反復結果間の差異の出現である、請求項11に記載の非一時的コンピュータ可読記憶媒体。
  13. 1つまたは複数のコンピュータと、
    前記1つまたは複数のコンピュータに結合され、命令を記憶した1つまたは複数のコンピュータ可読メモリあって、前記命令が、
    秘密分散(SS)を使用して、セキュアなロジスティック回帰モデル(SLRM)のサンプルトレーニングデータを複数のシェアに分割し、各シェアが、セキュアな計算ノード(SCN)に配布され、
    前記サンプルトレーニングデータの各シェアを使用して、前記SLRMに関連付けられたパラメータを反復して更新し、反して更新することが、あらかじめ定められた条件が出現するまで続き、
    前記SLRMに関連付けられた前記パラメータを反復して更新した後、各SCNによって使用するように構成されたトレーニング結果を出力する
    ように前記1つまたは複数のコンピュータによって実行可能である、1つまたは複数のコンピュータ可読メモリと
    を含み、
    前記SLRMに関連付けられたパラメータを反復して更新することが、
    乱数を使用して各SCNによって提供される元のデータを暗号化することと、
    前記SCN間の前記暗号化されたデータを交換することと
    を含む、
    システム。
  14. 前記SLRMの目的関数が、ミニバッチ確率勾配降下(SGD)法を使用して最適化されるロジスティック回帰関数であり、前記ロジスティック回帰関数が、次のように表され、
    Figure 0006921233
    式中、
    αおよびλは、機械学習ネットワーク構造を決定するハイパーパラメータであり、
    mは前記ミニバッチSGDのサンプルサイズを表し、
    Xはm*kサンプル行列を表し、
    前記行列Xの各行はサンプルを表し、
    Xiは前記行列Xのi番目の行を表し、
    [j]はベクトルXiのj番目の行を表し、
    XLはSCNに属するサンプルデータXのシェアを表し、
    XRはSCNに属するサンプルデータXのシェアを表し、
    θはパラメータ列ベクトルを表し、前記列ベクトルθが、θLおよびθRに垂直に分割され得る
    請求項13に記載のシステム。
  15. 前記SLRMに関連付けられたパラメータを反復して更新することが、イベント駆動モデルに従って実行される、請求項13に記載のシステム。
  16. 前記SLRMに関連付けられたパラメータを反復して更新することが、
    SCNごとに、列ベクトルを表すAの値を計算することであり、前記計算は
    A=Xθ=XLθL+XRθR
    に基づいて実行され、式中、
    XLθLおよびXRθRは各々、SCNのAのシェアを表す、
    計算することと、
    E=g(A)-Y i
    基づいて、予測誤差の列ベクトルを決定することであり、
    式中、
    gは、多項式関数フィッティングとすることができるシグモイド関数のフィッティング関数である、
    決定することと、
    次の式に基づいて更新された列ベクトルを決定することであり、
    Figure 0006921233
    式中、
    αおよびλは、機械学習ネットワーク構造を決定するハイパーパラメータであり、
    XTE=(XL)TE||(XR)TE
    である、決定することと
    を含む、請求項13に記載のシステム。
  17. 前記乱数の各々が、数字、ベクトル、または行列のうちの少なくとも1つである、
    請求項13に記載のシステム。
JP2019559292A 2019-01-11 2019-01-11 秘密分散を使用したロジスティック回帰モデリング方式 Active JP6921233B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/071394 WO2019072315A2 (en) 2019-01-11 2019-01-11 LOGISTIC REGRESSION MODELING SCHEME USING SECRET SHARING

Publications (2)

Publication Number Publication Date
JP2020525814A JP2020525814A (ja) 2020-08-27
JP6921233B2 true JP6921233B2 (ja) 2021-08-18

Family

ID=66100025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019559292A Active JP6921233B2 (ja) 2019-01-11 2019-01-11 秘密分散を使用したロジスティック回帰モデリング方式

Country Status (8)

Country Link
US (1) US10600006B1 (ja)
EP (1) EP3602410B1 (ja)
JP (1) JP6921233B2 (ja)
KR (1) KR102337168B1 (ja)
CN (1) CN110709863B (ja)
PH (1) PH12019502457A1 (ja)
SG (1) SG11201909946UA (ja)
WO (1) WO2019072315A2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3070858B1 (fr) 2017-09-14 2020-02-21 Capsum Dispersion avec phase grasse dispersee a teneur elevee en pigments
CN110084068B (zh) * 2018-01-26 2023-09-29 阿里巴巴集团控股有限公司 区块链系统及用于区块链系统的数据处理方法
JP7092206B2 (ja) * 2018-10-04 2022-06-28 日本電信電話株式会社 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム
CN112183759B (zh) * 2019-07-04 2024-02-13 创新先进技术有限公司 模型训练方法、装置及系统
CN112183565B (zh) * 2019-07-04 2023-07-14 创新先进技术有限公司 模型训练方法、装置及系统
CN112183566B (zh) * 2019-07-04 2024-02-09 创新先进技术有限公司 模型训练方法、装置及系统
CN112183757B (zh) * 2019-07-04 2023-10-27 创新先进技术有限公司 模型训练方法、装置及系统
US10803184B2 (en) 2019-08-09 2020-10-13 Alibaba Group Holding Limited Generation of a model parameter
CN110569228B (zh) * 2019-08-09 2020-08-04 阿里巴巴集团控股有限公司 模型参数确定方法、装置和电子设备
CN110580410B (zh) * 2019-08-09 2023-07-28 创新先进技术有限公司 模型参数确定方法、装置和电子设备
CN110851869B (zh) * 2019-11-14 2023-09-19 深圳前海微众银行股份有限公司 敏感信息处理方法、设备及可读存储介质
AU2020424576C1 (en) 2020-01-20 2023-11-09 Nippon Telegraph And Telephone Corporation Secure computation apparatus, secure computation method, and program
US11682095B2 (en) 2020-02-25 2023-06-20 Mark Coast Methods and apparatus for performing agricultural transactions
CN111368336B (zh) * 2020-05-27 2020-09-04 支付宝(杭州)信息技术有限公司 基于秘密共享的训练方法、装置、电子设备及存储介质
CN111859267B (zh) * 2020-06-22 2024-04-26 复旦大学 基于bgw协议的隐私保护机器学习激活函数的运算方法
CN112836868A (zh) * 2021-01-22 2021-05-25 支付宝(杭州)信息技术有限公司 一种链接预测模型的联合训练方法和装置
CN113128700A (zh) * 2021-03-23 2021-07-16 同盾控股有限公司 安全多方计算的联邦模型训练加速的方法和系统
CN113065145B (zh) * 2021-03-25 2023-11-24 上海海洋大学 一种基于秘密共享和随机扰动的隐私保护线性回归方法
KR102557639B1 (ko) * 2021-04-20 2023-07-19 성신여자대학교 연구 산학협력단 인공지능 학습장치 및 인공지능 학습장치의 동작방법
CN113037489B (zh) * 2021-05-25 2021-08-27 北京百度网讯科技有限公司 数据处理方法、装置、设备和存储介质
CN113342915A (zh) * 2021-06-22 2021-09-03 深圳壹账通智能科技有限公司 地址脱敏方法、装置、电子设备及存储介质
CN113837764B (zh) * 2021-09-22 2023-07-25 平安科技(深圳)有限公司 风险预警方法、装置、电子设备和存储介质
CN116187433B (zh) * 2023-04-28 2023-09-29 蓝象智联(杭州)科技有限公司 基于秘密分享的联邦拟牛顿训练方法、装置及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5542075B2 (ja) * 2011-03-01 2014-07-09 日本放送協会 認証サーバ、認証プログラムおよび認証システム
JP2014164126A (ja) * 2013-02-25 2014-09-08 Nippon Telegr & Teleph Corp <Ntt> 音響信号分析方法、装置、及びプログラム
US9705913B2 (en) * 2015-10-29 2017-07-11 Intel Corporation Wireless hotspot attack detection
JP6673367B2 (ja) 2016-01-07 2020-03-25 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
KR20190032433A (ko) 2016-07-18 2019-03-27 난토믹스, 엘엘씨 분산 머신 학습 시스템들, 장치, 및 방법들
CN106909886B (zh) * 2017-01-20 2019-05-03 中国石油大学(华东) 一种基于深度学习的高精度交通标志检测方法及系统
US10536437B2 (en) * 2017-01-31 2020-01-14 Hewlett Packard Enterprise Development Lp Performing privacy-preserving multi-party analytics on vertically partitioned local data
US10565524B2 (en) * 2017-01-31 2020-02-18 Hewlett Packard Enterprise Development Lp Performing privacy-preserving multi-party analytics on horizontally partitioned local data
CN107220217A (zh) * 2017-05-31 2017-09-29 北京京东尚科信息技术有限公司 基于逻辑回归的特征系数训练方法和装置
WO2019048390A1 (en) * 2017-09-07 2019-03-14 Koninklijke Philips N.V. MULTI-PART CALCULATION SYSTEM FOR LEARNING A CLASSIFIER
CN108519981B (zh) * 2018-02-01 2022-04-12 四川大学 一种跨链智能合约合作可能性评估方法
CN108712260B (zh) * 2018-05-09 2021-06-25 曲阜师范大学 云环境下保护隐私的多方深度学习计算代理方法

Also Published As

Publication number Publication date
PH12019502457A1 (en) 2020-07-20
CN110709863B (zh) 2024-02-06
CN110709863A (zh) 2020-01-17
KR102337168B1 (ko) 2021-12-08
SG11201909946UA (en) 2019-11-28
KR20200088767A (ko) 2020-07-23
JP2020525814A (ja) 2020-08-27
EP3602410A4 (en) 2020-03-11
WO2019072315A3 (en) 2019-11-07
EP3602410A2 (en) 2020-02-05
EP3602410B1 (en) 2021-09-29
WO2019072315A2 (en) 2019-04-18
US10600006B1 (en) 2020-03-24

Similar Documents

Publication Publication Date Title
JP6921233B2 (ja) 秘密分散を使用したロジスティック回帰モデリング方式
JP6825138B2 (ja) プライバシー保護のための分散型マルチパーティセキュリティモデル訓練フレームワーク
US20230023520A1 (en) Training Method, Apparatus, and Device for Federated Neural Network Model, Computer Program Product, and Computer-Readable Storage Medium
CN110245510B (zh) 用于预测信息的方法和装置
AU2019257397B2 (en) Secure multi-party computation with no trusted initializer
WO2021120888A1 (zh) 一种基于隐私数据进行模型训练的方法及系统
Li et al. Markov processes in blockchain systems
CN112085159B (zh) 一种用户标签数据预测系统、方法、装置及电子设备
US11410081B2 (en) Machine learning with differently masked data in secure multi-party computing
CN111310204B (zh) 数据处理的方法及装置
EP3863003B1 (en) Hidden sigmoid function calculation system, hidden logistic regression calculation system, hidden sigmoid function calculation device, hidden logistic regression calculation device, hidden sigmoid function calculation method, hidden logistic regression calculation method, and program
Miao et al. Federated deep reinforcement learning based secure data sharing for Internet of Things
CN114186256A (zh) 神经网络模型的训练方法、装置、设备和存储介质
CN112598127A (zh) 联邦学习模型训练方法和装置、电子设备、介质和产品
US20230229793A1 (en) Intelligent estimation of onboarding times for managed services
Doshi Privacy preserving machine learning
WO2023010063A1 (en) Improving automated surrogate training performance by incorporating simulator information
CN115545945A (zh) 一种金融产品推荐方法、装置、电子设备及存储介质
CN116368772A (zh) 用于隐私保护推理的系统、方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201030

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210308

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210604

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: 20210628

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210727

R150 Certificate of patent or registration of utility model

Ref document number: 6921233

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150