
2025.03.19
ドバイ不動産投資の最前線 専門家が語る、3つの投資モデルと市場の展望
GBDTアルゴリズム Gradient Boost Decision Tree with Iris datasets(全1記事)
リンクをコピー
記事をブックマーク
Yasshieeee氏:場違い感がすごいですが、一応、僕は大学生です。LTには若干慣れている予感はするんですけど、大学生なりのクオリティなのでご了承ください。
題名には「XGBoostについて」と書いたんですが、そもそも最初からXGBoostのすごく深いところまでいくのは、ちょっと初心者向けではないかなと思って……。今回は、XGBoostであるGradient Boost Decision Treeのアルゴリズムを幅広く解説するLTにしようと思います。よろしくお願いします。
まずは自己紹介します。工学院大学情報学部コンピュータ科学科で、未来の機械学習エンジニアです。Twitterは、さっきからつぶやいていますが、Yasshieeeeというもうそのままなので、フォローしてもらえるとありがたいです。
趣味はWebプロ・ゲーム・マインクラフトという、マジでオタクって感じなんですけど、ちょっと勘弁してほしいです。マインクラフトをやったことある人はわかると思うのですが、資源が大事なんです。大陸とかに家を作らなければいけないんですよ。木の近くとかに。なのに僕は、海のど真ん中に拠点を作るというバカなことをしています。
勾配ブースティングの説明をします。ちょっと環境が激しいですけれども。勾配ブースティングは、簡単に言うと学習器にあまり高性能なものを使わずに、弱分類器という感じで、予測値の誤差を新しく作った弱学習器がどんどん引き継いでいきながら誤差を小さくしていく方法です。
よく(使う)機械学習の分類アルゴリズムに、ランダムフォレストがあると思うのですが、ランダムフォレストは、この3つの決定木があったとして、それが一斉に実行されて、多数決で決めるやつです。
勾配ブースティング法は、木が増えるにしたがって、その木が持つ誤差を小さくしていく手法です(誤差を引き継いでいく)。
勾配ブースティングには、XGBoostやLightGBM、CatBoostがあります。Kaggleとかをやっていたら、たぶんLightGBMとかは、すごく有能なのではないかと思うんですけど……。Kaggleをやってる人ってどのぐらいいますか? 手を挙げてください。
(会場挙手)
けっこう。半数いる。Kaggleやっていない人もいるってことですか? いや、僕もやっていないんですけど。
木をたくさん作っていって勾配を引き継ぐ場合、たくさんデータがあるときは、外の記憶装置から適宜データを読み出して処理するのが普通だと思うんですけど、木の分割の点の検出の際に、データがたくさんだと、そこの勾配の統計を内部の変数に保存するのに失敗しちゃうんですよね。キャッシュミスです。
その結果、エラーは起きないんですけど、速度の低下とか、貪欲法という中の分割の点を決めるアルゴリズムの精度が低下したりするんです。結果的にメリットがない。
XGBoostは、各スレッドに内部バッファを割り当てて、勾配統計をあえてそこに中間的に配置して、その中間的な変数から小刻みにどんどん蓄積をしていくアルゴリズムを採用しています。各スレッドというのは、処理のジョブみたいな感じだと思ってください。
これ以上にたくさん特徴があるんですけれど、あんまりたくさん言うと、たぶんみなさん眠くなってしまうので言わないです。次にいきます。
やはりデータ量が多いと変数のオーバーフローなどが起きるので、それに対してこういうXGBoostというのが有効だよというので提案されたアルゴリズムです。
次にLightGBMですが、名前からして軽いです。本来、木というのはレベルを増やすと、例えば、Level Wiseのほうを見てほしいんですが、親のノードがあって下に子が2つあったときに、レベルを次にやると、その子2つがさらに子を2つ伸ばすんです。
これはちょっと無駄が多いので、Leaf Wiseを採用しているのがLightGBMです。Levelを増やすのよりも計算量が減るので、その分軽くなる。かつ、しかも、木のそれぞれの階層によって特徴量をヒストグラム化しているので、最適な枝分かれを探すための計算コストが減るらしい。詳しいことはあまり話しませんが、そんな感じに思ってください。
XGBoostでも、こうしたことを変数次第でできるようなので、気になった方はやってみてください。僕はやっていないです。演算量が減って軽そうということですね。
次にCatBoostです。Prediction shiftという問題が、決定木の勾配ブースティング問題でありました。新しい木を生成するときに、もともとあった木から同じデータセットを使って勾配の近似値、近い値を求めるので、誤差が絶対あるんですよ。そこでCatBoostでは、前回のブースティング段階で新しいデータセットを毎回サンプリングするんです。
これを実現している技術がもう1つありますが、今回これは割愛します。興味ある方は調べてみてください。図で説明してるんですけれど、猫は飽きっぽいということですね。だからCatなのかなと思っています。
今回やったことです。単純に3つを実行しました。アヤメの分類データセットを使いました。結果はGitHubにあります。このスライドも、さっきTweetDeckにハッシュタグ付きでツイートしたので、そこから辿れます。僕のおもちゃ箱というリポジトリに入っています。
実行時間だけみると、XGBoostが1.07秒で、LightGBM34.1ミリ秒、CatBoostが863ミリ秒と、グラフにすると恐ろしくLightGBMが速いという結果になりました。これ、パラメータチョイスとか一切してないんです。内部でパラメータの探索はしてるんですが……。Kaggleで重宝される理由がわかったという感じです。
これからですが、各アルゴリズムをもっと細かく追究しようと思っています。今回XGBoostの利点や欠点を明確にまとめればもっといいかなと思ったんですけど、それはちょっと時間がありませんでした。概要をまとめ、利点・欠点を明確にすることが目標です。
ご清聴ありがとうございました。
(会場拍手)
関連タグ:
2025.03.17
いくら読書をしても「成長しない人」が見落としていること 10分でできる「正しい学び方」
2025.03.17
ソフトバンクとOpenAIにとって「歴史的な日」になった 孫正義氏が語る、AI革命の全ぼう
2025.03.17
不確実な時代だからこそ「知らないこと」を武器にする ハーバード主席卒業生の逆説的なメッセージ
2025.03.19
部下の「タスクの先延ばし」が少ない上司の特徴とは? 研究が示す、先延ばし行動を減らすリーダーの条件
2025.03.18
フェデラー氏が語る「努力しない成功は神話」という真実 ダートマス卒業生に贈る勝利の秘訣
2025.03.18
全知全能の最先端AI「Cristal」が企業の大脳となる ソフトバンク孫正義氏が語る、現代における「超知性」の可能性
2025.03.12
SNSで炎上している研究者は「研究者として正しい」 人文学のプロ・阿部幸大氏が説く“強い意見を出せない時代”に対する考え方
2025.03.14
三流の上司と一流の上司の違い 部下の心を動かす科学的アプローチ
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.03.13
改正後のiDeCoと退職金の受け取り方の事例 「改悪」は本当か? プロが真相と狙いを解説
【手放すTALK LIVE#046】 出版記念イベント 『大きなシステムと小さなファンタジー』 一つ一つのいのちが大切にされる社会へ
2025.02.03 - 2025.02.03
「聴く」から始まる組織変革 〜篠田真貴子さんと考える対話型マネジメント〜
2025.02.14 - 2025.02.14
「目の前の利益を優先する」心理とは:ビジネスに活かせる意思決定の科学
2025.02.12 - 2025.02.12
新刊『組織をダメにするのは誰か?職場の問題解決入門』出版記念セミナー
2025.02.04 - 2025.02.04
会社の体質、これまでどおりで大丈夫? 職場に新たな風を吹き込むための「ネガティブ・ケイパビリティ」入門
2025.02.10 - 2025.02.10