転移学习(迁移学习)とは,あるタスク向けに学习したモデルを,类似したタスクを実行するモデルの开始点として使用するディープラーニングの手法です。転移学习によるネットワークの更新と再学习は通常,ゼロからネットワークを学习させるよりもはるかに高速で简単です。この手法は,物体検出や画像认识,音声认识などのアプリケーションで一般的に使用されています
転移学习が広く利用されている理解。
- 大规模なデータセットで既に学习済みの一般的なモデルを再利用することで,ラベル付けされたデータが少なくてもモデルの学习を行うことができる。
- 学习时间を短缩し,コンピューティングリソースを削减できる。転移学习では,重みをゼロから学习させる必要はありません。事前学习済みのモデルは,以前の学习に基づき,既に重みの学习を行っているためです。
- ディープラーニングの研究コミュニティによって开発されたモデルアーキテクチャを活用できる(GoogLeNetやRESNETなどの広く利用されているアーキテクチャを含む)。
転移学习向け事前学习済みモデル
転移学习の中心となるのは,事前学习済みのディーディーモデルモデルです。このモデルは,ディープラーニングの研究者によって构筑されており,学习には,数千または数百万のサンプル画像が使用されています。
利用可能な事前学习済みモデルは多数ありますが,各モデルに次の考虑すべきメリットとデメリットがあります。
- サイズ:そのモデルにメモリはどのくらい必要か?モデルのサイズの重要性は,展开先や用途によって异なります。
- 精度:再学习前のモデル性能はどの程度か?通讯,想象力(100万枚の画像と1,000个のクラスの画像含むで好な性能をもつは,同じような新闻タスクで好に机能可爱性が高度ただし,Imagenetの精密スコア低くても,必ずしもすべてのタスクでのががとははませませはんませんんん。
- 予测速度:新しい能力に対するモデル予测予测速度はどのくらいか?予测速度は,ハードウェアやバッチサイズなど,その他のディープラーニングによって异なりますが,速度は选択したモデルのアーキテクチャやモデルのサイズによっても异なります。
MATLABおよび深度学习工具箱を使用すると,最新の研究で得られた事前学习済みのネットワークに1行のコードでアクセスできます。このツールボックスには,転移学习プロジェクトに适したネットワークを选択するためのガイダンスも用意されています。
転移学习アプリケーションにに最适モデルををには?
多くの転移学习モデルの中から选択するため,关连するトレードオフと特定のプロジェクトの全体的な目的に留意することが重要です。たとえば,比较的精度の低いネットワークの方が,新しいディープラーニングタスクに最适である场合があります。さまざまなモデルを试して,お使いのアプリケーションに最适なモデルを见つけることをお勧めします。
入门向けのシンプルなモデル。シンプルなモデル(例:AlexNet,GoogLeNet,VGG-16,VGG-19)。は,迅速に反复处理を行い,さまざまなデータ前处理のステップや学习オプションを使用して试すことができます适切に机能する设定が分かったら,さらに精度が高いネットワークで试し,结果が改善されるかどうかを确认します。
軽でで效率に优れたモデル。展开环境でモデルサイズに制限がある场合には,SqueezeNetやMobileNet-V2,的ShuffleNetがお勧めです。
ディープネットワークデザイナーを使用すると,プロジェクト向けに事前学习済みのさまざまなモデルを迅速に评価できるだけでなく,さまざまなモデルアーキテクチャ间のトレードオフに対する理解を深めることができます。
転移学习ワークフロー
転移学习のアーキテクチャやアプリケーションにはさまざまな种类がありますが,ほとんどの転移学习ワークフローは共通の手顺に沿って行われています。
- 事前学习済みモデルを选択する。初めは,比较的シンプルなモデルを选ぶことをお勧めします。この例では,GoogLeNetを使用しています.GoogLeNetは,1000个のオブジェクトカテゴリを分类するように学习されている22层の深さの一般的なネットワークです。
- 最终层を置き换える。新しい画像とクラスのセットを分类するようにネットワークの再学习を行うには,GoogLeNetモデルの最终层を置き换えます。最终的な全结合层は,新しいクラスの数と同じ数のノードを含むように修正され,新しい分类层が追加されます。これにより,ソフトマックス层によって计算された确率(尤度)に基づき,出力が生成されます。
- 层を修正すると,最终的な全结合层でネットワークが学习するクラスの新闻数が指定され,分类层で利用可能な新闻出力カテゴリの出力が决まります。たとえば,GoogLeNetは元々1000のカテゴリで学习されていましたが,最终层を置き换えることで,关心のあるオブジェクトの5つ(または他の任意の数)のカテゴリのみを分类するように再学习させることができます。
- 重みを冻结する(任意)。ネットワークの初期の层の重みを冻结するには,その层の学习率をゼロに设定します。学习中は,冻结された层のパラメーターは更新されないため,ネットワークの学习を大幅に高速化できます。新しいデータセットが小さい场合は,重みを冻结することで,新しいデータセットに対するネットワークの过适合を防ぐこともできます。
- モデルの再学习を行う。再学习では,新しい画像やカテゴリに关键词徴を习してするににを更更しししますします常常常常は,ゼロからからで习さはせるよりよりよりよりよりよりより场场场场よりより済み済み済み済み済み済み済み済み済み済み済み済み済み済みます済み済み済み済み済み済み済み済みます済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み済み
- ネットワーク精度を予测および评価する。モデルの再学习が完了したら,新しい画像を分类し,ネットワークの性能を评価できるようになります。
ゼロから学习するか,転移学习を使用するか?
ディープラーニングでは,ゼロからモデルを学习する方法と,転移学习の2つの手法が一般的に使用されています。
既存のモデルを使用できない特殊なタスクには,ゼロからモデルを开発し学习を行う方法が适しています。この手法のデメリットは,正确な结果を得るために通常,膨大なデータが必要になるということです。たとえば,テキスト解析を行っている场合に,テキスト解析に事前学习済みのモデルは利用できないが,利用できるデータサンプルが多数あるというときは,ゼロからモデルを开発することが最善の手法であると言えます。
転移学习は,物体认识などのタスクに有益であり,さまざまな事前学习済みモデルが広く利用されています。たとえば,花の画像を分类する必要があり,利用できる花の画像の数が限られている场合は,AlexNetネットワークから重みと层を転移し,最终分类层を置き换えて,お手持ちの画像でモデルの再学习を行います。
このようなケースでは,転移学习を使用することで,モデルの学习时间を短缩しながら精度を高めることができます。
転移学习への対话型アプローチ
ディープネットワークデザイナーを使使使,転移学习ワークフロー全体(事前学习済みモデルのインポート,最终层の変更,新しいデータを使用したネットワークの再学习など)を対话的に完了できます。コードの记述はほとんど,または一切必要ありません。