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

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

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

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

解決済

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

akihir
akihir

総合スコア0

Python 3.x

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

1回答

0評価

0クリップ

84閲覧

投稿2019/01/10 15:58

編集2022/01/12 10:58

カタカナ15文字の画像データ3000文字を用いて機械学習を行っています。
精度は9%以上を目指しているのですが、92%以上上がりません。
何か手段を教えていただこうと思い質問しました。

テスト、訓練データの分割や降下法のパラメータや中間層の数、ノード数などを変えて最適化してみました。
そのなかで、最も精度のよかったコードが以下です。

python

from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D from keras.utils import np_utils from sklearn.datasets import fetch_mldata import keras from keras.optimizers import RMSprop , Nadam import pandas as pd import numpy as np import matplotlib import matplotlib.pyplot as plt data = data.astype('float32') test = data[0:600,:,:,:].copy() train = data[600:3000,:,:,:].copy()# すべてのデータをtest(20%) , train(80%)に分ける t_test = label[0:600,:]# すべてのラベルデータをtest(20%) , train(80%)に分ける t_train = label[600:3000,:] x_train = train.reshape(2400,784) x_test = test.reshape(600,784) x_train = x_train.reshape(x_train.shape[0], 28, 28,1) x_test = x_test.reshape(x_test.shape[0], 28, 28,1) x_train /= 255 x_test /= 255 model = Sequential() model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28,28,1))) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.2)) model.add(Flatten()) model.add(Dense(128, activation='relu')) model.add(Dense(15, activation='softmax')) # Learnig Processの設定 model.compile(loss='categorical_crossentropy', optimizer=Nadam(lr=0.001,beta_2=0.9), metrics=['accuracy']) model.fit(x_train, t_train, epochs=100,validation_data=(x_test, t_test)) loss_and_metrics = model.evaluate(x_test, t_test, batch_size=128) print(loss_and_metrics)

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

y_waiwai
y_waiwai

2019/01/10 22:54

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

2019/01/11 02:11

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

2019/01/11 03:22

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

2019/01/11 03:52 編集

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

2019/01/13 14:15

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

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Python 3.x

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