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

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

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

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

深層学習

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

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

機械学習

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

Python

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

Q&A

解決済

1回答

7541閲覧

Kerasを用いたAutoencoderの学習、loss値がマイナスになってしまう過学習を防ぐ方法について

oriharas

総合スコア12

Keras

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

深層学習

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

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

機械学習

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

Python

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

0グッド

0クリップ

投稿2019/01/24 06:56

編集2019/01/25 21:06

前提・実現したいこと

現在Autoencoderを学習させ顔画像からメガネを消去するといったものを作成しています。顔画像のメガネなどをかけていない画像を6300枚、訓練データで学習させているのですが、1epoch目からloss値がマイナスになってしまいます、学習を安定化させ学習後にはメガネをつけた顔画像を入力し、出力にはメガネを除去した顔を出力したいと考えています。

発生している問題・エラーメッセージ

Autoenoderを学習させているのですが、1epoch目からloss値がマイナスになってしまいます、本来ならばloss値は0.5~0位の値をいくと思うのですが,,,

Autoenoderを学習させているのですが、1epoch目からloss値がマイナスになってしまいます、本来ならばloss値は0.5~0位の値をいくと思うのですが,,, テストの際にも顔画像からメガネが削除されず、そのまま再現した画像を出力してしまいます。 以下の方にモデルをkerasで書いているので添付させていただきます。

該当のソースコード

python

1nput_img = Input(shape=(256, 256, 3)) 2 x = Conv2D(128, 3, 3, activation='relu', border_mode='same')(input_img) 3 x = BatchNormalization()(x) 4 x = MaxPooling2D((2, 2), border_mode='same')(x) 5 x = Conv2D(64, 3, 3, activation='relu', border_mode='same')(x) 6 x = BatchNormalization()(x) 7 x = MaxPooling2D((2, 2), border_mode='same')(x) 8 x = Conv2D(64, 3, 3, activation='relu', border_mode='same')(x) 9 x = BatchNormalization()(x) 10 encoded = MaxPooling2D((2, 2), border_mode='same')(x) 11 12 x = Conv2D(64, 3, 3, activation='relu', border_mode='same')(encoded) 13 x = BatchNormalization()(x) 14 x = UpSampling2D((2, 2))(x) 15 x = Conv2D(64, 3, 3, activation='relu', border_mode='same')(x) 16 x = BatchNormalization()(x) 17 x = UpSampling2D((2, 2))(x) 18 x = Conv2D(128, 3, 3, activation='relu', border_mode='same')(x) 19 x = BatchNormalization()(x) 20 x = UpSampling2D((2, 2))(x) 21 decoded = Conv2D(3, 3, 3, activation='sigmoid', border_mode='same')(x) 22 23 autoencoder = Model(input_img, decoded) 24 print(autoencoder.summary()) 25 26 autoencoder.compile(optimizer='adam', loss='binary_crossentropy',metrics=['accuracy']) 27 28 autoencoder.fit(images, images, batch_size=9,epochs=50,verbose=1,validation_data=(images2,images2),shuffle=True) 29

試したこと

モデルを他のモデルに変えたり、BatchNormalizationを追加してみたりしたのですが、ほぼ何も変わらずといった具合になっています、他にもバッチサイズを変えたりなどです。
もしかしたら、訓練データの方にも、問題があるかもしれないので訓練データも現在改良を加えている最中です

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

quickquip

2019/01/24 23:45

モデルの記述しかないですが学習のコードは提示できませんか? loss値を問題にしているのにそれを計算する部分のコードがないというのは質問の体裁になってないと思います。 あとなんのライブラリを使っているかも。見る人が見ればわかるでしょうが、なんのライブラリを使っているか質問に書いてないのでは"見ればわかる人"が見てくれる可能性を減らすだけです。
oriharas

2019/01/25 05:54

すいません、学習部分に関して追加しました。 また。ライブラリはkerasを使っています
guest

回答1

0

ベストアンサー

内容から察するに過学習ではないと思います。

詳しくないので直感ですが、教師データが0~1の範囲に収まっているか確認してみてください。

投稿2019/01/24 09:41

fiveHundred

総合スコア9796

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問