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

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

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

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

Python

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

Q&A

2回答

6151閲覧

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

Siruko094

総合スコア8

機械学習

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

Python

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

0グッド

0クリップ

投稿2016/09/27 06:06

###前提・実現したいこと
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

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

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

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

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

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

guest

回答2

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 ...

投稿2017/10/30 04:25

編集2017/10/30 04:55
mkgrei

総合スコア8560

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

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

0

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

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

投稿2016/11/12 02:27

編集2017/08/16 01:50
miyamoto0105

総合スコア216

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問