転移学習とは何か?

基礎理論

1.転移学習とは何か?

・ディープラーニングは大量のデータと計算機能力を必要とするためハードルが高い
・転移学習は既に学習済みのモデルをベースにして学習をさせるので効率が向上する
・転移学習によりディープラーニングトレーニング時のデータや計算量が大幅に軽減可能

2.転移学習の本当の効果

以下、bdtechtalks.comより「What is transfer learning?」の意訳です。元記事の投稿は2019年6月10日、Ben Dicksonさんによる投稿で、「transfer learning」でGoogle検索した際に一番上にでてきた記事です。

転移学習(transfer learning)とは、人間の脳でも行われていると考えられているもので、例えば英文法はそれを学ぶ事で英会話や英作文に学習内容を転移できると考えられているので、私達は英文法を学びます。本当に皆さんの脳内で転移が出来ているのか否かの判断は皆さんにお任せしますが、実際、転移は幻想という説もあるようです。

人工知能における転移学習は転移というより、接ぎ木のイメージでしょうか。モデルからモデルに学習知識をコピーするというより、既に学習済みのモデルを土台に新しいモデルを積みあげていくイメージです。

従来、転移学習の効果には「より性能が向上する事」が含まれると思われてきましたが、2019年秋頃に転移学習には精度向上の効果がない事が判明しました。そのため、2019年秋以前に書かれた文章には性能向上について言及されている場合があります。

本稿の元記事はメンテされているのか性能についての言及はありませんでしたが、2019年秋以前の情報を何処かに一度まとめておきたく思ったので意訳する事にしました。

アイキャッチ画像のクレジットはPhoto by Toa Heftiba on Unsplash

本記事は、人工知能を取り巻く専門用語と神話を明確にする(しようとする)一連の投稿であるDemystifying AIの一部です。

現在、人工知能プログラムは、写真やビデオの顔や物体を認識し、音声をリアルタイムで転写し、癌が大きくなる数年前にX線スキャンで癌を検出し、最も複雑なゲームのいくつかで人間と互角の競争をすることができます。

数年前まで、これらの課題はすべて、数十年先まで克服できないと考えられていたか、最適ではない形で解決されていました。しかし、過去数年で非常に人気が高まったAIの関連技術であるニューラルネットワークとディープラーニングの進歩は、コンピューターがこれらの問題や他の多くの複雑な問題を解決するのに役立ちました。

残念ながら、ゼロから作成する場合、ディープラーニングモデルでは大量のデータと計算機資源を利用する必要があります。これは多くの人が買えない贅沢です。 さらに、タスクを実行するためのディープラーニングモデルのトレーニングには長い時間がかかるため、時間の予算が短いユースケースには適していません。

幸いなことに、訓練されたAIモデルで得られた知識を別のモデルに流用する訓練方式である転移学習は、これらの問題の解決に役立ちます。

ディープラーニングモデルのトレーニングのコスト
ディープラーニングは、機械学習の一部であり、トレーニング事例を通じてAIを開発する科学です。ディープラーニングとニューラルネットワークの背後にある概念と科学は、「人工知能」という用語自体と同じくらい古いものです。しかし、近年まで、それらは非効率的であるとしてAIコミュニティによって大部分が否定的に見られていました。

過去数年間に、インターネットのお蔭で「膨大な量のデータ」とハードウェアの進化のお蔭で「強力なコンピュータ」が利用可能になり、その結果、ニューラルネットワークが再び脚光を浴び、現実世界の問題を解決できるディープラーニングアルゴリズムの開発が可能になりました。

ディープラーニングモデルをトレーニングするには、基本的に、多くの注釈が付いた事例をニューラルネットワークに提供する必要があります。具体的には、物体が何なのかを示すラベル付きの画像や、患者が最終的にどうなったかが記されている乳癌のX線撮影などがあります。ニューラルネットワークは、これらの画像を注意深く分析および比較し、同じカテゴリに分類される画像の中で繰り返さし散見されるパターンを数学的に表現するモデルを開発します。

22,000のカテゴリでラベル付けされた1,400万を超える画像のデータベースであるImageNetや、60,000の手書き数字のデータセットであるMNISTなど、いくつかの大規模なオープンソースデータセットがすでに存在します。AIエンジニアは、これらのデータを使用してディープラーニングモデルをトレーニングできます。

ただし、ディープラーニングモデルのトレーニングには、非常に強力なコンピューターが利用可能である事も必要です。 開発者は通常、CPU、GPU、またはGoogleのテンソルプロセッサ(TPU)などの特殊なハードウェアがセットになったシステムを使用して、時間効率の良い方法でニューラルネットワークをトレーニングします。このようなリソースの購入またはレンタルのコストは、個々の開発者または小規模組織の予算を超える可能性があります。また、多くの問題について、信頼性の高いAIモデルをトレーニングするのに十分なデータがありません。

転移学習により、ディープラーニングトレーニングの要求が大幅に軽減されます。AIエンジニアが、特定の問題を解決するために画像分類器ニューラルネットワークを作成したいとします。エンジニアは、数千、数百万の画像を収集する代わりに、ImageNetなどの公開されているデータセットの1つを使用して、特定領域に固有の写真でそれを強化できます。

しかし、AIエンジニアは、ニューラルネットワークを介してこれらの数百万の画像を実行するために必要なコンピューティングリソースを借りるために、多額の費用を支払う必要があります。こういった場面で、転移学習が役立ちます。転移学習は、以前にトレーニングされたニューラルネットワークを微調整することによって新しいAIモデルを作成する手法です。

開発者は、ニューラルネットワークを最初からトレーニングする代わりに、事前にトレーニングされた公開されているディープラーニングモデルをダウンロードして、自分の目的に合わせて微調整することができます。選択できる事前トレーニング済みの基本モデルが多数あります。人気のあるモデルには、AlexNet、GoogleのInception-v3、MicrosoftのResNet-50が含まれます。これらのニューラルネットワークは、ImageNetデータセットですでにトレーニングされています。AIエンジニアは、対象とする分野に固有の事例を使用して更にトレーニングすることで、それらを強化するだけで済みます。

転移学習は、膨大なコンピューティング資源を必要としません。ほとんどの場合、それなりのデスクトップコンピュータまたは強力なノートパソコンであれば、事前にトレーニングされたニューラルネットワークを数時間またはそれ以下で微調整できます。

転移学習はどのように機能しますか?
興味深いことに、ニューラルネットワークは階層的に動きを発達させます。全てのニューラルネットワークは複数の層から構成されています。トレーニング後、各層は入力データの特定の特徴表現を検出するように調整されます。

例えば、画像分類器の畳み込みネットワークでは、最初の数層が先端部分、湾曲部分、円、色の塊などの一般的な特徴を検出します。ネットワークを深い層に進めると、各層は目、顔、完全な物体など、より具体的なものを検出し始めます。

転移学習を行うとき、AIエンジニアは事前にトレーニングされたニューラルネットワークの最初の層を凍結します。これらは、全ての領域に共通する一般的な特徴表現を検出するレイヤーです。次に、より深い層を独自の事例で微調整し、新しい層を追加して、トレーニングデータセットに含まれる新しいカテゴリを分類します。

事前にトレーニングされたAIモデルと微調整されたAIモデルは、それぞれ「教師」モデルと「学生」モデルとも呼ばれます。

凍結されたレイヤーと微調整されたレイヤーの数は、転移元AIモデルと転移先AIモデルの類似性によって異なります。生徒AIモデルが教師に非常に近い問題を解決する場合、事前トレーニングされたモデルの層を微調整する必要はありません。開発者は、ネットワークの最後に新しいレイヤーを追加し、新しい分類対象用にAIをトレーニングするだけで済みます。これは「深層特徴表現抽出」と呼ばれます。転移先領域のトレーニングデータが非常に少ない場合は、深層特徴表現抽出も適しています。

転移元と転移先の間にかなりの違いがある場合、またはトレーニング事例が豊富な場合、開発者は事前トレーニングされたAIモデルのいくつかの層の凍結を解除します。次に、新しい分類層を追加し、新しい事例を使用して凍結されていない層を微調整します。これは「中間層特徴表現抽出」と呼ばれます。

転移元AIモデルと転移先AIモデルの間に大きな違いがある場合、開発者はニューラルネットワーク全体の凍結を解除して再トレーニングします。 「フルモデル微調整」と呼ばれるこのタイプの転移学習には、多くのトレーニング事例も必要です。

事前トレーニングされたモデルを取得して、その全ての層を再トレーニングするのはばかげているように見えるかもしれません。しかし実際には、時間とコンピューター資源を節約できます。トレーニングの前に、ニューラルネットワークの変数は乱数で初期化され、トレーニングデータを処理するときにそれらの値を徐々に修正します。事前トレーニングされたニューラルネットワークの変数の値は、すでに何百万ものトレーニング事例に合わせて調整されています。従って、これらは、転移元AIモデルとわずかに類似している新しい一連の事例でトレーニングを行う新しい転移先AIモデルのはるかに優れた出発点となります。

転移学習は何でも解決する特効薬ではありません
転移学習は、効率的で手頃な方法でAIモデルをトレーニングする際の問題の多くを解決します。ただし、トレードオフもあります。事前トレーニングされたニューラルネットワークにセキュリティホールがある場合、それを転移学習の基礎として使用するAIモデルは、それらの脆弱性を継承します。

例えば、基本モデルは、AIを誤動作させる事を目的とした敵対的データに対して堅牢ではない可能性があります。敵対的データとは入力データを慎重に細工する事で作成されますが、悪意ある攻撃者が転移元モデルに対して敵対的に機能するデータを開発した場合、その攻撃は、それから派生したほとんどの転移先AIモデルで機能します。シカゴ大学、UCサンタクララおよびバージニア工科大学の研究者は、昨年のUsenixセキュリティシンポジウムで発表された論文でこれを示しました。

また、一部の領域では、転移学習の使用が非常に制限されています。例えば、強化学習です。強化学習はAIにゲームをプレイする事を教えるなど、非常に計算集約的で多くの試行錯誤を必要とするAIの研究分野です。扱う問題のほとんどの新しい問題で独特であるため、独自のAIモデルとトレーニングプロセスが必要になる事が多いです。

しかし、全体として、画像分類や自然言語処理などのほとんどのディープラーニングアプリケーションでは、巧妙に転移学習を活用することで、道のりを短縮できる可能性があります。

3.転移学習とは何か?関連リンク

1)bdtechtalks.com
What is transfer learning?

タイトルとURLをコピーしました