機械学習理論研究室
← AI体験の一覧
「気温は28℃より高い?」——こんな「はい/いいえ」の質問を重ねるだけで、コンピュータはものごとを分類できます。この仕組みを決定木といいます。決定木が自分で質問を選び、データの地図を切り分けていく様子を見てみましょう。
気温と湿度だけをメモした、ある年の記録があります。その日を「暑い」と感じたかどうかを、この2つの数字だけで当ててみます。点1つが1日ぶんの記録です。
木の四角や丸をタップすると、それが担当している地図の範囲が光ります。木の箱ひとつが、地図の範囲ひとつにぴったり対応しています。
g = 1 − Σ(各クラスの割合)²
青3個・赤2個のグループなら、割合は 0.6 と 0.4。式に入れると g = 1 −(0.6² + 0.4²) = 0.48 です。全部同じ色なら g = 0。この g をジニ係数といい、そのグループがどれだけ混ざっているかを表します。
0.5に近い=ぐちゃぐちゃ/0に近い=すっきり純粋。 決定木は、分割したあとのジニ係数(左右の大きさで重みを付けた平均)がいちばん小さくなる質問を選びます。
| 回 | 選ばれた質問 | 分割前 g | 分割後 g(加重平均) | 下がった分 |
|---|
同じデータを、自分で1本の線で切ってみましょう。切ったあとのジニ係数がその場で変わります。小さくなるほど良い質問です。
山が高いところほど良い質問です。縦線がいまの位置、点線がコンピュータの選ぶ位置です。
ここからは全部の分割をコンピュータにまかせます。深さを増やすと、学習に使ったデータ(●)はどんどん正しく当たるようになります。でも、学習に使っていない新しいデータ(○)では途中から当たらなくなります。これが過学習です。
今度は自分でデータを作ってみましょう。色を選んで図の上をタップすると、その色の点が置けます。20個くらい置いたら「学習する」を押してみてください。
決定木は、たての線とよこの線しか引けません。 だから「ななめに分かれる」データでは、境界が階段のようにギザギザになります。深さを増やせば階段は細かくなりますが、それは新しいデータに強くなったという意味ではありません。
この弱点をおぎなう方法もあります。少しずつ違う木をたくさん育てて、その多数決を取るのです。これをランダムフォレストといいます。機械学習理論研究室では、この先の応用もいっしょに研究しています。
カラークラスタでは、正解を教えないまま、近い色どうしをまとめました。ここでは「暑い/暑くない」という正解を先に教えて、質問で分けています。どちらもデータを区切る仕事ですが、正解が手元にあるかどうかがちがいます。
次の近いものに聞くは、まったく同じデータを、質問を1つも作らずに分類します。近くにある点の多数決を取るだけなので、決定木に引けなかったななめの境界も素直に引けます。そのかわり、なぜその答えになったかを質問の並びで説明することはできません。
「はい/いいえの質問をいくつも並べて答えを絞る」という考え方は、どこまで直せるかで扱う誤り訂正符号を使った分類(ECOC)と同じ発想です。あちらでは、1つ1つの答えが多少まちがっていても、答えの並べ方をくふうしておけば正しい結論にたどり着けます。