2011年7月26日火曜日

第7回助教の会


第7回目となる今回の数理助教の会は,情報基盤センターの佐藤一誠さんに「Quantum Annealing in Statistical Machine Learning - 統計的機械学習における量子アニーリング -」というタイトルで発表していただきました.佐藤さんはこの3月に博士号を取得され,4月から情報基盤センターで助教として勤務している若手研究者です.統計的機械学習の研究をされており,特に自然言語処理に興味をお持ちとのことです.

タイトルにもある「統計的機械学習」とは,多くののデータが与えられたときに,これらのデータがどのような過程で生成されたのかを統計的に記述することを目的としています.例えば,数値データが与えられたときに,似たデータ同士をグループ分けする(クラスタリングする)といったことが代表的な問題になります.対象とするデータは数値データに限らず,例えば多くの文書をクラスタリングする手法も研究されており,Latent Dirichlet Allocation と呼ばれる手法では単語の出現頻度に注目することで文書をトピックごとにクラスタリングしています.文書のクラスタリングは,文書要約や翻訳の性能向上,評判分析などに用いられており,実用上重要な問題となっています.


「統計的機械学習」という用語自体は非常に広い意味を持っていますが,今回は,確率的潜在変数モデルを用いた統計的機械学習について講演して頂きました.これは,与えられたデータが「未知の変数(潜在変数)によって定まる確率過程から生成される」というモデルであり,研究の目的はいかにこの潜在変数を推定するかということになります.上のクラスタリングの例であれば,「どのグループに入っているのかを表す変数」と「各グループ内の分布を表す変数」が潜在変数となります.潜在変数の推定には,事前分布に基づいた MLもしくは MAP といった各点ごとに値を推定する方法もありますが,より良い推定をする際には,多くの場合事後分布を用いる必要があります.事後分布の計算には積分が必要なため,事後分布(の近似)をいかに効率的に計算するかが重要な問題となってきます.

事後分布の近似には様々な手法が研究されており,それらはサンプリング(MCMC)を用いる手法と変分ベイズ法(Variational Bayes) を用いる手法に大別されます.サンプリングは,多くのサンプル点を選ぶことで積分計算を近似する手法であり,容易なアルゴリズムを構成できる汎用的な手法なのですが,時間のかかるランダムなアルゴリズムとなっています.一方,変分ベイズ法は,計算しやすい関数クラスの中で真の関数に近いものを求める手法であり,最適化問題として定式化できます.この手法は高速で決定的なアルゴリズムですが,求めている関数自体が近似関数となっています.佐藤さんは,さらにこれらの手法を No interaction と Interaction という視点から分類し,今まで手法が提案されていなかった,Interaction タイプの最適化型の手法(ML/MAP, 変分ベイズ法)を提案しています.Interaction タイプとは複数の初期値から過程を計算していく際に,単純に複数回計算を繰り返して行うのとは異なり,それぞれの過程が相互に影響することを用いた手法を指しています.


本講演では,分割数が未知の場合のクラスタリングの問題(無限混合モデル)に対する Interaction タイプの最適化型の手法(ML/MAP)を説明して頂きました.無限混合モデルにおいては分割数が未知のため,Chinese Restaurant Process (CRP) と呼ばれる過程を用いて探索を行います.この過程はランダムな過程なのですが,Simulated Annealing 法を用いて,徐々に決定的な探索に近づけていく手法が既に知られていました.佐藤さんが提案した手法では,Simulated Annealing の代わりに,物理において量子系の解析で発展してきた Quantum Annealing (量子アニーリング)という手法を用いています.この手法では,複数の過程を同時に計算していく際に,個々の過程を別々に扱うのではなく,それぞれの過程における離散状態の重ね合わせを一つの状態と見て操作を加えていきます.離散状態を重ね合わせたものを一つの状態を見るというのが,物理の意味での量子揺らぎと対応しています.量子系における手法を機械学習に適用した,という発想自体が佐藤さんの大きな貢献ですが,実際のアルゴリズムの構成のためには更なる工夫が必要となります.単純に量子アニーリング法を適用するだけでは,非常に大きな行列の固有値分解を扱うことになってしまうのですが,佐藤さんのアルゴリズムは大きな行列の出現を避けた,高速なアルゴリズムとなっています.

今回の講演の中では,線形代数,確率,微積分,最適化,から物理に至るまで,数学の様々な分野が登場しました.機械学習という応用のはっきりした研究の中で,これだけ様々な分野の道具が使われているということに驚かされました.幅広い分野の知識が必要とされるので大変だとは思いますが,様々な分野と関連してくる活発で魅力的な研究だと感じました.

数理第二研究室 小林 佑輔

2011年7月11日月曜日

第6回助教の会


第6回目となる今回の数理助教の会は,数理第2研究室の小林佑輔さんで,「点素パス問題に対するアルゴリズム」について発表していただきました.小林さんは組合わせ的問題に対するアルゴリズムの研究を行っていて,より具体的には,グラフ上の問題に対し,それを解くアルゴリズムの計算量の評価および高速化を考えています.こういった問題は,ちょっとした設定の違いでP(多項式時間で解ける)からNP困難に切り替わることがあり,このような問題の解きやすさの変化は大変魅力的であり,自身も興味をもって研究に取り組んでいるとのことです.



今回の発表では,表題のとおりグラフ上の点素パス問題について説明していただきました.点素パス問題とは,上図のように与えられた頂点対に対し,パスが頂点を共有しないようなパス(点素なパス)を見つける問題で,点素パス問題の研究の応用としては,VLSIの設計などが挙げられるそうです.一言で点素パス問題と言っても,グラフが無向グラフか有向グラフか,平面グラフかどうか、頂点対数kが定数か変数かなどの違いで,問題にはいくつかバリエーションが考えられ,それぞれの問題に対してそれを解くための理論的計算量(NP困難か多項式時間で解けるか線形時間で解けるか)が精力的に研究されています.単純なケースとして,頂点対の行き先tが一点である場合は,学部でも習うような最大流アルゴリズムにより多項式時間で解けますが,一般の入力に対しては,計算量の評価は難しいものになるとのことでした.

こういった研究の中で,今回はこの業界の大きな成果である,無向点素パス問題を多項式時間で解くRS(Robertson-Seymour)アルゴリズムについて簡単に紹介していただきました.このアルゴリズムは,まず扱っているグラフに対し木幅というグラフの複雑さの指標を計算し,木幅がある定数より小さければ動的計画法で解き,大きければ頂点を取り除いて木幅をどんどん小さくしていき,点素パスが見つかる(あるいはないことが分かる)までこの操作を繰り返すというもので,これは1980年代から現在に至る23本の論文にわたるグラフマイナー理論のもと完成したアルゴリズムだそうです(下図参照,赤枠のGraph Minors 13 にあるとのこと).ただし,このRSアルゴリズムの計算量はグラフの頂点数nに対しては多項式時間であるものの,頂点対数kに依存する非常に大きな定数がかかるという問題点がありました.



これに対して小林さんは,オイラー的もしくは4辺連結なグラフを考え,この場合の辺素パス問題に対する単純なアルゴリズムを提唱し,これによりオーダー評価における頂点対数kに依存する係数がRSアルゴリズムに比べ非常に小さくなることを示しました.他にも,辺に長さが定義されているようなグラフに対する点素パス問題や,パス同士が隣り合う頂点対を持たないようなパスを見つける問題(誘導点素パス問題)といったものを扱い,それぞれに対して計算複雑度の評価を行っています.

実は僕はこの話を以前もっと短い時間で聞いていて,今回は2回目なのですが,知らない専門用語がたくさん登場するにもかかわらず最後まで楽しんで聞くことができました.そして2回目ですがBreak timeの点素パスは見つけられませんでした.どうも自分にこの手の研究は向いてないようですね.かなりセンスの必要な研究分野だろうなと改めて感じました.

数理第3研究室 助教 相島健助

2011年7月4日月曜日

第5回助教の会


第5回目となる今回の数理助教の会は, 数理第3研究室の相島健助さんに「行列の特異値計算」について発表していただきました. 相島さんは大規模行列の数値計算について, 精度評価や収束の理論的な解析, 新しい手法の提案を行っています. 今回の発表では特異値計算におけるdqds法について詳しく説明してもらいました.

特異値分解は行列の対角化と同様に線型代数で習う話ですが, 応用の場面ではかなりサイズの大きい行列について数値的に求めることになります. 例えば, デジカメ写真のような二次元画像は行列データで表現できますが, 特異値分解を行ってみると, 特異値の多くが十分小さくなるため0に近似できます. このような操作を施して画像に戻すと, 見た目はほとんど変わらずにデータ量が圧縮された画像ができるそうです. これ以外にもサイズの大きいデータを統計的に解析する場合に行列の特異値分解・固有値分解を高速に求める方法が非常に重要だそうです.

特異値分解の数値計算のアルゴリズム自体はすでに幾つかありますが, 相島さんの着目したのは次のような2ステップで特異値を求める方法です.



ステップ1では, 与えられた行列を有理演算と平方根の操作のみで上二重対角行列に変形します. こちらの操作は有限回で終了します. ステップ2では, ステップ1で作った上二重対角行列を特異値が対角成分に並んだ対角行列に変形します. この操作で特異値のすべてが求められます. しかし, ステップ2の操作は一般に有限回の反復では終了せず, 反復回数を増やすことで正しい値に近づけていきます.

ステップ2については, Fernando and Parlett (1994)がdqds法と呼ばれるアルゴリズムを提案しており, 現在,LAPACKなどの数値計算ライブラリで使われています. 反復回数を増やした時に正しい値に収束することは,Rutishauserにより別の反復アルゴリズム(LR法)の流れで間接的に証明されていましたが, 収束速度についての精緻な解析はなされていませんでした.



dqds法の収束速度は各ステップで設定されるシフトと呼ばれるパラメータに依存しており,いかに軽い計算量で(一反復の)収束を加速するシフト量を設定するかを考えるのが重要になります. そこで, 相島さんは, 既に知られているシフト量の設定の仕方(シフト戦略)での収束の速さの詳細な解析,新たなシフト戦略の提案などを行いました. さらに, 最近はdqds法を改良したアグレッシブデフレーション付dqds法を海外の研究者と共同で設計し, 既存のルーチンをさらに高速化しています.

大規模な行列計算を数値的に行う際には収束するだけでなく速さも重要だと改めて感じました. 個別の問題への応用だと, 行列や特異値に構造が入ってくるため, もっと高速化・簡略化できそうですね. そして, 今回は聞けなかったのですがやはり行列の固有値計算とそのアルゴリズムの速さに関する最近の研究も気になります.







数理第4研究室 助教 &さきがけ数学領域研究者(兼任)田中冬彦