質問編集履歴
5
解決策
test
CHANGED
File without changes
|
test
CHANGED
@@ -209,3 +209,27 @@
|
|
209
209
|
|
210
210
|
|
211
211
|
optimizerの問題ではないかとの指摘を受けて、Adam,AdaDelta,SGDで試しましたが結果は変わらず…
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
### 解決策?
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
passerbyさんに言われた通り、
|
220
|
+
|
221
|
+
```python3
|
222
|
+
|
223
|
+
rec_loss += F.mean_squared_error(x, self.decode(z)) / k
|
224
|
+
|
225
|
+
```
|
226
|
+
|
227
|
+
を
|
228
|
+
|
229
|
+
```python3
|
230
|
+
|
231
|
+
rec_loss += F.mean(F.sum((x - self.decode(z)) ** 2, axis=1))
|
232
|
+
|
233
|
+
```
|
234
|
+
|
235
|
+
に変えるとうまくいきます。でもなぜだ…?
|
4
k
test
CHANGED
File without changes
|
test
CHANGED
@@ -180,7 +180,7 @@
|
|
180
180
|
|
181
181
|
|
182
182
|
|
183
|
-
### 追記
|
183
|
+
### 追記1
|
184
184
|
|
185
185
|
|
186
186
|
|
@@ -189,3 +189,23 @@
|
|
189
189
|
|
190
190
|
|
191
191
|
MNSITは28×28の画像なので、MSEを用いる際には28×28×F.mean_squared_error(x, decode(z))とすれば良いと思い、試してみましたが結果は変わりませんでした。
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
### 追記2
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
chainerでMSEを使ったVAEの実装を行っているコードを見つけました。
|
200
|
+
|
201
|
+
(https://github.com/maguro27/VAE-CIFAR10_chainer/blob/master/VAE_CIFAR10.ipynb)
|
202
|
+
|
203
|
+
なぜ、このコードでは動いて、私の上のコードでは学習がうまくいかないのでしょうか。
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
### 追記3
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
optimizerの問題ではないかとの指摘を受けて、Adam,AdaDelta,SGDで試しましたが結果は変わらず…
|
3
やったことを書き加えた。
test
CHANGED
File without changes
|
test
CHANGED
@@ -177,3 +177,15 @@
|
|
177
177
|
|
178
178
|
|
179
179
|
これはなぜでしょうか。
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
### 追記
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
bernoulli_nllはデフォルトではすべて合計する一方で、mean_squared_errorは二乗誤差をバッチとピクセルの両方で平均するので、再構成項が過小評価されてしまっているかもしれないと考えました。
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
MNSITは28×28の画像なので、MSEを用いる際には28×28×F.mean_squared_error(x, decode(z))とすれば良いと思い、試してみましたが結果は変わりませんでした。
|
2
k
test
CHANGED
File without changes
|
test
CHANGED
@@ -160,7 +160,7 @@
|
|
160
160
|
|
161
161
|
```python3
|
162
162
|
|
163
|
-
rec_loss += F.mean_squared_error(x, self.decode(z))
|
163
|
+
rec_loss += F.mean_squared_error(x, self.decode(z)) / k
|
164
164
|
|
165
165
|
```
|
166
166
|
|
1
誤字訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -154,7 +154,7 @@
|
|
154
154
|
|
155
155
|
|
156
156
|
|
157
|
-
ところで、疑問なのですが、rec_lossは再構成誤差なので、素朴には平均二乗誤差をつかうのが
|
157
|
+
ところで、疑問なのですが、rec_lossは再構成誤差なので、素朴には平均二乗誤差をつかうのが自然だと思われます。そこでrec_lossの部分を
|
158
158
|
|
159
159
|
|
160
160
|
|
@@ -166,7 +166,7 @@
|
|
166
166
|
|
167
167
|
|
168
168
|
|
169
|
-
と書き換え
|
169
|
+
と書き換え、ほかの条件は全部そのままで(他の部分は一切書き換えずに)、実験すると
|
170
170
|
|
171
171
|
1. rec_lossが2epoch目以降、全く減少しない。
|
172
172
|
|