CNNによる手書き数字の認識 – MNISTの学習とPythonによる実装 –

先日の記事では、画像認識の分野でよく使用されているCNN(畳み込みニューラルネットワーク)について調べました。

今回はこのCNNをTensorflowを用いて実装し、MNISTデータセットの学習を行いました。

 

 

使用モデル

使用したCNNのモデルを示します。

  • 階層は4とし、畳み込み層を2、全結合層を2としました。
  • 活性化関数はRelu6関数を使用
  • 出力層にはソフトマックスを使用
  • 誤差関数には交差エントロピー誤差関数を使用

 

CNNについては下記の記事を参照してください。

 

コード

使用したコードを下記に示します。コードはPython3.6、TensorFlow1.8を用いました。

 

 

結果

実行結果を示します。実行結果として、多層パーセプトロンの誤差関数の値(loss)とCNNの分類結果の正答率(accuracy)を載せています。実行結果はTensorBoardによってデータを取得しました。

実行の結果、CNNはMNISTデータセットを学習し、最終的に正答率としては98%になりました。

 

CNNによる画像識別の結果

 

まとめ

  • CNN(畳み込みニューラルネットワーク)をPythonとTensorFlowを用いて実装した。
  • MNISTをCNNで学習させた結果、手書き数字を95%の精度で認識した。

 

関連記事

ニューラルネットワーク・ディープラーニングのまとめ

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA