【論文閲覧】ブロックチェーンシステムによるプライバシー保護ビザンチン堅牢なフェデレーテッドラーニング

これは 2022 IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY (TIFS) に掲載された記事です

抽象的な

従来のフェデレーテッド ラーニングは悪意のあるクライアントやサーバーによるポイズニング攻撃の影響を受けやすいです. この論文では, ブロックチェーン システムに基づいたプライバシーを保護するビザンチンのロバストなフェデレーテッド ラーニング (PBFL) が設計されています. コサイン類似度を使用して, 悪意のあるクライアントやサーバーによってアップロードされたファイルの悪意性を判断します.クライアントのグラデーション。最後に、透明性のあるプロセスと規制の実施を促進するためにブロックチェーンシステムを使用します。最後に、透明性のあるプロセスと規制の施行を促進するためにブロックチェーン システムを使用します。

主な貢献

1.完全準同型暗号化 (FHE) スキームCKKSを使用して、プライバシーを保護するトレーニング メカニズムを提供し、コンピューティングと通信のオーバーヘッドを大幅に削減するだけでなく、攻撃者によるクライアントのローカル データの覗き見を
防止します。類似性 悪意のある勾配を削除すると、ポイズニング攻撃に耐性のある信頼できるグローバル モデルが提供されます。
3. 私たちは透明なプロセスと規制の執行を促進するためにブロックチェーンを使用します。サーバーはオフチェーン計算を実行し、結果をブロックチェーンにアップロードすることで、効率性と信頼性を実現します
。 4. 実験による比較

II. 関連作業

B. ブロックチェーンベースのフェデレーテッド ラーニング

従来のフェデレーション ラーニングはサーバーの参加に大きく依存しており、単一障害点が発生しますが、
ブロックチェーンの分散化によりサーバーが置き換えられ、単一障害点やサーバーの悪意のある動作の脅威が排除されます。
ラマナンら。[18] は、スマート コントラクト (SC) を使用してローカル モデルを集約する、BAFFLE というブロックチェーン ベースの FL ソリューションを導入しました。従来の方法と比較して、バッフルは単一障害点を回避し、ブロックチェーン FL のガスコストを削減します。同様に、キムら。[37] は、ブロックチェーン上に事前に展開されたスマート コントラクトを通じてローカル モデルの更新が交換および検証される BlockFL を提案しました。BlockFL は、単一障害点の問題を克服するだけでなく、トレーニング サンプル サイズに比例したインセンティブを提供することで、より多くのデバイスとより多くのトレーニング サンプルの統合を促進します。ただし、上記のソリューションはスマート コントラクトを通じてローカル モデルを集約するため、ブロックチェーン ネットワーク内のノードに大きな計算負荷と通信負荷がかかりますさらに、これらのソリューションは悪意のある勾配を区別できません。これらの問題に対処するために、Li et al. [33] は、コンセンサス計算の量を効果的に削減し、悪意のある攻撃を防止する、ブロックチェーンベースの委員会コンセンサスのためのフェデレーテッド ラーニング フレームワーク (BFLC) を提案しました。ただし、委員会の選考基準は対処する必要がある問題です。

Ⅲ.予選

A.フェデレーテッド ラーニング

標準のフェデレーテッド ラーニング設定では、nnn 人の顧客{ C 1 , C 2 , . . . , C n } \{C_1,C_2,...,C_n\}{ C1C2... C各クライアントにはローカル データ セットD j , j = 1 , 2 , 3 , ... , n D_j,j=1,2,3,...,n がありますDjj=1 2 3 ... nandD = {D 1 , D2 , . , D n } D=\{D_1,D_2,...,D_n\}D={ D1D2... D}は結合されたデータセットを表します。iiiラウンドクライアントC j C_jCj中央サーバーから受信したローカル データ セットとモデル パラメーターwi − 1 w_{i-1}を使用しますwi 1ローカル モデルをトレーニングするために、最適化された目的関数は式 (1)
ここに画像の説明を挿入します
xxのようになります。xはトレーニング データ、yyyはラベルL ( x , w , y ) L(x,w,y)L ( x ,y )は経験的損失関数です。中央集約は、方程式 (2) のようなパラメーターをクライアントから受け取ります。 }gj=D Dj

B. 中毒攻撃

フェデレーション ラーニングがポイズニング攻撃に対して脆弱であることはよく知られています。毒攻撃では、相手はκ κを制御しますκクライアントはローカル モデルを操作し、最終的にはグローバル モデルに影響を与えますwww精度。相手の目的に応じて、毒攻撃は標的型攻撃と非標的型攻撃に分けられます。スケーリング攻撃などの標的型攻撃は、データセット内の 1 つまたはいくつかのデータ カテゴリのみをターゲットにし、他のカテゴリのデータの精度を維持します。Krum 攻撃や Trim 攻撃などの非ターゲット攻撃は、すべてのデータ カテゴリの精度を低下させることを目的とした無差別攻撃です。

グローバルモデルを減らすためにwww精度​​、データポイズニング攻撃、およびモデルポイズニング攻撃は、通常、相手の能力に基づいて開始されます。データ ポイズニング攻撃 (つまり、ラベル フリッピング攻撃) では、攻撃者はデバイスのローカル データをポイズニングすることによって、間接的にグローバル モデルをポイズニングします。モデル ポイズニング攻撃では、攻撃者はデバイスとサーバー間で通信されるモデルの更新を直接操作および制御でき、これはグローバル モデルの精度に直接影響します。したがって、モデル ポイズニング攻撃は通常、データ ポイズニング攻撃よりも FL に大きな影響を与えます。

チョン・キム・キム・ソン(FHE のテーマ)

CKKS では、独自のエンコード、デコード、および再スケーリング メカニズムを使用して、浮動小数点数とベクトルの暗号化が可能です。

ここに画像の説明を挿入します
ここに画像の説明を挿入します

スマートコントラクト

スマート コントラクトはブロックチェーン上に記述されたコードであり、イベントが契約の条件をトリガーすると、コードは自動的に実行されます。ブロックチェーンは、分散化、データの改ざん防止などのブロックチェーンの多くの特性を技術的な観点から利用できるため、スマート コントラクトとの整合性が非常に高いです。視点:見知らぬ人の間の信頼の問題を解決します。

IV. 問題の定式化

システム モデルには、キー配布センター、クライアント、ソルバー、検証者、ブロックチェーン センター システムの 5 つのエンティティが含まれています。
鍵生成センター (KGC) : クライアントと検証者向けに公開鍵と秘密鍵のペアを生成する信頼できる権威センター;
クライアント: データ所有者、クライアントはKGC によって提供される(p​​kk, skk) (pk_k,sk_k)を持っています。( p ks k)の目的は、共通のグローバル モデルの恩恵を受けることです。
ソルバー: 小さくてクリーンなデータセットを用意しますD 0 D_0D0中央サーバーであるソルバーは、クライアントから送信されたすべての勾配を集約する役割を果たします。
Verifier : ソルバーと連携し、KGC によって制御される 1 組の KGC を持つ非共謀の中央サーバーK GCで生成された公開鍵秘密鍵ペア(pkv, skv) (pk_v,sk_v)pk _vs kv)
ブロックチェーン システム: 利己的な行動を避けるために、中央サーバーは潜在的なペナルティを得るために SC (スマート コントラクト) にデポジットを置く必要があります。さらに、透過的な計算プロセスを実現するために、結果をブロックチェーンにアップロードする必要があります。
システム エンティティ全体のプロセスは次のとおりです。pkv pk_v
を使用して正規化を実行します。PK _vローカル勾配は暗号化され、ソルバーとベリファイアは複数ラウンドで通信してプライバシーを漏らすことなくユーザー リストを構築します。クライアントは勾配を正直に正規化します。通信プロセスはブロックチェーンに記録され、ソルバーはユーザー リスト内のクライアントの勾配を集計してpkx pk_xを取得します。PK _×暗号化されたグローバル モデルはブロックチェーンに保存されます。ソルバーとバリデーターのクライアントはどちらも、スマート コントラクトにデポジットを支払う必要があります。
ここに画像の説明を挿入します

B.問題の定義

従来の安全な集約シナリオとは異なり、 nnを使用したフェデレーテッド ラーニング シナリオを検討します。n人のクライアントのうちkkk悪意のあるクライアント。まず、kkk個の悪意のあるクライアントの知識と機能は次のように定義されます。
(1) 悪意のあるクライアントは、それ自体の有害なデータを保持する可能性がありますが、他の正当なクライアントのローカル データにはアクセスできません。
(2) 悪意のあるクライアントは、暗号化されたグローバル モデルを取得し、それを復号して情報を取得する可能性があります。ただし、単一の誠実なクライアントによってアップロードされたローカル モデルの更新は観察できません。
(3) 悪意のあるクライアントは互いに共謀し、悪意のある攻撃の影響を拡大するという共通の目標を持っている可能性があります。
(4) 悪意のあるクライアントは、標的型攻撃または非標的型攻撃を開始する可能性があります。
悪意のあるクライアントは、グローバル モデルを間違った方向に導く可能性があります。
ここに画像の説明を挿入します
悪意のあるクライアントもグローバル モデルの精度に影響を与える可能性があります。

C. 脅威モデル

KGC KGCK GCは誠実な第三者です。ソルバーと検証者は共謀していませんが、正直で好奇心があります。彼らは確立されたプロトコルを誠実に実装しますが、一部の機密情報を推測することに興味を示す可能性があります。この記事では、次の 2 つのタイプの顧客について検討します。 1. グローバル モデルからの正直な利益。ローカル データ セットでトレーニングされた実際の勾配をアップロードします。2. 悪意のあるクライアントは、グローバル モデルの精度を低下させるために悪意のある勾配をアップロードします。提起される脅威は次のとおりです。
ポイズニング攻撃: 悪意のあるクライアントの目的は、検出されずにグローバル モデルのパフォーマンスに影響を与えることです。悪意のあるクライアントは、さまざまな方法でポイズニング攻撃を開始する可能性があります。たとえば、データのラベルを変更し、有害なデータでトレーニングされた勾配をアップロードします。
データ漏洩: 勾配はクライアントのローカルデータのマッピングであるため、クライアントが平文勾配を直接アップロードすると、攻撃者は誠実なクライアントの元の情報をある程度推測または取得でき、その結果クライアントデータが漏洩します。
推論攻撃: 私たちのスキームでは、ソルバーと検証者検証者検証者はいくつかの中間結果を交換して、ローカル更新の集約を完了しますしたがって、中間結果から機密情報を推測しようとする可能性があります。

D. 設計目標

私たちの目標は、ポイズニング攻撃に抵抗し、計算オーバーヘッドを削減し、プライバシーを保証できる、ブロックチェーンベースのプライバシー保護 FL スキームを設計することです。同時に、私たちのスキームは FedAvg または FedSGD と同じかほぼ同じ精度を達成する必要があります。
具体的には、主に堅牢性、プライバシー、効率、精度、信頼性の達成という目標を達成することに取り組んでいます。

デザイン

このソリューションは CKKS 準同型暗号を使用しており、実験により Piller と比較した場合、CKKS の方が効率が高いことがわかりました。
さらに、悪意のあるクライアントが悪意のある勾配を送信することでトレーニング プロセスを妨害する可能性がある一方で、「正直だが好奇心旺盛な」中央サーバーがクライアントに関する機密情報を推測する可能性があることを考慮する必要があります。
ここに画像の説明を挿入します
C \数学{C}C は、ルール∣ C ∣ |\mathcal{C}|に従って選択された誠実な正規化されたクライアントのセットとして定義されます。∣C∣は数量です
図 4 にスキームの概要を示します。
各クライアントはローカル更新を暗号化および正規化し、それらをソルバー (ソルバー) に送信します。正規化された勾配はセットC \mathcal{C}Cを使用し、コサイン類似度を使用して、正直な勾配と悪意のある勾配を判断します。具体的な方法: クリーンで小さなデータセットD 0 D_0
ソルバーにD0(ルート データ セット)、このデータ セットに基づいてグローバル モデルw 0 w_0を維持します。w0gj 0 g_j^0の場合gj0そしてギジ g_i^jgjのコサイン類似度が 0 未満の場合、クライアントC j C_jCjそれは単なる悪意です。ソルバーはiiにありますラウンドiでgij g_i^jを破棄するgj
勾配のサイズはグローバル モデルにも影響します。クライアントが影響を高めるためにより大きな勾配を使用する場合は、ソルバーに送信する前に正規化する必要があります。ただし、悪意のあるクライアントは正規化されていない勾配をアップロードする可能性があります。この問題を解決するために、計画では共謀しない中央ソルバーを導入します。ソルバーとベリファイア間の通信を通じて、ソルバーは正直で正規化されたクライアント セットを取得し、pkx pk_xを使用します。PK _×暗号化されたローカル更新。最後に、ソルバーはローカル更新を集約してグローバル モデルを取得します。
中央サーバーの悪意のある動作を防止し、単一障害点のリスクを軽減するために、ユーザー リストC \mathcal{C}Cの中間結果と、Solver と Verifier の共同計算をブロックチェーンに保存する必要があります。具体的には、ソルバーと検証者はスマート コントラクトにデポジットを支払い、正しい計算を実行するよう促します。さらに、各トレーニング反復の中間結果と暗号化されたグローバル モデルは、中央サーバーに障害が発生した場合にタイムリーにバックトラッキングできるようにブロックチェーンに保存され、スキームの信頼性が向上します。

B. PBFLの建設

PBFLには、ローカル計算、正規化判定、モデル集計の3つの処理があります。

ローカルコンピューティング

ローカル計算: ローカル トレーニング、正規化、暗号化、モデルの更新が含まれます。
ローカル トレーニングの
ここに画像の説明を挿入します
ここに画像の説明を挿入します
正規化
集計ルールはコサイン類似度に基づいており、集計ルールを暗号文で機能させるために、暗号化の前にローカル勾配を正規化します。勾配は方向ベクトルとして扱われます。
各クライアントC j C_jCj次の方程式を使用して正規化します。
ここに画像の説明を挿入します
各クライアントは、暗号化の前にローカル勾配を正規化する必要があります。まず、正規化操作により、集計ルールを変更せずに暗号文に直接適用できるようになります。正規化によりコサイン類似度をベクトルの内積に変換するためです。第 2 に、ベクトルは同じサイズであるため、悪意のある勾配の影響が軽減されます。これは、悪意のあるクライアントが影響を増幅するために、より大きな規模のローカル勾配をアップロードする傾向があるという直観に基づいています。
暗号化
クライアントC j C_jCj公開キーpkv pk_vを使用するPK _vg ~ ij \tilde{g}_i^jを暗号化するにはg~j(CKKS)、勾配は通常、符号付き浮動小数点数です。パイリエなどの別の暗号化スキームが使用される場合は、最初に勾配値を量子化してクリップし、次に各値を個別に暗号化する必要がありますが、これにより間違いなく高い計算オーバーヘッドが発生します。したがって、CKKS を使用してローカル グラデーションを暗号化します。各層のg ~ ij \tilde{g}_i^j
を置きますg~jベクトル、具体的には Verifier を使用する各クライアントの公開鍵pkv pk_vとして扱われます。PK _vさまざまなレイヤーのグラデーションを直接暗号化します。ベクトルの長さが長すぎる場合は複数回暗号化し、それ以外のベクトルについては 1 回暗号化します
モデル更新
クライアントC j C_jCj秘密鍵skx sk_xを使用して、ブロックチェーンから最新のグローバル モデルをダウンロードします。s k×平文のグローバル モデルを取得しますwi − 1 w_{i-1}wi 1ローカル モデルは次のように更新されます:
ここに画像の説明を挿入します
α \alphaαは学習率です

正常化された判断

ソルバーは、クライアントから勾配を受け取った後、勾配が本当に正規化されているかどうかを判断する必要があります。
暗号化された勾配[ ⁣ [ g ~ ij ] ⁣ ] pkv [\![\tilde{g}_i^j]\!]_{pk_v} を受信した後[[g~j]]PK _vソルバーは[ ⁣ [ g ~ ij ] ⁣ ] pkv ⊙ [ ⁣ [ g ~ ij ] ⁣ ] pkv [\![\tilde{g}_i^j]\!]_{pk_v}\odot[\![ \チルダ{g}_i^j]\!]_{pk_v}[[g~j]]PK _v[[g~j]]PK _v検証者に送信されました、⊙ \odotは内積を表します。
具体的には、CKKS は標準的なベクトル計算と比較して安全性と効率性の間で適切なトレードオフを提供するため、多項式を使用します。メッセージがいくつかの多項式に暗号化されると、CKKS は、加算、乗算、回転など、そのメッセージに対して実行できるいくつかの演算を提供します。具体的には以下の
通りn ∗ n^*n -次元ベクトル[ ⁣ [ g ~ ij ] ⁣ ] pkv [\![\tilde{g}_i^j]\!]_{pk_v}[[g~j]]PK _v[ ⁣ [ p 1 , p 2 . . . pn ∗ ] ⁣ ] pkv [\![p_1,p_2...p_{n^*}]\!]_{pk_v}として表現されます。[[ p1p2... pn]]PK _v、乗算によって内積を取得します[ ⁣ [ p 1 2 , p 2 2 . . . pn ∗ 2 ] ⁣ ] pkv [\![p_1^2,p_2^2...p_{n^*}^2] \!]_{pk_v}[[ p12p22... pn2]]PK _v 回転して[ ⁣ [ p 2 2 , p 3 2 . . . pn ∗ 2 , p 1 2 ] ⁣ ] pkv [\![p_2^2,p_3^2...p_{n^*}^2, p_1 ^2]\!]_{pk_v}[[ p22p32... pn2p12]]PK _v次に、これら 2 つのベクトルを加算します。回転と加算の演算を繰り返します ( n ∗ − 1 n^*-1n1回)、[ ⁣ [ r 1 , r 2 . . . rn ∗ ] ⁣ ] pkv [\![r_1,r_2...r_{n^*}]\!]_{pk_v} を取得[[ r1r2... rn]]PK _v比率r 1 = p 1 2 + p 2 2 + p 3 2 + . . . . . . . . pn ∗ 2 r_1=p_1^2+p_2^2+p_3^2+...p_{n^*}^2r1=p12+p22+p32+... pn2次に[ ⁣ [ r 1 , r 2 . . . rn ∗ ] ⁣ ] pkv [\![r_1,r_2...r_{n^*}]\!]_{pk_v}[[ r1r2... rn]]PK _v[ 1 , 0 , 0 , . . . 0 ] [1,0,0,...0]の場合[ 1 0 0 ...0 ]を乗算して[ ⁣ [ r 1 ] ⁣ ] pkv = [ ⁣ [ g ~ ij ] ⁣ ] pkv ⊙ [ ⁣ [ g ~ ij ] ⁣ ] pkv [\![r_1]\!]_{ pk_v}=[\![\tilde{g}_i^j]\!]_{pk_v}\odot[\![\tilde{g}_i^j]\!]_{pk_v}[[ r1]]PK _v=[[g~j]]PK _v[[g~j]]PK _v
ここに画像の説明を挿入します

モデルの集約

VerifierからユーザーリストCCを受信後Cの後、ソルバーはコレクションCC をクライアントがアップロードしたCのグラデーション。具体的には、ソルバーとベリファイアはまず、ソルバーが中間結果を取得してpkx pk_xPK _×暗号化されたローカル モデルの更新。次に、ソルバーは、事前定義された集計ルールに基づいて暗号化されたグローバル モデルを取得し、ブロックチェーンにアップロードします。

二者計算: Sover は最初に[ ⁣ [ g ~ i 0 ] ⁣ ] pkv [\![\tilde{g}_i^0]\!]_{pk_v} を計算します。[[g~0]]PK _v[ ⁣ [ g ~ ij ] ⁣ ] pkv [\![\tilde{g}_i^j]\!]_{pk_v}[[g~j]]PK _v次に、コサイン類似度が Verifier に送信されます。私たちの集計ルールは、正直なルート ノードD 0 D_0に依存しています。D0および関連するモデルw 0 w^0w0 、これはグローバル モデルの予想される更新方向を決定するためにも使用されるため、 gi 0 g_i^0と同じです。g0類似した方向が多いほど、集計中の重みD 0 D_0が大きくなります。
D0データ セットは、手動でラベルを付け、信頼できるルート データ セットD 0 D_0を収集することで取得できます。D0
ここに画像の説明を挿入します
手動ラベル付けのコストは、通常、セクションiiのソルバーで手頃な価格です。i- round の反復中D 0 D_0D0トレーニング時に、勾配更新gi 0 g_i^0を取得します。g0 然后使用 g ~ i 0 = g i 0 / ∣ ∣ g i 0 ∣ ∣ \tilde{g}_i^0=g_i^0/||g^0_i|| g~0=g0/∣∣ g0∣∣正規化ソルバー暗号化は[ ⁣ [ g ~ i 0 ] ⁣ ] pkv [\![\tilde{g}_i^0]\!]_{pk_v} を[[g~0]]PK _v、上記の式に従ってコサイン類似度を計算します。ここでC j C_jCjg ~ ij = [ p 1 , p 2 , . . . pn ∗ ] \tilde{g}_i^j=[p_1,p_2,...p_{n^*}] を取得します。g~j=[ p1p2... pn] ,ソルバー获得g ~ i 0 = [q 1 , q 2 , . qn ∗ ] \tilde{g}_i^0=[q_1,q_2,...q_{n^*}]g~0=[ q1q2... qn]暗号化後の勾配は[ ⁣ [ p 1 , p 2 , . . . pn ∗ ] ⁣ ] pkv [\![p_1,p_2,...p_{n^*}]\!]_{pk_v}[[ p1p2... pn]]PK _v[ ⁣ [ q 1 , q 2 , . qn ∗ ] ⁣ ] pkv [\![q_1,q_2,...q_{n^*}]\!]_{pk_v}[[ q1q2... qn]]PK _v, 正規化演算があるため、2 つのベクトルのコサイン類似度の計算は内積の計算になります。
ここに画像の説明を挿入します
csij cs_i^jcs _j測定値[ ⁣ [ g ~ i 0 ] ⁣ ] pkv [\![\tilde{g}_i^0]\!]_{pk_v}[[g~0]]PK _v[ ⁣ [ g ~ ij ] ⁣ ] pkv [\![\tilde{g}_i^j]\!]_{pk_v}[[g~j]]PK _v類似度、負の値はデータセットの勾配方向と反対の方向を表し、グローバルモデルに悪影響を及ぼすため、
ここでは Relu 関数を使用してリストCCを制限します。Cのグラデーション

最大関数の理解

準同型暗号化された数値を比較する数値手法
ReLu 関数を使用するには、準同型暗号文の比較が必要です。この記事では、2019 年の Yami 論文「準同型暗号化された数値を比較する数値手法>」からアルゴリズムを選択しました。グループミーティングで先生に注意された後、私もミーティング後に論文の該当部分にあるアルゴリズムを探しました。これには、実際には、まず正の実数の平方根の計算が含まれます。元の論文では、最初にS qrt ( x ; d ) Sqrt (x ; d) が提案されました。Sq r t ( x ;d )アルゴリズム:
[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-ydBrsOzr-1679397343958)(./pic/20230321_sqrt.png) ]
論文は上記のアルゴリズムを指摘しています。出力はS qrt ( x ; d ) Sqrt(x;d)Sq r t ( x ;d ) x \sqrt{x}に対する相対値バツ ( 1 − x 4 ) 2 d + 1 (1-\frac{x}{4})^{2d+1}で区切られる( 14×2 d + 1通常、この誤差は負の値、つまりS qrt ( x ; d ) Sqrt (x ; d)Sq r t ( x ;d )は通常x \sqrt{x}より小さいバツ .証明
:なぜなら、− 1 ≤ b 0 ≤ 0 -1\leq b_0\leq01b0すべてのn ∈ N n\in \mathbb{N}0nN は、− 1 ≤ bn ≤ 0 -1\leq b_n\leq0として取得できます。1b0なので∣ bn + 1 ∣ = ∣ bn ∣ ⋅ ∣ bn ( bn − 3 ) 4 ∣ ≤ ∣ bn ∣ |b_{n+1}|=|b_n|·|\frac{b_n(b_n-3) } {4}|\leq|b_n|bn + 1=b4b( b3b∣So∣ bn + 1 ∣ ≤ ∣ bn ∣ 2 ⋅ ( 1 − x 4 ) |b_{n +1}|\leq |b_n|^2·(1-\frac{x}{4})bn + 1b2( 14×)を取得します∣bn∣ |b_n|bおよび∣bn + 1 ∣ |b_{n+1}|bn + 1の漸化関係は
: ∣ bd ∣ ≤ ∣ b 0 ∣ 2 d ⋅ ( 1 − x 4 ) 2 d − 1 < ( 1 − x 4 ) 2 d − 1 |b_d|\leq | b_0 |^{2^d}·(1-\frac{x}{4})^{2^d-1}<(1-\frac{x}{4})^{2^d-1}bdb02d⋅ _( 14×2d1<( 14×2d1bn b_n
によるb a n a_n あるの定義は、方程式x ( 1 + bn ) = an 2 x(1+b_n)=a_n^2によって取得できます。× ( 1+b=あるn2さらに関係を取得します:
∣ an − xx ∣ = 1 − 1 + bn < ∣ bn ∣ |\frac{a_n-\sqrt{x}}{\sqrt{x}}|=1-\sqrt{1+b_n} < |b_n|バツ あるバツ =11+b <b∣したがって、
大きな整数 d をとった場合、誤差は非常に小さくなるので、アルゴリズムx \sqrt{x}バツ 正しさが検証できる。
max アルゴリズム
この部分も理解しやすいですmin (a, b) min(a,b)を求める場合( a ,b )max ( a , b ) max(a,b)マックス( a , _b) 由下列的关系:
m i n ( a , b ) = a + b 2 − ∣ a − b ∣ 2 = a + b 2 − ( a − b ) 2 2 min(a,b)=\frac{a+b}{2}-\frac{|a-b|}{2}=\frac{a+b}{2}-\frac{\sqrt{(a-b)^2}}{2} ( a ,b )=2a + b2a b=2a + b2( a b )2
max ( a , b ) = a + b 2 + ∣ a − b ∣ 2 = a + b 2 + ( a − b ) 2 2 max(a,b)=\frac{a+b}{2}+\ frac{|ab|}{2}=\frac{a+b}{2}+\frac{\sqrt{(ab)^2}}{2}マックス( a , _b )=2a + b+2a b=2a + b+2( a b )2
正当性の検証も取得しやすくなり、最大最大のmax条件ではa >= b a>=bある>=ba<ba<bある<bの場合を議論した後max (a, b) max(a,b)マックス( a , _b )は、それぞれa 2 + a 2 \frac{a}{2}+\frac{a}{2}2+2b 2 + b 2 \frac{b}{2}+\frac{b}{2}2b+2b
最終的に次の結果が得られます:
ここに画像の説明を挿入します
最終的なアルゴリズムは
ここに画像の説明を挿入します
論文に記載されているように要約されています: ここでの設計アイデアは、Dinghui (サブ暗号) の準同型暗号文比較アルゴリズムから始めて参照できます。これは、要求される範囲を満たしているためです。アルゴリズムを変更し、ReLu関数を変形することもイノベーションポイントを増やすアイデアです。
暗号文の下での Relu 関数の計算を示します。
ここに画像の説明を挿入します
準同型暗号文の数値比較方法は [0,1] の範囲にありますが、コサイン類似度が [-1,1] に該当する場合は、[ ⁣ [ 1 ] ⁣ ] [\![1]\! を追加できます。 ][[ 1 ]]次に、1/2 を掛けて、0 が 1/2 になるように、ReLU 関数を ReLU' に変更します。
ここに画像の説明を挿入します
クライアントのすべてのスコアを取得した後、ソルバーと検証器は連携して、プライバシーを漏らすことなく必要なモデルの集計を取得します。値。
ここに画像の説明を挿入します
以前の作業では、暗号文レベルの比較にデュアル サーバーが使用されていましたが、このシステムでも実装できます。GetParam場合csij cs_i ^ jをカバーするGetP a ramReLu 関数cs _j以下のような状況が発生する可能性があります。(1) デュアルサーバー アーキテクチャはcjij cj_i^jを推論する可能性がありますcj _jクライアントにとって悪いシンボルです。(2) 2 つのサーバー間の通信コストが増加する可能性が
ある 以前の研究により、暗号文レベルの操作の実装が容易になりました。このシナリオではMax Maxを使用しますMaxアルゴリズムReLU 機能を実装しており、クライアントのプライバシーを効果的に保護し、総通信量を削減します。

重合:
ここに画像の説明を挿入します

ここに画像の説明を挿入します

ここに画像の説明を挿入します

さらに、ソルバーと検証者の両方は、共同トレーニングを開始する前にスマート コントラクトにデポジットを送信し、タスクの終了時にクライアントのデポジットに対する報酬を受け取る必要があります。金銭的なインセンティブによって、サーバーは無意味な結果や悪意のある結果を送信するのではなく、正しい計算を実行するようになると私たちは考えているからです。

上記のプロセスのデータの流れについては、次のようになります。ここに画像の説明を挿入します

要約:
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/qq_43245866/article/details/129114504