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

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

ただいまの
回答率

90.37%

  • Python

    10381questions

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

  • 機械学習

    855questions

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

Kerasにおけるニューラルネットの実装について

受付中

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 2,561

Siruko094

score 2

前提・実現したいこと

Kerasを用いて、NNを実装したいです。

https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html
このページに記載されている、簡潔なNNを実行してみようと思い、

https://gist.github.com/fchollet/0830affa1f7f19fd47b06d4cf89ed44d
このコードをサーバ上に記述し、指定されているフォルダを作成、画像(train/dog及びtrain/catに999枚ずつ、validation/dog及びvalidation/dogに400枚ずつ)を保存しました。

以上の設定を終え、実行したところ、

Found 1998 images belonging to 3 classes.
Found 1000 images belonging to 3 classes.
Epoch 1/50
2030/2000 [==============================] - 26s - loss: -7.7845 - acc: 0.4906 - val_loss: -8.0310 - val_acc: 0.4963
Epoch 2/50
2030/2000 [==============================] - 25s - loss: -7.9785 - acc: 0.4995 - val_loss: -7.8133 - val_acc: 0.5099
Epoch 3/50
2030/2000 [==============================] - 24s - loss: -7.9084 - acc: 0.5039 - val_loss: -8.0698 - val_acc: 0.4938
Epoch 4/50
2030/2000 [==============================] - 25s - loss: -8.0419 - acc: 0.4956 - val_loss: -7.7542 - val_acc: 0.5136
Epoch 5/50
2030/2000 [==============================] - 24s - loss: -7.9948 - acc: 0.4985 - val_loss: -8.2474 - val_acc: 0.4827
Epoch 6/50
2030/2000 [==============================] - 26s - loss: -7.9633 - acc: 0.5005 - val_loss: -7.8915 - val_acc: 0.5050
Epoch 7/50
2030/2000 [==============================] - 25s - loss: -7.9555 - acc: 0.5010 - val_loss: -8.0310 - val_acc: 0.4963
Epoch 8/50
2030/2000 [==============================] - 25s - loss: -7.9005 - acc: 0.5044 - val_loss: -7.8331 - val_acc: 0.5087
Epoch 9/50
2030/2000 [==============================] - 24s - loss: -8.0026 - acc: 0.4980 - val_loss: -8.0501 - val_acc: 0.4950
Epoch 10/50
2030/2000 [==============================] - 24s - loss: -8.0654 - acc: 0.4941 - val_loss: -7.8528 - val_acc: 0.5074
Epoch 11/50
2030/2000 [==============================] - 26s - loss: -7.9005 - acc: 0.5044 - val_loss: -8.4053 - val_acc: 0.4728
Epoch 12/50
2030/2000 [==============================] - 25s - loss: -7.8534 - acc: 0.5074 - val_loss: -7.7121 - val_acc: 0.5162
Epoch 13/50
2030/2000 [==============================] - 25s - loss: -8.0340 - acc: 0.4961 - val_loss: -7.8317 - val_acc: 0.5088
Epoch 14/50
2030/2000 [==============================] - 29s - loss: -8.0890 - acc: 0.4926 - val_loss: -8.3461 - val_acc: 0.4765
Epoch 15/50
2030/2000 [==============================] - 33s - loss: -7.8220 - acc: 0.5094 - val_loss: -7.3595 - val_acc: 0.5384
Epoch 16/50
2030/2000 [==============================] - 24s - loss: -8.0105 - acc: 0.4975 - val_loss: -8.5828 - val_acc: 0.4616
Epoch 17/50
2030/2000 [==============================] - 25s - loss: -7.9790 - acc: 0.4995 - val_loss: -7.7936 - val_acc: 0.5111
Epoch 18/50
2030/2000 [==============================] - 24s - loss: -8.0183 - acc: 0.4970 - val_loss: -7.9513 - val_acc: 0.5012
Epoch 19/50
2030/2000 [==============================] - 25s - loss: -8.1361 - acc: 0.4897 - val_loss: -7.9513 - val_acc: 0.5012
Epoch 20/50
2030/2000 [==============================] - 24s - loss: -7.7984 - acc: 0.5108 - val_loss: -8.1685 - val_acc: 0.4876

上記のように、誤差が減らず学習が全く進まない状態です。
おそらくラベル付けが上手くいっていないのだと思いますが、原因が分からない状態です。
バッチサイズや画像データの数を変更しても上手くいきませんでした。
検討がつかず困っています。
ご存じの方がいらっしゃいましたら,アドバイス頂ければ幸いです.

実行環境
AWS g2.2xlarge
GPU使用
OS ubuntu14.04
Python 3.5.2
Anaconda 2.4.1 (64-bit)
Keras 1.0.8(Theano ベース)
Theano 0.9.0.dev2

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 2

0

個人的な経験では誤差が減らない場合はデータ数が少ない(テストデータの特徴が学習データに存在しない)か学習数が少ないかあるいは正規化等の前処理がされていないそもそもデータ分布が近いので収束しないなど考えられます。

青本の3章を検討してみては如何でしょうか。
機械学習プロフェッショナルシリーズ 深層学習 chapter3 確率的勾配降下法
https://www.slideshare.net/zakktakk/chapter3-62337101

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

0

クラスが3つ認識されていますが、正しい振る舞いでしょうか?

Found 1998 images belonging to 3 classes. 
Found 1000 images belonging to 3 classes. 

パラメータに対して学習できるかどうかが繊細に関わってくるので、
コードがないとなんとも言えないですね。


以下追記
ソースコードを変更せずに、指示通りデータを準備すると普通に学習できます。
おそらく、フォルダの構造が正しくありません。
dogとcat以外のラベルがフォルダがtrainもしくはvalidationに存在するかと思われます。

Found 2222 images belonging to 2 classes.
Found 2222 images belonging to 2 classes.
Epoch 1/50
125/125 [==============================] - 18s - loss: 0.7156 - acc: 0.5350 - val_loss: 0.6706 - val_acc: 0.6138
Epoch 2/50
125/125 [==============================] - 13s - loss: 0.6735 - acc: 0.5964 - val_loss: 0.6512 - val_acc: 0.6112
Epoch 3/50
125/125 [==============================] - 13s - loss: 0.6469 - acc: 0.6429 - val_loss: 0.6211 - val_acc: 0.6504
Epoch 4/50
125/125 [==============================] - 13s - loss: 0.6253 - acc: 0.6652 - val_loss: 0.6723 - val_acc: 0.5550
Epoch 5/50
125/125 [==============================] - 13s - loss: 0.6048 - acc: 0.6859 - val_loss: 0.5641 - val_acc: 0.7137
Epoch 6/50
125/125 [==============================] - 12s - loss: 0.6035 - acc: 0.6863 - val_loss: 0.5590 - val_acc: 0.7130
Epoch 7/50
...

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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

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

  • Python

    10381questions

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

  • 機械学習

    855questions

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