強化学習の一手法であるQ-learning とディープニューラルネットを組み合わせた Deep Q Network、通称DQNを使って倒立振子の振り上げ問題を解決してみます。 問題設定 「倒立振子の振り上げ問題」というのは、今回はこういう問題設定です。 まず空中に静止したモータがあって、モータ軸に棒の一端がつながっています。棒は中心に質量が集中していて剛性$\infty$で太さ0の、よくある棒です。初期状態では棒は重力にしたがって下向きにぶら下がっています。この状態から振り子を振り上げて倒立状態で静止させてください、という問題です。古きよき制御工学では、振り上げ用と静止用に別設計されたコントローラを2つ用意して切り替えるなど、非線形要素を含むコントローラを用いて対処することになります。いや、やったことないですけど、そうらしいです。 今回は、モータは右か左に一定トルクの回転しかできない、とし
はじめに そもそもDQNが作りたかったわけじゃなくて、他の目的でChainerを使いたかったのでその練習にDQNを書いたんですが、せっかくだし公開しようと思いました 公開しました 。またどうせ公開するなら、この機会にこれ(Q学習+関数近似)関連で持っている知識をついでに整理しようと思ってまとめました。 ニュース記事とかNatureとかNIPSの論文だけ読むと、DQN作ったDeepmind/Googleすげー!!!って感覚になりそうですが、強化学習的な歴史的経緯を考えると強化学習+深層学習になった、むしろかなり当然の成り行きで生まれた技術であることがわかります。(ATARIのゲームを人間以上のパフォーマンスでプレイするというのがビジュアル的にわかりやすかった$\leftrightarrow$問題設定が良かったというのもあります。) この記事ではNIPSとNatureの以下の2本の論文 ・ V
Visualizing Concurrency in Go GopherCon, July 11, 2016 Ivan Danyliuk, Typeform Number forms Visualizations How do you see concurrency? Introducing GoTrace tool Hello, world! package main func main() { ch := make(chan int) go func() { ch <- 42 }() <-ch } Hello, world! Timer func tick(d time.Duration) <-chan int { c := make(chan int) go func() { time.Sleep(d) c <- 1 }() return c } func main() { for
Wantedlyインフラチームの @koudaiii です。 6月に Docker を Production で使い続ける理由 を書きました。 たくさんの方からコメントを頂きました。ありがとうございました。どんどんコミュニティなどで意見交換させて頂ければと思います :D さて、 今回は Docker を使っていく中でよく耳にする Kubernetes について、 Wantedly の Production 環境で Kubernetes を動かす上で調べた情報源をまとめました。 はじめにまず、最初に確認するのが、 Kubernetes の公式ドキュメントかと思います。 公式ドキュメントでは、 とくに実際の機能ごとに詳細な記述があります。目的の機能が明確にわかっている場合、公式ドキュメントを調べるだけで完結することが多いです。 しかし、文量が多いため使いたいユースケースからそれに必要な機能を探
Apache SparkとAmazon DSSTNEを使った、Amazon規模のレコメンデーション生成 Amazonのパーソナライゼーションでは、お客様毎の製品レコメンデーションを生成するためにニューラルネットワークを使っています。Amazonの製品カタログは、あるお客様が購入した製品の数に比較して非常に巨大なので、データセットは極端に疎になってしまいます。そして、お客様の数と製品の数は何億にものぼるため、我々のニューラルネットワークのモデルは複数のGPUで分散しなければ、空間や時間の制約を満たすことができません。 そのため、GPU上で動作するDSSTNE (the Deep Scalable Sparse Tensor Neural Engine)を開発しオープンソースにしました。我々はDSSTNEを使ってニューラルネットワークを学習しレコメンデーションを生成していて、ECのウェブサイト
Asynchronous Error Handling in Express with Promises, Generators and ES7 by Marc Harter Apr 21, 2015 / Community, Express, How-To tldr; Callbacks have a lousy error-handling story. Promises are better. Marry the built-in error handling in Express with promises and significantly lower the chances of an uncaught exception. Promises are native ES6, can be used with generators, and ES7 proposals like
さて、 Node.js のエラーハンドリングは難しいと言われてますが、 2016年現在、つまりNodeの v4 とか v6 が主流になり、 Promise が基本的な処理として採用されている状況ではどうでしょうか。ちょっと考えてみます。 一応これの補足です。 qiita.com TL;DR 未だに難しい。ただし、 Promise で改善されている。async-await や zone まで来たらかなり楽になる。 あと、 unhandledRejection が uncaughtException よりも酷いことにならないので、大分マシになっている。 Node.js のエラーハンドリングの難しさ まず JavaScript には同期と非同期のエラーハンドリングのやり方があります。前者は所謂 try-catch による方法、後者は callback を使って第一引数で実現する方法や emit(
うちには5歳の娘と1歳の息子がいます。 嫁とも教育方針についてなど、話し合っています。 しかし自分には特にアイディアがありません。まあ、好きなようにやればええんちゃう?くらいです。 ただ、人間である以前に生物として重要なのは、生きること、子孫を残すこと、です。そういう方向性で教育方針を考えてみます。 (念のため書きますが、これはネタです) 許嫁/許婚を作る 現在、日本は自由恋愛至上主義です。結婚するのに大変なコストがかかります。蝉のように力の限りミンミンと鳴き続ける必要があります。結婚するころには疲れ果てています。なんなの?この無駄なエネルギー浪費。しかも相手が見つかるだけまだマシ。日本男児の生涯独身率は2040年には30%と言われています。息子が適齢期になるころには結婚が難しい状況になっている可能性が高いです。 そういうときこそ先物取引でリスクヘッジです。予約しておけばいいのです。幸い、
自然言語処理とニューラルネット ここ数年で、自然言語処理の分野でもニューラルネットが非常に頻繁に使われるようになってきました。 自然言語処理で主に解析対象となるのは単語の配列や構文木などで、これらの内包する情報を表現するためにrecurrent neural network1やrecursive neural network1などに基づくモデルが頻繁に使われます。これらの最大の特徴はニューラルネットがある種のデータ構造を持っているという点で、1レイヤあたりのノードはそれほど多くない代わりにネットワークの接続が複雑で、しかも入力されるデータごとにネットワークそのものの形状が変化するという特徴があります。このため、伝統的なfeedforward neural networkを前提としたツールキットでは構築が難しいという問題がありました。 Chainerは、そのような問題を概ね解決してしまう強力
はじめに LINE BOT APIが公開されましたね。 雑談BOTをいまさら作ります。 なんでこんなに遅くなったかというと、LINEからのPOSTがなく、一週間近く経ったからです。 やる気が無くなり、Qiitaで記事を書くのをストップしてました。 すぐ設定が反映される人とそうでない人がいるようです。 だいぶ時間が経過しましたが、ずらずらと概要を書いていきます。 必要なもの ・BOT API Trial Account ・Docomo雑談対話API ・Heroku ・Heroku Redis BOT API Trial Account取得 LINE Bot APIを使うにはBOT API Trial Accountへの登録が必要です。 必要な項目を入力して登録すると、LINE Bot APIを使うときに必要なものが取得できます。 ・Channel ID ・Channel Secret ・MI
Ever since I learned about neural networks playing Atari games I wanted to reimplemnted it and learn how it works. Below you can see an AI playing Space Invaders. I trained it during my batch at Recurse Center on little over 50M frames. It is more awesome if you realize that the AI was trained in a similar way a human would learn: the only inputs are screen and number of gained (or lost) points af
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く