もどる
(か)研究日記 (2005年)
- 2005/12/30 終了
- 今年は、ICMLに何も出せなかったり、来年も特に出せそうになかったり、structured
outputなんてもう終了だよ、なんて思ってたら実はTaskarもAltunも、いろいろとがんばってちゃんと面白そうなの出してたり、来月出るジャーナル論文にいきなり間違いが含まれてたり、張り切ってだしたSDMがshort
paperだったり、相変わらず理論はさっぱりわからなかったりとか、振り返ってみると、たいした出力もでなかった1年ですが、来年も、なんとなくこんなかんじで相変わらず理論もベイズもなしで、やっていこうかとおもいます…。
- 2005/12/26 ビヨンド社会勉強
- とりあえず、最近やっていた仕事が今日で終了。
- そこまで前線の仕事ではないのだが、それでも、やはりビジネス価値と、(データ解析的な)リサーチ価値は、誠実な意味ではなかなか両立しないというのが、正直なところ。
- 提供されるサービス自体がシーズである場合には、サービスがそれなりの形で実現できれば、その実現法はなんでもよく、つまり、データ解析手法の立場からはニーズ駆動になる。
- 一方、Naive Bayesとか、k-nearest neighbourとか、そいう、通常、研究ではベースラインとして使われる、枯れ枯れの手法の、実装も含めた頑強性や簡便性というか、そいう良さを感じた。
- とはいえ、それだけやってても「研究でいきます」という路線はキープできないから、「机の上で溺れる」のとは逆の「現実世界にやさぐれる」という危険を回避する精神バランスをとるのが重要かなあ。
- まあ、普段は、ハサミの取っ手にカッターとn色ボールペンと消しゴムが2k個ついた道具をO(nk)でつくりながら、たまに表に出てきて、その手先の器用さでもって、鉛筆を常人離れしたキレイさで削る、というのもアリかと。
- とりあえず、コンサルの人の、論理立てと、プレゼン資料と、無限の体力には、恐れ入りますた。
- 2005/12/22 木とカーネルのセミナー@九州工業大学
- 2006/1/13に九州で木カーネルについてのお話に参加させていただくことになった。
- 顔ぶれは、僕なんか遠く及ばない、ずっとアルゴリズムや理論よりの方々。
- そもそも僕も、ホンモノが来る前に、とりあえず手をつけてしまえ、みたいな感じで構造データをやってたので、きちんと、できる・できないの境界や、クラス分けが、ホンモノの人によって整備されるとありがたい。
- 構造データのカーネルは、いくつかの点において、機械学習のなかにアルゴリズムな人が入りやすいところであるといえる。(たぶん)
- 構造データに対する計算(たとえば、配列同士のアラインメントとか)が通常、ベストの解をみつける方法であるのに対し、構造データのカーネルの場合、全ての解を(なんらかの意味で)足しあわせる方法である、といえる。
もともとその手の需要はあまりないので、アルゴリズムも陽には設計されていなかった。
- カーネルの計算自体は、基本的に機械学習とは切り離して考えられるので、学習理論のことをあまり知らなくても、とりあえず始められる。
- 最近の機械学習は割と統計的な手法がメインで、離散アルゴリズムコアな人は少ないので、ハッタリが効く。
- 近似/確率的アルゴリズムの手法も、ほとんど入っていない
- 「いろいろな対象に対してカーネルを設計して、計算する」的な話自体は、もうわりと収束に向かっているけど、同じような考え方で、学習には、従来の学習の人がさほど注意を払ってなかったけど、アルゴリズムな人たちがぶっちぎれるところがあるんだろうなー、と思う。
2005/12/18 グラフの「上」での学習
- 今年もそろそろお仕事が終了気味になってきたので、研究をはじめようか、ということで、遅ればせながら、グラフ上での学習を勉強ちゅう。
- Webやタンパク質のネットワーク、社会ネットワークのようにデータ同士の関係が、1つのグラフで表現されているようなときの話
- ⇔ 化合物のように「1つのデータ=1つのグラフ」、として、グラフの分類問題や頻出部分構造の発見問題を考えるような話ではない。
- 扱う問題としては、教師アリ、ナシなどに対応して、いくつかあるが、たとえば、つぎの3つがあるみたいだ。
- それぞれのノードのクラスを予測する(分類)
- グラフ上のいくつかのノードのクラスは分かっていて、そのほかのノードのクラスを当てたい。
- いわゆる教師アリ分類になるが、グラフの形はあたえられているので、おのずと、semi-supervised的なセッティングになる。
- 「基本的には、隣接するノードのクラスが同じ確率は高いはず」という考え方に基づく。
これは、通常の「特徴空間中で距離の近いデータのクラスが同じ確率は高いはず」という考え方と同じ。
- とき方としては、「クラスの分かっているノードを正しく当てる」と「隣同士のノードのクラスは似ている」を制約として解く。
- クラスが伝播していく、というdiffusion kernel的な考え方もできるが、「グラフの上でのクラス分布の滑らかさを仮定する」すなわち、グラフの上でのregularizationである、というのが正しいとらえかたであるとおもう。
- ノードをグループ分けする(クラスタリング)
- 最近のキーワードとしては「spectral clustering」「semi-supervised clustering」らしいが、未調査。
後者は「Clustering with constraints」とも呼ばれるようだ。
- グラフを構成する
- グラフを拡大して、グラフを「つくる」。 これまでの学習ではあまりなかったタイプの問題。
- バイオインフォマティクスへの応用から来た問題で、タンパク質のネットワーク推定の文脈で語られる。
- 部分的にしかつながりの分かっていないネットワークがあって、そこを手がかりにして、残りの部分をつなげる。
- さらなる手がかりとして、既にわかっているいくつかの(他の観点からの)ネットワークが与えられる場合もある。
- こういうネットワークものは、他の分野でも扱われているようだ。
- マイニングな人たちだと「コミュニティを見つける」ような話があって、ネットワーク分析(?)な人たちだと、とあるネットワークがscale-freeだった、とか、どういう生成過程だとそんなんができる、みたいな話をしているみたい。
- ここはひとつ、集まって個々の持っている問題意識や何を面白いと思ってやってるかとかワザをわかりあえたらよさげな気がする。
- 2005/12/13 2戦0.5勝
- SDMにだしていた論文の査読が帰ってきた。 リスクものがShort Paperとして引っかかった。
- 採択率は、(40fullpapers+35shortpapers)/244submissions = 30.7% とのこと。
やはり、マイニング系、厳しい。
- 2005/12/2 CRF にできなくて、マージンもの(HM-Perceptron, HM-SVM, M3N)にできること
- 識別モデルに基づくstructured output学習問題の解法としては、確率モデルに基づくCRFと、マージンに基づくHM-Perceptron(マージンを正にする)、HM-SVM(マージン最大化)、M3N(マージン最大化)がある。 これら2つのアプローチ(確率もの、マージンもの)の違いはなんだろうか。
- 性能的には、Altunたちが調べているように、featureの違いほどには差が出ない。
大体似たり寄ったりだと思っていいだろう。
- じゃあ、違いはなにかというと、後者の方が適用できる問題が多い、という点である。
- ポイントは、学習時に、入力xに対する全ての出力yを足し合わせる必要があるかどうか、という点。
- CRFは「必要あり」。
- マージンものは「必要なし」、かわりに、入力xに対するもっとも良い出力yを求める。
- ちなみに、予測時には、確率ものも、マージンものも、共に、入力xに対するもっとも良い出力yを求める。
- つまり、マージンものは、もっとも良い出力yをもとめる操作のみで実現されているのに対し、確率ものは、もっとも良い出力yをもとめる操作(予測時)と、全ての出力yを足し合わせる操作(学習時)の両方が必要。
- この違いが問題にならないのは、扱っている課題が、もっともよいyをもとめる方法と、すべてのyの和を求める方法がほぼ同じ構造をもっているとき。
- 要するに、DPで解けるような問題がこれにあたる。
- 例えば、ラベル付けの問題や、配列のアラインメント、CFGのパージングなど。
- しかし、世の中には、全部のyの和をとるのは難しいが、もっともよいyを求めるのは効率よくできる問題がある。
このような問題には、確率ものは適用できない。
- たとえば、画像からの物体の切り出しや、(配列じゃなくて、機械翻訳ででてくる)単語のアラインメントなど、DPで解くのはできなさそうだが、LPによって効率よく解けるような問題。
- つまり、structured outputにおいてマージンものが真にエライ点は、マージンを大きくするからじゃなくて、もっとも良い出力yをもとめる操作のみで実現されているからなんだと思う。
- 2005/11/29 associative reinforcement learning (あるいはimmediate reward
RL) 再訪
- ↓のほうでも何度かでてきたWilliamsの強化学習の話、読み返してみてようやく「気持ち」がわかった気がする。
- 要は、求めたい値が、どんな分布に従ってサンプリングされたものの期待値になってないといけないかを考えればよい。
- 「x が入力として与えられ、それに対してパラメータ w をもつ確率的な決定器によってアクション
y をとったら、報酬rが得られた」というサイクルをずっと繰りかえすような状況を考える。
- x はベクトル、w もベクトル、y はスカラーの離散値、r はスカラーの実数
- 目標は、今後遭遇する x に対して、報酬がなるべくたくさん得られることが期待できるパラメータ
w を求めること。
- 目的関数を書くと E[r|x,w] = ∫X∫R r Pr(r|x,w) Pr(x) dr dx
- ここで、E[] は x と r についての期待値
- 報酬 r の分布は x と w に依存する (直接には、x と(wを使って決めた) y に依存する)
- 今、1つ x が与えられて、それに対してアクション y をとって、報酬 r が得られたとする。
ここで、 E[r|x,w] が大きくなるようにパラメータを更新したい。 一番簡単なやりかたは、E[r|x,w]
がもっとも増加する方向、すなわち∂E[r|x,w]/∂w の向きに w をちょっと更新する。
- 式で書くと、 wnew := wold + γ∂E[r|x,w]/∂w
- 問題は、∂E[r|x,w]/∂w を、オンラインでどうやって計算するか?
- まず、 E[r|x,w] = ∫X∫R r Pr(r|x,w) Pr(x) dr dx = ∫X∫R ∑y r Pr(r|x,w,y) Pr(y|x,w) Pr(x) dr dx というように y を介して展開する。
- y が与えられたもとでは、r はもはや w に依存しないので、これはさらに
E[r|x,w] = ∫X∫R ∑y r Pr(r|x,y) Pr(y|x,w) Pr(x) dr dx と書ける。(Pr(r|x,w,y) の w が消えただけ。)
- で、 E[r|x,w] をパラメータ w で微分してみる。
∂E[r|x,w]/∂w
= ∫X∫R ∑y r Pr(r|x,y) ∂Pr(y|x,w)/∂w Pr(x) dr dx
= ∫X∫R ∑y r Pr(r|x,y) ∂Pr(y|x,w)/∂w Pr(x) Pr(y|x,w)/Pr(y|x,w) dr dx ←( Pr(y|x,w)/Pr(y|x,w)=1 を掛けてみる )
= ∫X∫R ∑y r Pr(r|x,y) ∂log Pr(y|x,w)/∂w Pr(x) Pr(y|x,w) dr dx ←( ∂log Pr(y|x,w)/∂w
= 1/Pr(y|x,w) ×∂Pr(y|x,w)/∂w :単なる置き換え)
- 最後の行をみると、r ∂log Pr(y|x,w)/∂w を、確率分布 Pr(r|x,y) と Pr(x)
と Pr(y|x,w) のもとで期待値をとっていることになる。
- Pr(x) に従って x が現われ、Pr(y|x,w) に従ってアクションを決定し、Pr(r|x,y)
に従って報酬が得られているわけだから、最初の問題設定のところで述べた「x
が入力として与えられ、それに対してパラメータ w をもつ確率的な決定器によってアクション
y をとったら、報酬rが得られた」というサイクルを回しながら、観測された r
やそのときの決定器から r ∂log Pr(y|x,w)/∂w を計算して、平均を取れば、∂E[r|x,w]/∂w
に一致する、ということになる。
- 従って、 更新式は wnew := wold + γ r ∂log Pr(y|x,w)/∂w となる。
- これは、平均的には、wnew := wold + γ∂E[r|x,w]/∂w をやっていることになる。
- ∂log Pr(y|x,w)/∂w というのは、単なる置き換え。 そのように書くと、纏まってかっこよく見えるからで、本質ではないと思ってよいと思う。
- 自分がサンプリングしたい分布にもっていく、というのは、importance sampling
(うろ覚え) みたいな雰囲気も感じる。
- 2005/11/15 木カーネルの論文
- 木カーネルの最終的な直しをして、提出。
- 前半は、ラベル付き順序木に対するカーネルを、畳み込みカーネルの文脈で書き直したもの。
相変わらずエイ、って書いてあるので分かりにくい…。
- 後半は、今回新しく加わった結果。 木の「順序」を取り払って、単に根付き木としたときに、部分グラフを部分構造とした木カーネルを計算しようとしたときの計算困難性(#P-完全性)の結果。 つまり、これ以上の拡張は望めません、みたいな話。 これは、坂本さんが証明した。
- 計算困難性を示すときって、いつも「難しい問題からの還元」によるのだと思ってたら、「その問題を計算するオラクルがあったと仮定すると、難しいはずだった問題が多項式時間で解けちゃう」という、ある意味、逆向きからの示しかたもあるらしい。
- 前者を「Karpの還元(polynomial-time many-to-one reduction)」、後者を「Cookの還元(polynomial-time
Turing reduction)」というらしい。
- 今回使ったのは、後者の(Cookの)パタンで、Vadhanのテクニックを援用して、木カーネルの計算を、連立方程式の解にもっていくという技を使っている。
こんなん絶対思いつかん。
- この論文は、元ねたは2002年のICMLで僕の実質的なデビュー作だが、ベースになっているCollinsの構文解析木カーネルは工藤さんがインターンにきてるときに教えてもらったものだし、拡張のアイデアになった木の再帰的なDPマッチングのアルゴリズムは阿久津先生の講義ノートだし、証明をしてくれた坂本さんはICMLに行っているときに出会ったわけだし、で、人との出会いがうまく作用している、まさに、出会い系論文。
- 2005/11/12 大規模ゲームの解法
- ナッシュ均衡をサイズの大きなゲームで実際に求めるのは難しいらしい。
- ゼロ和2人ゲームではLPでとけるがこれは特殊なケースで、これ以上一般化しようすると、最悪指数時間かかる。
- 一般のケースでは、2人プレイヤ、でも複数の戦略になるとダメ。 マルチプレイヤでもダメ。
- そんなわけで、マルチプレイヤの場合に、問題を限定して、効率よい解法を求まるか?という問いが生じる。そこで考えられるのが、プレイヤー間の相互関係を、グラフであらわしたGraphical
Gameというもの。
- 頂点がプレイヤーで、枝が相互関係を表す。
- 各プレイヤーの利得は、グラフ上で接するプレイヤーの行動のみに依存するとしたモデル。
- 木構造の場合には、再帰的な解法によって、効率的に解ける。
- 最悪の場合には指数時間になってしまうが、混合戦略のパラメータを離散化すると多項式時間で動く、近似アルゴリズムが得られる。
- ループがある場合にも拡張されているようだ。
- ところで、「Machine Learning in Finance」ワークショップのプログラムがでていた。
- Kearnsってもうすっかり、こんな感じの人なのかな…。
- ところで、2本目のジャーナルが2回の書き直しの末、アクセプトされた。
- 非常に細かいところまで読んでもらえる人で、色々と誤りを指摘してもらって、かなり良くなったように思う。
僕が査読者だったら、たぶん、こんなにちゃんと読まない。
- 2005/11/11 IBIS終了
- 他の人の発表内容は、僕にはさっぱり分からなかったけど、普段文字でしか見ない人たちに、実際に会えたのは良かった。
- 僕と同じく期待ショートフォール(=条件付バリューアットリスク)を最小化する研究を発表していた東工大の武田さんにも会えた。
- ちゃんと読んでなかったので、気づいていなかったのだが、サンプルに対する期待ショートフォールが、真の期待ショートフォールのよい近似になっているという定理がちゃんと示されていた。
これは、ありがたい。
- こういう理論的に激しい会議にいくと、あまりにわからないので、なんかダメ人間な気分になってくる。
- しかし、この劣等感に動かされて、ホントに真面目に教科書を1ページ目から読み始めてしまうと、たぶん、出力の出ない負のループに入って出てこれなくなるし。
- かといって開き直って「オレたちは、役にたたないものに力を注ぐのではなく、本当にバリューのある、リアルのプロブレムをとくのさ、フフン」も、正しいのだろうけどなんか逃げっぽい。
- あくまで、自分にとって max (出力)/(入力) となる立ち位置で、理論と応用の間の適当なバランスを保ちながら、両方の人たちの心を動かせるようなキャッチーなものを狙っていきたいものだ。
- ところで、会議後立ち寄った某所での「行きがかり上、なんだか面接風の何か」に居合わせた皆さん、カッコよかったですよ。
一方の僕ときたら、しどろもどろの話のうえに、「うーん、お客さんがいいっていってくれれば、それでいいんじゃない?」…って、一番ビジョンなしな、だめ感。
あとで人知れず、凹んどきましたよ。 ちょっと固くなった阿闍梨餅食べながらね。
- 2005/11/8 リスク回避型学習
- ここ半年くらい取り組んできた、リスク回避型の学習について明日からのIBISの2日目に話す。
- 内容は、コストを考慮した分類学習(Cost-Sensitive Learning)において、大きなコストが発生するリスクを回避するように学習を行うアルゴリズムを考えました、というもの。
- 通常、コスト考慮型のアルゴリズムでは、平均コストが目的関数として使われるが、ここでは期待ショートフォール
(Expected Shortfall) あるいは条件付バリュー・アット・リスク (Conditional
Value-at-Risk; CVaR) と呼ばれる金融工学で使われるリスク指標を目的関数にすることによって、リスク回避を行うルールを学習することができる。
- ざっくり言うと、「コストの大きいほうから1%分の平均値」
- ちなみに類似の指標にバリュー・アット・リスク (Value-at-Risk; VaR) というのがあるが、これは凸にならない。
- 提案したアルゴリズムは、メタ学習アルゴリズムになっていて、平均コストを最小化するような既存の学習アルゴリズムをサブルーチンとして、コストを変換しながらこれを呼び出すことによって、学習を行う。
- 通常の分類問題のように一度に1つのアクションのみが取れる場合に加え、複数のアクションに対して資源を分散投資するような場合にも適用できる。
- 前者は単純なコスト変換によって、後者はちょっとメンドウだけど勾配ブースティング
(gradient boosting) によって実現できる。
- ちなみに今回のIBISでは、僕の他にも1件、同様に期待ショートフォールを目的関数にした研究が発表されるみたい。
- こちらはSVMのソフトマージンとのアナロジーで、若干目的というか、趣は違うようだけど、かなり興味あり。
- 2005/11/1 ゲーム理論とオンライン学習
- ゲーム理論の雰囲気もひととおり分かった(文庫本レベル)ので、興味のあるエリアで使われている例を見ていこうと思い、確か、何かブースティングまわりにあったはずよなあ…って掘ってたら、出てきたのがコレ。
- 内容は、オンライン予測の乗算型学習アルゴリズムを繰り返しゼロ和ゲームにおける混合戦略の学習に用いる。
- ゲームの行列を知らなくても、相手が必ずしもmaxmin戦略をとっていなくても適用できる。
- ちなみに、乗算型学習アルゴリズムとは、最急降下法などの、損失の勾配をパラメータに加えるような加算型の学習アルゴリズムに対し、exp(勾配)をパラメータに掛けるタイプ。
- と、その辺までは、乗算型学習アルゴリズムの結果をある程度知っていれば、想像がつくのだが、この論文の面白いのは、オンライン予測アルゴリズムをつかって、ミニマックス定理の証明を行っているところ。
- あと、線形計画を解くアルゴリズムとしてもつかえる、っていうところも面白いかも。
実装簡単だし。
- 2005/10/26 ビバ日経文庫
- 最近、ゲーム理論を勉強してみようと思い、とりあえず日経文庫の「ゲーム理論入門」を読んでいる。
- 同じく日経文庫の「金融工学」は、「金融工学の挑戦」のもうちょっと詳しい版みたいなかんじ。
- なので、たいていカバンにはこの2冊のうちどちらかが入ってて、通勤中とかに数ページづつ読むかんじ。
- 文庫本サイズというのが電車の中で読めていいし、内容的にも厳しすぎず、かといって、ゆるすぎず、勉強になる。
- …そういえば、そもそも20cmより大きい本を最後まで読めたためしがありませんでした…。
- 2005/10/19 プレゼン資料のつくりかた
- 最近、職場のほうでは、コンサル的な文化が浸透しつつある。もちろんリサーチ的文化との共通点、相違点いろいろあるわけだが、以前、身の回りでちょっと話題に上がったことで、ひとつ大きく違うところはプレゼン資料(パワーポイントとか)のつくりかた、である。
- これまでの大学で習ってきたようないわゆる研究者的な思想のもとでは、プレゼン資料は、必ず説明を聞きながらその補助的な情報として見るもので、説明の内容はリアルタイムに理解する(できる)ものだという前提をもとに作成される。
そこに書かれる文字は、文章にするのではなく、キーワードや絵が箇条書きで並び、なるべく簡潔にまとめるように教わってきた。
- 一方、コンサル的流儀では、読めばメッセージが伝わるような作り方をする。
コンサルの場合、資料そのものが成果物であり、必ずしも作った人がそこで説明しているのを前提にしない。
必然的に、これまで習ってきた考え方のもとでは、パッと見、「ビジー過ぎる」としかられるてしまうようなものになる。
- 例えば、一枚のページのタイトル部分に、前者の場合、そのページで伝えたいことの種類、すなはち、目次の見出しのようなものがくる(「XXの問題点」)のに対し、後者は、そのページで伝えるべきメッセージそのものが文章でくる(「XXの問題点はYYである」)。
- で、僕が個人的に好みなのは、後者。
- 僕は人の話をリアルタイムで理解できないうえに、すぐ妄想に入って取り残されてしまう。
そんなときに、なんとか追従可能なチャートになってるとありがたい。
- また、Webページに論文発表に使ったプレゼン資料を公開する場合などにも、タイトルと、単語に図のチャートでは何が言いたいのかさっぱりわからず、結局、論文を参照しないといけなくなることが多い。
特にチュートリアルの資料などは、後者のアプローチでつくってもらえたほうがありがたいのだ。
- 2005/10/13 電子情報通信学会誌の解説記事
- なんとなく図書室で雑誌を眺めていると、ここ2ヶ月で、電子情報通信学会誌に学習関係の面白そうな解説記事を2つ発見。
- 1つは9月号のブースティングの解説。
- 導入部分のクイズ選手権で、得意分野がかぶらないひとを集めてくる話が、ブースティング気分を見事に説明していて素晴らしい。
- もう1つは10月号の強化学習の記事。
- Q-learningのように価値関数を推定してから最適な方策を求めるのではなく、目的関数を直接最適化するような方策を求めるアプローチ(↓のほうでDPを使わない強化学習として紹介したWilliamsの論文)のその後の展開が紹介されていた。
- ここで紹介されてたのは、Q関数のような報酬の推定値と組み合わせるやりかた。
- 方策ベースのやりかたは、価値関数ベースのやりかたに対して学習の効率がよくない、との記述に衝撃をうける。
- そもそもQ-learningなどにおける、報酬の推定をしてからそれを意思決定に使うという、2段階というか、意思決定論的な考え方って、現代的な機械学習の考え方にはそぐわないと僕は思っていた。目的関数を最適化するモデルパラメータを直接に目指すという考え方が、目的に対してデータの持つ情報をより十分に引き出せるのだと思っていた。
- こういうのとは違った観点から理解できるのだろうか。
- 2005/10/12 引き続きACCESSプログラミング
- ACCESSの上で、ちょっとしたデータ解析をするものを書いているのだが、「ACCESSでVBA」的な資料をいろいろ回ってみても「なんでこんなに僕の知りたいことが書かれてないんだろう??」と疑問に思っていた。
- どうやら、僕の知りたいことは「VB的な部分」で、そういうのはVBの本なりを見ればわかるようだ。確かに、純粋にアルゴリズムを実装するための部分って、ACCESSだとかそういう次元の問題ではないね。
- で、「ACCESS VBA」本にはACCESSならではのことが書いてある、と。
- そんなの、あたりまえなんだろうなあ…。
- ところで、いまのところ「ACCESS VBA」本としてはコレがlocal optimum。
- 2005/10/11 通る
- 出していた、ジャーナル論文、ようやく1本通る。
- ひたすらRejectされた論文だったが、振り返ってみると、国際会議と和文論文で、なんとか成仏してくれた形に。
で、結果オーライということで。
- 実際、初めてのジャーナルなわけだけど、やっぱりいろいろとメンドウなことが多かった。
じつはメンドウなところは共著のみなさんが結構やってくれたわけだけど…。
- 会議の論文とジャーナル論文の差は、「アイデアの輝き」vs.「作品としての完成度」みたいな感じだろうか。
- 会議論文の場合、基本的にインタラクションなしの一発勝負だから、アイデアが輝いていれば、多少雑でも通ってしまう。僕が査読する立場でも、面白かったら、実験とかまあいいじゃん、って気になる。
- が、ジャーナル論文だと、データの有意性とか、その辺のきっちりさが要求される。逆にいうと、みっちりきっちり実験されて、効果が出てたら、つまんない論文でも文句言いにくい気がするもん。
- 2005/10/10 ロバスト統計
- ロバスト統計とは、その名のとおり、外れ値というか、ノイズ的なデータが混じっている場合に、それらに影響されないように(=ロバストに)モデルを推定するという一連の手法のことらしい。
- 例えば、ココとかをみると、外れ値の存在が推定の精度にいかに悪影響を及ぼすかがわかる。
- ロバスト統計のアプローチとしては、大きくわけて2種類あるらしいが、いずれのアプローチも、要は「モデルから出てきてないだろうデータを、モデル推定に使わないようにする」的な考え方で解釈できるといえる。
- 1つには、M-estimatorというクラスで、損失関数の大きいところを小さく見積もろう、という考え方。
- 例えば損失関数が2乗誤差だとすると、推定値が正しい値から離れるにしたがって、それを罰する力が距離の2乗で効いてくるわけだが、それだと(恐らく大きく外れがちであろう)外れ値に推定値が引きずられてしまう。そこで、たとえば、ある程度以上離れたら、2乗をやめて1乗にしましょう、みたいな話。
- もう1つは、L-estimatorというクラスで、損失関数そのものではなく、損失関数の順序統計量の線形和を、損失関数として使いましょう、という考え方。
- たとえば、損失関数の平均値ではなく、中央値を使う。中央値を使えば、{1,2,3,4,5}の中央値も{1,2,3,4,999}の中央値も3で、たしかに、外れ値の外れ度合いにはあまり影響されない感じがする。
- ↓のLeast Trimmed Squareとかも、中央値1つだけとかじゃなくて、順序統計量の下の方だけを使うという意味ではこのクラスに入る感じがする。
- ロバストな推定のアプローチは異常や、外れ値の検出と、表裏一体であり、密接な関係があるので、もう少し心に留めておこうと思うのだが、ロバスト推定を最適化問題として捉えたときに、なかなか凸になりそうにないのは、困ったもんだなあ。
- 2005/10/4 出した
- SDMに2本提出。なかみはIBISの2本に対応した、構造ラベリングものと、コストもの。
- 両方とおったら、うはうはだなあ。
- いろいろ試してみたいこともあるけど、とりあえず、今年の残りは仕事。
- VBAの勉強をはじめる。この本、ユルくていい。
VBAには、引数が文字列の配列は無いのか…。メンドウだな。
- ありました、CollectionとかScripting.Dictionaryとかいうクラスを使えばいいっぽい。
- 2005/10/1 「むずかしい例に集中すること=スパース化、最大マージン化」か
- 感覚的にではあるが、
「一番難しい(と学習器が思っている)例に対する、学習器の確信度=マージン」
であるから、
「難しい例に対して集中して学習する=難しい例に対する確信度をあげる=最大マージン化」
ということになる。
- 一方、学習器の表現は、(特にカーネル法の場合)
「難しい例に対して集中して学習する=主に、難しい例(全データの一部分)を用いて仮説を構成する⇒スパース化(かならずしも難しいやつだけで仮説を構成する必要はないが)」
となる。
- つまり、何か損失関数があったとすると、これを変換して
「むずかしい例に集中する=大きく間違える損失が強調されるようにする」
ことによって、マージン狙いや、スパース狙いに自動的に変換できるということだ。
- 一方、モデル推定をロバストにするという立場からは、逆に難しい例を無視しようとする、つまり、「大きく間違える損失を弱める」ようにしているわけで、この視点からは両者は相反するわけだ。
- 逆にいえば、マージンものはロバストではない、という結論になったりして。
- たしかに、ブースティングはexponential lossで、難しい例を指数的に思いっきり強調するから、ロバストでないといわれる。
損失関数を、難しくなってきたあたりでにょきっと線形に近くすることでロバストにする人たちがいる。
- SVMは分類面付近に近い例だけで構成されるからロバストだ、みたいな言い方をされるときもあるけど、それは、正しい方向に飛び込んできたときだけで(正例エリアに正例が入ってきた、みたいな)ノイジーな例が反対側に飛び込んでくると、やっぱりやられるわけだ。
- スパースものはロバストではないのだろうか。
- SVMについは大体上の議論のような感じで、やっぱり反対側に例がポンと入ると、それに影響をうけるとおもうけど、RVMやBPMではどうだろう?
- RVMやBPMの場合、ある種の「重心」的な場所にいる例が使われるわけだけど、ロバスト推定の立場からは平均より、中央値のほうがロバストだ、とかいわれるわけで、逆にたとえばラプラス近似とかするときの中心を中央値に置くことでロバストになったりするのだろうか??
- なんて、ロバスト推定は実はあまりよく知らんけど…。
- 2005/9/27 かき中
- 津田さんに会いにいく
- 凸だと思っていたものが凸でなかったことがわかったのが収穫。軸ごとに凸でも、全体として凸なのとは別問題。
- IBISのプログラム
- ひとつ、かなり、ものすごく、すごく気になるものが。
- 2005/9/23 NIPSのワークショップを名前だけ見てみる
- NIPSのワークショップのラインナップを追ってみると、機械学習のトレンドを一番よくあらわしている気がする。
- ざっとみると、手法はカーネルにベイズ、対象は構造、アプリケーションはNLとバイオ、という大きい流れはここ数年相変わらず。
- あれ?「Machine Learning in Finance」 って、対象に最近忘れていた「金融」が戻ってきた、という感じ?
- 2005/9/18 非線形最適化
- 手持ちの問題を、その方法で解いていいのか、とかが、いつもよくわからん。
- 2005/9/17 岡山からかえりちゅう
- やっぱり内容的には浮いていた、が、むしろ、聴く側も、毛色が違ってよかったんじゃないかとおもう。
- 結構質問もでてたし(いや、むしろ「わかんねえよ」ってことかもしれない)。
- 講演資料を作るために調べてて発見したんだけど、ISMBにグラフカーネルを使ったタンパク質の3次元構造分類の論文がでてる。
- 以前、ICMLのグラフカーネルの論文を書くときに、実験データをつけようと思って、アミノ酸の種類と、その間の距離行列をグラフで表してSCOPの構造クラス分類、ってのを実験してみたことがあるんだけど、結局、たいした精度はでなかったのでやめた。
- やはり複雑なグラフではグラフカーネルは余計なものを数えすぎるんだろうな、とおもってあきらめていたのだが、この論文では、2次構造をひとつのノードにわりあててるから、アミノ酸とかよりぐっと抽象化されて、グラフが単純になっているからか、精度が出ている。
- ノードには、さらに疎水性とかの化学的・物理的な性質をつかってラベルが加えられている。
- 枝のラベルは距離。
- 同じようなタンパク質構造の抽象化で、TOPS diagramというのがあるのだが、これはほぼDAGだから、同じところをムダに通らず、one
pathで計算できるんでいいんじゃないかと思う。
- ところで、たとえば実数とか、こういう複雑なラベルがつくような対象の場合、ブースティング+パタン的方法を使うと、パタン内のノードラベルをどうするかという問題がむづかしそうだから、カーネルが向いてる気がする。
- あと、この論文では、ICML2003で出てたhyperkernelなるものも使っている。カーネル行列あるいはパラメータを学習する類の研究らしいけど、SDPに落ちるってことはカーネル行列の学習かなあ。
- ISMB、別のグラフカーネルでてる。
- 書いても書いても…。
- SDMに出す論文を書いている。
- SIAMの何たらフォーマットってやつで12㌻、ホント、書いても書いてもまだ書くところが残ってるよ…。
- みんなどうしてんだろう??と過去のproceedingsをみると、みんなかなり気前良く場所を使ってる。
- 2005/9/16 岡山に移動ちゅう
- あしたの化学工学会での講演準備、聴衆に誰を想定していいのかわからない。
- たぶん、ずっとウェット寄りの人たちなのだろうが、ぼくが無理に歩み寄っても軽薄になりそうなので、素直に構造もののイメージを伝える路線で。
- バイオだと「ウェットな人」っていうけど、ケモだと何ていうんだろう? 「チューブな人」?
- IBISに出した論文のコメントが帰ってきた。概ね好意的で、SDMに向かってちょっと自信がつく。
- でも、実は出したやつには穴があって、それを塞ぐと、すこし見た目がダサくなるのだ…。
- 「タイトルが不誠実」という趣旨のコメント、仰るとおり、理由あって不誠実に付けたので…。
- 最近僕の考えていたことは「ロバスト統計」なるものに含まれるっぽい…。ていうか30年も前からやってるなんてずるいよ…。
- 2005/9/2 (研究者ではない)上司がイイこといった
- 「常にアウトプットを出すことを念頭において勉強する。」
- 勉強(=知識を増やすこと)自体を目的にするんではないってことだな。
- もちろん引出しの中身を増やすのは大切だけど、それは研究とは別、と。
- 2005/8/24 ねこむ
- ここ数日、結構な熱を出して寝込んだのだが、病院にいってみて、おなかをポコポコってたたいたり、音をちょっと聞いて「お腹だ」と診断された。そのときには、お腹なんてなんともなかったのが、次の日、たしかにお腹の調子がわるくなった。感心しました。
- ホントに「診断」してんのかよ…って思ってたけど、適当じゃなかったんだ…。
- ところで、井手さんがICDMに通ってる!
- 今年、主要会議3勝じゃないですか。もういっこドクターとれそう。
- 2005/8/14 査読結果かえってきた。
- 人工知能学会のジャーナルに出していたやつの、査読コメントがかえってきてた。
- コメントの内容的には、なんとか文学的に解決できそうな模様でよかった。
- 6月末に出したから、2ヶ月弱で査読コメントきたことになる。人工知能学会って、査読早い!すばらしい!
- 2005/8/12 IBISに出した (← しまった、またちょっと中身間違ってたよ…)
- ホントは僕ではなく、坪井くんfirstでだす構造化データセッションのとは別のはなし。
- そういえば、これをNIPSに出したやつの査読が帰ってきてたけど、NIPSの人たちはちゃんとコメント書いてくれて親切だなあ。
- 最近は、昔のものをまとめたりするのが多かったので、ひさしぶりに、新しいものを書いたかんじ。
- 内容はカーネルではなく、Cost-senstiveまわりの話。
- 普通の教師あり学習の損失関数をロバストにするのにも使える気がしてきた。
- そういえば、今の時期ってICMLやってたのね…。
- 2005/8/11 Google Hacks
- 研究とは関係ないけど、翻訳に加わったGoogle Hacks 第2版日本語版がそろそろでるっぽい。
- ぼくがメインで訳したのは、4、8、9章だったはず。
- 本の内容的に「へええ」ってためになったことがあったけど、それよりも、出版の作業の流れが垣間見れたことが意義深い。
- いつか教科書のひとつもかけるようになりたいものだ。
- 2005/7/20 Taskarのstructured outputチュートリアルよい
- ちゃんと可読なところが偉いなあ。
- ところで、どうやら、構造マッピングの問題は、structured classificationやstructured
outputとか、「structured 云々」みたいな名前に落ち着きそうなかんじ。
- 2005/7/8 ICMLのaccepted papersでてる
- ざっと見た感じ、"graph"という単語がタイトルに入ってるのが7つ位ある。
- たぶん、多勢はgraph-structured "feature space" のほうかな。
- Structured mappingはTaskarのだけっぽい。
- なんか、もう大体できそうなことは分かった気がするもんなあ…。
- でもって、津田さんは、さらりと通ってるよ…。
- 2005/7/7 実装ちゅう
- 最近、今やっているやつの実装をしている。
- 一年以上プログラミングしてなかったので、System.out.println()のことすら忘れてたよ…。
- わりとイイかんじで動いてきたので、どこかに出せるかな、と思うのだが、この手の会議の投稿って年の前半に固まっていて、これからあとだと、もうSDMくらいしかないっぽい。
- 2005/7/4 査読結果がかえってくる
- ICDEで発表してきたのをジャーナル版にして出したものの査読結果がかえってきた。
- 採録条件に挙げられているものに対応するのがちょっと難しそう。もはや、実験の環境とかないもんなあ…。
- なんとか、文学的に解決したいところだけど…。
- 2005/6/20 ふたつの凸関数fとgの関係について気になってみた。
- f+gは凸になる。けど、掛け算の場合には必ずしも成立しない。
- f(g)とかはどうなんかな、と考えてみたら、どうもfが単調増加ならいいっぽい。
- 他に条件とかあるんかなあ…。
- 2005/6/15 最近の勉強
- DPを使わない強化学習
- 普通、強化学習というとQ-learningとかTDとかの、DPに基づく手法が紹介される。
- アクションの将来の期待報酬を推定して、それをもとにアクションを決めます、というところが、なんか気に入らなかった。
- 直接、期待報酬を最大化するように、政策を改善するのが筋ではないかと。
- generative vs. discriminativeていうか、HMMに対するCRFみたいな感じ。
- で、1992年の論文なんだけど、やっぱり、こういうのはあるわけね…。
- 状態xにおけるアクションaをとる確率を決める関数g(a|x,W) (Wはパラメータ)を使って、実際にアクションaとって報酬rが得られたとする
- 期待報酬の、パラメータについての微分は (r - b) (log g)' の期待値に一致するらしい('はWでの微分)
- このbはreinforcement baselineと呼ばれる定数らしいけど、何のためにあるのかはわからん。
- 従って、アクションをとって報酬を受け取るごとに、この方向にパラメータを改善できる。
- なんかこれ、すごい使えそうなんだけど、実際につかった事例とかって無いのかな。
- Gradient tree boosting
- 2005/6/10 ジャーナル生産ちゅう
- とりあえず、これまで会議で発表してきたことを、国内ジャーナルに提出キャンペーン。
- とりあえず、1つは片付いた(日本語にして出しただけ)ので、2つめにとりかかりちゅう。
- 2005/6/4 NIPSにsubmit
- ほぼ一年まえに大体話ができていた「つぼい損失」、ようやく提出。
- そのときにはウハウハいいながら面白がっていたが、今となっては面白いんだかどうなんだか、もう自分たちでは分からなくなってる。
- NIPSは厳密さより、アイデア重視の面白会議(たぶん)だから、面白がってくれるといいんだけどなあ…。
- 2005/6/3 Cost-sensitive Learning
- Cost-sensitive Learningって、別にわざわざクラスを定義しなくても、xに対してアクションyをとったときの損失をc(y|x)とすれば、それでいい気がする。
- 仮説f(y|x)をxに対してアクションyをとる確率とすると、期待コストは、ED[Σyf(y|x)c(y|x)]
- ここで、D(x, c(x))=Dx(x)Dc(c(x)|x)。c(x)はコストのベクトル。
- Dは不明だから、訓練データに対して、empiricalに最小化する。これをやる方法はいろいろ提案されているわけだが、確率的な分類器でやるのがないなあ、と思っていた。
- Abeさんのは、決定的な学習器を組み合わせて、確率的な学習器を学習する方法。
- なので、logistic regressionをf(y|x)として使えばいいのに、と思っていた。で、計算してみた。
- これ、凸じゃないんだ…。
最尤推定は、確率の積を最適化してるのに対し、こっちは確率(正しくはコスト期待値)の和を最適化している。そのおかげでexpの中身がうまく纏まらず、凸でなくなってしまう。だから、みんなやらなかったのね…orz。
↑というかそもそも、logistic regressionって一個でも、凸じゃないじゃん!
てことは最尤推定の解が勾配を使って求まるっていうのは、たまたまいろいろと都合が良かったっていう、危ういバランスの上に成立しているような、そうでないような…。
- ↑ああ!違う!対数をとると凸になるんだ! 期待コストの場合対数とれないのか。
- 2005/5/1 春休みの勉強
- Relevance Vector Machineをちょっとかじってみる
- へええ、という程度にしかわかってないが、分類だと、パラメータについての積分がちゃんととれない→Laplace近似みたいなのが常套手段っぽい。あるいは、変分ベイズなのだろう。
- こんなモデルに、こんな事前分布だと、ここまでできて、ここからは近似しないといけない、みたいな表がほしいなあ…。
- Cost-sensitive Learningについて調べている
- 要は、間違えたときのペナルティが例によって異なるような分類問題。
- ある例xに対する期待コストは、コストの確率分布Pr(c|x,y)と、クラスの確率分布Pr(y|x)によってΣcP(c|x,y)P(y|x)と書けるが、コスト分布とクラス分布を別々に求めてから、期待コストを最小化する予測をする、というのは、supervised的にはちょっとださい気がする。
- やはり、学習のときに期待コストを直接最適化するタイプのほうが最近の機械学習としては正しいと思う。
- Perceptronベースのやつがちょっと面白い。結局、パラメータの更新するときに、feature vectorに、その例のコストを掛けるだけでよい。
- Abeさんのは難しすぎてとちゅうで挫折したけど、問題の定義がとても一般的にかかれていてイイ。
- 鈴木先生のサーベイがいろいろな手法をカバーされているので、ありがたい。
- 2005/4/22 最近学んだこと
- アーラン分布て、指数分布がk個連結したものらしい。へええ。
- いでさんから借りたこの本良い!
- 電車のなかでモンテカルロとベイズ学習の気分がわかる。 同じシリーズの別の本は軽く挫折したけど。
- ラベリング問題をカーネルで解くための方法として、モンテカルロ+convolution
kernelは、カーネル計算結果の使いまわしとかの工夫はできそうだけど、ちょっとコスト高そうだなあ…。
- 金融工学の気分は、なんといってもコレが一番よくわかった。
- ポートフォリオまわりのもうちょっと細かい教科書的な感じだとコレ。
- ベイズ学習についてちょっとわかったこと。
- 周辺尤度P(D)からハイパーパラメータを決める方法って、予測分布のハイパーパラメータをパラメータだと思って最尤推定するのと同じじゃん?って思ってたんだが、積分の位置がビミョウに違う。
- ちなみに周辺尤度P(D)の最大化って、ハイパーパラメータの事後分布を、ハイパーパラメータの事前分布が一様みたいなもんだと思って、MAP推定してるのと同じ?
- こういうのを、第2種最尤推定とか、経験ベイズとかいったりするみたいです??
- ふとしたことから、環境とエネルギーについて調べることに…。
- とりあえずAmazonでこれとかこれとか…はたしてこんなんでいいのかなあ…。
- 2005/4/6 ICDEで発表
- 「データ工学」ということで、やはりデータベースを意識した話が多く、産業界との重なりが大きい分野なので、規模も大きく盛り上がってるかんじ。
- 盛り上がり方はKDDに近い感じがする。
- で、僕の興味とはほとんど重ならなかったわけだけど…。
- バンケットでは、花見をしたり、伝統芸能っぽいひとが出てきて獅子舞とかしてた。
なんだそりゃ。
- 個人的には、伝統芸能チームの舞台を英語でまわしてたお姉さんがbest
paper award。エライ。
- 発表してきたのは、ほとんどどDBと関係ない話
- 内容は、分散システムの障害検出と怪しい場所の特定
- ネットワークデータを捕まえて、トランザクションのスタートとストップを取り出す
- トランザクションの包含関係を制約にして、どれがどれを呼んだのかをEMで推定
- それらの数の変化によって、異常を検出
- いろいろあったけど、まあ、ようやく発表できて、万歳ってことで。
- 2005/3/29 MOST(構造化データの機械学習)研究会
- 「構造をもったデータ」をテーマに、チュートリアル半分、手前味噌半分な感じのワークショップを行いました。
- といっても、ぼくは殆ど運営には貢献してなかったけど。。
- 「ほぼ奈良」な場所で開催されたにもかかわらず、なかなか盛況で、40名くらいが集まりました。すげえ
- 津田さんの発表「Von Neumann Divergenceを用いた正定値行列のオンライン学習」は、線形の予測器の乗算型オンライン学習法を、行列に拡張したもの。
- ベクトル構造のパラメータ間の距離としては、フツーのユークリッド距離から、KL-divergenceなどあるが、これらはBregman
Divergenceの特殊な場合として認知されつつある。
- オンライン学習アルゴリズム導出の際に、パラメータ間の距離のところをBregman
Divergenceとすることで、様々な学習アルゴリズムとその解析が統一的な枠組みで行えることが示されている。
- 今回は、行列構造をもつパラメータ間の距離への拡張として、Von Neumann Divergenceを採用し、行列の算型学習法を提案した。そして、カーネル行列のオンライン学習問題に応用した。
- 以前、乗算型学習を特徴選択に使おうとしたときに勉強したことがあり、個人的には、かなりヒット。かっこいい。
- 鹿島の発表「構造化データのラベル付け学習とカーネル法」では、構造→構造のマッピングを行うための確率モデル設計という立場でのチュートリアル(+去年の手前味噌)
- NLPやバイオインフォマティクスのタスク(NER, IE, parsing, gene finding)でよく現れる
構造→構造のマッピングの問題は、分類問題の一般化として捉えられる。
- 構造マッピングには2系統あって、ひとつは直接マッピング法というあとで賀沢さんが触れらている方法、鹿島のアプローチはもうひとつの複合特徴空間方式ともいうべきもの。
- 後者のアプローチで用いる確率モデルとしては、分類のための条件付確率分布としてよく用いられるLogistic
regressionの一般化である、Conditional Random Field (CRF) というモデルによって統一的に語ることができ、CRFの学習の基準をいろいろと変えることで、SVMやパーセプトロンなどのアルゴリズムも導かれる。
- 伊藤さんの「カーネル法に基づく引用解析」は引用関係から、2つの論文の類似度を導く方法の提案。
- von Neumann kernelと、PageRank/HITSとの関連(PageRank/HITSはvN kernelの極限になっている)、や、これとdiffusion
kernelの組合せが紹介された。
- なんとなく「似てるなあ」みたいな感じはしてたけど、こうやってちゃんと書いて説明してもらえると嬉しい。
- 工藤さんの発表「Boostingを用いた構造学習」はデータマイナー必見です。
- グラフの分類問題で、部分グラフパターンのあるなしで予測するような弱学習器を使って、ブースティングで学習。
- ブースティングの各ラウンドで、最適なグラフパターンを発見するのに、グラフマイニングアルゴリズムを使う。
- この仕事の何がすばらしいかというと、「マイニングアルゴリズムを、予測のためのモデルの学習、しかも、従来難しかったグラフ構造を扱うような予測に使ってみせた」という点ではないかと思う。
- 近年、マイニング技術でも、単なる頻出パターンではなく、χ2乗値などの分類的指標を目的関数とするような流れもあるけど、データマイニングの出自からもわかるように、良くも悪くも、それは基本的には人の発想や気づきを助けるところに重点がおかれ(closed
patternだって、まさに人間が見るためにやってる気がする)、確率モデルや学習などの「予測的」フレームワークが明確に意識されているかは微妙な気がする。
- つまり、頻出パタンは、それを見た人間が何かを理解するのには使えるかもしれない(その意味で頻出パタンの利用法は視覚化に近いといえる。)が、予測モデルをつくるという観点からは、必ずしも良い方法ではない。
)
- この発表のように「予測という目的が陽に埋め込まれた問題」のなかで、マイニング技術をばんばん使っていくのは、いい感じのニッチ(褒めてる)だとおもう。
- 最後に賀沢さんの「カーネルを用いた構造化データ学習の問題点」は、前に触れた、構造マッピングへの2つのアプローチのひとつである「直接マッピング方式」に基づくやりかたの紹介と、構造マッピング問題が含んでいる重大な問題点について指摘し、みんなで考えよう、みたいな話。
- 賀沢さんの「出力空間でマージンを大きくするマシン」カッコイイ。
- ICMLとか出したら、みんな喜んで食いつくと思うんだけどなあ…。
- 鹿島のとっているアプローチにおいても同様だけど、構造マッピング問題における最大の問題は、pre-image、すなわち、最適な出力構造を計算するところとか、CRFだと、すべての出力構造を足しこむところが計算できないという点。基本的には、特徴構造のサイズに対して指数的な時間がかかってしまう。
- カーネルによって、陽な特徴空間表現を避けても、pre-imageの際には結局、特徴を陽に考えなければならないため、ナイーブなカーネル化は不可能になる。
- 鹿島の発表では、その辺をなんとかごまかし、多項式時間でできるようにしたわけだが、個人的な展望としては、マイニングアルゴリズムを併用して、必要な特徴を必要なだけ(陽に)作る、というやりかたがよいのではないかと考えている。
- 2005/2/26 あたりまえかもしれないが、ざっくりいうと、学習は、対象の表現、予測器の表現、目的関数の設定、最適化の4つのステップからなる
- 対象の表現とは、対象をどのようにベクトル表現するか?ということで、特徴を定義するのは人間。一般的な戦略はないが、ベクトルで表現というところまでいかなくても、関係による表現(一階述語論理的な)ところまで表現できれば、部分構造によるベクトル表現などの戦略はあるだろう。
- カーネル法は基本的には予測器の表現の問題で、dual表現でいきますよ、と言っているだけだが、前段の特徴空間をうまく設定すれば計算が楽になる。
- 目的関数は尤度やら、クラス間平均とか、そういうもの。
- 学習理論の目的のひとつは「こういう目的関数を最適化すると、このくらいの性能が保証される」みたいなことがわかることなのだとおもう。
- あとは目的関数をどんな戦略で最適化するか、を決めると、学習器ができる
- 尤度を最大化、ではなく、正解と不正解の対数尤度差が正であればOKにするとパーセプトロン。対数尤度差を大きくしよう、とかいうとSVMになる。
- ブースティングは、大きく分けると最適化の手法だと思う。 特徴を選び(つくり)ながら特徴ごとに最適化しますよ、と言っている。
- exponential lossに対応してるらしいけど、コレは別に本質じゃない気がするなあ。
- sparse性は、本質なのか?
- そうすると、別レイヤーのものの、組合せは何でもよい
- 別に判別分析(=目的関数レイヤー)をブースティング(=最適化レイヤー)してもよい
- カーネル(=表現レイヤー)を生成モデル(=目的関数レイヤー)でつかってもいい
もちろんカーネルとブースティングは繋がらなかったりとか、性能に良し悪しなど、レイヤー間の相性の良し悪しはあるが、これらの間で噛み付き合うのははナンセンスなんだろうな、と思う。
- 2005/2/25 PRMU研究会で講演。
- 前日、泣きながら準備。
- ここ1年のご奉公で、やさぐれたけど、プレゼンパッケージをつくるのは速く(そして不誠実に)なった。
- 一日目の話しとか結構面白そうなのあったのに、行けなくて残念。
- そこそこわかりやすく話せた気はする
- 話すちょっと前に、「カーネルのこととかは大体みんな知ってるから飛ばして良いよ」といわれたので、カーネルの説明はさくっと終らせようかと思ってたのだが、結局、あまりササッといけず、フツーに説明してしまった。こういうのをフレキシブルに対応できるといいんだろうなあ…
- パーセプトロンからカーネル法に辿り着く説明は、スキ。 なんたら条件とか、なんとか定理とかなくても導けるし、一番前提知識が要らないので、しっくりくる気がする。
- 質疑応答とか(に限らず、いつもなのだが)、僕は、人の言っている内容が、リアルタイムで理解できない…。
- 内容に関してわからんところとか、関連研究に関することとかは、単に知ってることを話せばよいので終了なのだが、その人の思いやら、思想やらをぶつけられると、よく、わかんない…
- 大概、強い思いほど、その人の中で普段から熟成されてるはずなので、ぱっと聴きは、それはそれで正しそうだから「あー、それでもイイかもですねえー」とか言いたいところだけど、それじゃダメだから、なんとか自分の考えとの相違部分にもとづいてイイこといわないとなあ、と思うのだが、なかなか実時間で気の利いたことはいえないものだ。
- …でもまあ、そんなん言えるくらいだったら、研究のほかにもっとやれることあるよな…
- で、おわったあとは久しぶりに会った人たちと晩御飯にいった
- お店知ってます!って歩き出したわりに、すぐに分からなくなって、アワワワってアタフタした
- 2005/2/1 何とか書き終わった
- あまり時間が取れなかったので、わりと、ぐだぐだなかんじに完成
- 「情報処理」のほうで書けなかった「構造⇒構造」の問題についてちょっと書いた。
- CRFでなく、HMパーセプトロンのほうで。やっぱり分類問題からスタートすると、そっちのほうが説明しやすい気がする。
- 2005/1/28 2月にある電子情報通信学会の研究会での構造カーネルのチュートリアル原稿を書きはじめながら、考える。
- 最近、構造カーネルについて解説をかく機会が何度かあったのだが、基本的にはカーネル最高!って、盛り上げるかんじで書く。
で、機械学習界やその周辺でも、まだ、「カーネルバブル」はもう少し続くと思う。
- しかしながら、研究分野としての盛り上がりではなく、実用的に構造カーネルがホントに使えるか、他の手法に比べて本当に良いのか、ということをまじめに考えると少し疑わしい。
- カーネル法におけるimplicitなfeature spaceというのは、一応、カーネル法の売りで、おかげで任意に高い次元で多項式時間の学習ができるわけだが、これは実用という面からみると、結果の分類器を人間が見て、知見を得にくいという点でかえってマイナスである。
- 解釈できない結果、というのは、特にビジネス用途では、激しくマイナス
- そのマイナスをカバーするには、「ムチャクチャ予測性能がいい」か「ムチャクチャ速い」かのどちらかは必要だと思う、が、カーネル法はそのどちらでも一番だとはいえない気がする。
- 予測性能は、学習器の性質~マージンがなんたら~とかいうより何よりも、適切なfeature
selection/weightingが一番大切だと思う。 しかしながら、カーネルには、それができていない。
- 例えば工藤さんの、boosting + パタン発見 は、明示的なfeature selectionが組み込まれているわ、マージンは大きくするわ、それに、実用的には(多項式時間が自慢の)カーネルなんかより全然速いだろうし、まさに構造モノのstate-of-artといえると思う。
- 結局、構造カーネル法の良さとは、あまり考えずに使ってもそこそこいい性能が得られる、とか、実装しやすい、とかそういうところなのだろう。
- カーネル(データアクセス)部と学習器の分離性が高いので、カーネル部分さえ書けば、学習器はその辺にあるやつを使えばよい。
- 実数値ラベルのついた構造データとかのときには、離散化などの実数ラベルの扱いをあまり考えなくてもよいので、楽そうだ。例えば、グラフ間のconvolution
kernelは、部分グラフ間のconvolution kernelに分解されて、それはさらにノード間のカーネルに分解されて…となるが、ノード間カーネルのところで、Gaussian
kernelとかでエイッと決めればそれでOK(パラメータはあるけど)。
- カーネル法の実装のしやすさについて言えば、僕にも実装できてる時点である程度、真なのだと思う。
パタンものは、僕には絶対ムリ…。
- 本質的な良さとは全く関係ないが、学習器とカーネルの分離性の高さは、参入のしやすさにも繋がる。カーネル自体は、学習アルゴリズムとはあまり関係ないので、実は機械学習についての知識がそれほどなくても、自分の得意そうなところをエイッともってくると、何か面白いことができる可能性が高い。
- 本質的な良さとは全く関係ないといったけど、実はこれは個人的には一番重要なことだとおもう。
なぜ自分はカーネルを研究しているのか、という問いへの真の答えは、「そこなら自分がなんか思いつけるから」ということなのだとおもう。
研究者としては、良し悪しに関わらず、そもそもそれが何らかのかたちで新しくなければ、スタート地点にすら立ってることにならないから。
- …で、結局、何をすべきか、というと、あくまでカーネルの人として、解釈は捨てて、カーネル関数を陽に使って最後まで行くぞ!という考え方でいくとする。
そうすると「(特にテスト時を)速くする」「予測性能を上げる」の二つであろうと思う。
- 「結果を解釈できるようにする」という点では、学習済みのカーネル分類器からfeatureを明示的に取り出して、primal
formに持っていく(これまた)工藤さんのコレとか、「テスト時を速くする」という目的も同時に果たしていて、かなり素晴らしい…。
- 「テスト時の高速化」については訓練データN個に対してO(log N)で分類できる方法、がやはり要る気がする
- 「予測性能の向上」には、"implicit"な、feature selection/weighting
が重要であると思う。
- カーネルパラメータ(Gaussian Kernelの分散とか)の自動チューニングというのは、ある種のfeature
weightingを行っていると考えられるが、feature space全体に対して、1つとか2つとかのパラメータではなく、もっとfeature間の重みの配分をもっとあからさまにかえるような感じ。
- つまりmarginalized kernelにおいてfeatureの重みを決める分布(配列の場合はマルコフモデルとか、グラフの場合にはランダムウォークの確率とか)のパラメータを、尤度ではなく、分類精度を上げるように(例えばkernel
alignmentを良くするように)学習することが、これに当たるのだと思う…。
- 2005/1/27 日経ITプロフェッショナルのWebサイトの記事が出てた
- こっちは主に鈴木先生のかいたもので、構造のところだけ、僕の文章
- 2005/1/21 ことしのICMLは締め切りが3/8らしい
- 間に合うといいなあ…
- ことしはつぼいくん1stで…
- 2005/1/20 ひさしぶりに書いてみる
- 「情報処理」来た。
- 編集をしたやつが出た。きれいに製本されると、なんかいい感じにみえる。ありがたいかんじ。
- とりあえず、親に一冊渡した。
- 最近、ICDEのやつを日本語にしているのだが、日本語にすると、いろいろ言ってなかったこととか出てくる。
ちなみに、このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません