メニュー

第2次AIブーム(高度な機械学習):AIの基礎知識3

AIの基礎知識

更新日:2020年9月11日(初回投稿)
著者:慶応義塾大学 理工学部 管理工学科 教授 山口 高平

前回は、基本的な機械学習である、決定木学習、ナイーブベイズ、相関ルールを紹介しました。今回は、高度な機械学習として、線ではなく帯で分離するサポートベクターマシン、複数の決定木の多数決から判断するランダムフォレスト、ニューラルネットワークに関連して多層パーセプトロンについて解説します。

今すぐ、技術資料をダウンロードする!(ログイン)

1. サポートベクターマシン

サポートベクターマシン(Support Vector Machine:SVM)は、教師あり学習を用いるパターン認識モデルの一つで、線ではなく帯で分離する高度な技法です。図1は、犬と猫の体長と、ひげの長さに関する散布図です(数値は、実際の犬と猫を計測したものではありません。一例として見てください)。単純パーセプトロンでは、境界線より上にあれば犬、下にあれば猫になるような良い直線を求めるために、入力パラメータ(体長、ひげの長さ)に重みをかけた値と、しきい値との大小比較により犬か猫かを識別します。識別を誤った場合、その重みを少しずつ修正します。

図1:犬と猫の体長とひげの長さに関する散布図

図1:犬と猫の体長とひげの長さに関する散布図

しかし、この直線によってなんとか識別できても、未知データでは誤識別となるケースが出てきます。そのため、機械学習のサポートベクターマシンが考案されました。SVMでは、サポートベクトルと呼ばれる境界線近傍データだけに注目します(図1では赤点で示した犬3、犬5、猫1、猫2)。また、サポートベクトルと境界線間の距離をマージンと呼び、直線ではなく、できるだけ幅広の帯によって犬と猫のグループを分類します。これにより、未知データの誤識別が少なくなるという特徴を持ちます。

SVMでは、境界線に近いサポートベクトルだけを対象とし(他のデータは考慮しません)、このマージンを最大化して、未知データの識別精度を高めます。さらに、このマージン最大化(1)と、識別精度(2)をともに考慮し、(1)の逆数をとれば、(1)と(2)ともに最小化することになります。そのため、MIN(1/(1)+C×(2))を、ソフトマージン最小化と呼びます。なお、Cは人が与える誤識別許容パラメータで、Cを大きくすると誤識別数が少なくなります。Cの値は、タスクに依存して変える必要があります。

・カーネル法

カーネル法とは、カーネルトリックにより、複雑なデータに内在する非線形関係を線形関係に変換する仕組みです。問題を簡単化するために、低次元から高次元に変換します。通常、問題を簡単化するには、高次元から低次元に変換するので、逆ではないかと思った読者もいるでしょう。

SVMは2つのクラスを識別する識別器を構成するための学習法です。画像認識のように、多クラスを識別するには、複数のSVMを組み合わせる必要があります。また、ソフトマージンの最小化だけでは、本質的に非線形で複雑な識別課題には対応できません。そのため、非線形問題の対応策として、カーネル法が提案されました。

表1は、11匹の犬猫の体長とひげの長さの計測結果です。青のID、1~8が犬で、赤のID、9~11が猫です。

表1:犬猫の体長とひげのデータ

表1:犬猫の体長とひげのデータ

x列(体長)を見ると、3匹の猫の体長はほぼ同じです。犬については、猫より体長が短い小型犬と、体長が長い中型犬が混在していることが分かります。またy列(ひげの長さ)を見ると、ひげは10~13cmの範囲内で、あまり差はありません。

図2は、表1の散布図です(青が犬、赤が猫)。

図2:表1の散布図

図2:表1の散布図

図2では、青点と赤点を1本の直線で分離できません。そのため、図示したように円などで分離する必要があり、計算が複雑になります。そこで、カーネルトリックを使います。11匹の犬猫データについて、z=(体長+ひげの長さ-39)2を適用します(このような適切な関数を所与データごとに考える必要があります)。その結果が、表1最右列のz列です。

続きは、保管用PDFに掲載中。ぜひ、下記よりダウンロードして、ご覧ください。

2. ランダムフォレスト

保管用PDFに掲載中。ぜひ、下記よりダウンロードして、ご覧ください。

3. 多層パーセプトロン

保管用PDFに掲載中。ぜひ、下記よりダウンロードして、ご覧ください。

    ピックアップ記事

    tags