Daily Julia #6

Julia の初のカンファレンスとなる JuliaCon が開催されている。

JuliaCon 2014: June 26-27, Chicago, IL.

なおスライドは以下に集められている。GitHub だと pdf 直接閲覧できないしリンクも貼りづらくありませんか…

JuliaCon/presentations

とりあえずタイムテーブル順にざっと見てみる。全分野素人なので詳しくは突っ込めない。

Tim Holy — Image Representation and Analysis

拡張子 .odp だと… open office 入ってないのでちょっとパス。一般的な話題っぽいし理解しやすそうと思っていたので残念。あとで気が向いたら確認する。

Pontus Stenetorp — Natural Language Processing with Julia

東大で自然言語を研究している人らしい。

  • Recursive Neural Network を実装してみたけど Matlab 並みに遅かったよ!でも Hacker News で聞いたら @inbound マクロを教えてもらって C に肉薄する結果が出たよ!
  • I/O が Python より遅い。ディクショナリのアクセスも Python より遅い。立ち上がりも正規表現も遅い?
  • transition-based な係り受け解析ライブラリの話 ninjin/allen

Iain Dunning / Joey Huchette — JuliaOpt - Optimization Packages for Julia

  • constrained な数学的最適化問題に絞った発表
  • MathProgBase.jl は Grobi, Clp/Cbc, GLPK, Mosek, lpopt などへのインターフェースを提供している
  • JuMP は代数的モデリングにより最適化問題を表現することができる
  • 例題として数独や遅延制約によるTSPなど

Madeleine Udell — Convex Optimization in Julia

後で学ぼう…

Douglas Bates — Fitting Statistical Models with Julia

13 枚しかないけど 1 枚毎に詰め込みすぎていて文章みたいになってる。内容もがっつり統計という感じなのでちょっとパス.

John Myles White — Representing Data in Julia

DataFrames.jl, DataArrays.jl の開発者によるデータ構造の解説。存在しないデータをいかにして表現するか、テーブルの表現は列指向であるべきか行指向であるべきか、データはメモリに保持すべきかディスクに保持するべきか、という基本的な点を詳説しており非常にためになる。

短く簡潔なスライドなので直接読んだほうが早いが軽くまとめておく。

存在しない値を表現する方法を模索していたが既存の方法には問題があった。

  1. 番兵 - 分かりやすいが特定の型ごとに NA を表す値を決めてやらねばならず(しかもそれは規約的)非常に面倒
  2. Option 型 - いわゆる Maybe であり、いい解決法に見えるがこの型は BLAS などで扱える配列の形式に馴染まない

上の問題を避けるために、NA をシングルトン (NAtype) として定義し、Array{T} の値保持形式を Union{T, NAtype} とすることで解決を図ったらしい。もっともこれは Option が使えない苦肉の策といった感じで、型が不安定であったりするなどの弊害もある。

なんとか Option 型を使えないかなーと画策しているらしいが BLAS compatible な実装を考えるのは難しい模様。

次。

テーブルの保持形式は行指向にするべきか列指向であるべきかという問題。それぞれ Pros & Cons があるが DataFrames は列指向でやっている。

次。

データはメモリに保持すべきかディスクに保持すべきか。これは今のところ普通にメモリ上にロードしている。しかし今後はon-diskなデータの取り扱いもうまくできるようにしたいらしい。

発表初日分の資料も目を通せていないが今日はここまで。