Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NGBoost論文読んでみた
Search
Taro Masuda
November 05, 2019
Technology
2
4k
NGBoost論文読んでみた
@ Connehito Marché vol.6 〜機械学習・データ分析市〜
Taro Masuda
November 05, 2019
Tweet
Share
More Decks by Taro Masuda
See All by Taro Masuda
Rist_Meetup_Kaggleは業務の役にたつ - ビジネスコンテンツ情報を活用する BtoB 事業編 - / rist-meetup-20241012
taro_masuda
1
830
白金鉱業Meetup_経験値ゼロから始める A_B テスト布教活動と意思決定に活かしやすいA_Bテスト設計の一案 / brainpad-meetup-20240919
taro_masuda
2
670
企業・業界動向抽出のための経済情報ラベルの定義とタグ付きコーパスの構築 / yans2023-poster-s3-p21
taro_masuda
0
140
NLP2024 参加報告LT ~RAGの生成評価と懇親戦略~ / nlp2024_attendee_presentation_LT_masuda
taro_masuda
1
480
BtoBプロダクト改善のためのデータドリブン活動と組織の概要/b2b_data_driven_team
taro_masuda
0
1k
企業の業界分類予測における共変量シフト問題の抑制
taro_masuda
3
1.5k
ディジタル信号処理の入り口に立つ
taro_masuda
3
340
歌声の特徴に基づいて曲を探そう!
taro_masuda
1
1.6k
Other Decks in Technology
See All in Technology
Cursorを全エンジニアに配布 その先に見据えるAI駆動開発の未来 / 2025-05-13-forkwell-ai-study-1-cursor-at-loglass
itohiro73
2
390
CodeRabbitと過ごした1ヶ月 ─ AIコードレビュー導入で実感したチーム開発の進化
mitohato14
1
240
Pythonデータ分析実践試験 出題傾向や学習のポイントとテクニカルハイライト
terapyon
1
140
自動化の第一歩 -インフラ環境構築の自動化について-
smt7174
1
120
LangfuseではじめるAIアプリのLLMトレーシング
codenote
0
140
CARTA HOLDINGS エンジニア向け 採用ピッチ資料 / CARTA-GUIDE-for-Engineers
carta_engineering
0
27k
MCPが変えるAIとの協働
knishioka
1
150
kernelvm-brain-net
raspython3
0
500
3D生成AIのための画像生成
kosukeito
2
610
今日からはじめるプラットフォームエンジニアリング
jacopen
8
2k
genspark_presentation.pdf
haruki_uiru
1
240
Serverlessだからこそコードと設計にはこだわろう
kenichirokimura
2
940
Featured
See All Featured
A Tale of Four Properties
chriscoyier
159
23k
For a Future-Friendly Web
brad_frost
177
9.7k
Agile that works and the tools we love
rasmusluckow
329
21k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Fireside Chat
paigeccino
37
3.4k
Thoughts on Productivity
jonyablonski
69
4.6k
Mobile First: as difficult as doing things right
swwweet
223
9.6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
105
19k
Raft: Consensus for Rubyists
vanstee
137
6.9k
How to train your dragon (web standard)
notwaldorf
91
6k
Transcript
NGBoost論文読んでみた @ Connehito Marché vol.6 〜機械学習・データ分析市〜 増田 太郎 2019/11/05
自己紹介 1 増田 太郎(ますだ たろう) @ml_taro • 仕事:(株)電通国際情報サービス • 画像認識や音響解析まわりの機械学習の
技術検証、研究開発、新規事業の企画提案 • 興味 • 音響信号処理 • 機械学習、特にモデルの動作原理など理論に興味あり、ベイズ(PRML) • Kaggle(メダル無し) • 経歴 • 機械学習を用いた音楽信号処理の研究 @修士 • 論文: https://staff.aist.go.jp/m.goto/PAPER/ISMIR2014masuda.pdf • 音声信号処理の研究 @電機メーカー研究職 • 論文: https://ieeexplore.ieee.org/document/7952201
目次 1. NGBoost論文を選んだ理由 2. GBDTとは 3. 提案手法 4. 実験結果 5.
まとめ 2
1. NGBoost論文を選んだ理由 3 ① GBDT系の手法が精度が出やすいと注目を集めているから • 特にKaggleのテーブルコンペにおいて上位解法のド定番 ② 機械学習の多様な教師あり学習問題に 適用できそうな手法なので
• 論文中では回帰問題で評価しているが、原理的には分類問題にも適用可 ③ つよつよAndrew Ng先生が 共著者に入っているから • Hinton, LeCun, Bengio 先生方に匹敵するDeep Learning界隈の貢献者 • Coursera設立者であり、自身のMachine Learning講義も有名 (オススメ) • 余談:NG (Natural Gradient) Boost という手法名が偶然言葉遊びになっている ※図:https://twitter.com/kaggle , https://twitter.com/AndrewYNg
(補足)教師あり学習 = {分類問題, 回帰問題} 4 予測器 (モデル) 予測器 (モデル) 入力変数
X 入力変数 X 犬 生存 猫 人 … 家賃:7万円 明日の気温:20℃ 患者の寿命:11.3ヶ月 分類問題はカテゴリ(クラス)分けを予測 回帰問題は数値を予測 出力変数 Y 出力変数 Y 死亡 …
2. GBDTとは ( 1 / 2 ) 5 ※図:https://qiita.com/3000manJPY/items/ef7495960f472ec14377 GBDT(Gradient
Boosting Decision Tree) = 決定木を複数寄せ集めて予測を行うモデル 決定木 = ある入力変数について、閾値を定めてif…thenのルールで分ける木構造 → 学習サンプルをルールで区分していくとき、 不純度がなるべく低くなるようなルールを学習していく
2. GBDTとは ( 2 / 2 ) 6 ※図:『Kaggleで勝つデータ分析の技術』, p.232.
GBDT(Gradient Boosting Decision Tree) = 決定木を複数寄せ集めて予測を行うモデル → ある決定木による予測と正解との差を次の決定木が学習していくことで、 単一の決定木よりも高精度な予測を出しやすくなる
3. 提案手法 7 今までのGBDTでは 予測の値のみを出力していた 予測器 (モデル) 入力変数 X 明日の気温:73.4℉、
患者の寿命:11.3ヶ月 出力変数 Y 予測器 (モデル) 入力変数 X 出力変数 Y 気温(℉) 月(Month) 確 率 確 率 ※グラフ:https://stanfordmlgroup.github.io/projects/ngboost/ NGBoostは 出力の不確実性を確率値として出力する
(補足)勾配降下法(Gradient Descent)による最適化について 8 • 下図のように、ある目的関数 J(θ) を最小とするパラメータ θ を求めたい •
最小の点を探しに行く = 山を下るイメージ • その点での微分(導関数) = その点での勾配(上り方向)であることから、 逆向き (-1) * 微分係数 に値を更新することで山を下る ※図:https://hackernoon.com/gradient-descent-aynk-7cbe95a778da、いらすとや
3. 提案手法 9 • 具体的には、以下の3つのモジュールから構成される ※図:https://arxiv.org/pdf/1910.03225.pdf 自然勾配(Natural Gradient)の計算式 = フィッシャー情報量の逆数
* 通常の勾配 → 2階導関数の大きさで更新量を調節 → 勾配が大きく変化する場所は慎重に& 勾配があまり変化しない場所は大胆に = 効率的な最適化! 入力 モデル(M個) 入力xが与えられたときの 出力yの条件付き確率 出力yのスコア付け基準 (最尤推定など) 出力
3. 提案手法:勾配場を図示した例 10 • 勾配が大きく変化する場所では慎重に、歩幅を小さく • 勾配の変化が小さい場所では大胆に、歩幅を大きく ※図:https://arxiv.org/pdf/1910.03225.pdf
3. 提案手法 11 • まず、分布パラメタの初期値 θ(0)を用いてNatural Gradientを算出 ※図:https://arxiv.org/pdf/1910.03225.pdf 入力 モデル(M個)
入力xが与えられたときの 出力yの条件付き確率 出力yのスコア付け基準 (最尤推定など) 出力
3. 提案手法 12 • 次に、Natural Gradientを用いて m=1個目のモデルを学習させθ(m=1)を予測 ※図:https://arxiv.org/pdf/1910.03225.pdf 入力 モデル(M個)
入力xが与えられたときの 出力yの条件付き確率 出力yのスコア付け基準 (最尤推定など) 出力
3. 提案手法 13 • 分布のパラメタ θ(m=1)を用いてNatural Gradientを更新 …以下NG更新とモデル学習を m=M まで繰り返し
※図:https://arxiv.org/pdf/1910.03225.pdf 入力 モデル(M個) 入力xが与えられたときの 出力yの条件付き確率 出力yのスコア付け基準 (最尤推定など) 出力
4. 実験結果 14 比較手法と互角の性能 • 指標:平均2乗誤差の平方根(RMSE)、負の対数尤度(NLL) 注:小さいほど良い • 比較手法:MC dropout、Deep
Ensembles • データセット:ボストン家賃予測など10種類 ※表:https://arxiv.org/pdf/1910.03225.pdf
5. まとめ 15 • NGBoost = 予測値そのものだけでなく、 不確実性 ≒ 自信の無さ
を確率値として出力する GBDTモデル • 回帰問題で精度を比較した結果、既存手法と遜色ない結果に • 分からなかったこと • 情報幾何・多様体周りの数学的バックグラウンド全般 • なぜ学習率 η 以外にさらに スケーリングファクター ρ が必要? • 論文曰く「局所的な近似は遠い点で成り立たないことがあるため」 • 「不確実性の予測」の正しさの定義?(確率分布の良い仮定は?) • サンプル数大のデータセットで出力分布が鋭くなるか試してみたい