e4exp / paper_manager_abstract

0 stars 0 forks source link

AutoLoss-Zero: Searching Loss Functions from Scratch for Generic Tasks #496

Open e4exp opened 3 years ago

e4exp commented 3 years ago

深層ネットワークの様々なコンポーネントの設計を自動化することで、大きな進歩を遂げています。 しかし、様々な評価指標を持つ一般的なタスクに対する損失関数の自動設計については、まだ十分に検討されていない。 損失関数の自動設計は、人間の専門知識に大きく依存しており、その拡張性には限界があります。 一方、損失関数の探索に関する既存の研究は、特定のタスクや特定の評価基準に焦点を当て、タスク固有のヒューリスティックを用いています。 このような取り組みが、一般的なタスクに拡張できるかどうかは検証されておらず、疑問が残る。 本論文では、汎用的なタスクに対して損失関数をゼロから探索するための最初の一般的なフレームワークであるAutoLoss-Zeroを提案する。 具体的には、異種のタスクや評価指標に対応するために、原始的な数学演算子のみで構成される初等的な探索空間を設計する。 初等探索空間での損失関数の探索には、進化的アルゴリズムの変形を採用しています。 探索効率を向上させるために、損失除去プロトコルと勾配等価チェック戦略を開発し、汎用的なタスクに適用する。 様々なコンピュータビジョンのタスクを対象とした大規模な実験により、我々が探索した損失関数は既存の損失関数と同等かそれ以上であり、異なるデータセットやネットワークにも十分に一般化できることを示す。 コードを公開します。

e4exp commented 3 years ago
  1. はじめに

近年,深層学習のためのAutoMLは目覚ましい進歩を遂げている[64, 37, 32, 31, 38, 12]. アーキテクチャ(ニューラルアーキテクチャ[46]や正規化-活性化演算[31]など)から学習戦略(データ増強戦略[12]、ドロップアウトパターン[38]、学習ハイパーパラメータ[13]など)まで、多くのコンポーネントの自動設計が検討されている。 しかし,深層学習プロセス全体を自動化するには,一般的なタスクに対する損失関数の自動設計という重要な要素が未調査である. 損失関数は、深層ネットワークの学習に欠かせない部品です。 セマンティックセグメンテーション[7, 61]、物体検出[15, 47]、インスタンスセグメンテーション[19, 3]、ポーズ推定[52]などの様々なタスクにおいて、クロスエントロピー(CE)とL1/L2損失は、それぞれカテゴリ化と回帰のためのデフォルトの選択となっている。 デフォルトの損失関数は通常、特定の評価指標に対する近似値であるため、通常、サロゲート損失と最終的な評価指標の間にはミスアライメントが存在する。

例えば,物体検出におけるバウンディングボックスのローカライズには,L1損失が広く用いられているが,評価指標としてはIoU指標が標準的なものである[59]. また,セマンティックセグメンテーション[27]においても,画像全体の精度を測定する評価指標と,セグメンテーション境界を重視する評価指標との間に,同様の不一致が見られる. このように、ネットワークの学習と評価の間にずれがあると、性能が低下した最適ではないソリューションになってしまいます。 異なる評価基準のために、多くの手作りの損失関数が提案されています。 ほとんどの評価指標は微分不可能であり,学習目標として直接使用することはできないため,多くの既存の研究[49, 57, 29, 25, 4, 40, 15]は,特定の評価指標を注意深く分析することにより,CE 損失および L1/L2 損失の微分可能なバリエーションを設計している. また、別の一連の研究[2, 34, 41, 59, 48, 62, 39]では、特定の評価指標の数学的表現に基づいて、巧妙な代用損失を手作りしている。 これらの手作りの損失関数は、対象となる評価指標に対して改善を示すものの、特定のシナリオに対する専門知識と慎重な分析に大きく依存しており、その拡張性には限界がある。 本論文では,一般的なタスクのための損失関数を設計するプロセスを自動化することを目的とする. 損失関数の探索に関する先駆的な研究[26, 54, 33, 27]はいくつかあるが,いずれも特定のタスクや特定の評価指標に限定されており,タスク固有のヒューリスティクスが用いられている. このようなタスク固有のヒューリスティクスが、汎用タスクに適用できるかどうかは検証されておらず、疑問が残る。 一般的なタスクの損失関数を探索することは、様々なタスクや評価指標が不均質であるため、より困難である。 探索空間はそのような異質性に対応できるように基本的なプリミティブ演算子で構成され、探索アルゴリズムは与えられたタスクと評価指標に対して基本的なプリミティブの最適な組み合わせを見つけることができるように効率的でなければならない。 また、探索アルゴリズムには、タスク固有のヒューリスティクスは含まれない。

本論文では、様々なタスクの様々な評価指標に適用可能な、初めての一般的な損失関数探索フレームワークをAutoLoss-Zeroと名付けて紹介する。 AutoLoss-Zeroでは、多様性と表現力を確保するために、プリミティブな数学演算子のみで探索空間を構築する。 また、進化論的アルゴリズムを用いて、人間の専門知識を最小限に抑えながら、高品質な損失関数をゼロから発見します。 具体的には、AutoLoss-Zeroは、損失関数を、原始的な数学的演算子のみで構成される計算グラフとして定式化する(表1参照)。 計算グラフはゼロからランダムに構築され、目標とする評価指標に対する性能に応じて進化していく。 探索アルゴリズムでは、探索効率を向上させるために、有望でない損失関数候補を効率的にフィルタリングするloss-rejectionプロトコルを提案し、探索手順の大幅な高速化を実現している。 また、等価な損失関数の重複評価を避けるために、gradient-equivalencecheck戦略を開発した。 損失除去プロトコルと勾配同等性チェック戦略は、様々なタスクやメトリクスに一般的に適用可能である。 本研究では、セマンティック・セグメンテーション、オブジェクト検出、インスタンス・セグメンテーション、ポーズ推定など、様々なコンピュータ・ビジョン・タスクにおいて本フレームワークを検証する。 COCO [30]、Pascal VOC [14]、Cityscapes [10]などの大規模データセットを用いた広範な実験により、探索された損失は、既存の手作りの損失関数や特別に探索された損失関数と同等かそれ以上であることが示された。

アブレーションの研究では、我々の探索した損失関数が異なるネットワークやデータセットに効果的に一般化できることを示している。

私たちの主な貢献は以下のようにまとめられます。

e4exp commented 3 years ago
  1. 結論

AutoLoss-Zeroは、一般的なタスクに対して損失関数をゼロから検索するための、初めての一般的なフレームワークである。 探索空間は、基本的なプリミティブ演算子のみで構成されている。 探索には、進化的アルゴリズムの変形を採用し、探索効率を向上させるために、損失除去プロトコルと勾配等価チェック戦略を開発した。 AutoLoss-Zeroは、様々なタスクにおいて、既存の損失関数と同等またはそれ以上の損失関数を、最小限の人間の専門知識で発見することができる。

e4exp commented 3 years ago

3. 方法

AutoLoss-Zeroは,タスク(セマンティックセグメンテーションや物体検出など)と,それに対応する評価指標(mIoUやmAPなど)が与えられたときに,ニューラルネットワークを学習するための適切な損失関数をゼロから自動的に探索することを目的としている. 一般的な探索空間が提案されており、その中で各損失関数は計算グラフとして表現されます。 このグラフは、ネットワークの予測値とグランドトゥルースを入力とし、それらを最終的な損失値に変換します。 人間の専門知識を最小限にするために、中間計算ノードとしてプリミティブな数学演算(表1参照)のみを使用し、異なるタスクやメトリクス間の高い多様性に対応しています。 与えられたタスクとメトリックに対する損失関数を探索するために、効率的な進化的アルゴリズムが採用されています。 進化を可能にするために、効果的なランダム初期化と突然変異操作が定義されています。 また、探索効率を向上させるために、新しい損失除去プロトコルと勾配等価チェック戦略を提案し、一般的なタスクに適用する。

3.1. 探索空間

ほとんどのAutoMLアプローチ[64, 37, 32, 31, 38, 12]の探索空間は、特定の目的のために特別に設計されており、損失関数には適していない。 損失関数検索において、[27]はセマンティックセグメンテーションに特化した損失関数検索空間を提案しているが、これは一般的なタスクには拡張できない。 26, 54]では、探索空間は単に既存の損失関数の組み合わせであり、新しい損失関数を形成することはできない。 また、[33]の探索空間もプリミティブであり、我々と最も似ている。 しかし、[33]のプリミティブは、物体検出という特定のタスクのために制約されたセットである。 本節では、一般的なタスクや評価指標に適用可能な損失関数の一般的な探索空間を設計する。

AutoLoss-Zeroは、与えられた評価指標ξを最大化するような、ネットワークを学習するための適切な損失関数を探索することを目的としています。 損失関数L(ˆy, y; Nω)は、ネットワーク予測yˆとそのグランドトゥルースの学習対象yに対して定義され、Nωはωでパラメータ化されたネットワークである。 探索対象は、

max_L f(L; ξ) = ξ (Nω∗(L) ;Seval ), (1) s.t. ω∗(L) = arg min_ω E(ˆy, y) ∈ S_train [L(ˆy, y; Nω)] , (2)

ここで、f(L; ξ)は与えられたメトリックξの下での損失関数Lの評価スコアであり、ω∗(L)はLで学習されたネットワークパラメータであり、E[-]は数学的期待値である。 StrainとSevalは、それぞれ探索プロセスで使用される学習セットと評価セットである。 ネットワーク予測値yˆとその学習対象yは(N, C, H, W)という同じ形をしています。 各テンソルについて、そのバッチ、チャンネル、幅、高さの大きさをそれぞれN, C, H, Wで表す

損失関数の表現

損失関数Lは,計算グラフGとして表現される. 計算グラフは,根を張った木で,葉のノードが入力(ネットワークの予測値や学習対象),根が出力となる. 中間の計算ノードは,一連の原始的な数学的演算から選択され(表1参照),入力を最終的な損失値に変換する. 計算グラフの入力テンソルは,{y, y, ˆ 1} から置換しながらサンプリングされるが,ここでは探索空間の柔軟性を高めるために定数 1 が追加されている. 出力テンソルoは、入力と同じ形(N, C, H, W)をしており、これをさらに集約して最終的な損失値を以下のように形成する。

image

ここでは,クロスエントロピー損失の一般的な手法に倣って,チャネル次元間での正規化は行いません. タスクによっては複数の損失分岐を持つものがあるため(例:物体検出における分類分岐と回帰分岐)、各分岐の損失を個々の計算グラフとして表し、それらの損失値を合計して最終的な損失とする。 M個の枝を持つ損失に対して、各損失の枝の予測値{yˆ1 , yˆ2 , ... ... , yˆM}とそのグランドトゥルースのトレーニングターゲット{y 1 , y2 , . yM}が与えられた場合、最終的な損失関数は次のように表されます。

image

プリミティブ演算子

表1は,我々の探索空間で使用されるプリミティブ演算子セットHをまとめたもので,要素ごとの演算子と,空間とチャネルの次元を超えた情報交換を可能にするアグリゲーション演算子が含まれている。 各集約演算子は,入力テンソルの要素を集約した値に置き換えるマッピングである. すべてのプリミティブ演算子は,計算の妥当性を確保するために,入力テンソルの形状を保持している.

3.2. 探索アルゴリズム

AutoMLの最近の応用例[45, 31]にヒントを得て,適切な損失関数を探索するために,進化的アルゴリズムの変形を採用した. 損失関数の探索に関する既存の研究[26, 54, 27, 33]でも,強化学習や進化アルゴリズムの変形が採用されている. しかし、[26,54,27,33]の探索手法は、特定のタスク、特定のメトリクスでの探索を目的としており、タスク固有のヒューリスティクスを用いている。 このようなヒューリスティックを一般的なタスクに適用できるかどうかは検証されておらず、疑問が残る。 ここでは、AutoLoss-Zeroは、最小限の人間の専門知識で、ランダムな初期化から一般的なタスクの損失関数を検索する。 提案手法は、特定のタスクやメトリクスに特化した設計をしていないため、汎用的なタスクに広く適用可能である。 図1にAutoLossZeroの探索パイプラインを示す。 初期化時には,K個の損失関数(デフォルトではK = 20)がランダムに生成され,初期集団が形成される. 各進化では,母集団のT個の割合(デフォルトではT = 5%)をランダムに選び,評価スコアが最も高いものを親として選択する,すなわち,トーナメント選択[16]を行う. 親は,よく設計された突然変異操作によって子孫を生成するために使用される. 31, 45] に従って,最新の P 個の損失関数 (デフォルトでは P = 2500) のみが維持される. 探索空間は、有望でない損失関数が多数存在する非常にスパースなものであるため、与えられた評価指標と負の相関を持たない損失関数を効率的にフィルタリングするために、新しい損失除去プロトコルが開発されている。 探索中、個々の損失関数の初期化/突然変異プロセスは、結果として得られる損失関数が損失除去プロトコルを通過できるようになるまで繰り返されます。 探索効率をさらに向上させるために、数学的に等価な損失関数の再評価を避けるための勾配等価性チェック戦略が開発された。 他のAutoML作品[31, 45]と同様に、損失関数を評価するための計算コストを削減するために軽量のプロキシタスクが採用されているが、これについてはこのサブセクションの最後で説明する。

損失関数のランダムな初期化。

各初期損失関数の計算グラフはランダムに生成されます。 損失関数の生成過程を図2に示す。 ルート(出力ノード)のみのグラフから出発し、各ノードは、プリミティブ演算子セットH(表1参照)からランダムに1つまたは2つの演算子をサンプリングし、子ノードとしてグラフに追加する。 ルートは1つの子を持つ。 各計算ノードの子ノードの数は、その演算子のアリティによって決定される。 計算ノードが目標深度D(デフォルトではD=3)に到達すると、その子ノードとして入力テンソルをランダムに選択する。 入力テンソルは,計算グラフのリーフノードとなる. ランダムに生成された計算グラフの深さはD + 1であり,ルートからリーフノードまでの各パスにはD個の計算ノードが存在することになる.

変異。

変異処理は、[45]を参考にしているが、変異処理の候補は、我々の探索空間に合わせて特別に設計されている。 図3は変異操作の候補を示したもので,次のように定義される. Hからランダムにサンプリングされた演算子が、ランダムに選択された非根ノードとその親ノードの間に挿入される。 演算子のアリティが2であれば,追加の子として入力をランダムに選択することになる.

  1. 10%の確率でグラフを直接コピーする。
  2. コピーが行われなかった場合、50%の確率で、全計算グラフをランダムに再初期化する
  3. 再初期化が行われない場合、{Insertion, Deletion, Replacement}から一様にサンプリングされた2つの変異操作を順次実行する。

損失除去プロトコル。

我々の探索空間は、損失関数を構成するために原始的な操作のみを使用するという、非常に柔軟なものである。 31, 45, 33]と同様に、このような柔軟性は、大きくて疎な探索空間をもたらします。 ほとんどの損失関数候補は、ランダムに推測するよりも良くないネットワーク性能になる。 損失関数探索において、探索効率を向上させるために、[33]では、ネットワークを学習する前に、有望でない損失関数をフィルタリングするための損失除去プロトコルを設計している。 しかし,これは物体検出に特化して設計されており,一般的なタスクに直接適用することはできない. ここでは、様々なタスクやメトリクスに一般的に適用可能な新しい損失除去プロトコルを提案する。 適切な損失関数を最小化することは、与えられた評価指標を最大化することに対応すべきであるという事実にヒントを得て、一般的なタスクのための効率的な損失除去プロトコルを開発する。 学習セットS_trainからB個のランダムなサンプル(デフォルトではB=5)と、ランダムに初期化されたネットワークNω0が与えられたとき、ネットワークの予測値とそれに対応する学習目標値を{(ˆyb, yb)}^B_b=1として記録する。与えられた評価指標ξと損失関数候補Lとの相関を効率的に推定するために、相関スコアg(L; ξ)を以下のように計算する。

image

ここで、yˆ ∗ b (L)は損失関数Lで最適化されたネットワーク予測値である。 大きなg(L; ξ)は、損失関数Lを最小化することが、与えられた評価指標ξを最大化することに対応することを示す。 そうでなければ、g(L; ξ)が閾値ηより小さければ、損失関数Lは有望ではないとみなされ、却下されるべきである。 ここでは、棄却処理を高速化するために、ネットワークパラメータωの代わりに、ネットワーク予測yˆbに損失関数最適化を直接適用する。 1台のGPUを用いて、提案する損失除去プロトコルは、1分間に500〜1000個の損失関数を処理することができます。 探索では、個々の損失関数の初期化/突然変異処理を、結果として得られる損失関数が損失除去プロトコルを通過できるようになるまで繰り返します。

グラディエント・イクイバレンス・チェック戦略。

数学的に等価な損失関数の再評価を避けるために、勾配等価性チェック戦略が開発された。 各損失関数Lに対して、その勾配ノルムを、損失除去プロトコルで使用されるネットワーク予測値に対して、{k∂L/∂yˆbk2}として計算する。 B b=1とする。B個のサンプルのすべてについて、2つの損失関数の勾配ノルムが有効数字2桁以内で同じであれば、それらは等価であると考えられ、前回の評価指標スコアが再利用されることになる。

代理タスク。

損失関数の評価にはネットワークの学習が必要であり、探索プロセスの中で最も時間がかかる。 他のAutoML作品[31, 45]と同様に、探索処理を高速化するために、損失関数評価ではネットワーク学習のための軽量なプロキシタスクを採用している。 具体的には、より少ない学習反復数、より小さなモデル、ダウンサンプリングされた画像を採用している(詳細はセクション4と付録Aを参照)。 さらに、無効な損失値(NaNやInfの値)でネットワーク学習を停止することで、効率性を高めています。

image