Federated Learningにおける最適アーキテクチャ探索手法!
3つの要点
✔️ Federated Learningで用いるNNのアーキテクチャの設計を自動化
✔️ データセットを直接見ることができない状況でも最適なアーキテクチャを探索
✔️ 手動で設計されたアーキテクチャの性能を超えた
Towards Non-I.I.D. and Invisible Data with FedNAS: Federated Deep Learning via Neural Architecture Search
written by Chaoyang He, Murali Annavaram, Salman Avestimehr
(Submitted on 18 Apr 2020 (v1), last revised 4 Jan 2021 (this version, v4))
Comments: CVPR2020
Subjects: Machine Learning (cs.LG); Computer Vision and Pattern Recognition (cs.CV); Distributed, Parallel, and Cluster Computing (cs.DC); Multiagent Systems (cs.MA); Machine Learning (stat.ML)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめに
近年、プライバシーや機密性まで考えてニューラルネットワークを学習させる需要が出てきています。例えばCT画像などを入力して診断を行うモデルなどでは、データのプライバシーのために、世界中の病院の患者のデータを一か所に集めてモデルを学習させるようなことはできません。このような問題を解決するためのアプローチとして、Federated Learningというものが注目されています。この手法を用いれば、下の図のように各病院が生のCT画像を開示することなくモデルを学習することができます。
しかし近年の研究で、非同一・独立分布であるデータに対して、Federated Learningを用いてモデルを学習させる場合、あらかじめ定義されたモデルアーキテクチャを用いることが最適にならない場合があることがわかっています。また、データの分布をモデル作成者が見ることができないため、よりよいアーキテクチャを手動で設計することは非常に困難です。
そこで著者らは、Federated Learningの自動化の一環として、Federated Learningにおけるニューラルネットワークのアーキテクチャを自動最適化することを考えました。この手法では、各病院などの各エッジサーバでそこにあるローカルデータに対してアーキテクチャと重みを探索し、それらを管理サーバに転送します。その後、管理サーバはそれらを平均化して各エッジサーバに転送します。このプロシージャを繰り返すことで最適なアーキテクチャをFederated Learningの制限下で探索します。実験部分では、提案手法で探索されたアーキテクチャと手動設計のアーキテクチャを比較し、提案手法の有効性を検証します。
提案手法
問題設定
Federated Learningにおいて、K個のエッジサーバがあるとします。各エッジサーバには、それぞれローカルにデータセットDkを持ちます。これらK個のエッジサーバ間で協調して学習する場合、その目的関数は以下のように定義されます。
この式で、wはネットワークの重み、αはネットワークのアーキテクチャ、lはニューラルネットの損失関数を表します。上記の目的関数を最小化するために、先行研究ではアーキテクチャを固定してネットワークの重みを更新し、その結果をもとにアーキテクチャを変化させ、また再びネットワークの重みを更新するといったプロシージャを用いていました。しかし、本論文ではネットワークの重みと同時にアーキテクチャ自身も更新することを提案しています。この場合、上記の目的関数は以下のように定式化できます。
探索空間
NASの構成要素として考える必要があるのは以下の三つです。
- 探索空間の定義
- 探索アルゴリズム
- 性能の推定方法
本論文では、探索空間はDARTSやMiLeNASで定義された既存の探索空間を用います。この探索空間は下の図のようなものです。
ニューラルネットのアーキテクチャはスキップ接続などを含めると過度に探索空間が大きくなってしまうため、しばしば上の図のようにセル単位でアーキテクチャを定義し、そのセルの組み合わせを探索します。本論文でもその手法を用い、セルベースの探索空間を探索します。
探索アルゴリズム
上記の探索空間で、下の式のように各エッジサーバはMiLeNASを用いてローカルのデータにおける最適な重みとアーキテクチャを数エポック分探索します。
Federated Neural Architecture Search
著者らは、以下の手順でFederated Neural Architecture Searchを考えました。
- ローカル探索(各エッジサーバでそこにあるデータを学習、アーキテクチャを探索)
- 各エッジサーバは中央サーバに重みwとアーキテクチャαを送信
- 中央サーバはこれらを集約する
- 集約した結果を各エッジサーバに送信し、各エッジサーバはその値に更新する
この手順を繰り返すことで最適なアーキテクチャを探索します。
中央サーバにおける各エッジサーバの結果の集約は以下のように行われます。
式を見て分かる通り、集約としては単にそれぞれのエッジサーバで得られた結果を平均化しています。
実験
実験設定
エッジサーバとして、GPU(RTX2080ti )を搭載したマシンを16台用意しました。
データセットはCIFAR10で、600000枚の画像を16個のエッジサーバに不均衡に分割して、各エッジサーバに配置しました。
結果
上の図は、非IIDのデータにおけるテスト精度の変化を表しています。(a)は手動で設計したモデル、(b)は提案手法で設計したモデルの結果です。この図を見ると、提案手法で設計したモデルのほうが高い精度が達成できていることがわかります。また、ラウンドごとの精度の向上が安定していることもわかります。
次に、提案手法の効率性の評価を行いました。その結果が下の表になります。
この表を見てわかる通り、提案手法(FedNAS)は探索時間が小さく、さらにコンパクトなモデルが設計できていることがわかります。
まとめ
この論文では、Federated Learningの制限下において、ニューラルネットのアーキテクチャを自動で探索する手法である、FedNASを提案しました。この手法で探索したアーキテクチャは手動で設計したモデルよりも高精度なモデルを設計することができ、また、探索時間も高速であることがわかりました。
この記事に関するカテゴリー