ガンス(Generativeadversarialネットワーク、敵対世代ネットワーク)
生成的敵対ネットワーク(ガンス)は、2つの深いネットワーク、発電機及び弁別器の構成。
発生器は、クロスエントロピー損失を最大化を介して、識別器をだますために近い、できるだけ真の画像に限り、画像を生成する、すなわち、maxlog(D(X '))。
弁別器は、クロスエントロピー損失を最小化を介して、真の画像から生成された画像を区別しようとし、すなわち、MIN-ylogD(X) - (1-Y)log(1-D(X))。
2つのネットワーク対立ジェネレータとは、深さのネットワーク識別器を生成する
ジェネレータ(発電機)の発電機は、損失log(D(X「))最大値として、クロスエントロピー関数を行うことで、よりリアルな画像を生成するように努め、カンニングします弁別て。。
ディスクリミネータ(弁別):弁別器努力が-ylogD(X)として、クロスエントロピー損失関数を行うことで、真と偽の画像とを区別する必要がある-最小値(1-Y)log(1 -D(x))を、 本物の識別します。
発電機(ジェネレータ)
クラスnet_G(nn.Module):
デフのinit(自己):
スーパー(net_G、自己)。init()
self.model = nn.Sequential(
nn.Linear(2,2)、
)
自己。initialize_weights()
DEFフォワード(自己、X):
X = self.model(X)
リターンX
DEF initialize_weights(自己):
mについてself.modules()で:
もしでisinstance(M、nn.Linear):
m.weight。 data.normal(0,0.02)
m.bias.data.zero()
ディスクリミネータ(弁別)
クラスnet_D(nn.Module):
デフのinit(自己):
スーパー(net_D、自己)。INIT()
self.model = nn.Sequential(
nn.Linear(2,5)、
nn.Tanh()、
nn.Linear(5,3)、
nn.Tanh()、
nn.Linear(3,1)、
nn.Sigmoid()
)
セルフ。initialize_weights()
DEFフォワード(自己、X):
X = self.model(X)
リターンX
DEF initialize_weights(自己):
mについてself.modules()で:
もしでisinstance(M、nn.Linear):
m.weight。 data.normal(0,0.02)
m.bias.data.zero()
DCGANs(ネットワークに対する深い畳み込みジェネレーティブ敵対Networksの深い畳み込み生成的)
DCGANアーキテクチャは、識別器と発電機のための4つの「分数ストライド」畳み込み層のための4つの畳み込み層を有しています。
弁別器は(その入力層除く)バッチの正規化及び漏洩ReLUアクティベーションを有する4層ストライド畳み込みです。
漏洩ReLUは、負の入力に対して非ゼロ出力を与える非線形関数です。それは「ReLUを死ぬ」問題を解決することを目的と勾配はアーキテクチャにより、簡単に流れができます。
4つのジェネレータジェネレータ畳み込みを有するネットワークに対する深い畳み込み生成的、ディスクリミネータ認識は、小容量の正規化及び漏洩ReLU活性化機能を用いて、4層分数ストライド畳み込みを有しています。
モデル構造
モデルの構造:
あるいはプーリング層畳み込み、前記発電機にフラクショナルストライド畳み込みを置換することにより弁別器で置き換えストライド畳み込み。
発電機と弁別使用batchnormで。
貧困層の問題解決の初期化
各層の勾配ヘルプ広がりを
ジェネレータを防ぐために、すべてのサンプルが同じ点に収束します。
BNは、直接衝撃や不安定モデルにつながることができ、サンプルのすべての層に適用され、発電機出力層のBNで使用されていないと判別入力層は、この現象を防止することができます。
除去層は、完全に接続された
グローバルプールが増加モデルの安定性が、損傷の収束速度。
ReLUは、発電機出力層、TANHを用いて出力層以外のすべての層に使用されます。
LeakyReLUは、弁別器のすべての層で使用されます。
発電機のDCGANネットワーク構造:
層は、別の論文でもデコンボリューションと呼ばれることもある4つの分数ストライド畳み込みをここでCONVれる、請求
画像分類ケース2
これは、より馴染みの一部であり、要約ノートをしません。