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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

2398閲覧

手書き文字識別の精度高上について

akihir

総合スコア39

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/01/10 15:58

編集2019/01/11 02:10

カタカナ15文字の画像データ3000文字を用いて機械学習を行っています。
精度は95%以上を目指しているのですが、92%以上上がりません。

テスト、訓練データの分割割合
降下法のパラメータ、降下法の種類
中間層の数、ノード数
を変えて最適化してみました。

精度を上げるために次のステップとして何をすべきかわからず、とまっている状況です。
何かアドバイスをいただけないでしょうか。

そのなかで、最も精度のよかったコードが以下です。

python

1from keras.models import Sequential 2from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D 3from keras.utils import np_utils 4from sklearn.datasets import fetch_mldata 5import keras 6from keras.optimizers import RMSprop , Nadam 7import pandas as pd 8import numpy as np 9import matplotlib 10import matplotlib.pyplot as plt 11 12data = data.astype('float32') 13test = data[0:600,:,:,:].copy() 14train = data[600:3000,:,:,:].copy()# すべてのデータをtest(20%) , train(80%)に分ける 15t_test = label[0:600,:]# すべてのラベルデータをtest(20%) , train(80%)に分ける 16t_train = label[600:3000,:] 17x_train = train.reshape(2400,784) 18x_test = test.reshape(600,784) 19 20x_train = x_train.reshape(x_train.shape[0], 28, 28,1) 21x_test = x_test.reshape(x_test.shape[0], 28, 28,1) 22 23x_train /= 255 24x_test /= 255 25 26model = Sequential() 27 28model.add(Conv2D(32, kernel_size=(3, 3), 29 activation='relu', 30 input_shape=(28,28,1))) 31model.add(MaxPooling2D(pool_size=(2, 2))) 32model.add(Dropout(0.2)) 33model.add(Flatten()) 34model.add(Dense(128, activation='relu')) 35 36model.add(Dense(15, activation='softmax')) 37 38 39# Learnig Processの設定 40model.compile(loss='categorical_crossentropy', 41 optimizer=Nadam(lr=0.001,beta_2=0.9), 42 metrics=['accuracy']) 43 44model.fit(x_train, t_train, epochs=100,validation_data=(x_test, t_test)) 45 46loss_and_metrics = model.evaluate(x_test, t_test, batch_size=128) 47print(loss_and_metrics)

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

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

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

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

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

y_waiwai

2019/01/10 22:54

で、しつもんはなんでしょうか
akihir

2019/01/11 02:11

すみません、、、。精度を上げるために、次にどのようなことをすべきかをご教示お願いできないでしょうか。パラメータの最適化など、どのサイトにも記載しているような単純なことは一通り行ってみました。 よろしくお願いします。
Q71

2019/01/11 03:22

畳み込み層が1層しかないように思いますが、あってますか?そうであれば、特徴抽出が十分できていないと考えられます。 また、分類も1層の様ですが、ここも増やしてみましたか? やったような事は書いてありますが、やった事は具体的に書きましょう。
tiitoi

2019/01/11 03:52 編集

LeNet や AlexNet あたりを参考にモデルを作ってみるといいかもしれませんね。 あとサンプル数 3000 で15クラスだと1クラスあたり200サンプルなので、Deep Learning にしては少ないと感じます。 MNIST は CNN 使うと 99% いきますが、1クラスあたり5000枚程の全体で6万枚のデータ数があって実現できてる精度です。
akihir

2019/01/13 14:15

畳み込み層数などもう一度最適化してみましたが、やはり精度は上がりませんでした。 他の方がおっしゃられている通り、水増しを行ってみたいと思います
guest

回答1

0

ベストアンサー

データ件数を増やしてみましょう(既存の画像にノイズを加えるなど)

https://products.sint.co.jp/aisia/blog/vol1-7

がっつりやるならカプセルNNとかは面白そうかも

投稿2019/01/11 03:23

編集2019/01/11 03:24
yamato_user

総合スコア2321

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問