【ふぇろっそ】連合学習の仕組みとは?
こんにちは。Rosso AI部、連合学習担当(?)の中の人です。
先週に引き続き、今日も連合学習のお話を書いていこうと思います。……思いましたが、毎週連載とは本当にネタが続くのかな~?となるわけで、とりあえず今回は前回紹介しきれなかった連合学習の仕組み(処理の流れ)について書いていくつもりです。。。
連合学習のこんな話を聞いてみたい!などありましたら、是非コメントへリクエストを戴けたらと思います。(2回目からその調子で大丈夫なのか?)
連合学習の仕組みとは?
早速連合学習の仕組み(処理の流れ)を見ていきましょう!
①まずはクライアントで学習
先週も書きましたが連合学習の一つの特徴として、学習データをサーバーへ集約させないというのがあります。データはあくまでサーバーではなくクライアント側に残したまま、クライアントでAIを学習させる必要があります。
②クライアントで学習したAIモデルをサーバーへ集約
サーバーへ集約する対象は、学習データではなくAIモデルパラメータとなります。例えばプライバシーの観点から守る必要のある画像データなどはクライアントに残したまま、画像データを使って学習させたAIモデルの方をサーバーへ集約することになるため、連合学習は安全だと言われるわけですね。(さて、これは本当に安全なのだろうか?)
③集められたAIモデルをサーバーで集約処理
サーバーでAIモデルパラメータを集約、主には平均化処理が行われます。集められたAIモデルパラメータを平均化することによって、複数のAIモデルが一つのAIモデルとして集約されます。
④集約されたAIモデルをクライアントへ配信
サーバーで集約(平均化)されたAIモデルパラメータは再び各クライアントへ配信します。クライアントは自分で学習したAIモデルパラメータをサーバーへ送信し、その戻りとして、集約されたAIモデルパラメータ、つまり新しいAIモデルがクライアントに返ってくることになります。
そして再び、返ってきたAIモデルをクライアント側で再学習します。
この流れを何度も繰り返すことによって、連合学習が進んでいくわけです。
で、連合学習って本当に安全なの??
ところで、、、
これって本当に安全なのでしょうかね?(ぇ)
実はAIモデルから学習時に使用するデータを復元するという、モデルインバージョン攻撃というものが存在します。つまり連合学習でどんなに学習データを外部へ流出させないと言っても、このモデルインバージョン攻撃を受けてしまうと、連合学習で学習させたAIモデルから学習に使用した画像を復元することも理論的には可能ということになるわけです。
もちろんモデルインバージョン攻撃そのものが難しいというのもありますが、それでも学習データが復元できてしまうと言われてしまうと、やっぱし連合学習も完璧じゃないと思ってしまいますよね。
が、攻撃手法もあるということは、守る方法もあるわけです。
これは連合学習に限った手法というでもないのですが、例えば差分プライバシーを用いることで、学習時に使用するデータそのものにノイズを追加して学習し、プライバシー保護してしまおうという仕組みがあります。
モデルインバージョン攻撃、差分プライバシーについてはまた次回以降、紹介しようと思います。※こうしておくことで毎週書けるネタが積まれていくんですね!(逃)
最後に、株式会社Rosso AI部では、連合学習の相談も承っております。
こちらから、ご一報いただけると幸いです。