Tensorflowエントリと実践的な研究ノート(11)-事前トレーニングネットワーク

目次

1事前トレーニング済みネットワークの基本的な知識(転移学習)

1.1転移学習

1.2 Keras組み込みの事前トレーニング済みネットワーク

1.3 ImageNet

1.3.0 VGG16およびVGG19

1.3.1原理

1.3.2 VGG16とVGG19の比較

1.3.3 VGGには2つの大きな欠点があります

2クラシックな事前トレーニングネットワークのウェイトシェアリングと使用方法

2.1、事前トレーニング済みの畳み込みベースにカスタムレイヤーを追加する

2.2、畳み込みベースのすべてのレイヤーを凍結

2.3。分類層を追加したトレーニング

2.4。たたみ込みベースの一部を解凍する

2.5。フリーズされていない畳み込み層と追加されたカスタム層の合同トレーニング、

結果分析

3一般的なトレーニングモデル

3.1利用可能なトレーニングモデル

3.2モデル紹介

3.3 Xception

3.4畳み込み層をフリーズするときのトレーニング

3.5 Xceptionのフリーズ解除の微調整


1事前トレーニング済みネットワークの基本的な知識(転移学習)

1.1転移学習

事前学習ネットワーク(転移学習とも呼ばれる)は、以前に大規模なデータセットに格納されたセキュリティであり、(大規模な画像分類タスク)畳み込みニューラルネットワークで適切に学習されています

この元のデータセットが十分に大きく、用途が広い場合、事前トレーニング済みネットワークによって学習された特徴の空間階層は、視覚世界の特徴の効果的な抽出として使用できます。

モデル。

新しい問題と新しいタスクが元のタスクと完全に異なる場合でも、学習された機能異なる問題間で移植可能あり、これもディープラーニングおよびシャローラーニング手法の重要な利点です。小さなデータの問題に対して、ディープラーニングは非常に効果的です。

1.2 Keras組み込みの事前トレーニング済みネットワーク

  • Kerasライブラリには
  • VGG16、VGG19
  • ResNet50、
  • インセプションv3、
  • Xceptionなどのクラシックモデルアーキテクチャ。

1.3  ImageNet

ImageNetは手動でラベル付けされた画像データベース(マシンビジョン研究用)です。現在22,000のカテゴリがあります

移行学習ネットワークアーキテクチャのコード実装

1.3.0  VGG16およびVGG19

2014年、VGGモデルのアーキテクチャは、「深い大規模画像認識畳み込みネットワーク」で、SimonyanとZissermanによって提案された(非常に深い畳み込みネットワークスは、大規模画像のための認識)本論文では、VGGは、シンプルかつ効果的なモデル構造を有している説明する前に、いくつかの層は、3×3のコンボリューションカーネルを使用するネットワークの深さを増加させる。それぞれの層のニューロンの数が順次低減されるを通して最大プーリング最後の三つの層4096個のニューロンを有する2つの完全に接続された層であり、そして一つはソフトマックスレイヤー

しかし、実際には古くなっており、後で実験で証明しますが、VGGシリーズは以前に学習したものと非常に似ているため、分析する必要があります

1.3.1実装原理

VGG実装の概略図:画像を薄く、狭くするのは間違っています

1.3.2 VGG16とVGG19の比較

1.3.3 VGGには2つの大きな欠点があります

  • ネットワークアーキテクチャの重みは非常に大きく、ディスク領域を消費します。
  • トレーニングが非常に遅い
完全に接続されたノードとディープネットワークの数が多いため、VGG16には533MB以上、VGG19には574MBがあります。これにより、VGGの展開に時間がかかります。

 

2クラシックな事前トレーニングネットワークのウェイトシェアリングと使用方法

調査のこの部分は主にサービスを微調整するためのものです

微調整

いわゆる微調整:モデルライブラリの下部にある畳み込み層を凍結し、新しく追加された分類子層と上部の部分畳み込み層を共同でトレーニングします。これにより、基本モデルの高次の特徴表現を「微調整」して、特定のタスクに関連性を高めることができます。

 
分類器がトレーニングされている場合にのみ、畳み込みベースの最上位の畳み込み層を微調整できます。これが当てはまらない場合、それは最初はランダムな分類層であり、トレーニングされていません。逆伝播エラーは非常に大きく、最初のトレーニングエラーは大きくなります。微調整前にこれらの畳み込み層によって学習された表現は破棄されます。
微調整手順:
1.事前トレーニング済みの畳み込みベースにカスタムレイヤーを追加する
次に、畳み込みベースのすべてのレイヤーをフリーズします
3、トレーニングに分類層を追加
第四に、畳み込みベースの一部を解凍します
第5に、畳み込み層と共同トレーニング用に追加されたカスタム層、
 

2.1、事前トレーニング済みの畳み込みベースにカスタムレイヤーを追加する

2.2、畳み込みベースのすべてのレイヤーを凍結

2.3。分類層を追加したトレーニング

2.4。たたみ込みベースの一部を解凍する

2.5。フリーズされていない畳み込み層と追加されたカスタム層の合同トレーニング、

 

 

結果分析

3一般的なトレーニングモデル

3.1利用可能なトレーニングモデル

3.2モデル紹介

3.3 Xception

# 就是不要分类器这个顶层
covn_base = keras.applications.xception.Xception(weights='imagenet',
                                                 include_top=False,
                                                 input_shape=(256,256,3),
                                                 pooling='avg')

3.4畳み込み層をフリーズするときのトレーニング

注:
実際、現時点ではポンドは非常に高く、比較を学習するためだけに使用されます(オーバーフィットする場合があります)。

3.5 Xceptionのフリーズ解除の微調整

次に、前のトレーニングを引き続き使用して微調整します

おすすめ

転載: blog.csdn.net/qq_37457202/article/details/107959112