【人工知能】Raspberry Pi ではじめる機械学習 じゃんけん・あやめ分類など【ディープラーニング】

Raspberry Piで機械学習

なかなか面白そうな企画ですよね。

Pythonについて知っていて、機械学習(DeepLearningということではなく、クラシフィケーション、クラスタリングなど全般)について学習するにはとてもいい教材だと思います。

Numpyでゼロから作る機械学習より今風になってると思います。

【読書感想文】ゼロから作るDeep Learning Pythonで作るんだって・・・【ラジコン自動運転?】

sklearn

Pythonの機械学習のライブラリとして、大部分はsklearnというライブラリを使って体験していきます。いろいろなものの分類、回帰、クラスタリングなどをSVM(サポートベクターマシン)などや、パーセプトロン、ニューラルネットワークなどで機械学習できるんですね。

http://scikit-learn.org/stable/

https://qiita.com/ishizakiiii/items/0650723cc2b4eef2c1cf

ただバージョンによっていろんなエラーも出るようで、少しいろいろ調べる必要がありそう

僕の場合は、Pine64というボードだからかもしれません。。が、ニューラルネット系のMLP分類器が読み込めないっていうエラーが出てしまいます。。

from sklearn.neural_network import MLPClassifier
ImportError: cannot import name MLPClassifier

Stackoverflowでも、この話題、いろいろ出てるので、解決法はありそうですけど

https://stackoverflow.com/questions/34016238/sklearn-import-mlpclassifier-fails

まだ試していません(^^;

Sklearnのバージョンによる違いについては、本文中には、こちらのページで案内があると書かれています。今のところ、案内はないので、僕だけの問題かもしれません。

http://bluebacks.kodansha.co.jp/special/ml.html

http://bluebacks.kodansha.co.jp/books/9784065020524/appendix/

IDLE

それと、Pythonの開発環境はIDLEというのを使います。WindowsではAnacondaなど使っているんですが、これ、とっても軽くて便利ですね。

EditorとPython Shellだけのインターフェースですが、EditorからRun Moduleで動かせるので便利かもです。

最後の章で、Deep Learning

この本も、最後の章でDeep Learningの勉強をします。 ライブラリはモデル記述にはKerasとバックエンドにはTheanoというライブラリを使っています。

https://keras.io/ja/#tensorflowcntktheano

http://deeplearning.net/software/theano/

Tensorflow、Chainer、などが有名ですが、theanoも有名なんですね。知らなかった。

Raspberry Piでやらずに、Pine64で(笑)

ということで、Raspberry Piも持っているんですが、Ubuntuが入っているPinebookというボードでやってみてみました。

【Pinebook】Raspberry Pi 対抗のPine64でできたUbuntsuノートブックが来た。Scratchとかするなら、これで良いかも【$89~$99】

手書き数字の特徴量の3D表現

こんなのができるんですね。Axsis3Dオブジェクトで、ぐるぐる3Dをマウスで回せるんですね。。 知らなかった。Rの関数とPythonは似てますね。見え方がそっくりです。

https://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html

SVMで文字認識

手書き文字の認識にSVMを使っています。ある程度の条件が整うと、きちんと認識されますね。RaspberryPi用なので、画素数は実は8×8なんですが、0~9まで認識できてますね。

これのニューラルネットバージョンとかパーセプトロンバージョンとかもあります。

ジャンケン

最終的には、Piカメラで撮った手を画像認識して、ジャンケンの手を逐次学習させながらRaspberry Piとジャンケンをするというコードの説明があります。

下の例は、まだ画像認識してませんが。。 こんな感じです。

やはり、RaspberryPiだと、学習に凄い時間がかかるようですね。

この本の良いところは、学習データも載っているし、すぐに試せるように作られています。

ちなみに、Pinebookでやっているので、Pine64にはPicameraというモジュールは、ないので・・・OpenCVで直接叩かないとカメラキャプチャーできません(笑)

Picameraのクラスを使わずに、OpenCVと書き方を統一する方法が以下にのっています。これの考え方でやれば、Pine64(Pinebook)でもできそうです。

Unifying picamera and cv2.VideoCapture into a single class with OpenCV

ここを見てみると、pygameを使うと、pygame.cameraでもアクセスできるようなので、それでやってもいいみたいです。

https://forum.pine64.org/showthread.php?tid=1071

ちなみに、OpenCVで、cv2.VideoCapture(0)で、キャプチャーはできるので、解像度の変更などをして動かそうと思います。

また動かしたら、記事にしますね。Windowsになってるかもしれないけど(笑)

Raspberry Pi3も持ってるんですけどね(笑)

なんにせよ、この本、Matplot、OpenCV、Sklearn、Kerasの手引書でGUIなども作っていたり、VideoCaptureもしていたりで、面白いです。確かにプログラミング経験なくても、このソースをいじっていると楽しいですね。

おススメ本です。

カメラ付きのスターターパックってないんですね。なぜだろう?

投稿者 tom2rd

コメントを残していただけるとありがたいです

Loading Facebook Comments ...

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください