ニューラルネットワークを構築してみました
はじめに
過去のニューラルネットワークの記事を読む
|
構築するニューラルネットワークの概要
一般的にAIのプログラミングは、「Python」をイメージされると思いますが、今回の記事ではC#を利用しています。
ニューラルネットワーク表現するのに下記のような図がよく使われます。
その構成をC#のクラスで再現しているので、理解のしやすい内容となっていました。
記事の内容では、MNISTデータセットを使って手書きの数字認識モデルを作成しています。
記事とは少し違ったものを作ってみたかったので、
こちらの「文字画像データセット(平仮名73文字版)を試験公開しました|NDL Lab」のデータセットを使用させていただき、
ひらがなの文字認識を行いました。
今回使用したひらがなデータの詳細は以下のとおりです。
- 文字画像サイズ:48×48ピクセル
- 文字種類:濁音、半濁音、「ゐ」、「ゑ」を除く46文字
- 学習データ:各文字1000個
- テストデータ:各文字100個
実行結果
作成したモデルを使って手書き文字の判別を行いました。
テストデータを使った判別結果は、96.59%と高い結果が出ました。
次に手書き文字の認識結果です。
左側にマウスを使って文字を書き、右側に判別結果の文字を表示します。
結果として、うまく判別できたものを多く載せていますが、
実際は、同じ文字を書いても違う結果になることも多々あり
認識率は50%以下でした。
精度は低いですが、ゼロから構築したニューラルネットワークが動くことを確認することができました。
まとめ
実際に使えるモデルを作るためには、TensorflowやKerasといったフレームワークの使用や、その他多くの知識の習得が必要となりますが、
ニューラルネットワークの概念を理解するという意味で、今回の構築は私にとって有用なものでした。
今後は、前述のフレームワークなどの使い方など、AI技術について知識を深めていきたいと思います。
- 当ページの人物画像はNIGAOE MAKERで作成しました。