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

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

ただいまの
回答率

87.61%

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

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,301

score 719

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

こちらのサイトの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の値を 変えながら 実行しておりますが
他に 実行結果を 改善するには どのような手法が ありますでしょうか?

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • firedfly

    2019/01/29 11:04 編集

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

    キャンセル

  • tiitoi

    2019/01/29 23:55

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

    キャンセル

回答 1

checkベストアンサー

0

こんにちは。

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/31 22:34

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

    キャンセル

  • 2019/01/31 22:40

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

    キャンセル

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

  • ただいまの回答率 87.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る