いないち日記

大阪で Information Retrieval を勉強する大学生の日記。

2019/10/21/2019/10/27

久しぶりに輪講の発表をした。Trust, but Verify なんかは重要なアイデアだと思う。あとは倫理的なことで、ここはざっと飛ばした。

自分が指揮をとって研究室の大掃除をした。ちょっと工夫を凝らして Github ベースで進めてみると、これが結構成功したのでメモっておく。

事前準備**

  • Github で大掃除用のリポジトリを作って、 Issues を使ってやるべきことをリストアップ。ここではダブりを気にせずにブレスト的にどんどん書き込んでもらう。
  • ある程度まとまったら、やるべき作業を (似ている作業をマージしながら) 絞っていく。同時に Assignee を利用して担当者を決定 (Assignee で決めると Issues のフィルタリングができて自分の仕事が一目で見られて便利)
  • 各 Issue にやるべきことを明確にした文を書く。ここでできるたけ明確にしておくことで本番のドタバタを回避。
  • 事前に購入が必要なものは "要備品" タグを付けて、事前に購入。

当日**

  • 各自 Assign されている業務を担当してもらう。それだけ!


たかが大掃除かもしれないけど、30人を一気に指揮するのは無理なのである程度自律的に動いてもらう必要があって、そういう意味では一大プロジェクトのような気もする。

2019/10/14-2019/10/20

ここ最近はプログラミングが楽しくなってきて全然提案手法に移れていない。。

Github に研究ノートを移す関係で過去の Evernote を回ることがあって、いろいろな復習ができた。去年に勉強した Autoencoder はこんなにいろいろあったっけというぐらいたくさんの亜種がメモられていた。

前はあまり気が進まなかった一人 pull-request, issue, branch も気持ちがわかってきた気がする。論理的な差分が目に見えやすいので、週ごとの作業をまとめたりもやりやすい。

2019/10/07-2019/10/17

タイトルがいつの間にか日曜区切りでなくなっていたので出直し。

人生のあらゆるメモを Github に集約させようと考え始めた。

まずは文献管理。1 bibtex = 1 file としてプレーンテキストで保存。メモは Issue。Issue ID を primary key にして、Issue <-> PDF (Dropbox) <-> bibtex の管理をする。するとなんと、論文もモダンに

> XXX et al (#3) introduces...

とかかけてしまう (TODO だけど)。これは便利で、Overlief の便利さ凌駕する。
これが楽しくて、週の大半はこれに費やした。

あとはメモ帳。今まで Evernote で書いていたが、Markdown やスレッドに対応している Github の方がより魅力的に見えた。

2019/09/30-2019/10/06

10月に入ったというのに一向に涼しくならない... と嘆いていると、$さんにもうすでに涼しいと言われる。太ってから体感温度が一気に上がってるせいだろうか、痩せないと..

重い腰を上げて WMD を実装してみた。PuPL というライブラリを使うと線形計画法が簡単に実装できて、コードも数行で済んだ。便利。

最先端 NLP に発表資料一覧が上がっていたのでざっと見てみる。実行委員の@さんにも誘われたことだし、スケジュールの問題が無ければ発表したかったなぁ。気になったのは % さんの Don't Settle for Average, Go for the Max: Fuzzy Sets and Max-Pooled Word Vectors. これは文の類似度を集合演算で測る方法。BoW でJaccard 係数みたいな集合演算を使う場合に (元が BoW なので) 各単語が意味的に独立してしまうという問題を解決するため、word embedding を使ってもっと fuzzy にしていくというストーリー。

2019/09/23-2019/09/29

 \mathbf{\mathrm{R}}^d に対する TF-iDF (あるいはそも smoothing) のようなものをぼんやり考えている。結局 word embedding はそのままだと密すぎて使えないので (# さんにもこの間のフィレンツェで false positive が多くでそうと言われていて、その通りになった)、やっぱりベースは BoW にしたいという思いがある。TF IDF もつまるところ単語の出現頻度を確率とみなしたエントロピーなので、近い概念を連続量かつ多次元に拡張できればいいんだけど...

Github の issue ベースで開発をしてみた。チケット管理ベースだと全タスクが一望できるのでいい。今までの失敗も踏まえて、できるだけスムーズにコーディングに移れるようにする (例えば asignee とか tag とかはつけない)。ソロプレイにはソロプレイなりの使い方があるはず。

研究室旅行で城崎温泉に行った。昭和の町並みが色濃く残っていて良い。

2019/09/16-2019/09/22

学部時代の研究室の # 先生の還暦パーティーがあった。さすがはバイオ系の研究室で、集まった人たちもそちらが多かった。ちょうど理化学研究所のチームリーダーの $ さんと関西大学の教授の & さんと話していたとき、ある論文の話題になる。

Suzanne Rohrback, et al. Genomic mosaicism in the developing and adult brain. Developmental Neurobiology. 2018.

なんと人間の脳細胞中のゲノムは同一でないという現象が確認されたらしく驚く。遺伝子発現レベルならわかるけど、まさかゲノムまで違うとは。

研究の方では行き詰まりが出てきたので、気分転換にソフトウェアエンジニアリング的なことに足を突っ込んでいた。AI2 のリポジトリを見ながら (悩んだときは AI2 の Github, というのはアメリカでのメンターの教えでもある)、テストはこういう構造でこう書けばいいのか、なんてことをまねたりしていた。型レベルのバグは mypy のおかげで見つからなかったけど、型が同じで内容が違う、というのは結構見つかる。

2019/09/09-2019/09-15

同志社大学で経済学の研究をされている%先生のところにお邪魔して、Python のレクチャーをしてきた。それにしても同志社はきれいで、学食は本当にレストランという感じで、学生より30代~のお客さんが目立つ。

先週考えていた von Mises Fisher 分布を早速試してみると、数値が思いのほかすぐオーバーフローしてしまうことがわかった。もちろん本当は確率分布なので最終的にはオーバーフローは起こらないが、 \kappa^{n/2} とかベッセル関数とか個々のパーツがどうしても極端に大きくなる。とりあえずこのアイデアは凍結。

#さんが研究でクラスタ数をよしなに推定するクラスタリング手法について探しているときいて、個人的にも興味があったのでいろいろ調べてみると、PRML の著者が書いた論文を見つけた。

Adrian Corduneanu & Christopher M. Bishop. Variational Bayesian Model Selection for Mixture Distributions. AISTAT. 2001.

(ざっとしか見てないけど) この手法は厳密にはクラスタ数はハイパーパラメータだけど、混合係数を変分推定で推定することで説明力の乏しいクラスタの係数が 0 に近づいていくので結局無視できる、みたいなことを書いてある。なぜだと思っていろいろ調べてみると、こんな資料を見つけて、変分下限が近似分布における観測データの尤度 (の対数) と、事前分布と近似分布の Kullback–Leibler divergence との和に分解できること知る。後者は MAP 推定と本質的に同じで、ここが正則化の役割を果たしているからかな、と思う (間違っているかもしれない...)。