人間はあることを勉強していて得た知識を別の分野で応用することが出来ますよね。これはある事象に対する事前知識があるというように考えることができます。機械学習の分野でこの事前知識を用いて、より効率的にモデルを学習させることを一般に転移学習と呼びます。
本記事ではその転移学習がどういったものかや、その活用の可能性について解説していきましょう。
転移学習とは
転移学習(Transfer-Learning)とはあるタスクで学習を行なったモデルを、別のタスクで再利用する手法全般のことを指します。転移学習が最もよく使われる例は畳み込みニューラルネットワークで、ImageNetという1000クラスの被写体からなる画像で学習したモデルを利用し、犬と猫を識別するようなモデルを構築するなどが挙げられます。
Transfer-LearningとFine-Tuningの違い
続いて、Transfer-LearningとFine-Tuningの違いについて整理していきましょう。
まず、事前に学習を行なったモデルを利用して、別のモデルや新たに付け加えた層のみを学習させるような場合をTransfer-Learningと呼びます。ポイントは事前に学習を行なったモデル自体は再学習を行わないという点にあります。あるモデルが学習した情報を受け取り(Transferして)、新たに付け加えた部分のみを学習するため、Transfer-Learningというんですね。
一方Fine-Tuningは事前に学習したモデルの重みなどを利用して、事前学習した部分も含めてモデルの全体を学習し直す手法のことをいいます。事前に獲得した情報を元に、全体を新たなタスクに対して適応させていく(Tuningする)ため、Fine-Tuningと呼ばれています。
転移学習による恩恵
転移学習による恩恵を箇条書きでまとめてみます。
- 新たなタスクを解く際に、学習するべきパラメータが少なくなる
- 少量しかないデータセットでも上手く学習が行えるようになる
- 事前学習していないモデルを学習するのと比較し、学習が収束するまでの時間が短くなる
これらの項目はそれぞれ独立なものではなく、「学習するべきパラメータが少ないため、学習時間が短くなる」、「少量のデータに対しても、学習対象となるパラメータ数が少ないため学習が上手く進みやすい」というように同じ理由から生じている現象といえます。
転移学習の成功例
転移学習は研究の世界だけでなく、産業界においても大きな成功を納めています。自然言語処理モデルで有名なモデルにBERTがありますよね。BERTは、複数のタスクを解くことで様々なタスクで転移学習で汎用的に利用できるようになりました。このモデルはGoogle検索を筆頭に様々な分野で利用されています。
Understanding searches better than ever before(英語)
画像認識の分野では先ほども述べたとおりImageNetで事前学習されたモデルが広く利用されており、TensorFlowやPyTorchなどの深層学習フレームワークでは簡単に関数から学習済みモデルを呼び出すことができます。画像認識モデルではFine-Tuningされていないモデルはほとんどないと言っても差し支えないでしょう。
それほど広く利用されており、画像分類から物体検出、領域検出などあらゆるタスクで転移学習が用いられます。
まとめ
最後に転移学習について重要な点をまとめましょう。
- 転移学習は主に英語のTransfer-Learningに由来し、Fine-Tuningのことを表す場合もある
- 事前に学習した情報を転用し、効率的に新たなタスクの学習を行える
- 現在流行しているBERTなどの自然言語処理のモデルは、いかに汎用的に転移学習で利用できるかに着目して研究が進められている