「連合学習」はデータそのものを収集せず機械学習モデルを作成できる。携帯の予測変換やクッキー代替などでの活用が始まっている。プライバシー重視のヘルスケアや金融などでの活用が有望視されている。
今回は「フェデレートラーニング(連合学習)」を中心に、データの秘密を担保しながら機械学習モデルを作成する手法を解説する。
欧州連合(EU)において世界で最も厳しい個人情報保護ルールである一般データ保護規則(GDPR)が策定され、個人情報を含むデータの取り扱いが難しくなっている。EU以外でも同地域と取引があれば考慮が必要だし、EU以外でも医療やヘルスケア、金融などプライバシーを重視するデータの取り扱いは留意すべきことが多い。
機械学習は大量のデータを学習することでAIモデルを構築するため、プライバシー重視の動向と両立しない面がある。十分な量のデータを利用できないため精度が上がらず、サービスとして成立しないことも少なくない。
一方でセンター側のサーバーにデータを集めると、その通信路で傍受されたり、センター側のサーバーが攻撃されたりして、データが流出する可能性がある。
パラメーターのみをやり取り
こうした課題を解決するために提案されたのが、フェデレートラーニングである。米GoogleのH.Brendan McMahan氏らが提案したもので、その名の通り複数の拠点やデバイスに置いたデータを統合して、機械学習モデルを作成する。
連合学習の標準的な仕組みは、センター側のサーバーと、スマホやPC、ウエアラブルデバイスなどの端末側で構成する。端末側を「子サーバー」と呼ぶこともあり、その内部で参照できるデータのみを利用して「子モデル」を作成し、学習を行う。
そして、学習後の子モデルのパラメーターのみをセンター側のサーバーに送信。そこで「中央モデル」のパラメーターを更新し、逆に中央モデル側から子モデル側にパラメーターを送り返して、モデルを更新する。
ベストエフォートで活用できる
連合学習の仕組みを見て、合理的と感じる人は多いだろう。各子サーバーにおけるデータや性能の偏り、通信の遅延などから、理論や実装の面でも発展の余地がある仕組みだ。特に子モデルが多数存在するような場合など、中央モデルのパラメーターを完全に更新することができない場合がある。
もっとも連合学習は必ずしもすべての子モデルのパラメーターを更新する必要はない。そのとき参加できる子サーバーのみでよく、子モデル間でデータの偏りがあっても。問題なく学習できることが知られている。つまりベストエフォート型で、学習がしやすい仕組みと言える。
例えば、犬と猫を識別するようなモデルを作成するとき、A社は犬の写真が9割(犬と認識しやすいモデル)で、B社は猫の写真が9割(猫と認識しやすいモデル)のデータを持っていたとしよう。これでも、最終的には犬と猫を認識するモデルを作成できる。