回答編集履歴
2
補足の追記
answer
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
生成AIに聞いて初期化部分を下記に変えたところ数字(らしきもの)を生成できました。
|
|
1
|
+
生成AIに聞いて初期化部分とオプティマイザーを下記に変えたところ数字(らしきもの)を生成できました。
|
|
2
2
|
|
|
3
3
|
```ここに言語を入力
|
|
4
4
|
def initialize(m):
|
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
nn.init.constant_(m.bias.data, 0)
|
|
11
11
|
```
|
|
12
12
|
```ここに言語を入力
|
|
13
|
+
gen_optim=optim.Adam(gen.parameters(),lr=0.0002, betas=(0.5, 0.999))
|
|
14
|
+
dis_optim=optim.Adam(dis.parameters(),lr=0.0002, betas=(0.5, 0.999))
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
```ここに言語を入力
|
|
13
19
|
1回目の正答率は1.0
|
|
14
20
|
2回目の正答率は0.9070833333333334
|
|
15
21
|
3回目の正答率は0.9509583333333333
|
|
@@ -35,4 +41,8 @@
|
|
|
35
41
|
|
|
36
42
|
AIが言うには下記理由で改善するそうです。
|
|
37
43
|
> DCGANなどで推奨される「平均0、標準偏差0.02」の正規分布に変えます。
|
|
38
|
-
重みの初期化を 「平均0、標準偏差0.02の正規分布」 に変えたことで、ネットワークの各層の出力が極端に偏らなくなり、GeneratorとDiscriminatorが「お互いに学習のヒント(勾配)を出し合える状態」になった証拠です。
|
|
44
|
+
重みの初期化を 「平均0、標準偏差0.02の正規分布」 に変えたことで、ネットワークの各層の出力が極端に偏らなくなり、GeneratorとDiscriminatorが「お互いに学習のヒント(勾配)を出し合える状態」になった証拠です。
|
|
45
|
+
|
|
46
|
+
> 通常の分類タスクなどで使われるは、GANにとっては高すぎます。
|
|
47
|
+
GANの損失関数は非凸で複雑なため、過去の勾配を引きずりすぎると、更新方向が大きく振動して学習が不安定になります。
|
|
48
|
+
ベータを0.5に設定することで、この振動(Oscillation)を抑え、学習を安定させる効果があります。
|
1
追記
answer
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
生成AIに聞いて初期化部分を下記に変えたところ数字を生成できました。
|
|
1
|
+
生成AIに聞いて初期化部分を下記に変えたところ数字(らしきもの)を生成できました。
|
|
2
2
|
|
|
3
3
|
```ここに言語を入力
|
|
4
4
|
def initialize(m):
|