randomrookie’s diary

ふとした思い付きで始めました. たぶんそう長くは続きません.

学習記録:2 Raspberry Piを使って強化学習

はい, というわけで早速日課が崩壊してこんな時間です. まあでも一応目標の1日1投稿は守れているのでセーフとしよう.

気を取り直して,

今回はRaspberry PiにTensorflowをぶち込んで強化学習をやってやりましたの回である. 

結果はこちら.

f:id:randomrookie:20180811221231p:plain

x-y座標軸上の2点を与えると, 最も近い1次関数を返してくれるサンプルプログラムを作って動かした. ちなみにコードはここから拝借した.

qiita.com

qiitaに投稿されてる皆様のおかげで半端な理解でここまでできて嬉しい. と言いつつこれを実装するまでで一番時間がかかったのはTensorflowのインストールと各環境のセットアップ. 何を隠そう日付が変わった頃に更新できなかったのはこれが理由である. 正確にはTensorflow以外にもmecab, gensim, opencv, jtalkなどなど盛りだくさんのモジュールを追加していて, 特にopencvのセットアップに躓いていたため, である.

Tensorflowのインストールで問題だったのは, そもそも私が使っているRaspberry Pi model 3 b+とOSのRaspbianは, 標準でTensorflowに対応しており, 外部からパッケージを落として展開しなくても, ターミナルのコマンドから取得と展開を行えるようになっている, ということに気が付かなかったこと. エラーを吐き続けるコマンドに意味もなく苦しめられた. それからopencv. こいつも参考にしたwebサイトよりも新しいバージョンがリリースされていて, 古いバージョンが消されていたことからえらく時間を食われた. linuxのターミナル操作に不慣れだったのも原因の一つだったかもしれない.

今回入れた各モジュールの紹介は次回あたりでしようと思う. 今日は疲れた.

一応せっかくアカウントも作ったので, 今回作った1次関数誤差修正プログラムのソースコードgithubに残しておく. 

github.com

それから元の記事にあったコード通りの点 (1, 4) (5, 2)と, 傾きが-1, y切片が0になるようにいじった(1, -1) (3, -3)では正常に動作したが, 傾き1, y切片1になるように(3, 4) (5, 6)にすると誤差がどんどん開いていく結果になった. これも後で確認が必要だ.