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

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

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

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

深層学習

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1706閲覧

GANでノイズしか生成されない

tomoki_fab

総合スコア25

Keras

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

深層学習

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/05/23 03:00

編集2020/08/11 13:09

PythonでGANを用いた画像生成プログラムを作っています。
教師データとしてMNISTデータセットを用い、偽の手書き数字画像を生成するのが目標です。

画像を生成するGeneratorは、ランダムなノイズベクトルから、UpSampling2DレイヤーまたはDeconvolution2D(Conv2DTranspose)レイヤー、Convolution2Dレイヤー、活性化関数(主にRelu)を6層ほど(何度か層を変えて試してみていますが拡大縮小したデータサイズを合わせるためにだいたい6層ほどでやっています)経て画像として出力します。
一方、本物の画像と生成画像を判別するDiscriminatorは、入力画像を数層のConvolution2Dレイヤーと活性化関数へ渡し、Dense(Affine)レイヤーを5層ほど経て判別結果を出力します。
本物・偽物を1,0で表現し、0~1の範囲のDiscriminatorの出力との差を使って損失関数を定義しています。(Kerasではbinary_crossentropyを用いています)

しかし何度実験してみても出来上がった画像はノイズのようなものばかりです。
(以下がいくつかの生成画像です,
上5つが外部ライブラリに頼らずに作ったもの, 下5つがKerasを用いて作ったもの)

===============================================

これまでに試してみたこととしては、

  • 様々な組み合わせのハイパーパラメーターで学習する
  • GeneratorとDiscriminatorのバランスを取る(それぞれの精度を加味しながら)
  • Relu以外の活性化関数を使ってみる
  • Batch Normalizationを使う
  • レイヤーの組み合わせも様々に試す
  • 画像分類などは問題なく作れる

インターネットで手当たり次第に調べたり、書籍で参考になりそうな情報を探したり、手を尽くしましたがなぜ全くうまくいかないのかわかりません。問題がレイヤーの組み方なのか、何か決定的に重要な処理を飛ばしてしまっているのか、損失関数などの評価の仕方が悪いのかも見当もつきません。
なにか見落としているポイントなどがありますでしょうか?

解決しました


目指していたものができました。

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

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

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

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

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

aokikenichi

2020/08/10 09:46

コードを示していただかないと正しく実装されているのか間違っているのか分からないかと
tomoki_fab

2020/08/11 13:07

返信ありがとうござます。 折角メッセージを送っていただいたのですが、この質問には回答が付かないまま流れてしまったために同じ質問を再度投稿してそちらで解決しました。 https://teratail.com/questions/264336 質問を簡単には削除できなかったのでそのままにしていました。申し訳ないです。
guest

回答1

0

自己解決

投稿2020/08/11 13:10

tomoki_fab

総合スコア25

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問