p_dnn_19-5-2(質問管理番号)
回答日時: | 2019/02/14 |
Q: | 問9, 10: 多層NNの学習するパラメータは、その学習モデルの構造に対応した階層性を保有する。 階層性の特徴として、下位層(出力層側)のパラメータほど(あ)を持ち、 上位層(入力層側)のパラメータは、タスクの依存性が高い。 前述した特徴より、(い)のパラメータは異なるタスク間で共有することが可能となり、 あるタスクに対し学習済みモデルを別のタスクに転用することができる。 このことを、転移学習という。正答: (あ)普遍性(い)下位層質問内容: 上記をまとめると上位層(入力層側) ・タスク依存度 高 ・転移学習において、再学習 下位層(出力層側) ・普遍性 高 ・転移学習において、学習済の物を転用可能ということになりますが、全くの逆で認識をしていました。ネット上の情報https://products.sint.co.jp/aisia/blog/vol1-7などでも、「転移学習は、入力層側は転用し、出力層側のみ学習する」とあります。どちらが正しいのでしょうか。 |
A: | 転移学習は、入力層側は転用し、出力層側のみ学習するが正しいです。右図でいうと、緑の最後の部分で切って、これまで青でやっていたものを赤の部分に変えて新しいタスク用に学習をやるイメージです。 その上で緑の部分の後半(CNNが終わったところ)で切っているのですが、これを前半で切ると、特徴の普遍性が低く、学習がうまくいかないというのが、問いの話になります。余談ですが、実際やってみると、初期のweightを学習済みにして、入力層から全部学習し直した方が精度は高いです(コストも高い)。 [画像出典元] https://qiita.com/icoxfog417/items/48cbf087dd22f1f8c6f4 |