Vim Tips
リンクを貼りまくる
インストール
基本操作
vi・vim勉強中。 - vim UNDO(元に戻す)・REDO(元に戻したものを戻す)
ファイラー
プログラミング
Vim Script
プラグイン
結論;Shougoさんはすごすぎる。 qiita.com
Unite
Amazon Web ServiceでMPI Cluster構築
MPIの基本
#include <mpi.h> #include <stdio.h> #include <string.h> #define LENGTH 200 int main(int argc, char* argv[]){ int my_rank; char message[LENGTH]; int dest = 0; int tag = 0; // 初期化 MPI_Init(&argc, &argv); // プロセス・ランク MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); if(my_rank!=0){ // 送信側 sprintf(message, "Hello, my proc rank : %d", my_rank); MPI_Send( message, strlen(message)+1, MPI_CHAR, dest, tag, MPI_COMM_WORLD); }else{ // 受信側 int proc_num; int source; MPI_Status recv_status; MPI_Comm_size(MPI_COMM_WORLD, &proc_num); for(source=1; source<proc_num; source++){ MPI_Recv(message,LENGTH, MPI_CHAR, source, tag, MPI_COMM_WORLD, &recv_status); fprintf(stdout, "%s\n", message); } } MPI_Finalize(); }
⇒ mpirun -np 8 a.out Hello, my proc rank : 1 Hello, my proc rank : 2 Hello, my proc rank : 3 Hello, my proc rank : 4 Hello, my proc rank : 5 Hello, my proc rank : 6 Hello, my proc rank : 7
参考
MPI
http://h50146.www5.hp.com/solutions/hpc/stc/soft/pdfs/mpi_training.pdf
starcluster
Deep Q-Network まとめ
強化学習に関する良記事を見つけた。
元論文はこちら
NIPS [1312.5602] Playing Atari with Deep Reinforcement Learning
Nature Human-level control through deep reinforcement learning : Nature : Nature Publishing Group
以下自分なりの整理。
Q学習の枠組み
式 | 名前 | 意味 |
---|---|---|
観測 | 環境に関してエージェントが得る情報 | |
報酬 | 環境からエージェントが得る報酬 | |
行動 | エージェントが環境に対してとる行動 | |
(目的関数) | 時刻tから無限の未来までに得る報酬の和(のようなもの) | |
方策 | 観測sに基づきエージェントがとる行動aを規定する関数 | |
最適方策 | 最大化させる方策 | |
行動価値関数 | 観測sで行動aを取った場合の目的関数 の期待値 | |
最適行動価値関数 | 下記 |
の正確な定義は
この目的関数を最大化させる最適方策を得ることが学習の目的。
方策を求める代わりに、行動価値関数という概念を導入する。
最適方策と最適行動価値関数の間には以下の関係が成り立つ
学習は目的関数を最大化させる最適価値関数を得る事と等価。
学習の更新式
観測sに続く行動aの次のステップの観測s'、行動a'をもとに、Q(s, a)を更新する。
つまり学習率で、に近づけていく。
価値関数Q(s, a)をパラメータの関数で近似した場合、勾配によるパラメータの更新式は
Neural networkの応用
価値関数をNNで近似。原理的には誤差逆伝搬で上記勾配法を適用すればよいが、学習速度を向上させるためには工夫が必要。
以下のアルゴリズムが提唱されてきたらしい。
- Experience Replay
エージェントが経験したサンプル (s, a, r, s′)を全て(あるいは有限の時間数ぶん)記録しておき、一度つかったサンプルを上記の関数近似を用いたQ学習で何度も利用するという手法
つまり再利用という事?
- Neural Fitted Q Iteration
まずサンプル (s, a, r, s′)からなる十分な数のデータがあるものとして、「これ以上サンプルを追加せず、与えられたデータから最適方策を学習する」、すなわちバッチ強化学習を行うことを考えるアルゴリズム
NNの学習としてみれば、ただのミニバッチ学習?SGDに近い。
- Growing Batch
ある程度学習を行った後にエージェントを環境中で動かし、バッチのデータを後から追加していく
強化学習、という条件が付いているために名前が付いているが、NNの学習という意味では特別は事はやっていなさそう。
Nature論文のアルゴリズムはNeural Fitted Q Iteration + Growing Batch。詳細は論文のアルゴリズム参照。
2016年の目標
あけましておめでとうございます。
今回の帰省ではあらためて家族のありがたみを感じた。しっかりと生きていかなければ。 尊敬するaidiaryさんにならい、自分も目標を立ててみる。
博士研究
博士課程の前半はいろいろな活動に色気を出し、博士研究は正直60〜70%位のペースで進めていた。 今年からは90%は博士研究に捧げる。残り10%は進路。
テーマは「シミュレーションと機械学習による除細動治療戦略の探索と実験的検証」
1年で以下をやりきる。
投稿計画
その他
- 論文を1週間に1本は精読
- 情報理論の系統的理解
- 作者: 甘利俊一
- 出版社/メーカー: 筑摩書房
- 発売日: 2011/04/08
- メディア: 単行本
- 購入: 4人 クリック: 48回
- この商品を含むブログ (11件) を見る
- Deep Learningのさらなる理解。MCMCやRBMの生成モデルを中心に。
- 作者: J.アルバート
- 出版社/メーカー: 丸善出版
- 発売日: 2012/04/05
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
最後に今年の標語
「シンカ」
- 専門性を「深化」させ
- 能力の「真価」を発揮し
- 新たな自分に「進化」する
Bidomainモデル構築 - 心筋細胞モデル
心臓のフィジオーム―電気生理現象のシミュレーション 分子から臓器まで
- 作者: 岡本良夫
- 出版社/メーカー: 森北出版
- 発売日: 2003/08
- メディア: 単行本
- この商品を含むブログを見る
心筋細胞モデルとは
心臓を構成する心筋細胞は、電気的興奮が細胞間を伝播することで駆動されています。そのメカニズムには細胞膜上にあるイオンチャネルが関与しており、その挙動を数学的モデルで説明したのが有名なHodgkin-Huxleyモデルです。
静止電位
細胞が興奮していない状態では、細胞内の電位は細胞外よりも低い状態(静止電位)に保たれています。これは細胞内の陽イオンを汲み出すイオンポンプの働きによるもので、細胞内外で各種のイオンの濃度差を生み出しています(分極)。この細胞内外の電位差を膜電位と呼びます。
つまり細胞外の陽イオンは細胞内に流入しようとしている状態なわけですが、静止状態ではイオンチャネルが閉じているために流入は起こらず、静止膜電位が保たれます。心筋の静止膜電位は約-80mV程度です。
脱分極と再分極
イオンチャネルは膜電位によって挙動が変化する性質があります。このイオンチャネルを開くトリガとなるのが外部電流です。細胞の外部から細胞に流れる電流によって膜電位が変化し、細胞内外の電位差が僅かにでも小さくなると、イオンチャネルが開き始めます。まずはNa+のチャネルが開き、Na+が細胞内に流入します。これは細胞内への内向き電流なので、膜電位は上昇し、マイナスが0に近づきます。するとその電位変化がトリガとなり、他のイオンチャネルも次々と開くことになります。ドミノのように連鎖的にイオンチャネルが開いて陽イオンが一気に細胞内に流入することで、細胞内外の電位差がなくなります(脱分極)。脱分極が起こると今度は外向きにイオンを流すイオンチャネルやイオンポンプが活性化しはじめて、最終的にはもとの静止電位状態にもどります。(再分極)
いやはや、うまく出来ていますね。
HH方程式
膜電位により変化するイオンチャネルの透過特性を数理モデルで表したものがHH(Hodgkin-Hulxley)方程式です。