回答:
ネットワークをトレーニングする通常の方法:
データセット(画像セットなど)でタスク(分類など)を実行するようにニューラルネットワークをトレーニングする必要があります。重みをランダムに初期化することにより、トレーニングを開始します。トレーニングを開始するとすぐに、ミスを少なくしてタスクを実行するために重みが変更されます(つまり、最適化)。トレーニング結果に満足したら、ネットワークの重みをどこかに保存します。
今、ネットワークをトレーニングして、異なるデータセット(たとえば、画像も前に使用したものとは異なります)で新しいタスク(オブジェクト検出など)を実行することに興味があります。最初のネットワークで行ったことを繰り返し、ランダムに初期化された重みでトレーニングを開始する代わりに、以前のネットワークから保存した重みを新しい実験の初期重み値として使用できます。この方法で重みを初期化することは、事前に訓練されたネットワークの使用と呼ばれます。最初のネットワークは、事前に訓練されたネットワークです。2番目は、微調整するネットワークです。
事前トレーニングの背後にある考え方は、ランダム初期化は...まあ...ランダムであり、重みの値は解決しようとしているタスクとは何の関係もないということです。値のセットが別のセットよりも優れているのはなぜですか?しかし、他にどのように重みを初期化しますか?タスクに対して適切に初期化する方法を知っている場合は、最適な値に設定することもできます(少し誇張されています)。何も訓練する必要はありません。問題に対する最適な解決策があります。事前トレーニングにより、ネットワークに有利なスタートが切れます。以前にデータを見たように。
事前トレーニングの際の注意点:
ネットワークの事前トレーニングで使用される最初のタスクは、微調整段階と同じです。事前トレーニングと微調整に使用されるデータセットも同じ場合がありますが、異なる場合もあります。異なるタスクと異なるデータセットの事前トレーニングを、わずかに異なる新しいデータセットと新しいタスクに移行する方法を見るのは本当に興味深いです。両方のタスクまたは両方のデータセットに共通点がある場合、事前に訓練されたネットワークを使用することは一般に意味があります。ギャップが大きいほど、事前トレーニングの効果は低くなります。最初に金融データでトレーニングすることにより、画像分類のためにネットワークを事前トレーニングすることはほとんど意味がありません。この場合、事前トレーニング段階と微調整段階との間の切断が多すぎます。