質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

2364閲覧

【Keras】【pix2pix】学習の進み具合など

Reach

総合スコア733

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/01/28 11:38

編集2019/01/31 13:58

お世話になります
機械(深層)学習 超初心者です

こちらのサイトのpix2pixのコードを
(無作為に 集めたイラスト画像の 学習を試みたところ
数エポック後に D logloss と G logloss が それぞれ一定に なってしまったので)
数値を変えて (Colab上で) 実行中です

以下 途中からの出力結果です

1975/1975 [==============================] - 200s 101ms/step - D logloss: 0.7633 - G tot: 6.8954 - G L1: 0.6266 - G logloss: 0.6294
Epoch 31/180, Time: 200.99450063705444
1975/1975 [==============================] - 200s 101ms/step - D logloss: 0.7603 - G tot: 6.8181 - G L1: 0.6171 - G logloss: 0.6473
Epoch 32/180, Time: 200.79291415214539
1975/1975 [==============================] - 200s 101ms/step - D logloss: 0.7580 - G tot: 6.7807 - G L1: 0.6119 - G logloss: 0.6619
Epoch 33/180, Time: 200.87350392341614
1975/1975 [==============================] - 200s 101ms/step - D logloss: 0.7551 - G tot: 6.6729 - G L1: 0.5991 - G logloss: 0.6818
Epoch 34/180, Time: 200.60674738883972
1975/1975 [==============================] - 199s 101ms/step - D logloss: 0.7445 - G tot: 6.5915 - G L1: 0.5922 - G logloss: 0.6692
Epoch 35/180, Time: 200.41968870162964
1975/1975 [==============================] - 199s 101ms/step - D logloss: 0.7431 - G tot: 6.5863 - G L1: 0.5885 - G logloss: 0.7012
Epoch 36/180, Time: 200.09507131576538
1975/1975 [==============================] - 199s 101ms/step - D logloss: 0.7468 - G tot: 6.5437 - G L1: 0.5828 - G logloss: 0.7156
Epoch 37/180, Time: 200.42359519004822
1975/1975 [==============================] - 200s 101ms/step - D logloss: 0.7385 - G tot: 6.5412 - G L1: 0.5835 - G logloss: 0.7062
Epoch 38/180, Time: 200.62738251686096
1975/1975 [==============================] - 200s 101ms/step - D logloss: 0.7254 - G tot: 6.4251 - G L1: 0.5709 - G logloss: 0.7162
Epoch 39/180, Time: 200.82626819610596
1975/1975 [==============================] - 200s 101ms/step - D logloss: 0.7417 - G tot: 6.3428 - G L1: 0.5615 - G logloss: 0.7279
Epoch 40/180, Time: 200.57073044776917
1975/1975 [==============================] - 200s 101ms/step - D logloss: 0.7305 - G tot: 6.4459 - G L1: 0.5715 - G logloss: 0.7311
Epoch 41/180, Time: 200.6992690563202
1975/1975 [==============================] - 199s 101ms/step - D logloss: 0.7293 - G tot: 6.2017 - G L1: 0.5472 - G logloss: 0.7299
Epoch 42/180, Time: 200.49965977668762
1975/1975 [==============================] - 199s 101ms/step - D logloss: 0.7266 - G tot: 6.3782 - G L1: 0.5633 - G logloss: 0.7449
Epoch 43/180, Time: 200.52365827560425
1975/1975 [==============================] - 199s 101ms/step - D logloss: 0.7146 - G tot: 6.2768 - G L1: 0.5524 - G logloss: 0.7526
Epoch 44/180, Time: 200.32023119926453
1975/1975 [==============================] - 200s 101ms/step - D logloss: 0.7148 - G tot: 6.2152 - G L1: 0.5444 - G logloss: 0.7709
Epoch 45/180, Time: 200.79222965240479
1975/1975 [==============================] - 200s 101ms/step - D logloss: 0.7141 - G tot: 6.1604 - G L1: 0.5394 - G logloss: 0.7659
Epoch 46/180, Time: 200.7552511692047
1975/1975 [==============================] - 200s 101ms/step - D logloss: 0.7107 - G tot: 6.1789 - G L1: 0.5408 - G logloss: 0.7709
Epoch 47/180, Time: 200.77876567840576
1975/1975 [==============================] - 200s 101ms/step - D logloss: 0.7039 - G tot: 6.1207 - G L1: 0.5339 - G logloss: 0.7818
Epoch 48/180, Time: 200.60933804512024
1975/1975 [==============================] - 199s 101ms/step - D logloss: 0.7008 - G tot: 6.1088 - G L1: 0.5329 - G logloss: 0.7800
Epoch 49/180, Time: 200.5249800682068
1975/1975 [==============================] - 199s 101ms/step - D logloss: 0.7071 - G tot: 6.0362 - G L1: 0.5243 - G logloss: 0.7930
Epoch 50/180, Time: 200.48646688461304
1975/1975 [==============================] - 199s 101ms/step - D logloss: 0.6978 - G tot: 6.0065 - G L1: 0.5202 - G logloss: 0.8041
Epoch 51/180, Time: 200.51794505119324
1975/1975 [==============================] - 199s 101ms/step - D logloss: 0.6977 - G tot: 6.0450 - G L1: 0.5244 - G logloss: 0.8010
Epoch 52/180, Time: 202.29511642456055
1975/1975 [==============================] - 199s 101ms/step - D logloss: 0.6952 - G tot: 6.0804 - G L1: 0.5258 - G logloss: 0.8229
Epoch 53/180, Time: 200.9009850025177
1975/1975 [==============================] - 199s 101ms/step - D logloss: 0.6987 - G tot: 6.0776 - G L1: 0.5253 - G logloss: 0.8251
Epoch 54/180, Time: 200.5104055404663
1975/1975 [==============================] - 199s 101ms/step - D logloss: 0.6931 - G tot: 5.9714 - G L1: 0.5136 - G logloss: 0.8355
Epoch 55/180, Time: 200.24306225776672

40エポックあたりから D logloss と G logloss の値が 逆転しています

この場合 このまま 学習を続けていいのでしょうか?
また、出力される数値の どれに注目すれば よいのでしょうか?
それぞれの項目は どのような 意味合いを持っているのでしょうか?

よろしく お願い致します

追記

数学の知識が 乏しいため ソースを 完全には 把握できませんが
機械(深層)学習に 興味を持って コードをいじりながら 学んでいきたいと思っております

自分なりに調べましたところ
logloss というのは 予測値から 正解ラベルに近いほど小さいという事が わかりました
G loglossは 生成画像と オリジナル画像が 近いほど良いので 小さな値の方が 良さそうで、
D loglossは 生成画像と オリジナル画像を 入力しているみたいですが
こちらも 最小化されるのが 望ましいのでしょうか?

追記2:

今のところ、adamの値を 変えながら 実行しておりますが
他に 実行結果を 改善するには どのような手法が ありますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

firedfly

2019/01/29 02:37 編集

こんにちは。 お聞きになられているのはDCGANのごくごく基本的なことがらです。 参考ページを読み、ソースコードを読んで、それでもわからないことを聞きましょう。
tiitoi

2019/01/29 14:55

学習できているかどうかは生成された画像を目視で見てみるのがいいかと思います。 GAN は段々出力される画像が意図したものになっていった後、あるときを境にまたうまくいかなくなるという現象がよく起こるので、ただエポックを回せばいいのではなく、出力結果を確認しながら学習できたと判断した段階で止めるのがいいと思います。
guest

回答1

0

ベストアンサー

こんにちは。

Loss(損失)はその名の通り、常にできるだけ小さくしたい対象です。

料理店なら廃棄される材料の割合、空き巣なら検挙されてしまた割合、
Generator(生成器)なら生成された偽物画像を偽物と見破られてしまった割合、
Discriminator(識別器)なら生成された偽物画像を本物と間違えしまった割合、といった案配です。

GANはGeneratorとDiscriminatorをそれぞれ鍛えながら競い合わせることで
人間が生成画像の善し悪しをチェックしなくても自動的に生成力を伸ばせることにメリットがあります。

詳しくは今さら聞けないGAN(1) 基本構造の理解 - Qiitaなどをどうぞ。
またLogarithmic Lossについて知りたければ機械学習でLog Lossとは何か - Qiitaあたりをどうぞ。

投稿2019/01/29 15:33

firedfly

総合スコア1131

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Reach

2019/01/31 13:34

回答ありがとうございます G lossは 小さく、D lossは 大きくなったほうが pix2pixでは 良いということでしょうか? D lossが 大きすぎると Generatorが 怠けそうな気がしますが どうなのでしょうか?
firedfly

2019/01/31 13:40

Loss(損失)は「なんであれ常に」小さくしたい対象です。 G loss が小さいほどよい生成器になり、D loss が小さいほどよい識別機になります。 そうやって競い合わせて、優秀なGを生みだしたいのがGANです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問