世界を目指すIT少年の学習記録

世界を股にかけITを武器に暮らしていく!ことを目指す少年の備忘録。本のレビュー、勉強したこと、学んだことなどを記録していきます。

時系列分析とRstanを頑張った 7月振り返り

7月は引き続き時系列分析系を頑張ったよ って感じ&やっぱり復習とか何度も読むのって大事だね って思った。

 

7月読んだ本 統計系2冊、仕事系2冊

読んだ本リスト

4月 8冊 

5月 5冊

6月 4冊

7月 4冊

平均 4.25冊⇒年間50冊程度見込み

去年と同じペースだね。まあ妥当でしょう。

 

 

イシューからはじめよ―知的生産の「シンプルな本質」

イシューからはじめよ―知的生産の「シンプルな本質」

 

 おススメ度:5

個人的な傾向としてテクノロジー大好き!かっこいい手法好き!という単純でアホな部分が非常にあり、ソリューションドリブンとなりがちである。

だが、何かしら大きな成果を出したいとき重要なことは、どのように解いたかではなく

「どれくらい大きな課題を解決したか?」

 である。それをこの本では体系的にまとめていあり、非常にためになる。

 

リクルートで学んだリーダーになるための77の仕事術(ゴマブックス)

リクルートで学んだリーダーになるための77の仕事術(ゴマブックス)

 

おススメ度:4

リクルートという会社の中でどのようなことが行われているか、それを経営者の立場でどう考えるかなどがかかれている。結構面白い 

 

予測にいかす統計モデリングの基本―ベイズ統計入門から応用まで (KS理工学専門書)

予測にいかす統計モデリングの基本―ベイズ統計入門から応用まで (KS理工学専門書)

 

 おススメ度:4

 こちらの記事↓をやろうと思ったのだが、理論の詳細がわからなかったので、買って読んだ。ちょいちょい数式が難解なところがあって難しかったが図も多くて非常に役に立つ本だった

 

statmodeling.hatenablog.com

 

岩波データサイエンス Vol.1

岩波データサイエンス Vol.1

 

 おススメ度:5

数式の厳密さには欠けるが、MCMCを試してみたい人にはおすすめ。特にStanコードでどのようにやるかが載っているのが超良い。

 

 

Rstan備忘録

ちょいちょいつまづいたりしたので、自分のメモのためにもRstanの備忘録を

なんと素晴らしい先人達がいるものかと改めて感謝の嵐という感じなのですが、Rstanをどうやって導入するか、どうやって使うかとかをいろいろまとめてくださっている人達がいます。

github.com

こちらではStanの英語版のものを有志の方が日本語に訳してくださっています。めっちゃありがたい。

 

www.slideshare.net

これもバリ良い。MCMCで可視化するの大変だけどShinystanというライブラリ使うと、launch_shinystan(モデル名)とやるだけでめっちゃ生かした図とか出てくるで!って話。収束したかしてないかとかもすごい見やすい。

www.slideshare.net

こちらもためになるかと。ただ、上記の岩波データサイエンスVol.1のほうがはじめはよさそうだけど。

 

 

あと、現在勉強中だけど、コードをベクトル化すると高速になるとかで頑張っているけれども、よくわからない部分がちょいちょいありで、頑張っているなう。

その中でDocumentationの中で参考になった部分を以下引用

 

  • ベクトルは整数ではなくRealのみ
  • ベクトル化すると早くなる理由は三つの理由がある→正直メモリがほにゃほにゃとかは何言っているか一ミリもわからない笑
  • ベクトル表現だと列優先になるので、For文を扱うときは気をつける

 

vector, matrixは整数値を返すことはできず, 取り扱えるのはrealに限られています. (注1)
#(注1):Stanにおいて, 複雑な整数行列演算や, ブール行列演算が実行されている際にはこれは変更される場合があります. これは, 整数が行列演算に適切な入力ではないためです.
 
 
 
効率について
  • ArrayよりもMatrix, vectorの方がメモリの使用料が少ない
  • Matrixは列優先の順序でデータを格納する→matrix内のすべてのデータはメモリ内で隣接することが保証されます. これは最適化されたコードを考えると大切なことです. なぜなら現代のCPUを使った算術演算を実行することよりもデータをメモリからキャッシュに持っていくことの方がはるかに時間がかかるからです
  • いずれのデータ構造もデータが保持されている順序でインデックスを移動させると最も速くアクセスできます. メモリ上の位置もアクセス速度に関係します(以下例)

matrixは列優先であるため, 以下の順序でインデックスを移動させるのが適切です.

  matrix[M,N] a;
  //...
  for (n in 1:N)  //列が先
    for (m in 1:M)  //行が後
      // ... a[m,n]を使った計算...

他方, arrayは以下の例のように行優先の順序でインデックスを移動させるべきです(すなわち, 最後のインデックスが最も移動するのが速い).

  real a[M,N];
  // ...
  for (m in 1:M)  //行が先
    for (n in 1:N)  //列が後
      // ... a[m,n]を使った計算...
 
 

 

 

とのことです。

 

読み途中の本達

ハッカーと画家 コンピュータ時代の創造者たち

ハッカーと画家 コンピュータ時代の創造者たち

 

Ycombinatorのポールグレアムの本。この人の考え方は超面白いw

 

ファインマンさんは超天才 (岩波現代文庫)

ファインマンさんは超天才 (岩波現代文庫)

 

 

20世紀で最も偉大な物理学者の一人であるファインマンの本。

参考になったのは以下

「代数をつかって解く、というようなその答えをどのように出すかというのは大事ではない」

「複雑な本を読む時のコツは、とりあえず全部がむしゃらにでも読んでみること。途中で妙ちきりんな数式が出てきて、そこがわからなくても、その数式が二度と出てこないならそこはただの枝葉である。常に本質が何かを考えながら読んでいくことが大事なんだ」

 

つまりは、知識、分析力は手段でしかなく、解くべき本質的な問題を見極め、それに対して答えを出すこと。今まで学校では解くべき課題が与えられていたが、何を解くべきか、それは本質的かを常に自身に問うことを忘れないようにしたい。

と感じた。

 

ファスト&スロー (上)

ファスト&スロー (上)

 

 人間の認知メカニズムは

直観的なシステム1

論理的なシステム2

にわかれている。それらをいかに使い分けるか、意識するかを日々考える必要性がある

 

状態空間時系列分析入門

状態空間時系列分析入門

 

 某同期の僕としては雲の上の存在のような素粒子物理学者におススメしてもらった。

確かにわかりやすくて良い。が結構誤植が多いのが気になる。

今は10章中の8章

 

 

とりあえずこんなもんで。

じぇっ!