※この記事の続きです。
FLとは、何ができるのか?
ML(マシンラーニング)は聞いたことあるはず。実はその上にFLと言うものがある。
その名を、federated learning
、連合学習と呼ぶ。
AIを使えるようにするには、以下2つを考える必要がある。
- いかに推論精度を上げられるか?
- いかに学習速度を上げられるか?
この内、連合学習とは、いかに学習速度を上げられるか?
に使用される。
(要するに、勉強時間を少なくして、テストで高得点を取るかのうちの、勉強時間を少なくする方)
学習速度を向上させるには、以下2つを考えられる。
- 学習させるPC、インスタンスなどの性能を上げる。(スペックを上げる。)
- 学習させるPC、インスタンスの数を増やす。(学習環境を分散させる。)
(要するに、地頭いい人、1人に勉強させるか、頭良くないけど、100人同時に勉強させるかのうちの100人の方。)
この内連合学習とは、インスタンスの数を増やして、学習環境を分散させる
に属する。
どのようにやるのか?
まず、stadle.aiに対して下図のように、学習させるAIモデルをアップロードする。
アップロードできると、エンドポイントURLがえられるので、そのエンドポイントに対して、アップロードしたAIモデルと同じモデルを学習させるclientで学習させて、学習させた時に、得られる経験則(別名:Weight)をstadle.aiに対して送る。
この経験則(別名:Weight)は実際には数式が羅列されていて、その数式から元々のAIモデルを予測する事がほどんど不可能なので、プライバシー、セキュリティ面が向上する。
どのようなケースで、有用性があるのか?
学習させるデータセットが違う時、各学習でグルーピングしたい時。
例えば、言語予測変換モデルについて考える。当然言語というのは、80代が喋る言語と、20代が喋る言語には乖離がある。
20代が、「とりまコンビニ行く?」「やばい、めんどい」と言う確率は、80代が言う確率より当然大きい。このようなケースを利用して、それぞれの年代にあった喋り方、言語予測変換モデルを生成する事が可能である。