learningある領域で学習したモデルを別の領域の学習に利用する手法のことです。netのような膨大な量の学習データを使用して1000カテゴリ分類の学習を行ったとして、その結果を用いて学習データの少ない10カテゴリ分類の問題を解くという手法です。具体的には、1000カテゴリ問題を解くネットワークと解きたい問題のネットワークを途中までは同じにして、重みに転移元(ここでは1000カテゴリ分類問題)の学習結果を使用します。少ないデータを使用して出力層近くの重みのみを学習することで、非常に精度よく10カテゴリ問題のモデルを構築できるという手法。転移元と転移先の問題が似ていることが転移がうまくいく条件になります。画像の分類なら、共通する特徴や、それを使用してクラス分類するという問題設定が共通しているので、転移学習が有効に働きます。tunningとはすでにあるのモデルの一部を再利用して、新しいモデルを構築する手法のことだそうです。素粒子理論で出てくる超対称性の話とは違います。転移学習と同じ手法に見えますが、以下のような違いがあります。転移学習は上の例で書いたように、既存の学習済モデル(出力層以外の部分)を、重みデータは変更せずに特徴量抽出機として利用して、出力層部分のみ学習することで、新しいモデルを構築する手法です。これに対して、ファインチューニングは既存の学習済モデル(出力層以外の部分)の重みデータを一部再学習して特徴量抽出機として利用するという手法です。転移学習では転移済み学習モデルは固定しているが、ファインチューニングでは元の学習済み重みをさらに書き換えて、新しいモデルに"詳細にtunningする"手法だといえます。learningよりも柔軟性があるといえます。tunningといえるかもしれません。DistillationDistillation(蒸留)というのは、上の二つと違いネットワークの構造にかかわる技術です。Distillationは学習済みの複雑なネットワークと"ほぼ"同等なシンプルなネットワークを新たに学習する手法です。そんなことが必要かというと、ディープラーニングは実用上より少ないメモリでより高速に動作する必要があり、そのためには出力は同等のよりシンプルなネットワークを作ることに意味があるからです。元のネットワークが非常に大規模なアンサンブルモデルの場合、それをシンプルなたった一つのネットワークで表現できるということには実用上大きな意味があります。具体的には、例えば1000カテゴリ分類する複雑なネットワークの出力に対して、その出力の確率分布をソフトターゲットと呼び、そのソフトターゲットを出力するようなシンプルなネットワークを構築することでdistillationができます。蒸留について非常にわかりやすく解説してあるサイトです。Learningにおける知識の蒸留たとえて言うなら、教師が正解だけでなく問題の解き方までかみ砕いて教えることで、生徒は少ない学習量で効率よく問題に正解できるようになるということですね。読者になるmathJaxはてなブログをはじめよう!wshinyaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。