今日作ったモデルで、二文字、sup, subがだいたい動くようになった。 一方でこれだけでは実際に使ってみようとしてもいまいち使う気が起こらない。

という事で、この次に何があれば実用になるか、という事を考えたい。

最終的には一つの構造あたりに十分のパターンが無いケースもちゃんと動くものを作りたいのだが、最初は一つの構造に対して十分なパターンがある物だけでやっていきたい。 そうすると、少ない構造でとりあえず使い始めるのに必要な候補は何か、という事になる。

まずは自分が使う用途を考えたいが、こういうのはその時読んでいる教科書に依存するのだよな。 そしてMacKayはもうすぐ読み終わっちゃう上に今は最後の機械学習関係無い所を流し読みしているのでノートを書いてない。 次書くならIBの論文回りか。あとはこのTegashikiのモデル関連はいいよな。

IBの論文を開くと、まずトレーニングデータが無いものとしてハットがあるな。 実際にこの式をサポートする為に必要な物を実装していく事は出来るのだが、 もっと小さな汎用的な単位の組み合わせを作るのが思ったよりも難しい。

うーん、どう手をつけたらいいものか。 なんか解けそうな所だけではしばらく使う物にはならない気がする。

一度に使い物になるサブセットを作るのは難しすぎる問題な気がしてきた。 それよりは、そこに至るまでの途中の何かを作ろう。 とりあえず長期戦である事を考えると、今IB関連の数式を書けるようになってもダメだな。

それよりは、その次に読む本くらいをターゲットにしたい。 何を読むか決めてないけど、最適輸送問題を見てみようか。

[1803.00567] Computational Optimal Transport

するととりあえずdualを両方書ければ良しとしよう。

う、なんかフロベニウス積にrangleとlangleが使われているな。いかにも認識苦手っぽいのでこういう記法は使いたくない。 うーん、括弧にFの下付きにするか。

最適輸送問題の定式化は2.11なので以下。

\[L_C(a, b) \equiv \min_{P \in U(a, b)} (C, P)_F \equiv \sum _{i, j} C_{i, j} P_{i, j}\]

なんかequivの場所がフロベニウス積にかかるべきな気がするがまぁいい。 あとはこれのdualを書きたい。

\[L_C(a, b) = \max_{f, g \in R(C)} f \cdot a + g \cdot b\]

さらにR(C)の定義として…と思ったが、やっぱこの辺は特殊過ぎるな。 そしてこの件とは関係ないが、先に線形計画法の本を読みたい気がしてきた。

線形計画法の本をkindleでサンプルを見てぱらぱらめくると、こんな感じか。

\[c^T x\] \[Ax \le b\] \[c \in \mathbb{R}^n\]

うむ、この位から始めたいな。

mathbb以外は現時点でも出来そうだな。

mathbbはどうしたもんかな。Rしかさしあたっては使わないので、トレーニングデータ作るか。 inやleはどうしようかなぁ。記号として一つ書ければとりあえずは使えるが、使い心地的には左辺+記号くらいまでは入力して認識させて、そこでいったん確定して続きを書きたいよな。

次のページを眺めると以下。

\[x_2 - x_1 \le 1\]

うむ、これは線形計画法にはありそうだな。パラパラ見たら三項までっぽいな。 三項だと組み合わせが多くなり過ぎて作るのためらわれるか?

最低限で行くとすると、

  • supと文字
  • 二項とle
  • 文字とin
  • mathbbのRとその指数乗
  • 定数、文字、subと足し算引き算(とりあえずa-bの二項のみ)
  • プラスとマイナスで始まる項(定数、文字、sub)

この位で書けるか?使い始めるには遠いが、とりあえずデータセットはmathbb以外は作れそうだし、この位なら今のモデルの延長で解ける気がするな。

mathbbのトレーニングデータを用意する為に、トレーニングデータ入力アプリも作るか。

次の目標としてはこんな所かな。