今回はブースティングをテーマにしてみたいと思います。
ブースティングとはアンサンブル学習の手法の1つです。
アンサンブル学習を用いたアルゴリズムと言えば、ランダムフォレストが大変有名ですが、ここで使われているのはバギングと呼ばれ、ブースティングとは異なります。
※アンサンブル学習やランダムフォレストがよく分からないという方は是非こちらの記事もお読みください。
ブースティングは機械学習の精度を上げるための重要なテクニックなので、バギングとの違いも明確にしながら解説してみたいと思います。
まずはバギングの確認から
まずバギングもブースティングもアンサンブル学習に分類されます。すなわち、学習や予測に複数のモデルを用いるという点は共通です。
バギングはランダムフォレストで使われていますが、ランダムフォレストは次の図のように同時に複数のモデル(例えば決定木)にデータを渡して、出力を多数決によって決めるのでした(図は「猫の画像分類」の例)。
ポイントとなるのは同時に複数のモデルにデータを入力しているという点です。まさに、同時に複数のモデルにデータを渡して学習や予測を行なうのがバギングの特徴です。
ブースティングとは?
一方のブースティングは複数のモデルを使いつつも、それらにデータを渡すタイミングは同時ではありません。では、ブースティングではどのようにデータが渡されるのでしょうか?
ブースティングでは1つ1つのモデルに順番にデータが渡されていきます。バギングとの比較のために図にすると次のようになるでしょう。
では、なぜ1つずつ順番にデータを渡していくのでしょうか?
ブースティングでは最初のモデル(図の決定木A)での学習を行なった後、次のモデル(図の決定木B)で学習を行なう際に、最初のモデルで誤判定をしたデータを優先的に学習します。
誤判定をしたデータを優先的に学習することによって、精度を向上させているのです。テスト勉強に例えるならば、問題集を1周した後で、2周目は間違えた問題を重点的に復習しているようなものです。ブースティングの工夫をご理解いただけたでしょうか?
さらにブースティングにはもう1つバギングとの違いがあります。上図をよく見ると、単純に「多数決」ではなく「重み付き多数決」となっています。これは正答率の高いモデルの出力の比重を大きくするということです。バギングはみんなの意見を均等に聴くのに対して、ブースティングでは優等生の意見をより尊重するということですね。これもブースティングが精度を上げるために行なっている工夫の1つです。
最後にブースティングとバギングの長所・短所をまとめておきます。
手法 | 長所 | 短所 |
---|---|---|
ブースティング | 誤判定データを重点的に学習するため、 相対的に精度は高い | 同時処理でないため、 学習に時間がかかる |
バギング | どのデータも均等に学習するため、 相対的に精度は低い | 同時処理のため、 学習が短時間で済む |
最後に
今回はランダムフォレストで有名なバギングと比較しつつ、ブースティングを解説してみました。
双方の特徴を把握しておくと、実務においても役立つと思いますので、この記事が参考になれば幸いです!!
最後になりますが、より詳しくAIを学んでみたいという方は、AIの基礎からAI搭載WEBアプリ開発まで学べるキカガク長期コースも活用してみてください!