機械学習で高精度な予測を行うには、大量で高品質なデータを用いて学習することが鍵となっていますが、現実では限られたデータしか取得できない場合があります。転移学習(transfer learning)は、こうした限られたデータで高精度な予測を行うための手法の1つです。
ここでは転移学習の意味、メリット・デメリットや、転移学習のさまざまな技術について紹介します。
転移学習とは
転移学習とは、ある領域の知識を別の領域の学習に適用させる技術です。
たとえば大量の犬の画像データと少量の猫の画像データがあり、犬の種類判別モデルと猫の種類判別モデルを作成する場合、通常の機械学習では下図の左側のように犬と猫別々でモデルを作成します。しかしこのとき、猫の画像は少ないので猫の種類判別モデルは判別精度が低い可能性があります。そこで下図の右側のように、犬の種類判別の課題から得られた知識を猫の種類判別モデルに適応させる転移学習を行うことで、判別精度の向上を図ることができます。
スタンフォード大学教授のAndrew Ng氏が、機械学習のトップカンファレンスであるConference on Neural Information Processing Systems(NeurIPS) 2016 Tutorialで、機械学習の成功を今後推進するのは転移学習であると述べるほど、現在注目を集めている技術です。
出典:https://ruder.io/transfer-learning/index.html
転移学習のメリット
転移学習の流れは、人が過去の経験を活かして新しい物事を習得する流れと似ています。
たとえばピアノを習う際、それまで楽器を習った経験がない人と、ほかの楽器を習った経験のある人とでは、ほかの楽器を習った経験のある人の方がはやく上達する場合があります。これは、ほかの楽器を習った人はピアノの弾き方の知識はなくても、楽譜の読み方やリズム感、練習の仕方といった楽器を弾くうえで必要な知識をもっているためです。
転移学習は、知識の転移によりモデルを上記の例でいう「ほかの楽器を習った経験のある人」の状態にすることで、以下2点のメリットを得ることができます。
- 限られたデータから高精度なモデルを作成できる
- 短時間でモデルを学習できる
データを取得し始めたばかりでデータ量が少ない、データはあるがラベル付けする時間や労力が惜しい、自動運転など実際に運転してデータを取得するのは危険が伴うなど、現実的には高品質なデータを大量に取得することは難しい場合が多いです。転移学習では、大量の高品質なデータのある領域の知識を転移させることで、限られたデータしかない領域においても高精度なモデルを作成できます。
転移学習の種類にもよりますが、学習済みモデルの知識を活用して新たなモデルを学習する場合(後述の既成の事前学習済みネットワークの活用、既成の事前学習ネットワークの微調整)すでに学習済みのモデルの知識を転移するため、0から学習しなくて済み、学習時間を短縮できます。
転移学習のデメリット
良いことづくめのように思える転移学習ですが、知識を移転することで精度の改善ではなく悪化をもたらす場合があります。これを、負の転移(negative transfer)といいます。負の転移が起こる原因としては、転移元と転移先の関連性が低いことや、転移の方法が適していないことなどが考えられます。転移学習を活用する場合は、転移学習をしたモデルとしなかったモデルで精度を比較し、負の転移が起きていないか確認する必要があります。
転移学習の問題設定
ディープラーニングとの相性の良さから今注目を集めている転移学習ですが、「知識を転移する」という発想自体はディープラーニングの登場以前に生まれています。転移学習はディープラーニング特有の技術ではなく、機械学習で活用できるモデルの訓練方法の1つです。
この章と次の章では、論文「A Survey on Transfer Learning(2009)」で整理されている転移学習の定義やアプローチについて説明します。
転移学習の定義
はじめに、転移学習を定義するうえで必要な以下の4つの言葉について説明します。
- ドメイン
- タスク
- ソース
- ターゲット
まずは、ドメインとタスクについて紹介します。前章で、転移学習とはある領域の知識を別の領域の学習に適用させる技術と説明しましたが、この領域=ドメインです。ドメイン\(D\)は、特徴空間\(\chi\)と周辺確率分布\(P(X)\)で構成されます。タスク\(T\)は、ラベル空間\(\gamma\)と、条件付き確率分布\(P(Y|X)\)で構成されます。
サイトの記事がAI関連か否か分類するモデルの例で、ドメインやタスクを図示すると以下のようになります。
次に、ソースとターゲットについて説明します。ソースは知識の転移元を指し、ターゲットは知識の転移先を指します。知識の転移元のドメインはソースドメイン\(D_S\)、タスクはソースタスク\(T_S\)です。同じように、知識の転移先のドメインはターゲットドメイン\(D_T\)、タスクはターゲットタスク\(T_T\)といいます。
転移学習とは、\(D_S, T_S, D_T, T_T\)が与えられたとき、\(D_S≠D_T\)または\(T_S≠T_T\)において、\(D_S\)や \(T_S\)の情報をうまく使って予測関数\(η\)を学習することです。
転移学習の扱う問題
転移学習が行われるのは、\(D_S≠D_T\)または\(T_S≠T_T\)のときです。\(D=\lbrace \chi, P(X)\rbrace, T= \lbrace \gamma, P(Y|X)\rbrace \)という定義から、転移学習の扱う問題は以下の4つに分けられます。
- 特徴空間が異なる問題\(( \chi_S≠\chi_T )\)
- 周辺確率分布が異なる問題\((P(X_S)≠P(X_T))\)
- ラベル空間が異なる問題\((\gamma_S≠\gamma_T)\)
- 条件付確率分布が異なる問題\((P(Y_S|X_S)≠P(Y_T|X_T))\)
先ほどのサイト記事分類の例でいうと、ソースのサイトは日本語版でターゲットのサイトは英語版というように、記事の言語が異なる場合です。特徴空間が異なる問題への転移学習を、異質な転移学習(Heterogeneous Transfer Learning)ともいいます。
ソースのサイトとターゲットのサイトで単語の出現頻度が変わっている場合、つまりソースとターゲットのサイトが異なる場合です。特徴空間は同じで、周辺確率分布が異なる問題への転移学習を、同質な転移学習(Homogeneous Transfer Learning)ともいいます。
ソースのタスクはサイトの記事を2つに分類するのに対し、ターゲットのタスクはサイトの記事を3つで分類する場合です。
ソースのサイトとターゲットのサイトでラベルの出現頻度が異なる場合です。
上記の複数が同時に発生する場合もあります。
転移学習を活用するうえで重要な3つのポイント
上述したように、転移学習とはソースとターゲットのドメインまたはタスクが異なる場合に、ソースから得られた知識を転移してターゲットの問題を解くものです。転移学習の過程では、以下の3つのポイントを考える必要があります。
- 何を転移するのか
- いつ転移するのか
- どのように転移するのか
ターゲットタスクへのパフォーマンスを向上させるために、知識のどの部分をソースからターゲットへ転移すべきか。
知識を移転することで、精度の改善ではなく悪化をもたらす場合がある(負の移転)。問題に対して転移学習の活用が適切か否かの判断に注意する必要がある。
何をいつ転移するのかを決めたら、知識の転移方法を決める。転移する意義のある知識があったとしても、転移方法が適していなければ負の転移を起こす可能性があるため、適切な方法を選ぶ必要がある。
次の章では、さまざまな転移学習技術を問題設定やアプローチに基づき分類して紹介します。
転移学習技術
転移学習は発展が著しく、問題設定やアプローチが乱立している状況にあります。ここでは問題設定やアプローチに基づいて、転移学習技術を分類して紹介します。
問題設定に基づく転移学習技術の分類
モデルを学習する問題設定に応じて、転移学習技術を分類したものが以下の表です。ソースとターゲットのドメインとタスクが同じな場合は、伝統的な機械学習手法(教師あり学習、教師なし学習 など)を用います。
A Survey on Transfer Learning(2009)をもとに作成
- 帰納的転移学習(Inductive Transfer Learning)
- 教師なし転移学習(Unsupervised Transfer Learning)
- トランスダクティブ転移学習(Trunsductive Transfer Learning)
ソースドメインとターゲットドメインが同じか否かに関わらず、ソースタスクとターゲットタスクが異なります。帰納的転移学習は、ターゲットドメインにラベルがあることが前提です。ソースにラベルがあるか否かでさらに2分できます。産業技術研究所の神嶌氏のサーベイでは、ソースドメインにラベルがある場合を帰納的転移学習、ソースドメインにラベルがない場合を自己教示学習と区分しており。名称の定義は文献によって違いがあります。
帰納的転移学習と同じく、ソースタスクとターゲットタスクが異なります。教師なし転移学習は、教師なし学習のタスクであるクラスタリングや次元削減をターゲットドメインで解くものです。この場合、ソースドメインとターゲットドメインの両方にラベルはありません。
ソースタスクとターゲットタスクは同じですがドメインが異なります。ソースドメインの多くのラベル付きデータが利用可能な一方で、ターゲットドメインのラベル付きデータは利用できません。
上述した3種類の特徴をまとめたものが以下の表です。
A Survey on Transfer Learning(2009)をもとに作成
アプローチに基づく転移学習の分類
転移学習のアプローチは、何を転移するかで4種類に分けることができます。個々のドメインやタスクに依存する知識がある一方で、異なるドメイン間で共通の知識もあります。共通の知識を見つけソースからターゲットに転移できれば精度向上に役立つため、何を転移するかは重要な問題です。
- インスタンス転移
- 特徴表現転移
- パラメータ転移
- 関係性のある知識の転移
ソースドメインのインスタンス(観測値, データセット)のある部分を再重み付けすることで、ターゲットドメインの学習に再利用する。
ソースドメインとターゲットドメインの差や、分類・回帰モデルの誤差を軽減する良い特徴表現を見つける。
ソースとターゲットがモデルのハイパーパラメータのパラメータまたは事前分布を共有していることを前提とし、共有されているパラメータや事前分布を発見し、転移学習に役立てる。
各ドメインから引き出されたデータが、従来のように独立で同一に分布することを前提とせず、データ間の関係性をソースドメインからターゲットドメインに転移しようとする。
どの問題設定においてどのアプローチが利用可能かを示したものが以下の表です。
A Survey on Transfer Learning(2009)をもとに作成
ディープラーニングのための転移学習
これまでは機械学習全般で用いられる転移学習技術について説明してきましたが、ここではディープラーニングに焦点を絞ります。論文「A Survey on Deep Transfer Learning(2018)」では、ディープラーニングのための転移学習のアプローチを以下の4種類に分けて紹介しています。より良い結果を得るために、複数のアプローチを組み合わせて使用することもあります。
- ネットワークベース(Network-based)
- インスタンスベース(Instance-based)
- 地図ベース(Mapping-based)
- 敵対ベース(Adversarial-based)
ソースドメインで事前に学習した部分的なネットワークを、ネットワーク構造や重みなどを含めて再利用し、ターゲットドメインで使用するもの。ディープラーニングでの転移学習を調べると、まず最初にこのアプローチが出てくるほど有名。
A Survey on Deep Transfer Learning(2018)をもとに作成
次の節で、ネットワークベースの転移学習と、ネットワークベースの転移学習によく似たファインチューニングについて紹介しています。
前章のインスタンス転移と同じく、ソースドメインのインスタンスのある部分を再重み付けすることで、ターゲットドメインの学習に再利用するもの。
A Survey on Deep Transfer Learning(2018)をもとに作成
ソースドメインとターゲットドメインのインスタンスを新しいデータ空間にマッピングし、2つのドメインの間のインスタンスをより類似させるもの。新しいデータ空間にあるすべてのインスタンスを学習に利用する。
A Survey on Deep Transfer Learning(2018)をもとに作成
GANの技術を活用し、ソースドメインとターゲットドメインの両方に適用可能で転移可能な表現を見つけるもの。ソースドメインとターゲットドメインそれぞれから特徴量を抽出し、GANの識別ネットワークでどちらのドメインからきた特徴量かを判別させる。識別ネットワークの判定精度が低ければ、ソースドメインとターゲットドメインの特徴量の差が小さく、転送性が良い。反対に判別性能が高い場合は、特徴量の差が大きく、転送性が低いといえる。
A Survey on Deep Transfer Learning(2018)をもとに作成
1. 既成の事前学習済みネットワークの活用(ネットワークベースの転移学習)
ディープラーニングでは、異なる層で異なる特徴を学習しています。たとえば犬か否かの画像分類を行うディープラーニングのモデルがあった場合、最終層で犬か否かの最終的な出力が得られますが、最終層の手前までは画像の特徴を学習したネットワークができています。既成の事前学習済みネットワークの活用では、特徴を学習したネットワークの重みは固定したままで、ターゲットのタスクを解くための新たな層の重みのみを学習します。
2. 既成の事前学習ネットワークの微調整(ファインチューニング)
既成の事前学習済みネットワークの特徴抽出器としての活用では、学習済みネットワークの重みは固定し、新たな層の重みのみを学習していました。一方ファインチューニング(fine tuning)では、学習済みネットワークの重みを初期値として、モデル全体の重みを再学習します。
ターゲットのデータセットのサイズが小さい場合は、重み全体を再学習すると過学習を引き起こす可能性があるため、データセットのサイズに応じて新たな層の重みのみを学習するかファインチューニングをするかうまく使い分けることが大切です。
利用可能な事前学習済みモデル
ネットワークベースの転移学習を行うためには、ソースタスクに対して良好なパフォーマンスを発揮するモデルのネットワークが必要です。ディープラーニングでは、開発された高精度なモデルがウェブ上に共有されており、ここではタスク別にネットワークベースの転移学習で利用可能なモデルを挙げています。
- 画像認識
- 自然言語処理
ーVGG-16
ーVGG-19
ーInception V3
ーXCeption
ーResNet-50
ーWord2Vec
ーGloVe
ーFastText
ーUniversal Sentence Encoder by Google
ーBidirectional Encoder Representations from Transformers (BERT) by Google
関連記事:ABEJAが「BERT」を活用した新サービス「ABEJA Insight for Contact Center」を発表
転移学習の関連領域
転移学習は発展が著しく、問題設定やアプローチが乱立している状況です。ここでは、転移学習という名称ではありませんが、ソースから得られた知識を転移してターゲットのタスクを解くという定義に関連した手法を紹介します。
ドメイン適応(Domain Adaptation)
ドメイン適応という言葉は、ソースドメインとターゲットドメインの周辺確率分布が異なる問題設定\((P(X_S)≠P(X_T))\)での転移学習に用いられいる場合が多いです。転移学習の別称として扱われている場合もあります。
蒸留
転移学習は、学習データが少ない場合でも高精度なモデルを作成するため知識を転移します。一方で蒸留は、実用化のため小さくて軽量だが高精度なモデルを作成するため、大きくて深いモデルで学んだ知識を蒸留(圧縮)し、小さくて軽量なモデルの学習に活かしています。
マルチタスク学習
ソースとターゲットを区別せずに、複数のタスクを同時に学習するものです。ソースであらかじめ学習した後に知識を転移してターゲットの問題を解くという転移学習とは、アプローチが異なります。
https://ruder.io/multi-task/をもとに作成
X-shot Learning
one-shot Learningは、Nクラスへの分類問題に対して各クラスに属する学習データが1個ずつしかないような状況でモデルを作成するものです。Zero-shot Learningは、学習データ中に一度も出現しなかったラベルを予測可能なモデルを作成するものです。
転移学習の実例
ここでは、転移学習の活用実例を紹介します。
AppierのDeep Funnel Optimization
Deep Funnel Optimizationは、AIスタートアップAppierが開発した、デジタルマーケティングへ転移学習を応用し、どのような行動をしたユーザーが次の消費行動に結びつくのかを予測する技術です。デジタルマーケティングには、インプレッション、クリック、購買、リテンションという一連のサイクルがあります。Deep Funnel Optimizationでは、インプレッション、クリックという大量に取得可能なデータから得た知識を、購買、リテンションというデータ量が少ない情報の学習に活かしています。
KARAKURI chatbot
カスタマーサポート特化型AIであるKARAKURI chatbotには、運用コスト削減のため転移学習が活用されています。世界最高精度の言語処理アルゴリズムとして注目されているBERTを用いて転移学習し、AIチャットボットとしてQ&Aに特化させました。これにより、FAQの予測精度が大幅に向上し、試運用では「質問・回答パターン」の学習データを作成する人力コストを50%以上削減しています。
オープンハウスの物件資料自動作成システムと全自動帯替えシステム
オープンハウスでは、仲介業務で顧客に提示する資料を作成する際、社内の膨大な数の資料から営業が人手で検索・編集・結合していました。汎用画像分類モデル(ResNet)に対して転移学習を行い、不動産資料に特化した分類モデルを開発することで、社内のファイルサーバに保存された各種営業資料を分類して必要な資料の抜粋、編集を自動化できました。
また物件案内図の帯を差し替える帯替え作業も、帯部分を検知するモデルを物体検出モデル(Faster-RCNN)の転移学習により開発し、物件案内図に適用することで完全に自動化しました。
「大量で高品質なデータが必要」というAIの制約を打破するため、転移学習や関連する領域の研究が盛んに行われています。現在は回帰や分類といった教師あり学習の枠組みに対する研究が多いですが、今後は教師なし学習や強化学習の枠組みに対する研究も発展していくでしょう。負の転移を防ぐため、知識の転移可能性の尺度に関する研究も行われています。「機械学習の成功を今後推進する」とまでいわれた転移学習と、その関連領域の発展に要注目です。