an odd fellow

仕事のメモ

無垢の領域読んだ

桜木先生の本を読むと人間不信が加速していく気がする。いや、人間の心理が複雑なんだってわかってはいるんだけど、みんなもっと単純であって欲しいって願っている自分に気付きます。無垢の領域、今回は秋津夫妻の描写がカリカリのレンズで切り取った写真のように解像度が高くてひりひりした。基本的にカリカリの描写の中で純香の存在は面白かった。彼女のふわふわとした存在を囲んで、周りの人物像が余計に際立っていたと思う。

桜木先生の段々と首を締めていく長編小説大好き。短編だと一気にきゅっと首を括られる感じでこれもまた良い。ボクはじわじわやられるのを何日もかけて苦しんで読むのが大好きです。

北海道行きたいな〜。今年の夏、2 回行くことになってるんだけど富良野と函館なので、桜木先生の本でよく出てくる道東では無いのが残念。標茶とか Google Map で見ると想像通り、あるいはラブレスでの描写の通りの未開の地で笑ってしまう。百合江の実家のシーンで想像した通りの風景なのでほんと驚く。釧路と根室も行きたい。きっと殺伐としているんだろうな〜(失礼)

無垢の領域 (新潮文庫)

無垢の領域 (新潮文庫)

「追憶」見た

午前 10 時の映画祭に足繁く通って今年 3 本目。こないだの"ティファニー" が 1 本目で 2 本目は「旅情」だった。「旅情」と「追憶」は脚本がどちらもアーサー・ローレンツだった

追憶、面白かった。色々思ったんだけど、この映画ほんとに好き

まず最初のハベルがケイティの左翼活動の演説で惚れるところが好き。ハベルは彼女のその一生懸命な姿に最初惚れてるんだよな。活動内容じゃなくて、そのひたむきな姿勢に惚れていて、好き合って付き合うんだけど、結局彼女のその革命的思想や政治活動がハベル自身の仕事に影響が出て無理になって別れる。この、お互いのことを断ち切り難く思っているのにこういう結末になるっていうのが好き

ケイティ演じたバーブラ・ストライサンドはほんとに左翼的思想を持っている役者さんらしい。名女優らしいですね…知らなかった…

この映画 1972 年公開なんだけど、このときの日本映画って仁義なき戦いとか男はつらいよとかやってて、一方で追憶っていうのは女性が主人公で自分の意見を持って自分の生き方を追求する話をやってる。こないだの"ティファニー"は1961 年公開で、あの映画も自分の生き方を追求すべしっていう終わり方だったし、なるほどなあと思った

「ティファニーで朝食を」見た

タイトルからしてもっとローマの休日的な優雅な映画だと思っていたんだけど全然違った。ローマの休日も見てないからわかんないけど…

話自体は擦れた跳ねっ返りの娘ホリーとこじらせた作家男ポールとのラブロマンスで、最初の 5 分くらいでだいたい全体の話の想像はつくんだけど、最後のシーンのポールの台詞は印象的だった

君には勇気が無い。一人で生きていく勇気だ。君は誰かのものになるという君の檻に閉じ込められてる。どこに行こうとついて回る檻だ。

この跳ねっ返り娘は玉の輿に乗ることばかり考えているんだけど、そこにポールがこの台詞を最後にガツン!と言うんですな、そうするとホリーははっとしてポールを追いかける

オードリーヘプバーン美人ですな、そうそう、ローマの休日もオードリーなんだけど、あの清楚のイメージと違って"ティファニー"のホリーは娼婦なんだよな。wiki 見たらオードリー自身ホリーは自分には明るすぎるキャラクタだって言ってるんだけど、でも全然よかった

なんで突然こんな古い昔の映画を見ているかというと、午前10時の映画祭っていうのがやってて、古い名作をスクリーンで見れるので実はちょいちょい行っている。

asa10.eiga.com

なかなか古い映画見る機会無いのでちゃんとした場所でちゃんと見れるの嬉しい。こんどマイ・フェア・レディもやるので楽しみにしている

Emacs から Atom に乗り換えた

エディタを Emacs から Atom に乗り換えた。

最近は jupyter notebook でざっと書いて Python スクリプトに清書することが多いんだけど、効率的が悪いし何か良い方法は無いかと色々探していたところ Atom に hydrogen という良いプラグインを見つけたので良い機会だったし Emacs から Atom に乗り換えた。

正確には Spacemacs から Atom に乗り換えた。Spacemacs は良かった。良かったがゆえに最初からきちんともろもろ使い良く揃っているエディタの良さにも気づいてしまった…。

atom.io

https://i.github-camo.com/391fdd5cb8d7b51881055353aa056557dd985f2f/68747470733a2f2f636c6f75642e67697468756275736572636f6e74656e742e636f6d2f6173736574732f3833363337352f31343035343132382f62663836636637302d663261342d313165352d383031342d3537383430633962376133302e676966

この GIF が全てを物語ってる。jupyter のセルでやってることをピュアな Python スクリプト内で出来るのでコピペの手間が無くなった。

.atom の管理

当然エディタの設定は git で管理して他の環境でも使えるように githubホスティングしたいので$HOME/.atomを git の管理下に置いた。

github.com

パッケージ管理

Atom にはパッケージ管理用のコマンドラインツールが付随していて、こいつを使うとスターをつけたパッケージを一気にインストールできるので、これでパッケージを管理してもいい。

qiita.com

しかし apm はインストール済みかどうかチェックしないので、apm stars --install を叩くとめちゃくちゃ遅い。そこで、Ruby の Bundler のように入れたいパッケージ名を一行ずつ書いたテキストファイルを atomfile という名前で管理して、一行ずつ読み込んでは $HOME/.atom/packagesを見てインストール済みか否かチェックしてからインストールするようなスクリプトを書いた。こんな感じ。

gist.github.com

ついでに各パッケージで必要な deb パッケージとか Python パッケージも make 叩いただけで入るように Makefile 書いた。hydrogen は pip で ipython 入れないといけないし、apt-get で libzmq-dev 入れないといけないので、こんな感じに書く。

gist.github.com

make 便利。

hydrogen

便利。超ベンリ。ただ、ちょっとばかし遅い。slime とか cider みたいな repl 駆動開発をリッチにした感じ。リッチ repl 駆動開発だ。他の言語もこういう感じで書けないのかしら。

Dependencies の Linux の項目にlibzmq3-dev (preferred) とあるけど Ubuntu14.04 だと libzmq3-dev では hydrogen が動かなくて libzmq-dev を入れる必要があった。はまった…。同じ問題ではまる人なんとかこのブログにたどり着いて欲しい。

2016/4/25 追記

libzmq-devlibzmq3-dev の違いがよくわかったので追記。

hydrogen を apm でインストールする前に libzmq1 が入っていれば libzmq-dev で動きます。libzmq3 が入った環境で apm で hydrogen でインストールすると libzmq3-dev でないと動きません。

詳しくはここ

github.com

slackin のバグでハマった

slackin 0.8.3 には SLACK_CHANNELS を空にしてデプロイすると invite 出来ないバグがある。

github.com

slackin でメールアドレス入力して 「GET MY INVITE」押しても PLEASE WAIT から一生進まない症状で悩んでる人がいたらこのバグです。このときブラウザのデベロッパツールで見ると client.js の 22 行目で

Uncaught TypeError: Cannot read property 'value' of undefined

とか出てたらこのバグです。

0.8.1 に巻き戻してデプロイしたら動きました。

4 日前にプルリク出てたからそのうちマージされて直ると思うけど…

4月13日追記

昨日 slackin 立てたら 0.8.3 でも直ってた。

tramp で su とか踏み台

emacsssh するときは tramp 使うんだけど su とか 踏み台とかも出来ます。24.3 以降ならいい感じにシンタックスも導入されてていい感じに使えます。

例えば vagrant で開発環境作ったときとか vagrant ユーザで ssh して su で他のユーザに移りたかったりする。そんなときはこんな感じ

/ssh:vagrant@192.168.33.10|su:username:

で Enter 叩く

f:id:roronya:20160329155051p:plain

踏み台のときはこう

/ssh:vagrant@192.168.33.10|ssh:username:291.68.33.11:

参考: https://www.emacswiki.org/emacs/TrampMode

Emacs Wiki モダンなデザインになって見やすくなって良い

Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

統計的因果推論へ招待されてきた

日本社会心理学会主催で「統計的因果推論への招待」という題目でセミナーをやっていたので行ってみた。

日本社会心理学会

うーむ、自分の研究テーマにこれを言ってしまうのはアレがソレなんだけど、"統計的因果推論"…いかにも怪しげな感じだし、更に心理学も加わるとより一層胡散臭い雰囲気が漂ってしまっている…。

このセミナーにはボクが拡張しようとしている統計的因果推論手法である LiNGAM の提唱者の清水先生もいらっしゃって講演されるというので行ってみたんだけれど、一番最初の大塚先生による科学哲学からみた因果推論の話がすごく面白くて雑にメモを取ってあるのでまとめてみる。

因果推論は哲学

手法ばかり注目していては因果推論の全体像が見えない。そもそも確率論で議論ができる話題では無いので科学哲学の視点から因果推論なるものを今一度整理しよう、という導入だったように思う。

哲学とは?

そもそも哲学ってなによっていう。哲学っていうのは以下の 3 つの議論によって物事を考えることらしい。

  • 存在論 ・・・ 何があるのか?
  • 意味論 ・・・ 定義はなんだ?
  • 認識論 ・・・ どうやって見つけるんだ?

(ボクこれを聞いたときに哲学ってこれだ!って言い切るひとを初めて見たので驚いた。)

例えば「今日は昨日の 2 倍暖かい」なーんて言うと、存在論的には気温があって、認識論的には温度計で気温を測るんだけど、意味論的には温度(気温)という尺度に積の概念が定義されていないから、この文章は「意味論的におかしい」とか言うらしい。

もうひとつ例を上げる。アリストテレスの 4 原因説をこのフレームワークで考える。4 原因説っていうのは「隣に家がある」っていうのをどうやって説明するかって考えたときに以下の 4 つについて説明すれば説明したことになるということ。

  • 何でできてる?   ・・・ 鉄筋コンクリート
  • どんな形式・設計? ・・・ 近代和風建築
  • どんな作用?    ・・・ 家族 4 人で不自由なく住める
  • なぜそれがあるの? ・・・ 小中学校も近くスーパーや駅にも不便しないから

4 原因説っていうのは上で言うところの意味論から議論を出発している。つまり「『説明』の定義ってなによ?」(意味論)を考えることで、その定義の答えである何で出来てるかやどんな作用を持っているかが存在することになって(存在論)、その答えをいかにして知るか(認識論)を考える。

結構わかりやすい(気がする)。このフレームワークで因果推論を考えていく。

デカルトの主張

デカルトは言いました。

「意識が明晰に認識しないものは存在すると言えない」

これは認識論的展開です。認識論から出発して存在論や意味論に展開しようとしている。

「意識が明晰に認識するもの」っていうのはここでは形と運動のみのようです。形相や目的は明晰的に認識できないとしています。形相っていうのは「ありかた」みたいな意味で「本屋だけど立ち読みばかりで誰も本を買わない本屋」みたいな使われ方とかそういう意味でここでは使っているように思う。で、だから形相や目的については存在しないものとして扱う、とデカルトは主張しました。

ヒュームの主張

ヒュームはものごとを認識するときに、そのものごとが何に作用するかどんな作用するかなんて我々見てないでしょっていうようなことを主張したようです。あるのは力だけ。つまり明晰的に認識するのって力だけで、それがどこにどんな影響を及ぼしてるのかって明晰的に認識できないんだから存在しないんじゃん?って言ったようです。

また、よく因果関係って人間の「習慣」じゃん?って聞くんだけど、これはヒュームが提唱者で、この習慣を恒常的連接とかって呼んでる。

ヒューム的に因果推論なるものを哲学的に考察するとこんな感じ。認識論から出発して存在論と意味論に展開していく。

  • 認識論 ・・・ 明晰的に知覚する
  • 存在論 ・・・ 力
  • 意味論 ・・・ 恒常的連接

科学哲学

こうして昨今の科学哲学ができあがったようです。昨今の科学哲学っていうのは観察データ(明晰的に知覚できるもの)からその関係性を科学的な言語で記述するための認識論的なところをがんばろうっていう風潮のことでいいとおもう。

ラッセル・ピアソン・ウィトゲンシュタイン

ラッセルとピアソンの主張はこうです。

「科学とは存在論と認識論に合致するもの」

昨今の科学哲学の基礎です。さらにウィトゲンシュタインは言いました。

「語りえぬものは沈黙しなければならない」

ここでいう語りえぬものっていうのは例えば

  • 能動的な世界への働きかけ・介入
  • 反事実的事象
  • 世界構造

なんか段々胡散臭くなってきた。でもウィトゲンシュタインが生きていた当時は天文学が流行ってたらしいので世界の構造みたいなスケールの大きい人間ではどうしようも無いことに対して考えてたんじゃないかな(という邪推)。そういう、人間ではどうしようもないことに対して介入して変化させた後のことなんて認識できいないから沈黙するようです。まぁ確かに議論しても無駄とかそういう水掛け論になって収束しなそうというのはわかる。

でも因果関係ってまさにこれで介入とか反事実的事象を考えるんだよね…

というので科学の哲学そのものを拡張していく必要があるということに至る

ルイスの反事実条件アプローチ

ここから、「ワクチンを受けたのでインフルエンザにかからなかった」という事実があったときに「ワクチンを受けなかったからインフルエンザにかかった」という反事実を真にするにはどうしたらよいだろう?っていうのを考えていく。前者は観測された事象だから真だけれど、後者については観測されてないから真偽付け難い。

そもそも伝統的論理学ではこういう観測された事象についてのみに真偽が判定されるので後者については真偽が定義できない。

そこで可能世界意味論なるものが登場する。

  • 「地球は青い」は必然 => 偽
  • 「地球は赤い」は可能 => 真

といった感じに、世界をいくつも考えて、そういう事象がありえる世界があるかどうかっていうのを考えるのが可能世界意味論です。

で、さっきのワクチンとインフルの話に戻ると「仮にワクチンを受けなかったらインフルにかかった」という命題として、可能世界意味論的に考えると

「ワクチンを打ってない可能世界のうち現実世界に最も近い世界ではインフルにかかった」

と言い換えられます。最も近い世界っていうのは、ワクチンを打ったか打ってないか以外の事象についてはほとんど同じことが起きる世界のことで、逆に色々違う理の世界だと、インフルになったとしても別の事象が原因かもしれないってことになる。だからワクチン以外の差が無い世界を引き合いに出す必要があります。

ルイスの哲学的を考察するとこんな感じ(このへんメモあるけどうろ覚え…)

  • 意味論 ・・・ 可能世界意味論に基づく
  • 存在論 ・・・ 可能世界
  • 認識論 ・・・ 認識なんて出来ないよ

認識できません。ルイスはそう言ってたようです。可能世界は認識できいない。そこでルービンとパールが出てきてこの可能世界意味論上でどうやって因果関係を認識するかを議論し始める。

ルービン

双子の兄弟がワクチンを受けなかった時の状況を見る、っていうのがルービンの基本的な考え方のようです。でも双子なんてめったにいるもんじゃないし、なるべく似た人を集めて観察します。

似ているってなんだ?っていう問題はある。

因果推論の分野でよく聞く傾向スコアっていうのは関連性質を全てようやくする特徴量のことらしい。この特徴量を使って似ているかどうかを判定するようです(詳しくは星野先生の講演でお話されてた)

  • 意味論 ・・・ 現実と類似世界との差
  • 存在論 ・・・ 可能世界
  • 認識論 ・・・ 傾向スコア・マッチング回帰

パール

一方パールは科学言語を拡張したようです。確率論では因果関係は定義できないっていうのは介入を確率論の言葉で記述できないからです。だから do 演算子っていうのを定義して確率論を拡張しました。それで PC アルゴリズムだったり清水先生の LiNGAM が提案されてたりする。

パールは存在論から展開していく

  • 存在論 ・・・ 変数間の因果構造
  • 認識論 ・・・ do 演算子
  • 意味論 ・・・ 介入

ていう感じだった。なお、出てくる哲学者たちはお互い影響しあって主張しているように見えるけど、別にそんなことなくてたまたま同時期にこういう主張があったというのを大塚先生が話されていました。「こういうことが同時期に重なりあって主張があるというのは、面白い現象」とおっしゃられていたのが印象的だった。すごく分かり良かった。

研究していて「因果関係ってなんなんだ…」ってなるときが結構あったんだけど、こうやって展開されてきたものなのだと思うと、自分がやっていることの位置付けがわかったような気がした。歴史って大事。

統計的因果推論―回帰分析の新しい枠組み (シリーズ・予測と発見の科学)

統計的因果推論―回帰分析の新しい枠組み (シリーズ・予測と発見の科学)

統計的因果推論 -モデル・推論・推測-

統計的因果推論 -モデル・推論・推測-