PR/BLOG

広報・ブログ

ニューラルネットワークを構築してみました

はじめに

リーダー堀川氏

こんにちは。技術開発推進部の堀川です。

これまでの技術ブログで何度かニューラルネットワークについて取り上げてきました。
今回、実際にニューラルネットワークをゼロから構築するという記事を見つけましたので、
こちらを参考にニューラルネットワークの構築を行ってみました。

構築するニューラルネットワークの概要

一般的にAIのプログラミングは、「Python」をイメージされると思いますが、今回の記事ではC#を利用しています。
ニューラルネットワーク表現するのに下記のような図がよく使われます。
その構成をC#のクラスで再現しているので、理解のしやすい内容となっていました。

 

記事の内容では、MNISTデータセットを使って手書きの数字認識モデルを作成しています。
記事とは少し違ったものを作ってみたかったので、
こちらの「文字画像データセット(平仮名73文字版)を試験公開しました|NDL Lab」のデータセットを使用させていただき、
ひらがなの文字認識を行いました。

今回使用したひらがなデータの詳細は以下のとおりです。

  • 文字画像サイズ:48×48ピクセル
  • 文字種類:濁音、半濁音、「ゐ」、「ゑ」を除く46文字
  • 学習データ:各文字1000個
  • テストデータ:各文字100個

 

実行結果

作成したモデルを使って手書き文字の判別を行いました。
テストデータを使った判別結果は、96.59%と高い結果が出ました。
次に手書き文字の認識結果です。
左側にマウスを使って文字を書き、右側に判別結果の文字を表示します。

 

結果として、うまく判別できたものを多く載せていますが、
実際は、同じ文字を書いても違う結果になることも多々あり
認識率は50%以下でした。
精度は低いですが、ゼロから構築したニューラルネットワークが動くことを確認することができました。

まとめ

実際に使えるモデルを作るためには、TensorflowやKerasといったフレームワークの使用や、その他多くの知識の習得が必要となりますが、
ニューラルネットワークの概念を理解するという意味で、今回の構築は私にとって有用なものでした。

今後は、前述のフレームワークなどの使い方など、AI技術について知識を深めていきたいと思います。

  • 当ページの人物画像はNIGAOE MAKERで作成しました。
一覧に戻る
ゆりちゃん

技術開発推進部ゆりちゃんからのお願い顔マークを押して、技術ブログの
感想をお聞かせください^^