Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PFI Christmas seminar 2009

5,696 views

Published on

Published in: Technology, Education

PFI Christmas seminar 2009

  1. 1. PFIセミナー 2009/12/24 研究開発チーム クリスマス・セミナー 岡野原 大輔
  2. 2. 何はともあれ、まず Merry X’mas ! こんな日にセミナーを ルドルフ達 見てくれるのに大感謝だよ 投げやりな 僕でごめんね 僕はサンタじゃないよ
  3. 3. 今回の発表 • 研究開発チームの活動紹介 • 今注目すべき研究を50分で俯瞰しよう! – オンライン学習の最前線 機械学習 • Multi-class CW, AROW, Online-EM – より強力な簡潔データ構造 データ構造 • 超簡潔木 圧縮連想配列 – リアルタイム画像編集 (Patch Match) 画像解析・編集
  4. 4. 研究開発チームとは • 研究分野で面白いものを探し出し作る – ハイリスクで危なそうなの大好き • 最新の研究成果を毎週サーベイし実装 • 分野を限らず、面白そうな話題を選ぶ • 実際に実装 – 1~2ヶ月でプロトタイプを一つ作る • 現メンバー – hillbig / oxy / iwiwi / tabei
  5. 5. 研究開発チーム 活動の様子 • 自宅から作業 – 全員が時間確保できるのが夜間のため – 眠くなるまで • Skypeで音声をつなぎ論文を一緒に読む • 開発時はscreenで画面共有 >sudo su 開発用共有アカウント名 >script /dev/null >screen –x プロセス番号 – コーディング方法を生で勉強できる
  6. 6. 開発例 ・文要約 Yahoo! Topicsより • ニュース/ブログ記事を13文字で要約 – 単語を削除して要約する (文圧縮) • 基本方針 – 線形計画法を利用した手法をベース – 要約の条件を制約として入れられる – 要約はスコアが最大になるものを選ぶ – “Modelling Compression with Discourse Constraints” [EMNLP 07] がベース
  7. 7. 例 インテル、欧州委員会による独禁法違反の決定を不服として x1 x2 x3 x 4 x5 x6 x7 x8 x9 x10 x11 x12 x13 欧州第一審裁判所に訴え x14 x15 x16 x17 x18 インテル独禁法違反不服訴え 線形計画問題なので既存の xi=1 要約時に残る文節 ソルバーが使える。ルールを自由 に組み込める ルール復古 xi=0 要約時に削除する文節 max Σisixi 下記条件の元でスコアを最大化 Σilixi ≦13 (全体の長さは13以下) liはxiの長さ xi-xj=0 (xiとxjは同時に含まれる) xi-xj≧0 (xjが含まれるならxiは含まれる)
  8. 8. 実行例 • 総務省、「地球温暖化対策ICTイノベーション推 進事業」の2009年度研究開発テーマを決定 システム⇒総務省温暖化対策推進事業決定 正解例 ⇒総務省温暖化対策のテーマ決定 • ディズニーランドで突然プロポーズして、相手に 必ず Yes といわせる方法 システム⇒突然必ずYesといわせる方法 正解例 ⇒プロポYesといわせる方法
  9. 9. その他の開発例 • 疎な高次元ベクトルデータ集合の管理 – Locality Sensitive Hash, Spectral Hash • クラスタリング • ランキングエンジン • 画像解析 – SIFTなど局所特徴量を利用した画像検索
  10. 10. 今注目すべき研究を 50分で俯瞰
  11. 11. 内容 1. オンライン学習の最前線 – Multi-Class Confidence Weighted Algorithm – Adaptive Regularization Of Weight Vectors 機械学習 – Online EM for unsupervised models 2. より強力な簡潔データ構造 – Fully-Functional Succinct Trees データ構造 – Storing a Compressed Function with Constant Time Access 3. リアルタイム画像編集 画像 – PatchMatch
  12. 12. 1. オンライン学習の最前線
  13. 13. 機械学習 (Machine Learning: ML) • サンプルデータを利用し、有益な規則、 ルール、知識を獲得する =入力xから出力yへの関数fを求める問題 問題 入力 出力 – スパム分類 文書 スパムか? – 情報検索 クエリ 関係する文書 – 機械翻訳 日本語の文 英語の文 – 医療診断 遺伝子情報 発病するか – ロボット制御 センサ情報 次の行動
  14. 14. 線形識別器による分類 • 入力xと出力yから得られる情報で 特徴ベクトルφ(x, y)∈Rmを作る – 作り方例は次項 • yのスコアs(x,y) =wTφ(x, y) – 重みベクトルw∈Rm とφ(x, y)の内積 • 一番高いスコアを持つyが予測結果 f(x) = argmaxy s(x,y) – 何が効くか分からないが、効きそうなルールを全 部使う、その重みは自動決定 – NB, SVM, MaxEntなど多くが属する
  15. 15. 特徴ベクトルの作り方例 文書分類の場合 • 各次元が文書中に出現した単語に対応 – Bag of Words, BOW表現 鳥取 1 鳥取では … … φ(x)= (0…0,1,0…0,1,…) 砂丘が 有名です.. 砂丘 1 “砂丘”’に対応する次元 … … 15 “鳥取”’に対応する次元
  16. 16. 我々が日々扱うデータは 大きくなっています[IBM風] • Google N-gram Corpus – 1兆語 – 1000億文 • Giga-word Corpus – 次の文字を予測する問題 – サンプル数10億 問題を1000台で3.5時間で学習 [G. Mann, et. al NIPS09] ⇒より高速で省スペースな学習が求められている
  17. 17. オンライン学習 • 訓練例を一つずつ見てwをすぐ更新する • 収束が速く訓練例を保持しなくてもよい • 実装コストは圧倒的に小さい • 性能保証も可能 – Regret Analysis [S. S.-Shwartz 07] 最適な単一のw*を使った時との差 • これまでのオンライン学習手法は SIG-FPAIのチュートリアル資料を参照
  18. 18. Multi-Class Confidence Weighted Algorithm (CW) [K. Crammer, et. al, EMNLP 09] • 多くの言語処理の問題で最高精度を達成 • 重みベクトルを単一のパラメータではな くGaussian分布上N(μ,Σ)で保持する 従来の更新例 単一のパラメータ wi に足し引きするだけ 1.7 0.6 CWの更新例 パラメータ自体が分布を wi 持っている 平均 1.7 平均0.6 (パラメータ間も) 分散 0.5 分散 0.4
  19. 19. 従来のオンライン学習器と CWとの比較 • 従来:ある特徴の更新回数が多くても少な くても、同じ更新幅 • CW:ある特徴の更新回数が多いなら小さ い少ない更新幅、少ないなら大きい更新幅 – 更新回数が多いならその重みには自信がある ⇒低頻度の特徴でも効率良く学習可能 ⇒学習データを一回走査するのみで高精度
  20. 20. CWの学習更新式 前のパラメータにKLダイバージェンス で一番ちかいパラメータ 今の訓練データをη(>0.5)の確率で 正しく分類可能 この操作のため、問題全体が凸最適化ではない
  21. 21. CWの学習更新式 (続) • 先程は解けないので次の近似を適用 1. 全てのr≠yi についてrよりyiの方がスコアが 高くなる確率がηより高い 2. スコアが高い上位k個のクラスだけ考慮 3. パラメータ更新は各クラス毎に順に 3が更新対象 5が更新対象 各クラス のスコア y=4が正解 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 • パラメータ更新は閉じた式で得られる
  22. 22. [K. Crammer, et. al, EMNLP 09] 殆んどのタスクで既存のオンライ ン学習のみでなく通常の学習器 より高精度 News Groupsのトピック Amazonレビューの上位7タイプ Amazonレビューの上位タイプ EnronのUser Aの上位10フォルダ EnronのUser Bの上位10フォルダ NewYork Times
  23. 23. Adaptive Regularization Of Weight Vectors (AROW) [NIPS 09] • CWは更新時に正則化が入っていない – 訓練例にノイズがある場合、急激に悪くなる • 学習時に次の条件を考慮し最適化 1. 今の訓練例を正しく分類できる CWはこれが いつも最優先 2. 前のパラメータと近づける 3. 各特徴のConfidenceを更新毎に上げる • CWと同じように閉じた式で更新可能
  24. 24. 実験結果 AROW > CW ノイズ 0% ノイズ 10% ノイズ 30% • ノイズ大⇒AROWの精度>CWの精度
  25. 25. 教師無学習:EMアルゴリズム (期待値最大化法) • p(x, z; θ) – x: 観測可能な変数 z:観測できない変数 – θ: 観測可能な変数 • データの尤度L(X, θ)を最大化する • E-step – 今のθでのzの期待値q(z|x)を求める ⇒(x,z)のペアの出現回数を数えるだけ • M-step – 今のzでL(θ)を最大化するθを求める
  26. 26. Online EM [P. Liang, D. Klein, NAACL 09] • EMは収束が非常に遅い – 品詞推定だと数百回繰り返しが必要との報告も • オンライン学習と同じようにデータを観測 するたびにq(z|x) の期待値を更新する – 回数c(x, z)とc(x)を保持し、q(z|x)は必要に なったときに計算q(z|x)=c(x,z)/c(x) – c(x, z)の更新時は前回のものと今回の結果の線 形補完で行う c(x, z) := μc(x,y) + (1-μ)c’(x,y) • 数回で収束
  27. 27. オンラインEM 結果例 観測可能 • 隠れマルコフモデル (HMM) – P(隠れタグ⇒隠れタグ) P(隠れタグ⇒出力) • ohmmを利用 • 日本語の単語推定 – 文数 10万 – 単語数 200万 従来EMは約100回 – 単語種 7万 程度で収束した – 隠れクラス数 20 最初は大きい単語の クラスが決まるだけで あまり意味ない
  28. 28. 2. より強力な簡潔データ構造
  29. 29. 簡潔データ構造 • 作業スペースが極限まで小さいながら、 操作の計算量が従来データ構造と同じ – 集合・木・関数(連想配列)・グラフ 等 • 多少計算量が大きくなったとしても、全 てを主記憶上に載せるのが最重要 • 非常に実用的な話 – Google IMEはtxの良クローン(rx)を利用し非 常に大規模な辞書情報の圧縮格納を実現 – 最新の全文検索もフル活用
  30. 30. 全備簡潔木 Fully-Functional Succinct Trees [Sadakane, Navarro SODA10] • 全操作を効率的にサポートした順序木 – 全操作が一つの基本操作から実現できる • 動的更新も可能で実装は簡単 • 内部ではBP表現を利用 1 2 6 3 4 5 7 8 順序木の例 (番号はDFSの行きがけ順) txが利用
  31. 31. これらの操作が 基本操作の 組み合わせで 表される 更新無なら全部 定数時間 更新有なら大抵 O(log n / loglogn)
  32. 32. ±1関数 • P[0...n-1] 入力ビット配列(BP) • g: ±1関数 – ±1関数:入力が0,1で出力が-1,0,1のどれか – ±1関数は値不変なものを除き6種類 符号を反転させたものを使えば3種類 gの例: π(0) = -1, π(1) = 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 P 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 π 1 1 1 -1 1 -1 1 -1 1 -1 -1 1 1 -1 1 -1 -1 -1
  33. 33. 基本操作(1/3) sum • i 番目から j 番目の関数値の合計 – sum(P, π, 0, i)はi番目に対応する節点の深さ – sum(P, π, i, j)はiとjに対応する節点の深さ差 sum(P, π, 6, 12)= 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 P 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 π 1 1 1 -1 1 -1 1 -1 1 -1 -1 1 1 -1 1 -1 -1 -1
  34. 34. 基本操作 (2/3) fwd_search / bwd_search • iより後方で初めて合計がdとなる位置 • 同様に、iより前方で初めて合計がdとなる位置を 返す関数をbwd_searchとする fwd_search(P, π, 4, -1) = 10 g = πの例 1 0 1 0 1 0 -1 0 1 0 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 π 1 1 1 -1 1 -1 1 -1 1 -1 -1 1 1 -1 1 -1 -1 -1
  35. 35. 基本操作 (3/3) rmq, rmqi • iとjの間で合計が一番小さい値を返す – 小さい値を返す位置を返す関数をrmqi – これらの最大値バージョンをRMQ RMQi rmq(P, π, 4, 14) = 10 g = πの例 1 0 1 0 1 0 -1 0 1 0 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 π 1 1 1 -1 1 -1 1 -1 1 -1 -1 1 1 -1 1 -1 -1 -1 1 0 1 0 1 0 -1 0 1 0 1
  36. 36. 基本操作による木の操作 • next-sibling fwd_search(P, π, i, 0)+1 • parent bwd_search(P, π, i, 2) – d個上の祖先 bwd_search(P, π, i, d+1) • lca(i, j) どちらか含まれるならiまたはj それ以外 parent(rmqi(P, π, i, j)+1) sum(P, π, 4, i)の結果(4に対応する節点からみた相対深さ) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 π 1 1 1 -1 1 -1 1 -1 1 -1 -1 1 1 -1 1 -1 -1 -1 3 2 1 0 1 0 1 0 1 0 -1 0 1 0 1 0 -1 -2
  37. 37. 基本操作による木の操作(続) • この他の木の操作も全て基本操作と±1関 数の組み合わせでサポート可能 – 従来の簡潔木では操作毎に専用の補助データ 構造が必要だった. • 基本操作を効率的に実現さえすればよい
  38. 38. 基本操作の効率的な実現 Range min-max tree [Sadakane, Navarro SODA10] • 完全k分木で子孫中のEの最小値/最大値をm, Mに記録 – E := sum(P, π, 0, i) (i番目の節点の深さ) – 完全k分木なので、これらは配列に記録可能(c.f. heap)
  39. 39. Range min-maxを使った fwd_searchの実現 fwd_search(P, π,3,0) を探す =3より後でE=1となる最初の場所 これらは様々なテーブルを駆使すると定数時間で実現できる
  40. 40. 動的簡潔木 • PをL~2Lの大きさのブロックに分割 – L=log2n , ブロック数はO(n / log2n) • 追加削除時には適切に分割、併合をする • 最小値/最大値の更新は – O(1/2 logn)の大きさの表を使ってブロック 内の更新はO(log n)時間で可能 – 表の大きさはO(n1/2)=o(n) • 全てO(log n)時間でサポート可能
  41. 41. 定数時間で操作可能な 圧縮連想配列
  42. 42. 最小完全ハッシュ関数 MPHF • キーs∈Sから[1..|S|]への全単射の写像 – 完全:キーが衝突しない – 最小:写像先の大きさがキー種類数と同じ ⇒キーを保存しなくても参照できる – このようなMPHF関数を実現するには 1.44n bit必要 – bep hashで検索すると関連資料が 見つかります
  43. 43. 連想配列 + MPHF • キーs∈Sと値v∈Vを対応する – 値はw bitで表され w bitの操作は定数時間 • 方針1 : MPHFの返り値を添字として使う – 1.44n bitが勿体無い
  44. 44. 連想配列 + MPHF • 方針 2 直接bit配列に写像する – 複数の(MPHFではない)ハッシュ関数を用意 – それぞれの位置からw bit読み込み、それらの xorの結果を値とする – ビット配列の決定はGF2の連立方程式を解く のと等価だが、greedyでも高確率に解ける a b c w bit h3(s) h1(s) h2(s) a xor b xor c = s に対応する値 v
  45. 45. Storing a Compressed Function with Constant Time Access [J. B. Hreinsson, et. al. ESA 09] • 値は冗長な場合が多い – 値の出現分布の偏りが非常に大きい – 例:単語頻度を記録する場合、殆どが0か1 • 値をHuffman符号を使って記録する – 符号長の上限を制限し、定数時間を守る – prefix符号なので可変長でも一意に復元可 – さらに擬陽性有のフィルタを利用すると高頻 度の値を1bit未満で格納可能
  46. 46. 3. リアルタイム画像編集
  47. 47. PatchMatch: A Randomized Correspondence Algorithm for Structural Image Editing [C. Barnes SIGGRAPH 09] • 彼らのデモをまずみてみます • これらの編集をインタラクティブに行う 鍵がパッチの高速な近傍探索 • パッチ:画像の一部分、中心座標で指定
  48. 48. パッチの近傍探索 • 入力:画像Aとパッチ間の距離D • 出力:画像A中の全位置x∈R2でそのパッ チと距離Dで近いパッチの相対位置f(x) – 位置x∈R2と似た画像がy∈R2にある場合 f(x) = y-x とする 似た画像にむけての このベクトルの成分 (相対オフセット)を記録
  49. 49. アルゴリズム • 初期化:全位置xでf(x)をランダムに設定 – もし事前知識が使えるならそれを使う • 最適化 – 各位置について左上から右下へ向かって順に次の二 つの操作を交互に行う(次は逆方向) • Propagation: – 隣の位置でより良いオフセットを見つけていたらそ れを使う(隣で良いなら自分のとこでも良い) – D(f(x,y)), D(f(x-1,y)), D(f(x,y-1))の最小値 • Random Search: – 今の候補位置から、全方向に向かって距離は指数的 に順に減らしながらランダムに調べる
  50. 50. アルゴリズムの動作例 [C. Barnes SIGGRAPH 09] • 左下の画像だけを使って左上の画像を復 元する – パッチで探索したものを近傍の結果も混ぜて 多数決で各画素の色を決定する
  51. 51. Bidirectional Similarity • 元画像Sと対象画像Tの近さを測る – dcomplete TがSの情報を含んでるか – dcohere TがSとは異なる画像を含んでいないか • 多くの編集タスクがこの距離の測り方の変種+ パッチの探索対象の制約で解ける
  52. 52. 線による指示の場合 • 元画像S中の指示線Lkを変換後も保つ – Lk上の点piと似ているT中の点NN(pi)を探す – T中の点qjでLk上に似ている点があるものを探す – これらNN(pi)、qjを直線上に射影
  53. 53. その他みえた傾向
  54. 54. その他見えた傾向 • 自然言語処理⇒教師無学習の研究が増えた – 教師有学習が伸び悩み、教師無がより強力に – 大量のデータ+高効率な学習器 • データ構造・アルゴリズム⇒現実的な並列化 – GPGPU、MapReduceなどで一気に現実的に • 機械学習⇒大規模化 – tiny images(8000万画像)
  55. 55. 最後に一言 • 研究開発は楽しい – 違う分野の話が共通点があったり新発見が あったり楽しい – 一緒にやった方が楽しい – 実装してみるとよくわかる • 今日はクリスマスイブ

×