The jonki

呼ばれて飛び出てじょじょじょじょーんき

OpenAI GymでQ学習してみた

f:id:jonki:20170103212740g:plain

今更ながらOpenAI Gymに手を出してみました.OpenAI Gymは強化学習の検証プラットフォームです.色々なゲームがGymとしてあるので,自分のアルゴリズムを簡単に検証できます.以前最良経路をQ学習で求める記事を書きましたが,Gym向けに書けばGUIも付いてきて面白いですし,コードをGistで共有していろんな人が見れるのが素晴らしいですね.OpenAI GymについてはQiitaなどの日本語記事も多くありますが,公式ドキュメントをさらっとやるのが良いと思います.pipで簡単に入ります.また結果のアップロード法なども書いてあります.

この記事は私がDQNを勉強するにあたっての勉強段階のメモになりますが,せっかくなので記事にしておきます.

今回やろうとしたことは下記サイトさまの完全な2番煎じです.とても丁寧に導出があるのでわかりやすいです.
OpenAI GymのFrozenLakeをQ学習で解く - 壁は通り抜けられませんよ


ちなみに今回の私の結果はこちらです.お決まりのQ値更新をε-greedy法でやってます.エピソードが20k回を超えたあたりで頭打ちしてるのがわかります.εは0.1なので0.9ぐらいのところで頭打ちになりそうな気がしますが,このFrozenというゲームでのActionは失敗する(床が凍ってるので失敗して違うところに行く)ためこのようになってるのでしょうか.εを大きくすると探索が多くなるので学習回数が稼げるような今回では性能はもっと低くなりました.ちなみにこのFrozenゲームで"Solved"扱いとなるのは,100回以上の連続エピソードで平均報酬が0.78となるときの模様.
gym.openai.com

OpenAIのページにGistのリンクを関連づけできますが,こちらにも転載しておきます.
gist.github.com


またこのコードは学習に100000回,テストに1000回のエピソードを実行しています.テスト時はグリーディにQ値が高いものだけを選んでいるのでまぁまぁの報酬を得られています.ちなみにGymページ上で公開する結果は,実際にエージェントのアクションを実行したものが記録されているので,プログラム上で学習・テストのフェーズに分けていても区別されないので注意が必要です.もしSolvedまでのターン数を少なくするためには学習を途中で打ち切るための工夫が必要になります.

###### LEARNING #####
episodes      : 100000
total reward  : 31345.0
average reward: 0.31
Q Value       :[[ 0.59249091  0.55120355  0.55790889  0.53586489]
 [ 0.37375349  0.28501838  0.32681906  0.50252414]
 [ 0.43046317  0.41389927  0.40868551  0.47895268]
 [ 0.22864477  0.3356128   0.31680292  0.45435774]
 [ 0.61381787  0.36289281  0.40866098  0.40079206]
 [ 0.          0.          0.          0.        ]
 [ 0.19441865  0.16082773  0.31126553  0.19699278]
 [ 0.          0.          0.          0.        ]
 [ 0.49801749  0.32274067  0.38407111  0.64344424]
 [ 0.41881865  0.69643086  0.31627336  0.38262692]
 [ 0.64931095  0.42975229  0.29664946  0.29694533]

 [ 0.          0.          0.          0.        ]
 [ 0.          0.          0.          0.        ]
 [ 0.55541199  0.54653454  0.76694065  0.59618378]
 [ 0.75235909  0.926072    0.83294958  0.78563857]
 [ 0.          0.          0.          0.        ]]
###### TEST #####
episodes      : 1000
total reward  : 741.0
average reward: 0.74


まだ理解が足りてないところもあるけどひとまず今回はこんなところで.

2016年にAmazonで買った物

2016年も終わるのでAmazonで今年お世話になった商品(書籍除く)をメモします.

ガジェット編

SONY コンパクトオーディオシステム CAS-1 CAS-1 WC

SONY コンパクトオーディオシステム CAS-1 CAS-1 WC

今年買ったガジェットでは一番高かったけど,その価値はあったもの.デスク作業に特化したハイエンドのオーディオなので作業も捗ります.小さいのにすごい音を出してくれます.ただ音声の入力端子が少ないのが惜しい.


CAS-1は基本的にPS4につながらないので,torne用に買いました.安いけど評判が良かったので迷わず購入.あんまりこだわりないけど安っぽいのは嫌,という人にはちょうどいいと思う.


BOSEのNCモデルと迷ってこれ.意外と重さは感じず,NCの機能はバッチりでした.アンビエントモードやタッチ操作が思いの外便利で良いです.


ここからAnkerシリーズ.10000mAhの割に軽いし質感も良いです.旅行用などに購入.


こちらは日常持ち歩き用.カバンに仕込んでおくために購入.


旅行用.サイズも小さく収まりが良いです.2つあるのでスマホiPadとか同時に出来て安心.


Kindle Paper Whiteを長時間保っていると疲れるので,これを貼り付けて使用.


Galaxy S7 Edge用に.気軽にポイー,と置けて充電できるので会社にも同じやつ置いてあります.


収納の少ないバッグに購入.縦型,横型あってどっちも買いました.


いろいろ突っ込めるバッグ.背面のメッシュやベルトもしっかりしてるのでPCの持ち運びに便利.


日常編

ちょっと高いので迷ったけど,明らかに睡眠の質が変わって上半身が凝らなくなりました.


会社用に.簡易蓋なので保温力はそこまで高くないけど,洗うのが簡単で気に入りました.衛生的.


木曽工芸 ウッドローラーマッサージャー 足うら思い

木曽工芸 ウッドローラーマッサージャー 足うら思い

会社に置いてます.足裏ゴロゴロするの好きなんです.


手ピカジェル [指定医薬部外品] 300ml

手ピカジェル [指定医薬部外品] 300ml

アルコールシリーズは色々使ったけど,これが適度な粘度でさらっと使えて便利.


洗濯機の洗剤投入口がベドベドになって嫌だったので購入.手も汚れず革命でした.


Call of Duty以来,やり込めたゲーム.


珪藻土のバスマット.濡れた足で立つと吸引する感覚が癖になります.衛生的っぽいしオススメ.


白元アース レンジでゆたぽん(Lサイズ) 330086

白元アース レンジでゆたぽん(Lサイズ) 330086

この時期は足が冷えるので.思いの外,朝まであったかいです.


我が家の風呂の収容力が少ないので購入.髭剃りとか化粧水とかいろいろ置いても大丈夫で便利.



これ以外にもいろいろ買いましたが,まぁこんなところ.来年もどうぞよろしくお願いします.

Anker PowerPort Qiの台を3Dプリンタで作った

f:id:jonki:20161218211449j:plain:w450

AnkerのPowerPort Qiを買ったんですが,Galaxy s7 edgeの充電スポットに当てるのにコツが必要だったので,気軽にぽいっとおいて充電できるように台を作りました.Qiの充電台製品があるのは知ってますが,このAnkerのやつを使わないのも勿体無いので.


裏側とスマホ乗せた時の画像はこんな感じ.Ankerのケーブルがぴったり収まるようにしました.Up Plus2の印刷サイズ限界が12cmなのでしょうがない.実用上は特に問題ありません.
f:id:jonki:20161218211457j:plain:w450
f:id:jonki:20161218210946j:plain:w450

作ったモデルはこちらにアップしてあります.
http://www.123dapp.com/123D_Design/Anker-PowerPort-Qi-Case/6472398www.123dapp.com

node-dash-buttonでのMACアドレス

node-dash-buttonで(dasherが利用してるライブラリ)でAmazon Dash ButtonのMACアドレスを探すスクリプトがあります.
github.com

モノによっては製造者に'Amazon Technologies Inc.'と表示されるようですが,私の場合は下記の2つ.前者のunknown (udp)のMACだとうまくいかず,後者のBroadcom (アメリカンの無線企業)のarpで見つけた方のMACアドレスを利用するようにしたところうまくボタン押下を検出できるようになった.でも前者のvendor調べたらAmazonなんだよね.

MACアドレス検索 - UIC

Possible dash hardware address detected: xx:xx:xx:xx:xx:xx Manufacturer: unknown Protocol: udp
Possible dash hardware address detected: yy:yy:yy:yy:yy:yy Manufacturer: Broadcom Protocol: arp

またDash Buttonを自分用IoTボタンにする場合,商品登録してクーポン適用購入した後でも無効化すればIoTボタンとしてまた遊べた.もったいないのでどうせなら商品買った後に遊ぼう.
Amazon.co.jp ヘルプ: Dash Buttonを無効化する

ある日倒れても大丈夫なように備える(一人暮らし編)

こんにちは.実は最近まで体調を1ヶ月半ほど崩し,会社も休んでいました.これまで自分は健康だと思ってましたが,人生初の入院や様々な検査を体験しました.色々と学ぶことも多かったので,「自分は大丈夫」と思っている方にも見て欲しい(特に一人暮らしの方)と思いこの記事を書いてみました.このブログでは基本技術ネタしか書かないのですが,今回は特別です.

何もない時にこそ準備をしておく

私の場合,特に予兆もなくいきなり体調を崩したのでゴテゴテで大変でした.この記事を読んでるあなたがまだ健康で何も準備していないのなら準備しましょう.基本的には一人暮らしの方の高熱時の準備内容になります.一人暮らしはいざというときに本当に怖い.

ポカリ

10リットルぐらいあると安心.高熱時はポカリなんて重いもの運んでられないので常備しておきましょう.どんどん飲んでおしっこ出しましょう.

非常食

冷凍食が役立ちます.私のおすすめは【焼きおにぎり】です.食べれる量を簡単に調整できる上に,レンジでチンなので調理が非常に簡単です.また災害時などの保存食も良いと思います.ただAmazonで買った保存食のおかゆはかなりまずかったので,あらかじめ美味しいものを調査しておくと良いと思います.

Amazon Prime Now

これは地域が限られますが,1,2時間で冷凍食品やポカリなどの飲み物を配送してくれるので,買い出しもきつい!という方にはピッタリです.何度かお世話になりました.

高熱対策グッズ

冷えピタは常時冷蔵庫で常備.保冷マクラは2つ用意しましょう.2つあるとぬるくなっても冷たいのにすぐ交換できるので非常に良いです.

フェイスタオルをたくさん用意

解熱剤を飲むと大量に汗をかくと思うのでタオルは欠かせません.また洗濯もこまめにできなくなるので,あらかじめフェイスタオルぐらいの体をちょっとふくのに手頃なタオルをたくさん用意しておくと便利です.うちの家はあまりタオルがなかったので苦労しました.

病院の調査

地元の小さな医院だと原因がわからず,大きな病院に行く必要があるときもあります(今回私がそうでした).その時のために家から近くて,評判の良い病院を探しておくと,いざという時に良いと思います.また紹介状がないと受け付けてくれない病院も多いので注意.診療日や時間も病院によってマチマチなので注意です.

症状をこまめにまとめておく

今回私は全部で6,7人ぐらいの先生の診断を受けたのですが,同じ病院でカルテを共有してるのにも関わらず,一から症状と経過を聞かれることが何度もありました.期間が長いとその症状も忘れると思うのでこまめにメモしておくのが大事です.私の場合,長期間の高熱や解熱剤の使用有無を覚えておきたかったので,体温のメモ&グラフ化できるアプリにひたすら保存していました.(子供用ですが気にしない)
育ログ WM[Android/iPhone] - WM(わたしムーヴ)

仕事上,重要な人のメアドを個人携帯に登録

私の場合は,チームリーダー,課長,部長,秘書の方のメールアドレスをGmailに登録しました.というのもまず会社PCを持っていないor PCを開くのもダルいという可能性があるからです.またメーリングリストなどと違い,個別のアドレスだと細かい診断状況などプライベートな情報も含めやすくなります.まぁ会社によってここはマチマチだと思いますが.

メンタルヘルス対策術を学んでおく

これ結構重要だと思うんですが,自分の場合,体調不良3週目ぐらいからひどく気持ちが落ちる時が何度かありました.また会社復帰時なども結構不安になります.基本的にはネガティブ発想から起きるので,こういう時のために簡単なメンタルヘルス対策術を学んでおくと良いと思います.と言っても私はこれ系の本をたまたま1冊読んでただけですが,それだけでもだいぶ違いました.「俺はメンタル強いから」とか思ってる人ほど読んだ方が良いと思います.

ストレスをすっきり消し去る71の技術

ストレスをすっきり消し去る71の技術

貯金の用意

よく言われますけど3ヶ月分ぐらいの生活費は用意しておきましょう.

会社の制度の勉強

高額療養費制度(基準額,限度条件など),病気による長期休暇,休職など軽く見といた方が良いと思います.

タクシー配送会社のTELを登録しておく

自分で病院に行くのも辛い可能性は大いにあるので,タクシーの配送TELは控えておくといざという時に楽です.

実家に早く帰って頼る.できなければ早く結婚する

私はそこそこ実家が近いので,早々に実家で療養してました.と言っても頼れる人が地理的に近くにいない人も多いと思うので,そういう方は早々に一人暮らしをやめて早く結婚しましょう.いや本当に.


ひとまず来年の抱負は健康第一に決まったjojonkiでした.