検索 メニュー MENU

× 閉じる

プログラミング初心者の40歳が人工知能(ディープラーニング)をやってみた!

世の中は人工知能ブームということで、すごいことが出来そうだという事は分かるのですが、プログラムをやったことがない私としては、手に負えないだろうな~と言う事で、その世界に入のはあきらめていました。


●事前準備
しかし、いつもの寝正月からの脱却という事で、お正月の暇な時間を使って、人工知能・ディープラーニングの本を読んでみました。読んだのは、通称赤本と呼ばれている「ゼロから作るDeep Learning」や松尾先生の「人工知能は人間を超えるか」などです。「行列」や「微分」などの学生時代の懐かしい言葉を思い出しながら数冊の本を読みました。

ディープラーニングを進めるにあたり、Pythonという言語を学ぶことが必要のようでしたので、初心者向けのPythonの本「Pythonスタートブック」も読んで、いざやってみようという事で早速、プログラムを書いてみました。

ゼロから作るDeep Learning Pythonで学ぶディープラーニングの理論と実装 [ 斎藤 康毅 ]

価格:3,672円
(2018/1/19 12:56時点)
感想(3件)

人工知能は人間を超えるか ディープラーニングの先にあるもの (角川EPUB選書) [ 松尾豊 ]

価格:1,512円
(2018/1/19 12:57時点)
感想(2件)

Pythonスタートブック いちばんやさしいパイソンの本 [ 辻真吾 ]

価格:2,678円
(2018/1/19 12:57時点)
感想(11件)



●畳み込みニューラルネットワークの識別率
まずは、チュートリアルのあるMNISTの手書き文字の識別を、Tensorflowを用いて実行してみました。

MNISTは画像認識のデータセットで手書きの数字画像から構成されており、畳み込みニューラルネットワーク(Convolutional Neural Network :CNN )のプログラムが公開されているので、それを用いて実行しました。

99.2%の精度という驚くべき識別率です。画像を読み込ませるだけで特徴が自動的に抽出されて、この精度!ディープラーニングはやっぱりすごい!

●自分でプログラムを作る
次は、自分でもプログラムを作ってみました。行ったのは「キノコ」の画像識別プログラムを作りました。

「キノコ」好きの私としては、キノコの品種判別がデイープラーニングで行えるのかに挑戦!!品種は「シイタケ」「エリンギ」「マイタケ」「ブナシメジ」「エノキ」の5種です。

学習に使用出来そうなキノコの画像が、多く入手ができなかったので、少ないですが今回は各品種毎に60枚を使用しました。

さらに、少ない画像枚数をカバーするために、画像を―20℃から20℃で5℃刻みで回転させたり、反転などして画像枚数を水増しして実施しました。

TensorflowとKerasを用いて、CNN(畳み込み層・プーリング層を2層)で実装してみた所66.7%の識別率でした。

まだまだ実用化には正直厳しいですが、最適化や評価手法などの関数の変更を行ったり、層をより深くしたりすれば識別率の向上は期待出来そうです。

●計算環境(CPU vs GPU)
キノコの画像識別には、数年前に購入したVAIOでCPU( Intel CORE i5 )環境で試しましたが、結果が出るまでに7時間かかりました。

さすがに7時間は長いので、AmazonのクラウドでGPUインスタントを利用しました。GPU環境で実行を行ったところ、同じプログラムで20分で終わりました。やっぱり機械学習にはGPU環境は必須のツールです。

クラウドで利用できるGPUに、GCP (Google Cloud Platform)が加わったという事で、AWS、Azure、GCPの主要なGPUクラウドプラットフォームが揃いました。

今回使用したGPUインスタンスは、AWSのp2.xlargeです。インスタンスにはP2の他G2もありますが、G2がグラフィック処理などの用途に対して、p2は機械学習などに用いられています。昔は日本リージョンでは提供されていなかったようですが、現在は利用可能となっていました。

●最後に
農家の方がキュウリの等級による分類をディープラーニングを用いた画像識別で実装した例などがありますが、画像識別を導入することで課題が解決できることも多いと思いますので、自社の課題などについて一度相談ください。『相談料は無料です』。
食品検査.comのメール(support@shokuhinkensa.com)まで相談ください。



2018.01.24 更新