機械学習を利用すれば犬や猫などの画像が判別ができますが、その際には得られた結果から、そのモデルの性能が高いのかどうかを評価指標で検討します。中でも「AUC」という評価指標はもっとも有名ですが、こちらが具体的にどのようなものなのかは初心者のみなさんには分かりにくいですよね。
なお、評価指標「AUC」はモデルの混合行列からグラフを書いて、その曲線下の面積を積分することで精度の高さを数値として判断するものです。具体的には精度の低いモデルが0.5というAUC値を取るのに対して、このモデルのAUC値はどのような値を取るのかで精度がよい、あまりよくないなど判断します。
機械学習ではこのような評価を行いながら、適切な改良を加えていくことで精度が向上するため、評価指標についての理解は必須です。そこで、今回はこの機械学習の評価指標「AUC」とは何であるのかわかりやすくお伝えします。
AUC (Area Under the Roc Curve)とは
それでは、機械学習の評価指標であるAUCについて説明します。このAUC (Area Under the Roc Curve)とはROC曲線下の領域を意味しているものです。具体的にはあるモデルの判別結果から横軸にFPR(False Positive Rate) の値を取り、縦軸にはTPR(True Positive Rate)の値を取ってグラフ化します。
そして、そこから曲線下の領域を積分して計算されるのがAUC値です。この際に機械学習の出力は確率で算出されるため、FPRとTPRの値は共に0~1.0の値を取るため、積分した結果のAUC値も同様に0~1.0の値を取ることになります。
したがって、機械学習を行った結果をAUCでみていけば、精度がどうなっているのか客観的な数値で判別できます。以上がAUC (Area Under the Roc Curve)とは何であるのかの説明になりますが、ここまでの内容で「評価指標」や「ROC曲線」、「FPR(False Positive Rate)」 、「TPR(True Positive Rate)」などの単語が出てきました。
以下ではこれらの専門用語を解説した上で、ROC曲線とAUCを使った評価についてより詳しくお伝えします。
評価指標って何?
それでは、評価指標という単語がどのような意味を持つのか説明します。評価指標とは、機械学習を行ったモデルがどのような精度を持っているのか、数値から判別するものです。
このように機械学習のモデルについての評価を行えるのが評価指標なのです。ただし、この評価指標は機械学習の目的に左右されるものであり、AUCの場合には二値分類問題を解く場合に用いられます。なお、二値分類問題とは対象とそれ以外のものを分類するもので、例えば画像データから猫とそれ以外を分類する行為がまさにこれです。
そして、対象をより細かく分類したい場合には多クラス分類を行い、LogLoss(Multi-class Logarthimic Loss)などの評価指標を用います。こちらのイメージとしては分類する対象の箱を用意しておき、その箱の数値に最も近いものを分けていくものです。
この他、回帰問題を解かせたい場合には、平均絶対誤差(MAE:Mean Absolute Error)などの評価指標を利用します。なお、回帰問題とは数値を予想できるように機械学習させるもので、例えばデータがy=xのような関数に近い形で結果が出力されるのであれば、他のデータでもその関数によって結果を出力できるようにするものを指します。
この際に評価指標では理想的な正解データ(この場合はy=xの関数値)と比較してどうなのかで、精度が高いのか判断します。以上のように機械学習を行う目的によって適切な評価指標を使うことで、そのモデルの精度の高さを確かめられるのです。
ROC(Receiver Operating Characteristic) 曲線とAUCの関係
それでは、ROC(Receiver Operating Characteristic) 曲線とAUCの関係について説明を行います。まず、ROC曲線は日本語で受信者動作特性曲線と呼ばれており、元々はレーダー内にいる敵機を探しだすために開発された理論です。
現在では機械学習や医療関係などで評価指標として用いられるほど有名な存在となっています。そして、このROC曲線の作成方法ですが、こちらはモデルから混合行列を作成して、そこからFPR(偽陽性率) とTPR(真陽性率)の値を取りグラフ化していくもの。
このFPR(偽陽性率) とTPR(真陽性率)の確率分布の関係をさらにグラフ化して確認するのがROC曲線です。具体的にはROC曲線は先ほどのモデルのFPR(偽陽性率) とTPR(真陽性率)の確率分布の関係をxy軸にとってグラフ化します。ちなみに両者とも数値の範囲は(0~1.0)を取り、両者の分布の重なり方によって曲線が変化します。
具体的には双方の分布が全く重なっていない場合では、TPRのy軸とy=1.0、イメージとしては四角形の左辺と上辺の部分をROC曲線として描きます。一方で双方の確率分布が完全に重なっている状態では、ROC曲線は原点から座標(1.0,1.0)に向かって進む、y=xのような直線を描きます。
そして、双方の重なり方が今述べた二つの間に入る場合には、TPRのy軸上(1.0,0)に対して凸の形をしたROC曲線を描きます。このように双方の確率分布からROC曲線を作成し、それを目視することで人間ならば判断ができますが、機械学習では機械が理解できる数値が必要です。
そこで、数値として精度の判断が可能となるAUCを計算します。こちらはROC曲線を積分することで得られる面積から判断を行うもので、双方の分布が全く重なっていないと四角形を描く曲線になり、この場合はAUC値1.0と非常に精度が高いと判断可能です。
一方で確率分布が完全に重なっている場合はその半分のAUC値0.5を取り、こちらの場合はランダムな確率分布と一緒であるため、精度は非常に低いと判断できます。以上のようにROC曲線を作成し、AUCを計算していけばモデルの精度が数値としてわかるので、両者は切っても切れない関係性を持っているでしょう。
偽陽性率と真陽性率とは
それでは、FPR(偽陽性率) とTPR(真陽性率)について説明していきます。こちらは混合行列から作成できるものです。
例として猫とそれ以外の画像を分類するモデルが双方のデータを判別した場合に、以下のような出力を行ったと仮定しましょう。ちなみに双方のデータはそれぞれ1000個とします。
猫のデータ 880 120
猫でないデータ 150 850
すると上のように猫でないデータ群から850は正確に判別を行え、150は間違えてしまったことがわかりますよね。また、猫のデータからは880は正確に判別でき、120は誤ってしまったことがわかるでしょう。このようにデータの本来の属性に対して、モデルがどのような分類を行えたのかをまとめたものが混合行列です。
各項目は猫でないデータの内で猫でないと判別したものが真陰性(True negative: TN)、猫だと判別したものを偽陽性(False positive: FP)。猫のデータの内で猫と判別したものを真陽性(True positive: TP)、猫出ないと判別したものを偽陰性(False negative: FN)と呼びます。
そして、この混合行列の項目から計算したものがFPR(偽陽性率)とTPR(真陽性率)になり、これらは以下のように計算を行います。
TPR= TP/(TP+FN)
簡単に説明するとFPR(偽陽性率)とは陽性ではないのに陽性と誤って判断した%を示し、TPR(真陽性率)は正しく陽性と判別した%です。上の例では以下のように計算されます。
TPR=880/(880+120)=0.88
このようにFPR(偽陽性率)とTPR(真陽性率)が計算できました。なお、機械学習ではモデルに入力したデータは確率分布で出力されるので0~1.0の値を取りますが、これを閾値で管理することで混合行列が変化し、FPR(偽陽性率)とTPR(真陽性率)も併せて変化する仕組みです。
補足すると閾値とはどれぐらいの確率であれば、陽性と判断するかという基準です。例えば、上のモデルで閾値を0.5とすれば出力結果が0.5以上は猫、0.5未満の場合は猫でないとみなされます。
これによって、閾値ごとのFPR(偽陽性率)とTPR(真陽性率)が決まるため、これをプロットしていくことでROC曲線が描けます。
ROC曲線とAUCを使った評価
機械学習を行ってモデル作成した場合にはROC曲線を描き、AUCを計算すればAUC値が算出可能です。この時に基準となるのがランダムモデルのAUC値であり、こちらは丁度範囲の真ん中である0.5を取ります。
AUCではこの数値からどれぐらい離れているのかでよいモデル、つまり精度が高いのか以下のように評価します。
- 0.9~1.0:非常に精度が高い
- 0.8~0.9:精度が高い
- 0.7~0.8:多少精度が高い
- 0.6~0.7:あまり良くない精度
- 0.5~0.6:ランダムと変わらない精度
なお、AUC値が0.5以下になった場合には陽性と陰性を逆にすると、0.5以上のAUCが得られるので同様に判断可能です。これはいわゆる50%であたる占いと、100%で外れる占いのどちらが正解率が高いかというもの。
また、評価自体はAUC値だけでなく、ROC曲線からも目視で確認ができます。基本的にROC曲線は左上に対して凸のグラフを描くため、左上に近ければ近いほど高精度なので、モデル間の精度を比べる場合はROC曲線でみたほうが、感覚的に理解しやすいでしょう。
以上のようにROC曲線とAUCを使ってモデルの評価を行ってみましょう。
今回は機械学習の評価指標「AUC」とは何であるのか、以下の内容をあわせてお伝えしました。
- AUC (Area Under the Roc Curve)とはROC曲線下の領域を意味し、曲線下の領域を積分して計算される
- 評価指標とは機械学習を行ったモデルがどのような精度を持っているのか判別するもので、目的に合わせて適切な指標を活用する
- ROC曲線を作成して、AUCは計算されるので両者は切っても切れない関係性を持っている
- 混合行列の項目から計算したものがFPR(偽陽性率)とTPR(真陽性率)である
- ROC曲線とAUCを使った評価は数値が0.5に近ければ精度が悪く、1.0に近ければよいと評価する
プログラミングを行って機械学習をすることで得られるモデルは、評価指標によって精度が高いのかみていかなければ、その実力を判断できません。場合によっては能力を有していないこともあります。
また、今回はAUCという有名なものを紹介しましたが、他にも目的別に有用な評価指標は存在します。そのため、それぞれの評価指標のメリットやデメリットを知った上で活用していくと、より精度の高いモデル作り上げられるでしょう。
より高度な機械学習を行うためにもこの評価指標を上手く使いこなしましょう。
【お知らせ】
当メディア(AIZINE)を運営しているAI(人工知能)/DX(デジタルトランスフォーメーション)開発会社お多福ラボでは「福をふりまく」をミッションに、スピード、提案内容、価格、全てにおいて期待を上回り、徹底的な顧客志向で小規模から大規模ソリューションまで幅広く対応しています。
御社の悩みを強みに変える仕組みづくりのお手伝いを致しますので、ぜひご相談ください。