深層強化学習論文リストを作り始めた

前にDQNの再現の記事を書いてからほぼ1年が空いてしまいました.DQNの新しい論文が2月にNatureに載ったのは記憶に新しいですが,それから研究はさらに加速し,最近では自分の感覚としてはarxiv含めて平均すると1週間に1論文くらいのペースで深層強化学習の研…

CaffeでDeep Q-Networkを実装して深層強化学習してみた

概要 深層学習フレームワークCaffeを使って,Deep Q-Networkという深層強化学習アルゴリズムをC++で実装して,Atari 2600のゲームをプレイさせてみました. Deep Q-Network Deep Q-Network(以下DQN)は,2013年のNIPSのDeep Learning Workshopの"Playing At…

流行りの深層学習フレームワークCaffeをC++から使ってみた

Caffeとは CaffeはBerkeley Vision and Learning Centerというところが中心となって開発している深層学習(Deep learning)フレームワークです.公式サイトの記述によれば 速い("We believe that Caffe is the fastest CNN implementation available") GPU…

General Game Playingの世界大会(IGGPC2014)の参加記録

2014年のInternational General Game Playing Competition(IGGPC)の参加記録です.IGGPCは2005年から毎年開催されているGeneral Game Playingの世界大会です. General Game Playingとはなにか ゆるい概要についてはゲームAI研究について何も知らなくても…

Magic: The Gathering + word2vec = "card2vec" 〜M:TGで自然言語処理〜

概要 最近word2vecという単語のベクトル表現を学習して単語の意味を足したり引いたりできるものが流行っていて面白そうだったので試しにMagic: The Gatheringについて学習させてみました.card2vecは勝手に作った造語です. 手順 自然言語処理をなにも知らな…

charをstd::stringに変換する

C++

C++でcharからstd::stringへの変換(文字から文字列へ,例えば'a'から"a"へ)をどうするか,すごく簡単そうに見えていざ検索してみるとchar[]とstd::stringの間の変換についての記述しか見つからなかったので書いておこうと思います. 「std::stringのコンス…

GCC 4.8.2をビルドしてホームディレクトリにインストール

C++

概要 あるサーバ上でC++11の機能をフルに使いたかったがGCCが古かったのでGCC 4.8.2を新たにインストールした.管理者権限が無いのでソースからコンパイルして$HOME/localにインストールした. 環境 OS Linux x86_64 元のGCC 4.3.2 手順 # Download GCC 4.8.…

記号の意味を検索して調べる

プログラミング中などによくある「Vimでテキストファイルを開いたら^@という文字が表示されてるけどこれどういう意味だっけ」「Makefile中の$Googleは悲しいほどに無力です.そんなときの選択肢. Stack Overflowで検索する 記号検索が可能な質問サイト.大…

論文メモ(2013/12/29-2014/01/04)

D. Mnih et al. (2013), "Playing Atari with Deep Reinforcement Learning" 強化学習におけるDeep Learningの試み Q-learningにおけるQ関数の学習に3つの隠れ層を持つネットワークを用いる(Deep Q-Network,略してDQN) 入力は画面のピクセルの縮小・グレ…

OS X Mavericksにアップデートしたらホットコーナーからスクリーンセーバーを開始できなくなった場合の対処法

Mac

環境 MacBook Mid 2010 LionからMavericksにアップデート 症状 ホットコーナーからスクリーンセーバーを開始するように設定していたところ,OS X Mavericksにアップデートしてから,ホットコーナーにカーソルを移動させてもスクリーンセーバーが表示されなく…

同値を表す矢印の上に三角形を載せた記号が「定義」を表すこと

こういう同値を表す矢印の上に三角形を載せた記号を板書で見て,使い方から「定義」っぽいなと思いつつも自信がなかったので質問してみたところやはり「定義」という意味でした.「同値 三角形 記号」とかで検索しても全然出てこないのでメモしておきます.…

安定結婚問題のためのGale-ShapleyアルゴリズムをPythonで実装してみた

使う予定はとくにありませんが,授業で見て面白かったので書いてみました.安定結婚問題 - Wikipedia """ Gale-Shapley Algorithm """ import random def shuffled(lst): tmp = lst[:] random.shuffle(tmp) return tmp n = 10 men = ["M" + str(i) for i in …

LaTeX Beamerにカスタムテーマをインストールして使う

LaTeX Beamerのデフォルトテーマのダサさに堪え兼ねたのでにカスタムテーマをインストールして使ってみました。 環境 OS Mac OS X(10.8.4) TeX e-pTeX 3.1415926-p3.4-110825-2.6 (utf8.euc) (TeX Live 2013)kpathsea version 6.1.1ptexenc version 1.3.1 …

Fizz BuzzをGame Description Language(GDL)で書いた

プログラマにお馴染みのFizz BuzzゲームをGame Description Language(GDL)で書きました.FizzBuzz in Game Description Language version 1一般的なFizz BuzzプログラムといえばFizz Buzzのルール通りに1, 2, Fizz, 4, Buzz, ...と出力するプログラムです…

Mac OSX LionにHomebrewでインストールしたYAP Prologで状態読み込みができなかったときのメモ

Mac

環境 OSX 10.7.5 Homebrew 0.9.4 YAP 6.2.2 症状 YAPのsave_programで保存した状態を読み込もうとしたが読み込めなかった. restore→Segmentation Fault CインタフェースのYAP_FastInit→[ WARNING: threaded YAP will ignore saved state (ファイル名) ]とい…

Ubuntu 12.10でCadiaPlayer3.0を動かすまでの道のり

General Game Playing Competitionで3回優勝しているCadiaPlayerは動かすまでが結構面倒なので,その手順をメモしておきます. 環境 Ubuntu 12.10 GCC 4.7.2 Boost 1.49.0 YAP Prologのインストール $ cd $ git clone git://yap.dcc.fc.up.pt/yap-6 $ cd yap…

Ubuntu 12.10 + Eclipse JunoでEasyShellのOpen/Runが正しく働かなかったときの対処

Windows->Preferences->EasyShellでEasyShellの設定画面を開く Shell Open commandの gnome-terminal --working-directory="{1}"を gnome-terminal --working-directory={1}に修正する. Shell Run commandの gnome-terminal --working-directory="{1}" --co…

毎回インストールしてるEclipseプラグイン

EasyShell Update site: http://pluginbox.sourceforge.net Eclipse Marketplaceからインストール可能 Project Explorerのツリーから,右クリックでワークスペース内のディレクトリをファイルマネージャ(Explorer/Finder/Nautilus等)で開いたり,端末で開…

Mac OS XとUbuntuのウィンドウ切り替えショートカット

片方ばかり使っているともう片方のショートカットを忘れてしまいがちなのでメモ. OS 異なるプログラム間の切り替え 同じプログラム内の切り替え Mac OS X(10.7.5) Command+Tab Command+F1 Ubuntu(12.10) Alt+Tab Alt+半角/全角

Mac OSX Lionでcpp-netlibのビルドに失敗したときのメモ

C++

環境 Mac OS X 10.7.5 cpp-netlib 0.9.4 GCC 4.7.0 CMake 2.8.11 Boost 1.53.0 手順 http://cpp-netlib.org/0.9.4/getting_started.html#getting-startedの通り https://github.com/cpp-netlib/cpp-netlib/downloadsからダウンロードし~/cpp-netlibに展開 下…

論文PDFの管理のためにMendeleyを使い始めた

最近,論文のPDFファイルの管理のためにMendeleyというサービスを使い始めました.それまではPDFに題名通りのファイル名をつけた後にDropboxに放り込んでいたのですが,ファイル名をつけるのが面倒だったり,論文を探すのが大変だったりしたので,もっとスマ…

論文メモ(2013/05/12-2013/05/18):進化計算と合成生物学

N Noman, L Palafox and H Iba (2013), "Evolving Genetic Networks for Synthetic Biology" 発振器,スイッチ,フィルタ,センサ等の機能を持ったGene Regulatory Network(GRN,遺伝子制御ネットワーク)を設計する Luらが指摘した,次世代の合成遺伝子ネ…

UnityでGalton Boardをシミュレーションしてみた

上の動画のパチンコのような機械はGalton Board,Bean Machine,Quincunxなどと呼ばれるものです.球が一段降りるごとに左右にそれぞれ1/2の確率で分かれるように作られているため,珠が最終的に落ちる場所は二項分布に従い,段数を増やせば正規分布に近づき…

読んだ論文メモ(2013/05/05-2013/05/11):カードゲーム関連

JM Font, T Mahlmann, D Manrique and J Togelius (2013), "Towards the Automatic Generation of Card Games through Grammar-Guided Genetic Programming" Card Game Description Languageによって表現されたカードゲームをGrammar-Guided Genetic Program…

論文メモ(2013/04/28-2013/05/04):複雑ネットワーク,進化計算,ゲーム

B. Georgeot and O. Giraud (2012), "The game of go as a complex network" 囲碁を複雑ネットワークとして捉え,その性質を分析 石の周囲8マスのパターンを1ノードとし,一定距離以内で連続して石が置おかれた場合に有効辺を追加 プロの棋譜とアマの棋譜で…

Cygwinでワイルドカードが置換されないときの対処法

Cygwinでアスタリスク(*)等のワイルドカードが置換されないときの対処法 $ shopt -s nullglobワイルドカードが置き換えられない - やぎさんはわらばんしをたべるから転載

論文メモ(2013/04/21-2013/04/27):ゲームにおける進化計算

Matthew Hausknecht, Piyush Khandelwal, Risto Miikkulainen and Peter Stone (2012), "HyperNEAT-GGP: A HyperNEAT-based Atari General Game Player" Artificial Neural Network(ANN)を進化させるNeuroEvolution of Augmenting Topologies(NEAT)がベ…

Ubuntu 12.10 64-bit版にOracle JDK7をインストールした

Install Java JDK 7 on Ubuntu 12.04 (JavaFX is included in the installation) | The Software Notesを参考にして,Ubuntu 12.10 64-bit版にOracle JDK7をインストールしました. $ sudo add-apt-repository ppa:webupd8team/java $ sudo apt-get update $…

共有ライブラリの動的リンクによりインタフェースの実装を読み込むポリモーフィズム

C++

ヘッダファイルで定義されているdlopen,dlsym,dlerror,dlclose等の関数を用いると共有ライブラリの動的リンクを行うことができます.オブジェクトへのポインタを返す関数へのポインタをdlsymにより取得することで,特定のインタフェースを実装した未知の…

Windows 7で環境変数の編集が面倒なのでRapid Environment Editorを使った

Windows 7では環境変数の編集は スタートメニューの「コンピューター」を右クリックして「プロパティ」を選択 「システムの詳細設定」をクリック 「環境変数」をクリック で現れるウィンドウから行うことができますが、環境変数一覧の欄が小さくて(広げるこ…