エッジAIラボ
エッジAIラボ
🤝

ブラウザ連合学習 — みんなで育てるAI

あなたのブラウザがFLクライアントに。手書き画像を送信せず、学びだけを持ち寄って1つのAIを育てます。

ブラウザ内で完結 — データ送信なし🟢 📦 約108KB🤖 MNIST CNN(非同期FedAvg)⚖️ 自作

このデモで実際に起きていること

これは演出ではなく、Googleが提案した連合学習(Federated Learning)の仕組みをそのままブラウザで動かしています。 初期モデルはわざと少量データ(600枚)だけで学習した「伸びしろのある」状態から始まり、訪問者の貢献で実際に賢くなっていきます。

1📥

グローバルモデルを受信

サーバーから現在の「みんなで育てているモデル」(27,562パラメータ)をダウンロード。あなたのブラウザがFLクライアントになります。

2🧠

ブラウザ内でローカル学習

お題の数字を5枚手書きすると、あなたの端末のCPU/GPUでモデルを3エポック追加学習。画像はブラウザの外に出ません。

3📨

重みの差分だけを送信

送られるのは学習前後の重みの差分(数値27,562個・約108KB)とサンプル枚数のみ。手書き画像は送信されません。

4⚖️

サーバーで検証・統合

サーバーは移動量の異なる4候補を秘匿検証セット400枚で全評価し最良を採用。精度が下がる更新は棄却されるため、グローバルモデルは決して悪くなりません。

何が送信されて、何が送信されないのか

データサーバーへの送信備考
あなたの手書き画像送信されないブラウザ内のみで使用。送信されない
学習で得た重みの差分(数値の塊)送信される27,562個のfloat値・約108KB
サンプル枚数送信される統合時の移動量調整・正当性チェックに使用
氏名・メール等の個人情報送信されないそもそも取得しない

学術的な正確性のための注記: 連合学習でも「重みから学習データの情報を推測する攻撃」が研究されており、実務では差分プライバシーやセキュア集約を併用します。 本デモは仕組みの体験を目的としており、お題は数字のみ・モデルも極小サイズのため、重みから個人を特定できるような情報は実質的に含まれません。

わざと違う数字を書く攻撃(ラベル汚染)への防御

不特定多数が参加する連合学習では、お題と違う数字をわざと描いてモデルを壊す「ポイズニング攻撃」への対策が必須です。 このデモのサーバーは実際に次の多層防御を実装しています。

🚪 品質ゲート(単調非減少ラチェット)

移動量の異なる4候補を検証セットで全評価し最良を採用。精度を下げる更新は棄却され、グローバル精度は決して下がりません。これが最大の防御です。

🔒 採点表(検証セット)の秘匿

品質ゲートの検証セットはサーバー内のみに置き、Web配信もソース公開もしません。 採点表を知られなければ「採点だけ通る悪意の更新」を作れません。

✂️ 移動量の上限制御

どんなに大きな差分が送られても、グローバル重みが1回に動ける距離(L2ノルム)は上限つき。 1つの更新がモデルを支配できません。

🛡️ 評判クールダウン + レート制限

固定ノルムで評価して「明白な汚染」を繰り返すIPには一定時間のクールダウンを課します。 正常な貢献(精度低下が小さい)は罰しません。

実測: ラベルを故意にずらす攻撃を5回連続で送り込むテストでも、グローバル精度は下がるどころか 80.3%→82.3%に上昇し、攻撃IPは6回目で自動遮断されました。ゲートが「悪意を無害化」し、評判機構が「繰り返しを抑止」します。

正直な限界: 全体精度を保ったまま特定パターンにだけ誤反応を仕込む「バックドア攻撃」は、検証精度ベースの防御だけでは原理的に完全には防げません。 本デモはモデルが極小・移動量も極小なため実害はほぼ理論上に留まりますが、実運用では差分プライバシーやロバスト集約(中央値・Krum等)を併用します。 「単一の更新から悪意を完璧に見分けることはできないが、ゲートにより悪意を無効化できる」のが連合学習防御の要点です。

技術仕様

モデルMNIST CNN(Conv8 → Pool → Conv16 → Pool → Dense64 → Dense10)/ 27,562パラメータ・約108KB
クライアント学習TensorFlow.js(WebGL/CPU)・Momentum SGD(0.01, 0.9)・3エポック。手書き5枚 + シフト拡張15枚 + アンカー画像120枚を混合(破滅的忘却の防止)
入力前処理手書きキャンバスを列射影で桁ごとに分割(2桁の数字に対応)し、各桁をMNIST流に正規化 (境界箱の長辺を20pxへ縮小・重心を28×28の中心に配置)。学習サンプルと推論入力で同一の前処理を共有
サーバー統合シフトラダー方式の非同期FL: 重みの移動量(L2ノルム0.02〜0.15)が異なる4候補を秘匿検証セット400枚で全評価し最良を採用。 精度が下がる更新は棄却(単調非減少ラチェット)。集約サーバーの推論は依存ゼロの純JS実装
汚染対策検証セットはサーバー内秘匿(Web非配信)。固定ノルムプローブで明白な汚染を繰り返すIPはクールダウン。移動量上限・レート制限併用
初期モデルMNIST 600枚・5エポックのみで学習した「弱い」シード(検証精度約86%)。伸びしろを残すための意図的な設計

連合学習をもっと深く知る

なぜ医療・介護・建設・測量のような「データを外に出せない現場」で連合学習が注目されるのか。 FedAvgの仕組み、非IID・ポイズニングなどの課題、Flower / NVIDIA FLAREといった実務フレームワークまで、完全ガイドで解説しています。

連合学習(FL)完全ガイドを読む

連合学習の実験に最適なエッジAI機材

ブラウザの次は実機で。Raspberry PiやJetsonを複数台つなげば、自宅でも本格的な連合学習クラスタを構築できます。

🖥️定番

Raspberry Pi 5

エッジAIの定番ボード。8GB RAMモデルでAI推論からカメラ制御まで幅広く対応。

📷おすすめ

Raspberry Pi AI Camera(IMX500)

Sony IMX500搭載のAI処理内蔵カメラ。カメラ側でAI推論を実行し、ホストの負荷が極めて低い。

🎥

4K Webカメラ(AI対応)

高解像度のWebカメラでAI認識の精度が向上。オートフォーカス・広角対応モデルがおすすめ。

📸

Raspberry Pi カメラモジュール V3

12MPセンサー搭載の公式カメラモジュール。HDR対応・オートフォーカスで高品質な映像入力が可能。

※ 上記リンクはアフィリエイトリンクです。購入により当サイトに収益が発生する場合があります。

シェア: