NAS (Neural Architecture Search) - 3.0 日本語

Vitis AI オプティマイザー ユーザー ガイド (UG1333)

Document ID
UG1333
Release Date
2023-01-12
Version
3.0 日本語

NAS (Neural Architecture Search) の概念は、任意の指定された推論タスクおよびデータセットについて、効率と予測スコアの両方に優れたいくつかのネットワーク アーキテクチャが設計空間内に存在するというものです。多くの場合、開発者は ResNet50 などの使い慣れた標準アーキテクチャから作業を開始し、そのネットワークに学習させることで最善の精度を得ようとします。これに対し、演算コストがはるかに小さいネットワーク トポロジによって同等またはそれ以上の精度が得られる場合がよくあります。開発者にとって、同じデータセットを使用して複数のネットワークに学習させる (最終的にはこれを学習用のハイパーパラメーターとする) ことは、最良のネットワーク トポロジを選択するための効率的な方法とは言えません。

NAS は各レイヤーに柔軟に適用できます。チャネル数とスパース度は、プルーニング済みネットワークの損失を最小限に抑えることによって学習されます。NAS は速度と精度の良好なバランスを提供しますが、長い学習時間がかかります。この手法には次の 4 ステップのプロセスが必要です。

  1. トレーニング
  2. 検索
  3. プルーニング
  4. 微調整 (オプション)

粗粒度プルーニングと異なり、ワンショット NAS の実装は複数候補の「サブネットワーク」をスーパーネットと呼ばれる 1 つの過剰にパラメーター化したグラフにまとめます。学習最適化アルゴリズムは、教師あり学習を利用してすべての候補ネットワークを同時に最適化しようと試みます。この学習プロセスが完了すると、演算コストと精度に基づいて候補のサブネットワークがランク付けされます。そして、要件を満たす最良の候補を開発者が選択します。ワンショット NAS 手法は、depthwise たたみ込みと一般的なたたみ込みの両方を実装したモデルを圧縮するのに効果的ですが、長い学習時間がかかり、開発者に高いスキルが求められます。