Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Lp Boost

4 193 vues

Publié le

Publié dans : Technologie, Santé & Médecine
  • Soyez le premier à commenter

Lp Boost

  1. 1. LPBoost とその応用 田部井靖生 東大・新領域・情報生命・ 浅井研・D2
  2. 2. なぜ、この内容にしたか? <ul><li>SVMに続く、学習/分類/回帰手法として注目されているから </li></ul><ul><li>応用範囲が広いから </li></ul><ul><li>Boostingは、最近流行のL1-regularizationと関係しているから </li></ul>
  3. 3. 概要 <ul><li>Adaboost </li></ul><ul><li>LPBoost </li></ul><ul><li>- 最適法 (Column Generation Algorithm) </li></ul><ul><li>応用 </li></ul><ul><li>- 人の HIV 薬剤耐性を予測 </li></ul>
  4. 4. 今回紹介する論文 <ul><li>Soft Margins for AdaBoost,Ratsch et al,JMLR </li></ul><ul><li>Sparse Regression Ensembles in Infinite and Finite Hypothesis Spaces, Ratsch et al,JMLR </li></ul><ul><li>Linear Programming Boosting via Column Generation, Demiriz et al, JMLR </li></ul><ul><li>Mining complex genotypic features for predicting HIV-1 drug resistance,Saigo et al, Bioinformatics </li></ul>
  5. 5. Boostingの導入 <ul><li>Boosting とは正答率の低いクラス分類器を組合せて、高い正答率を示すクラス分類器を構成する技法 </li></ul><ul><li>AdaBoost の基本的考え方 </li></ul><ul><li>(1) 初期状態では各レコードに均等な重みを割当てる </li></ul><ul><li>次のステップを繰返す </li></ul><ul><li>(2) ランダムに推測するよりは正答率の高い </li></ul><ul><li>  - ( 50% を超える)クラス分類器( 仮説 , weak learner )を生成 </li></ul><ul><li>(3) 目標属性の値の予測を誤ったレコードの重みを </li></ul><ul><li>相対的に上げる </li></ul><ul><li>(予測が困難であることを覚えておく) </li></ul>
  6. 6. Boosting 導入
  7. 11. Adaboost <ul><li>1.Input: S={(x 1 ,y 1 ),…,(x N ,y N )},Number of Iterations T </li></ul><ul><li>2.Initialize: d n (1) =1/N for all n=1,..,N </li></ul><ul><li>3. Do for t=1,..,T. </li></ul><ul><li>(a) :obtain hypothesis </li></ul><ul><li>(b) Calculate the weighted training error ε t of h t : </li></ul><ul><li>(c)Set </li></ul><ul><li>(d) Update Weights </li></ul><ul><li>where z t is a normalized constant </li></ul><ul><li>4. Break if </li></ul><ul><li>5. Output: </li></ul>今までの採用した 仮説では最も正解を 得にくいデータを、 当てられるように 仮説を選択 重みの更新 重み付多数決 で最終的な予測を 得る
  8. 12. Adaboost の目的関数 <ul><li>Adaboost は以下のエラー関数を最小化 </li></ul><ul><li>y n f a (x n ): マージン </li></ul><ul><li>- 予測が当たると正でエラーは減少する </li></ul><ul><li>- 間違えると負となってエラーは増加する </li></ul><ul><li>AdaBoost は以下の最小マージン Q を最大化する </li></ul><ul><li>  ( と信じられている。 ) </li></ul>
  9. 13. Adaboost の目的関数 <ul><li>Hypothesis set H 上の線形計画問題としてとくことができる </li></ul><ul><li>AdaBoost は Hard Margin を最大がしているのでノイズに弱い。 </li></ul><ul><li>線形計画法として形式化が行われるようになる </li></ul><ul><li>(Soft   Margin) 。 </li></ul><ul><li>線形計画法として定式化した Boosting を LPBoost という </li></ul>
  10. 14. LPBoost   (Soft margin) ・主問題   (C は定数 ) ・双対問題 ・ Hypothesis Set H の数 T’ が大きいとき、変数の数が  多くなり解きにくい。 ・ Hypothesis SetH の数 T’ が大きいとき、 制約の数が多くなるが効率的なアルゴリズムが存在する。 ・仮説の数 T’ が多いので双対問題を解くことは不可能と考えられていたが Column Generation Algorithm で解くことができることがわかった。
  11. 15. Column Generation Algorithm <ul><li>1.制約なし双対問題からスタート </li></ul><ul><li>2.すべての仮説に対して、最も合わない制約を加える。 </li></ul><ul><li>3.  双対問題を解く </li></ul><ul><li>4.収束するまで、繰り返す。 </li></ul>Constraint Matrix Used Part
  12. 16. Column Generation Algorithm <ul><li>Algorithm (LPBoost) </li></ul><ul><li>(1) Given as input training set S=<(x 1 ,y 1 ),…(x n ,y n )> </li></ul><ul><li>(2) t← 0 (Weak Learner の数 ) </li></ul><ul><li>(3) a ← 0 ( 仮説に対する係数 0), β←0, u ←(1/n, …, 1/n): 双対変数 </li></ul><ul><li>(6) REPEAT </li></ul><ul><li>(7) t←t+1 </li></ul><ul><li>(8) h t ←H(S,u) </li></ul><ul><li>(9) i f </li></ul><ul><li>(10)   H ji ←h t (x i ) </li></ul><ul><li>(11) 右の双対問題を解く </li></ul><ul><li>(12)END </li></ul><ul><li>(13) a ← Lagrangian multipliers from last LP </li></ul><ul><li>(14) return </li></ul>最も制約に反する仮説を 選択 ( すべての仮説に 反する制約を選択 ) 加えた制約のみで 双対問題を解く
  13. 17. SVMとの比較 AdaBoost SVM ・1つめの制約は同じ - マージン最大化という意味では同じ ・違いは、 a のノルム (1-norm, 2-norm) ・ 1-norm の場合、最適解が訓練データ数個の弱学習器の  線形和で表すことができる。 [G.Ratsch 01] ・ 2-norm では、 a* は訓練データの線形和で表される。 (Representer Theorem)
  14. 18. LPBoost <ul><li>ε-insensitive loss 関数など、 SVM で使われている損失関数が取り入れられている。 </li></ul><ul><li>最近は、 LPBoost の収束は遅いことが理解され始めたので、高速化の方向へ </li></ul><ul><li>  - Boosting Algorithms for Maximizing the </li></ul><ul><li>Soft Margin, K.Warmuth et al.nips2007 </li></ul>
  15. 19. LPBoost の応用 <ul><li>Mining complex genotypic features for predicting HIV-1 drug resistance, Hiroto Saigo, Takeaki Uno, Koji Tsuda, Bioinformatics, 2007 </li></ul><ul><li>比較的新しい </li></ul><ul><li>他の回帰手法との比較も行われている </li></ul>
  16. 20. 概要 <ul><li>・ 患者の HIV1 の薬剤耐性をゲノム配列の   multation の入り方により予測する問題 </li></ul><ul><li>・ 薬物によっては、配列上の mutation の組み合わせが、薬の効き目に影響を与えるので、 mutation の組み合わせから薬剤耐性を予測することは重要な課題 </li></ul><ul><li>・バイオロジーでは、予測のルールを解釈できてかつ、そのルールが生物学的に重要であると理解できることが重要 </li></ul><ul><li>(SVM では不可能だった ) </li></ul>
  17. 21. 問題設定 <ul><li>・ データの定義 </li></ul><ul><li>- (x i ,y i ) x i ∈{0,1} d , y i ∈R, </li></ul><ul><li>- x i :i 番目の配列に対する置換パターン , </li></ul><ul><li>- y i : 薬剤耐性 </li></ul><ul><li>・学習データ </li></ul><ul><li>Wild type ADANNNDDD 薬剤耐性     y∈ R </li></ul><ul><li>患者 1 AGDNNNDQQ 0.8 x 1 =(0,1,1,0,0,0,0,1,1) 0.8 </li></ul><ul><li>患者 2 AGGNNADQQ 0.7 x 2 =(0,1,1,0,0,1,0,1,1) 0,7 </li></ul><ul><li>・テストデータ </li></ul><ul><li>新しい患者 3 x 3 =(0,1,1,0,0,0,0,0,0) から y を予測 ? </li></ul><ul><li>・置換パターン対する変異の入り方の影響も見たい </li></ul>
  18. 22. データの表現 <ul><li>・学習データ :L </li></ul><ul><li>・ 配列の置換パターン x と薬剤耐性 y∈R </li></ul><ul><li>  L={<x 1 ,y 1 >,<x 2 ,y 2 >,…,<x k ,y k >} </li></ul><ul><li>・例 L={ (0,1,1,0,0,0,0,1,1) 0.8,(0,1,1,0,0,1,0,1,1) 0,7   </li></ul><ul><li>(1,0,0,1,0,0,0,1,0) -0.7} </li></ul><ul><li>・ X i :x i において j 番目の配列上の位置 x ij =1 となるすべての添え字 j を含む集合とする </li></ul><ul><li>・例 T={{2,3,8,9},{2,3,6,8,9},{1,4,8}} </li></ul>
  19. 23. weak learner <ul><li>弱仮説 ( 部分配列の置換パターン t の有無に基づく分類器 ) </li></ul><ul><li>例 X={2,3,8,9} </li></ul><ul><li>- t={2,3} z t (X) = 1, </li></ul><ul><li>- t={1} z t (X) = -1 </li></ul><ul><li>部分配列の置換パターン t を complex feature という </li></ul>
  20. 24. 回帰関数 <ul><li>T を X 1 ,…,X n の少なくとも一つの配列の中に現れるすべての complex feature の集合とする。 </li></ul><ul><li>回帰のために以下の回帰関数を用いる。 </li></ul>- a t , b は学習パラメータ <ul><li>学習問題を以下で定式化 </li></ul><ul><li>- L1-norm なのでスパースな解をうることができる </li></ul><ul><li>α は超高次元なので、このままでは解くことは困難 </li></ul><ul><li>二次計画問題で形式化して、 Column Generation Algorithm で解く </li></ul>
  21. 25. 二次計画問題 <ul><li>主問題 </li></ul><ul><li>双対問題 </li></ul>毎回のイテレーション で加えていく制約
  22. 26. Column Generation Algorithm における制約条件の探索 <ul><li>Boosting における毎回のイテレーションでは、すべての仮説に対して最も合わない制約を発見する必要がある。 </li></ul><ul><li>以下の探索問題を解く必要がある。 </li></ul><ul><li>  </li></ul><ul><li>- g(t) は gain function </li></ul><ul><li>・ complex feature の集合は巨大 </li></ul><ul><li>・効率よく constraint を発見する必要がある。 </li></ul>
  23. 27. Frequent Itemset mining method LCM <ul><li>頻出する部分集合を洩れなく、重複なく、枚挙する方法 </li></ul><ul><li>濃度 k の集合に、頻出する要素を一つ加えて、濃度 k+1 </li></ul><ul><li>の集合を作る </li></ul><ul><li>深さ優先で、再帰的に適応する。 </li></ul><ul><li>出現頻度は要素を追加していくごとに単調減少するので、効率的に枝狩りができる。 </li></ul>empty {1} {2} {3} {4} {1,2} {1,2,4} {3,4} {1,3}
  24. 28. 探索空間の枝狩り <ul><li>すべての、 t’⊃t についてg (t’)<=μ(t) となる上限値を見積もる </li></ul><ul><li>準最適 gain g cur が分かっているとき、 μ(t)<=g cur ならば、 t から先は枝狩り可能 </li></ul>emplty {1} {1,2,} {1,3} {1,2,3,} {1,2,4,} g=0.1(g cur ) μ=0.7 g=0.3(g cur ) μ=0.6 {1,4} g=0.4(g cur ) μ=0.6 g=0.4 μ=0.6 g=0.4 μ=0.3 {1,4,5} {1,4,6} {1,4,6} <ul><li>・ 枝刈り </li></ul><ul><li>準最適 gain:0.4 </li></ul><ul><li>0.4 以上の解はこの先の空間 </li></ul><ul><li>に存在しない </li></ul><ul><li>t’⊃t, gain(t’)<=μ(t) </li></ul>・ この先により強い制約条件はないということ。
  25. 29. 上限値の見積もり <ul><li>∀ t’⊃t, gain(t’)<=μ(t), y i =sgn(u i ),d i =|u i | </li></ul>(Morisita02)
  26. 31. Results <ul><li>Linear Methods は complex feature を使っていない。 </li></ul><ul><li>SVR p ・・・ polynomial kernle SVR r ・・・ gaussian kernel. </li></ul><ul><li>評価尺度 </li></ul><ul><li>5-fold cross validation </li></ul><ul><li>Table1 3つのドラッグ NRTI, NNRTI, PI に対する精度 </li></ul><ul><li>精度はデータ依存 </li></ul><ul><li>薬剤 NNRTI では、 complex feature はあまりなかったので、 linear method の方が精度が良い </li></ul>
  27. 33. Complex feature に対する薬剤耐性の影響
  28. 34. まとめ <ul><li>LPBoost を中心にお話しました。 </li></ul><ul><li>Boosting は、 SVM と同じく Margin を最大化している。 </li></ul><ul><li>SVM は、事例空間で Margin を最大化している。一方、 Boosting は特徴空間で Margin を最大化 </li></ul><ul><li>利点としては、 SVM に匹敵する精度であり、 </li></ul><ul><li>  かつ、学習結果の Feature を解釈することができる </li></ul><ul><li>L1-norm で、スパースな解を得ることができ解釈はより容易になる。 </li></ul>
  29. 35. 補足 <ul><li>AdaBoost と LPBoost の違い </li></ul><ul><li>- AdaBoost は一度 weak learner に与えた重みは変わらないが、 LPBoost ではすべての weak learner に対する重みをキープして、毎回更新する。 </li></ul>

×