• AI・機械学習
    Python言語オンラインークラウド上で実行可能ー
    2018年4月5日
  • AI・機械学習
    人工知能・機械学習は、そもそも何を学習しているのか?
    2018年4月29日
  • AI・機械学習
    R言語でクロス集計ができるパッケージ―エクセルとの比較―
    2018年4月9日
  • AI・機械学習
    人工知能・機械学習アルゴリズムの簡単な使い分け方【後編】
    2018年4月25日
  • AI・機械学習
    それでもノンプログラマーにPythonではなくR言語をすすめる理由
    2018年4月30日
  • AI・機械学習
    R言語オンラインークラウド上で実行可能ー
    2018年4月5日
  • AI・機械学習
    AIは未来のEXCEL―あなたが人工知能を習得するべき理由―
    2018年4月24日
  • その他記事
    当研究所ホームページについて
    2018年4月5日
  • その他記事
    PDF/X規格(CMYK)に安価で変換できるソフト
    2018年4月9日
  • その他記事
    【実は可能】郵便物の時間指定配達を受取人が変更できる条件
    2018年4月24日
  • AI・機械学習
    人工知能・機械学習アルゴリズムの簡単な使い分け方【前編】
    2018年4月25日
人工知能・機械学習アルゴリズムの簡単な使い分け方【前編】

いきなり結論だ。機械学習初心者にはランダムフォレストを推奨する。この記事では、なぜランダムフォレストなのかを、数式を使わず直感的に解説する。

ランダムフォレストとは何か?

ランダムフォレストとは、決定木(データ構造を木のように表現したアルゴリズム)のパワーアップ版だ。厳密にいうと、決定木を弱学習器とするアンサンブル学習(複数の弱い学習器から、強力な一つの学習器を作ること)だ。パワーアップとはどういうことかというと、ランダムフォレストは決定木の長所を生かしつつその短所を克服しているのだ。

決定木の長所と短所

以下の4つの観点から、決定木・ランダムフォレストの長所と短所を見ていく。
①バイアスとバリアンス
②前処理の煩雑さ
③ハイパーパラメータの数
④特徴量重要度の確認

①バイアスとバリアンス

機械学習を利用する者が、必ず知っておかなければならない言葉がある。それがバイアスとバリアンスという名の誤差だ。データとあなたが構築した予測モデルの誤差は、以下のように表現できる。
誤差=バイアス+バリアンス+ノイズ
まず、簡単に用語の意味を説明し(読んだだけではわからないと思われる)、後で直感的な解説をする。
バイアス・・・モデルの表現力(特に線形・非線形)に由来する誤差
バリアンス・・・訓練データの選び方に由来する誤差(異なる訓練データへの対応力)

ノイズ・・・本質的に消せない誤差
ノイズは消せないのだから、考慮する必要がない。注目すべきはバイアスとバリアンスだ。バイアスとバリアンスの違いを理解するには、線形と非線形という言葉を知っておくのがベストだ。数学嫌いの人はここで嫌悪感を持ってしまうかもしれないが、難しい話は出ないので勇気を持ってついてきてほしい。なんのことはない。
線形→データを直線(平面)で近似
非線形→データを曲線(曲面)で近似


図の太線を見てほしい。非線形のモデル(右図)は表現力が高いため、データにフィットしたモデル構築が可能だ。非線形モデルのほうが、データとモデルの誤差が小さい。
このようなとき、
非線形モデル→バイアスが小さい
線形モデル→バイアスが大きい

という。この図だけを見ると、「非線形の方が明らかに予測精度の高い良いモデルだ」と思う人もいるだろう。ところが、ことはそう単純ではない。上の図の訓練データを少し変えてみよう。

いかがだろうか?線形モデルでは、形状は大きく変わらない。一方、非線形モデルでは、形状が大きく変わってしまった。そう、非線形モデルは「データにフィットし過ぎている」のだ。違う言葉で述べると、「データが少し変わると、モデルの形状が大きく変わってしまう(予測結果が大きく変わる)」ということだ。
このようなとき、
非線形モデル→バリアンスが大きい
線形モデル→バリアンスが小さい

という。多少データを追加もしくは削除しても、線形モデルの形状は変わらない。ここに線形モデルの強みがある。以上をまとめると、一般に、
非線形モデル→バイアスは小さいが、バリアンスが大きい
線形モデル→バイアスは大きいが、バリアンスは小さい

線形・非線形どちらのモデルも一長一短がある。機械学習アルゴリズムを使う際は、今使っているモデルのバイアスとバリアンスの大小を知っておかねばならない。これが機械学習モデルの選択に関する重要な示唆を与えてくれる。

ランダムフォレストの戦略

ここでようやく決定木に戻ろう。実は、ランダムフォレストに使われている決定木は、非線形モデルなのだ。つまり、バイアスは小さいという長所がある反面、バリアンスは大きいという短所がある。ランダムフォレストのメリットは、このバリアンスを小さくできることにある。ランダムフォレストは「バイアスが小さく、バリアンスも小さい理想的なモデル」なのだ。※なぜバリアンスが減るかというと、以下2つの理由による。①各弱学習器を作る際にすべての訓練データを使わずに、一部の訓練データのみを使う②各弱学習器を作る際にすべての特徴量を使用せず、決めた数の特徴量のみ使用する。以上①②より、「少々の訓練データの変更では結果が変わらないモデル」、つまり「バリアンスの低いモデル」ができる。
ランダムフォレストに代表されるアンサンブル学習(複数の弱い学習器から強力な一つの学習器を作り出す)は、「バリアンスを下げる」ための戦略だ。ここで一つ覚えておくといいのだが、バリアンスが最初から小さい線形モデル(よく知られている重回帰分析などのモデル)は、アンサンブル学習に向かない。

世界は複雑にできている?


最も有名な機械学習コンペであるKaggleでは、このアンアンブル学習が頻繁に用いられている。そして、さまざまなモデルを組み合わせるスタッキング(アンサンブル学習の一種)がブームとなって久しい。「複雑なモデルの方がより精度が高くなる」ということが起きている。「物事の本質はシンプルな言葉で表現できる」というのが私の信念だが、普通に考えて、世界はそう簡単な構造をしていないのだろう。

以上では、なぜ機械学習初心者がランダムフォレストを使用するべきかということを、①バイアスとバリアンスの観点から説明した。
②前処理の煩雑さ
③ハイパーパラメータの数
④特徴量重要度の確認

に関しては、次回の記事で説明しようと思う。

人工知能・機械学習アルゴリズムの簡単な使い分け方【後編】
2018.5.2
「Garbage In Garbage Out」(ゴミデータからはゴミのような結果しか得られない)という機械学習の重要な鉄則がある。多くの場合、たとえ大量のデータを保有していたとしても、データの前処理をせずに学習すると芳しい結果を得られないことがある。実は、どの機械学習アルゴリズムを選択するかよりも...
関連キーワード
AI・機械学習の関連記事
  • それでもノンプログラマーにPythonではなくR言語をすすめる理由
  • 人工知能・機械学習は、そもそも何を学習しているのか?
  • 人工知能・機械学習アルゴリズムの簡単な使い分け方【後編】
  • 人工知能・機械学習アルゴリズムの簡単な使い分け方【前編】
  • AIは未来のEXCEL―あなたが人工知能を習得するべき理由―
  • R言語でクロス集計ができるパッケージ―エクセルとの比較―
おすすめの記事