この記事は FedProx の論文であり、一見の価値があります。
この記事は以前にざっと読んだことがあるので、今回はじっくり読まず、より重要な部分、つまり PedProx の実装と収束証明のみを読みます。
定義 1: (-不正確な解)
関数の場合 、 。最適化目標の不正確な解は 、の場合に限り 、 であるとみなします 。値が小さいほど精度が高いことに注意してください。
この考え方は、以降の解析で各ラウンドの計算量を計測する際に利用されます。
その後、記事は FedAvg の主な問題を指摘しました。より多くのローカル エポックを実行すると、より多くのローカル計算が可能になり、通信が削減されますが、通信に制約のあるネットワークでは全体的なコンバージェンス速度が大幅に向上します。ローカル エポックが大きくなると、各デバイスがそのローカルな最適化に向かう可能性があり、それが収束に影響を与え、さらにはメソッドの分岐を引き起こす可能性があります。
固定数のローカル エポックを強制するよりも自然なアプローチは、ネットワークの特性に応じてエポックを変更できるようにし、この異質性を考慮してソリューションを慎重に組み込むことです。
フレームワーク: FedProx
各デバイスに均一のワークロードを強制するのは現実的ではありません。デバイスの利用可能なシステム リソースに基づいてさまざまな量の作業をローカルで実行できるようにすることで FedAvg を一般化し、次に、落伍者から送信された部分的なソリューションを集約します。
言い換えれば、FedProx は、トレーニング全体を通じてすべてのデバイスの均一性を仮定するのではなく、さまざまなデバイスやさまざまな反復に変数を暗黙的に適応させます。正式には、 番目のトレーニング ラウンドの 番目のユーザー に対して、不確実性を定義します。
定義 2: (-不正確な解)
関数の場合 、 。最適化目標の不正確な解は 、の場合に限り 、 であるとみなします 。値が小さいほど精度が高いことに注意してください。
これは、「正規項」を追加した後の現在のラウンド の重みによる損失関数の勾配に、この係数を乗算して値を取得することを意味します。 現在のラウンドによる勾配がこの値より小さくなる重みがある場合、、それは呼ばれます- 不正確な解き方。同様に、 ローカル関数を解くために最初の ラウンドのデバイスでどれだけのローカル計算が実行されたかを測定します 。
近項
近接項は、ローカルの異種データの影響を効果的に制限できます。すべてのクライアントは再度解決され 、代わりに近似項を使用して解決されます 。
近接項は次の 2 つの点で有益です。
- エポックを手動で設定せずに、ローカル更新を制限して初期 (グローバル) モデルに近づけることにより、統計的不均一性に対処します。
- システムの異質性によって引き起こされる可変量のローカル作業を安全にマージできます。
アルゴリズム: FedProx
まず、ラウンドごとに トレーニングに参加するデバイス が選択され 、サーバーは最後のラウンドの集計データを すべてのクライアントに送信します。その後、各ユーザーは 重みを次の関数にする 不正確な解を 見つけます 。
各クライアントは それをサーバーに送り返します。サーバー集約。
著者は、特定のものを選択すると 、 関数のヘッセ行列が正定値になると述べました。これは、元の非凸損失関数が近似項を追加した後に凸関数になる可能性が高いことを意味します。これは凸関数です。 、強い凸関数になります。
また、次の場合に限り、FedAvg が FedProx の特殊なケースであることもわかります。
- μ=0
- 具体的な選択肢は、SGD のローカル ソルバーです。
- デバイスおよび更新ループ全体で一定 (ローカル エポック番号に対応)
以下に、収束の分析と実験比較、およびシステムの不均一性についての説明を示します。
この論文全体を通じて、フェデレーテッド ネットワークにおける体系的かつ統計的な異質性に対処する最適化された集約アルゴリズムである FedProx を提案します。FedProx では、集約を安定させるために近位項に依存して、さまざまな量の作業をデバイス間でローカルに実行できます。この記事の一連のフェデレーテッド データセットに対する実証的評価は、以前の理論分析を検証し、FedProx フレームワークが現実世界の異種ネットワークにおけるフェデレーテッド ラーニングの収束を大幅に改善できることを示しています。