nekonookangae / SummarizePapers

個人用。翻訳した論文をIssuesにまとめていきます。
1 stars 0 forks source link

An Overview of Multi-Task Learning in Deep Neural Networks #9

Open nekonookangae opened 4 years ago

nekonookangae commented 4 years ago

一言でいうと

マルチタスク学習の歴史についてまとめたサーベイ論文。 1993年から2017年までの研究の進歩を、先行研究を用いて分かりやすくまとめている。

論文リンク

https://arxiv.org/pdf/1706.05098.pdf

著者/所属機関

Sebastian Ruder

投稿日付

2017/1/15

概要

マルチタスク学習(MTL)は、自然言語処理や音声認識からコンピュータービジョンや創薬まで、機械学習の多くのアプリケーションで成功を収めています。 この記事は、特にディープニューラルネットワークにおけるMTLの一般的な概要を提供することを目的としています。 ディープラーニングにおけるMTLの最も一般的な2つの方法を紹介し、文献の概要を示し、最近の進歩について説明します。 特に、MLの実践者がMTLがどのように機能するかを明らかにし、適切な補助タスクを選択するためのガイドラインを提供することで、MLの実践者を支援することを目指しています。

はじめに

機械学習(ML)では、これが特定のベンチマークのスコアであるか、ビジネスKPI ※1であるかに関係なく、通常、特定のメトリック (特徴量空間) の最適化を問題にします。 これを行うには、通常、単一のモデルまたはモデルを一緒にを学習して、目的のタスクを実行します。 次に、これらのモデルを微調整し、パフォーマンスが向上しなくなるまで微調整します。 通常、この方法で許容できる性能を達成できますが、単一のタスクに焦点を当てることで、関心のあるメトリックをさらに改善するのに役立つ可能性のある情報を無視します。 具体的には、この情報は関連するタスクの学習信号から得られます。関連するタスク間で表現を共有することにより、モデルを元のタスクでより一般化できるようになります。 このアプローチは、マルチタスク学習(MTL)と呼ばれます。 マルチタスク学習は、自然言語処理[Collobert and Weston、2008]から音声認識[Deng et al。、2013]まで、コンピュータビジョン[Girshick、2015]や創薬[Ramsundar]まで、機械学習のすべてのアプリケーションでうまく使用されています。 et al。、2015]。 MTLは多くの形で現れます。Joint learning、Learning to learn (学び方の学習)、および補助タスクを使用した学習は、MTLを参照するために使用されている一部の名前にすぎません。 一般的に、複数の損失関数を最適化するとすぐに、(単一タスク学習とは対照的に)マルチタスク学習を効果的に実行しています。 これらのシナリオでは、MTLの観点から明示的に実行しようとしていることについて考え、そこから洞察を引き出すことが役立ちます。 通常の場合のように1つの損失のみを最適化している場合でも、主なタスクの改善に役立つ補助的なタスクがある可能性があります。 [Caruana、1998]は、MTLの目標を簡潔に要約しています。「MTLは、関連するタスクの学習信号に含まれるドメイン固有の情報を活用することで、一般化を促進します」。

この記事では、特にディープニューラルネットワークを使用したMTLに関して、マルチタスク学習の現在の状態の概要を説明します。 2章では、まずMTLをさまざまな視点から動機付けます。 次に3章で、ディープラーニングでMTLに最も頻繁に使用される2つの方法を紹介します。 続いて4章で、MTLが実際に機能する理由を示すメカニズムについて説明します。 より高度なニューラルネットワークベースのMTLメソッドについて説明する前に、5章で、MTLの文献について説明し、いくつかのコンテキストを提供します。 次に、6章でディープニューラルネットワークにおけるMTLのより強力な最近提案された方法をいくつか紹介します。最後に、7章で、一般的に使用される補助タスクの種類について説明し、MTLの優れた補助タスクを構成する要素について説明します。

※1 KPI:「重要業績評価指標」の略。目標値に対する状況を示す指標。

動機

私たちは様々な方法でマルチタスク学習を動機づけることができます。 生物学的に、マルチタスク学習は人間の学習に触発されていると見ることができます。 新しい仕事を学ぶために、私たちはしばしば、関連する仕事を学ぶことによって得た知識を適用します。 たとえば、赤ちゃんは最初に顔を認識することを学び、次にこの知識を適用して他のオブジェクトを認識することができます。 教育学の観点から、私たちはしばしば、より複雑なテクニックを習得するために必要なスキルを私たちに提供するタスクを最初に学びます。 これは、武道に落ちる適切な方法を学ぶために当てはまります。プログラミングを学ぶだけでなく、柔道も。 ポップカルチャーの例として、The Karate Kid(1984)も考えられます。 映画では、宮城先生が床を紙やすりで磨く、車のワックスをかけるなど、一見無関係のように見える空手の子供を教えています。 しかし、後から見ると、これらは空手を学ぶのに関連する非常に貴重なスキルを彼に装備していることがわかります。 最後に、機械学習の観点からマルチタスク学習を動機づけることができます。マルチタスク学習を帰納的転送の形式と見なすことができます。 帰納的転送は、モデルに他の仮説よりもいくつかの仮説を優先させる帰納的バイアスを導入することにより、モデルの改善に役立ちます。 たとえば、誘導バイアスの一般的な形式はL1正則化です。これにより、スパース解(特徴量変数の値に0が存在する解)が優先されます。 MTLの場合、誘導バイアスは補助タスクによって提供されます。これにより、モデルは複数のタスクを説明する仮説を優先します。後で説明するように、これは一般的に、より一般化したソリューションにつながります。

2つの代表的なMTL手法

これまで、MTLの理論的な動機に焦点を当ててきました。 MTLのアイデアをより具体的にするために、ディープニューラルネットワークでマルチタスク学習を実行するために最も一般的に使用される2つの方法を見ていきます。 ディープラーニングのコンテキストでは、マルチタスク学習は通常、ハードパラメータまたはソフトパラメータ共有のいずれかで隠れ層を共有して行われます。

ハードパラメータ共有

ハードパラメータ共有は、ニューラルネットワークでMTLに最もよく使用されるアプローチであり、[Caruana、1993]に戻ります。 図1に見られるように、いくつかのタスク固有の出力層を維持しながら、すべてのタスク間で非表示レイヤーを共有することにより、一般的に適用されます。 スクリーンショット 2020-03-30 17 41 38(2) ハードパラメータ共有により、Overfittingのリスクが大幅に減少します。 実際、[Baxter、1997]は、共有パラメータをOverfittingさせるリスクは次数N(Nはタスクの数)であり、タスク固有のパラメータ、つまり出力層を過剰適合させるよりも小さいことを示しました。 これは直感的に理解できます。同時に学習するタスクが多いほど、モデルはすべてのタスクをキャプチャする表現を見つける必要があり、元のタスクに適合しすぎる可能性は低くなります。

ソフトパラメータ共有

一方、ソフトパラメータ共有では、各タスクに独自のパラメータを持つ独自のモデルがあります。 次に、図2に示すように、モデルのパラメータ間の距離を正規化して、パラメータが類似するようにします。 たとえば、[Duong et al、2015]は正則化にL2距離を使用し、[Yang and Hospedales、2017b]はトレースノルムを使用します。 スクリーンショット 2020-03-30 17 45 37(2) ディープニューラルネットワークでのソフトパラメータ共有に使用される制約は、他のモデル用に開発されたMTLの正則化手法に大きく影響を受けています。

なぜMTLは機能するのか?

マルチタスク学習を通じて得られる帰納的バイアスは直感的にもっともらしいように見えますが、MTLをよりよく理解するには、その根底にあるメカニズムを調べる必要があります。 これらのほとんどは[Caruana、1998]によって最初に提案されました。 すべての例で、2つの関連するタスクAおよびBがあり、これらは共通の隠れ層表現Fに依存していると想定します。

暗黙的なデータ拡張

MTLは、モデルの学習に使用するサンプルサイズを効果的に増やします。 すべてのタスクは少なくともいくらかノイズがあるので、いくつかのタスクAでモデルを学習する場合、理想はデータ依存ノイズを無視して一般化するタスクAの適切な表現を学習することです。 異なるタスクには異なるノイズパターンがあるため、2つのタスクを同時に学習するモデルは、より一般的な表現を学習できます。

タスクAだけを学習すると、タスクAにOverfittingするリスクがあります。一方、AとBを同時に学習すると、モデルがノイズパターンを平均化することでより適切な表現Fを取得できます。

注意の集中

タスクが非常にノイズの多い場合、またはデータが限られていて高次元である場合、モデルが関連性のある特徴と関連性のない特徴を区別するのが難しい場合があります。 MTLは、他のタスクがそれらの特徴の関連性または無関連性に関する追加の証拠を提供するので、モデルが実際に重要な特徴に注意を集中するのに役立ちます。

立ち聞き

一部の特徴Gは、一部のタスクBについては習得が容易ですが、別のタスクAについては習得が困難です。 これは、Aが特徴とより複雑な方法で相互作用するか、他の特徴がGを学習するモデルの特徴を妨げているためである可能性があります。MTLを使用して、モデルが立ち聞き、つまりタスクBを通じてGを学習できるようにすることができます。 これを行う最も簡単な方法は、ヒント[Abu-Mostafa、1990]を使用することです。つまり、モデルを直接学習して、最も重要な特徴を予測します。

表現バイアス

MTLは、他のタスクも好む表現を好むようにモデルにバイアスをかけます。 これはまた、モデルが将来新しいタスクに一般化するのにも役立ちます。十分に多数の学習タスクに対して十分に機能する仮説空間は、同じ環境からのものである限り、新しいタスクを学習するためにも適切に機能するためです[Baxter、2000 ]。

正則化

最後に、MTLは誘導バイアスを導入することにより、正則化装置として機能します。 このように、モデルのRademacher Complexity、つまりランダムノイズにFittingする能力と同様に、Overfittingのリスクを低減します。

ディープラーニング用のMTLに関する最近の研究

最近の多くのディープラーニングアプローチは、モデルの一部として明示的または暗黙的にマルチタスク学習を使用していますが(顕著な例は次のセクションで取り上げます)、すべて、先に紹介したハードパラメータ共有とソフトパラメータ共有の2つのアプローチを採用しています。 対照的に、ディープニューラルネットワークでのMTLのより良いメカニズムの開発について検討した論文はほんのわずかです。

Deep Relationship Networks

コンピュータービジョンのMTLでは、アプローチは畳み込み層を共有することが多く、タスク固有の全結合層を学習します。 [Long and Wang、2015]は、Deep Relationship Networksを提案することにより、これらのモデルを改善しています。 図3に示すように、共有層とタスク固有の層の構造に加えて、全結合層に事前行列を配置し、モデルがタスク間の関係を学習できるようにします。 以前に見たことがあります。

スクリーンショット 2020-03-30 18 39 15

ただし、このアプローチは、事前に定義された共有層の構造に依存しているため、十分に研究されたコンピュータービジョンの問題には十分ですが、新しいタスクではエラーが発生しやすくなります。

Fully-Adaptive Feature Sharing

[Lu et al、2016]は、反対の極端から始めて、小さいネットワークから始めて、類似のタスクのグループ化を促進する基準を使用して、学習中に貪欲に動的に広げるボトムアップアプローチを提案します。 動的にブランチを作成する拡大手順を図4に示します。

スクリーンショット 2020-03-30 18 42 58

ただし、貪欲法では、グローバルに最適なモデルを発見できない場合があります。一方、各ブランチを1つのタスクに割り当てるだけでは、モデルはタスク間のより複雑な相互作用を学習できません。

Cross-stitch Networks

[Misra et al、2016]は、ソフトパラメータ共有と同様に、2つの別個のモデルアーキテクチャから開始します。 次に、Cross-stitch Unitと呼ばれるものを使用して、モデルが前の層の出力の線形結合を学習することにより、タスク固有のネットワークが他のタスクの知識をどのように活用するかを決定できるようにします。 それらのアーキテクチャを図5に示します。

スクリーンショット 2020-03-30 18 46 29

図5では、プーリング層と全結合層の後のみにCross-stitch Unitを配置しています。

Low supervision

対照的に、自然言語処理(NLP)では、マルチタスク学習のより良いタスク階層を見つけることに焦点を当てた最近の研究:[Søgaardand Goldberg、2016]は、低レベルのタスク、例えば-音声タグ付けと名前付きエンティティの認識は、補助タスクとして使用する場合、下位層で監視する必要があることを明らかにしています。

A Joint Many-Task Model

この発見に基づいて、[Hashimoto et al、2016]は、複数のNLPタスクで構成される階層アーキテクチャを事前定義します。これは、図6にマルチタスク学習の共同モデルとして示されています。

スクリーンショット 2020-03-30 18 54 07

Weighting losses with uncertainty

共有の構造を学習する代わりに、[Kendall et al、2017]は、各タスクの不確実性を考慮することによって直交アプローチをとります。 次に、タスクに依存する不確実性を伴うガウス尤度の最大化に基づいてマルチタスク損失関数を導出することにより、コスト関数における各タスクの相対的な重みを調整します。 ピクセルごとのDepth regression、Semantic、およびInstance Segmentation ※ のアーキテクチャを図7に示します。

スクリーンショット 2020-03-30 19 00 20

※ Semantic Segmentationの発展系で、同じクラスの中でも異なるInstance (物体) の区別を目的としている。

Tensor factorisation for MTL

最近の研究では、MTLの既存のアプローチをディープラーニングに一般化しようとしています。[Yang and Hospedales、2017a]は、テンソル因数分解を使用して、以前に説明した行列因数分解アプローチの一部を一般化し、モデルパラメータをすべての層の共有パラメータとタスク固有パラメータに分割します。

Sluice Networks

最後に、Sluice Networks [Ruder et al、2017]を提案します。これは、ハードパラメータ共有やSluice NetworksネットワークなどのディープラーニングベースのMTLアプローチ、ブロックスパース正則化アプローチ、およびタスク階層を作成する最近のNLPアプローチを一般化するモデルです。 図8に示されているモデルにより、どの層と部分空間を共有する必要があるか、およびネットワークがどのシーケンスで入力シーケンスの最適な表現を学習したかを知ることができます。

スクリーンショット 2020-03-30 19 06 45

モデルで何を共有する必要がありますか?

これらの最近のアプローチを調査したので、ここで簡単に要約し、深いMTLモデルで何を共有するかについて結論を導きます。 MTLの歴史におけるほとんどのアプローチは、タスクが同じ分布から抽出されるシナリオに焦点を合わせてきました[Baxter、1997]。 このシナリオは共有に有益ですが、常に成立するとは限りません。したがって、MTLの堅牢なモデルを開発するためには、無関係なタスクまたは少しだけ関連するタスクを処理できる必要があります。 MTL for Deep Learningの初期の作業では、各タスクのペアで共有する層が事前に指定されていますが、この戦略は拡張されず、MTLアーキテクチャに大きなバイアスをかけます。 [Caruana、1993]によって最初に提案された手法であるハードパラメータ共有は、20年経った今でも標準となっています。 多くのシナリオで役立ちますが、タスクが密接に関連していない場合、または異なるレベルでの推論が必要な場合、ハードパラメータ共有はすぐに機能しなくなります。したがって、最近のアプローチは、何を共有すべきかを学習することに目を向けており、一般に、ハードパラメータ共有よりも優れています。 さらに、モデルにタスク階層を学習する能力を与えることは、特に異なる粒度が必要な場合に役立ちます。 最初に述べたように、複数の損失関数を最適化すると同時にMTLを実行しています。したがって、すべてのタスクの知識を同じパラメータ空間に圧縮するようにモデルを制約するのではなく、これまでに説明したMTLの進歩を利用して、モデルがタスク同士の相互作用を学習できるようにすると便利です。

補助的なタスク

MTLは、複数のタスクの予測を一度に取得することに関心がある場合に適しています。 そのようなシナリオは、たとえば、関連する可能性のある多くの指標の値を予測したい金融予測や経済予測、または複数の疾患の症状を同時に予測したいバイオインフォマティクスで一般的です。 数十または数百の活性化合物を予測する必要がある創薬などのシナリオでは、MTLの精度はタスクの数とともに継続的に増加します[Ramsundar et al、2015]。 ただし、ほとんどの状況では、1つのタスクの性能のみを考慮します。 したがって、このセクションでは、マルチタスク学習のメリットを引き続き享受するために、適切な補助タスクを見つける方法について説明します。

関連するタスク

関連するタスクをMTLの補助タスクとして使用するのが古典的な選択です。 関連するタスクが何であるかを理解するために、いくつかの顕著な例を紹介します。 [Caruana、1998]は、自動運転車のかじ取り方向を予測するための補助タスクとして、道路のさまざまな特性を予測するタスクを使用しています。 [Zhang et al、2014] は、顔の特徴点を検出するための補助タスクとして、頭の姿勢の推定と顔の属性の推定を使用します。 [Liu et al、2015]は、クエリの分類とWeb検索を共同で学習します。 [Girshick、2015]は、画像内のオブジェクトのクラスと座標を共同で予測します。 最後に、[Arıket al、2017]は、音声合成の音素の長さと頻度プロファイルを共同で予測します。

敵対するタスク

多くの場合、関連タスクのラベル付きデータは使用できません。 ただし、状況によっては、達成したいこととは逆のタスクにアクセスできます。 このデータは、勾配反転層を使用して学習エラーを最小化するのではなく最大化しようとする敵対的損失を用いて活用できます。 このセットアップにより、ドメイン適応で最近成功しました[Ganin and Lempitsky、2015]。 この場合の敵対的タスクは、入力のドメインを予測することです。 敵対的なタスクの勾配を逆転させることにより、敵対的なタスクの損失が最大化されます。これは、ドメインを区別できない表現をモデルに学習させるため、メインタスクにとって有益です。

ヒント

前述のように、MTLを使用して、元のタスクを使用するだけでは習得が難しい機能を習得できます。 これを達成する効果的な方法は、ヒントを使用すること、つまり、特徴を補助的なタスクとして予測することです。 自然言語処理のコンテキストにおけるこの戦略の最近の例は、感情分析の補助タスクとして入力文にポジティブまたはネガティブの感情の単語が含まれているかどうかを予測する[Yu and Jiang、2016]と、 名前エラー検出の補助タスクとして、名前が文に存在するかどうかを予測する [Cheng et al、2015]です。

注意の集中

同様に、補助タスクを使用して、ネットワークが通常無視する可能性のある画像の部分に注目を集中させることができます。 たとえば、操縦の学習[Caruana、1998]の場合、単一タスクモデルはレーンマーキングを無視する可能性があります。これは、これらが画像のごく一部を構成し、常に存在するとは限らないためです。 ただし、レーンマーキングを補助タスクとして予測すると、モデルはそれらを表すことを学習する必要があります。 この知識は、メインタスクにも使用できます。 同様に、顔認識の場合、顔のランドマークの位置を補助的なタスクとして予測する方法を学習できます。

量子化スムージング

多くのタスクでは、学習の目的が量子化(=離散値で表現)されます。つまり、連続的なスケールの方が妥当である可能性がありますが、ラベルは離散セットとして使用できます。 これは、病気のリスクの予測(例:低/中/高)や感情分析(肯定/中立/否定)など、データ収集のために人間による評価を必要とする多くのシナリオに当てはまります。 量子化の少ない補助タスクを使用すると、目的がよりスムーズになるため、より簡単に学習できるため、これらの場合に役立つことがあります。

入力の予測

シナリオによっては、一部の特徴を入力として使用することは、目的を予測するのに役立たないため実用的ではありません。 ただし、タスクの学習をガイドできる場合もあります。 これらの場合、特徴は入力ではなく出力として使用できます。 [Caruana and de Sa、1997]は、これが当てはまる場合、いくつかの問題を提起します。

未来を使って現在を予測する

多くの場合、一部の機能は予測が行われることになって初めて利用可能になります。 たとえば、自動運転車の場合、障害物や車線が通過すると、障害物や車線のマークをより正確に測定できます。 [Caruana、1998]は、肺炎予測の例も示しています。その後、追加の医療試験の結果が利用可能になります。 これらの例では、追加のデータは実行時に入力として使用できないため、特徴として使用できません。 ただし、学習中にモデルに追加の知識を与えるための補助タスクとして使用できます。

表現学習

MTLの補助タスクの目的は、モデルがメインタスクに共有または役立つ表現を学習できるようにすることです。 これまでに説明したすべての補助タスクは、暗黙的にこれを実行します。それらはメインタスクと密接に関連しているため、それらを学習することで、モデルが有益な表現を学習できるようになります。 たとえば、モデルが転移可能な表現を学習できることが知られているタスクを採用することにより、より明示的なモデリングが可能です。 [Cheng et al、2015]および[Rei、2017]で採用されている言語モデリングの目的は、この役割を果たします。 同様に、オートエンコーダーの目的は、補助的なタスクとしても使用できます。

どのような補助タスクが役立ちますか?

このセクションでは、1つのタスクのみに関心がある場合でも、MTLを活用するために使用できるさまざまな補助タスクについて説明しました。 ただし、実際にどのような補助タスクが役立つかはまだわかりません。 補助タスクを見つけることは、主に、補助タスクが何らかの方法でメインタスクに関連付けられるべきであり、メインタスクを予測するのに役立つはずであるという仮定に基づいています。 ただし、2つのタスクが類似または関連していると見なす必要がある場合については、まだ十分な考えがありません。 [Caruana、1998]は、同じ機能を使用して決定を下す場合、2つのタスクが類似していると定義しています。 [Baxter、2000]は、関連するタスクが共通の最適な仮説クラスを共有する、つまり同じ帰納的バイアスを持っていると理論的にのみ主張しています。 [Ben-David and Schuller、2003]は、変換Fのセットを使用して固定確率分布から両方のタスクのデータを生成できる場合、2つのタスクはF関連であることを提案しています。 これにより、異なるセンサーが同じ分類問題のデータを収集するタスクを推論することができます。角度や照明条件の異なるカメラからのデータによるオブジェクト認識は、同じ問題を処理しないタスクには適用できません。 最後に、[Xue et al。、2007]は、2つのタスクは、それらの分類境界が存在する場合、つまりパラメータベクトルが近い場合、類似していると主張します。 タスクの関連性の理解におけるこれらの初期の理論的進歩にもかかわらず、私たちはこの目標に向けてあまり最近の進歩を遂げていません。 タスクの類似性はバイナリではなく、スペクトルに存在します。 モデルが各タスクと何を共有するかを学習できるようにすることで、理論の欠如を一時的に回避し、緩やかに関連するタスクのみをより適切に使用できるようになる可能性があります。 ただし、どのタスクを優先するかを知るために、MTLに関するタスクの類似性のより原則的な概念を開発する必要もあります。 最近の研究[Alonso and Plank、2017]は、コンパクトで均一なラベル分布を伴う補助タスクが、NLPのシーケンスタグ付け問題に適していることを発見しました。 さらに、非プラトーの補助タスクですぐにプラトーになるメインタスクの方が、ゲインが高くなることがわかっています[Bingel andSøgaard、2017]。 ただし、これらの実験はこれまでのところ範囲が限定されており、最近の調査結果は、ニューラルネットワークでのマルチタスク学習をより深く理解するための最初の手掛かりを提供するだけです。

おわりに

この概要では、マルチタスク学習における文学の歴史と、ディープラーニングのためのMTLに関する最近の研究の両方をレビューしました。 MTLはより頻繁に使用されていますが、20年前のハードパラメータ共有パラダイムは、ニューラルネットワークベースのMTLにも普及しています。 しかし、何を共有するかを学ぶことに関する最近の進歩は有望です。 同時に、タスク(MTLの類似性、関係、階層、および利点)の理解はまだ限られているため、ディープニューラルネットワークに関するMTLの一般化機能をより深く理解するには、それらをより徹底的に調査する必要があります。