AIの精度は一つじゃない?精度の評価指標をご紹介

2024/07/31

人工知能(AI)技術が急速に発展する中で、その性能をどのように測定し理解するかが、AIを利用する上で重要な課題となっています。特に「精度」は、AIモデルを評価する基本的な指標です。この記事では、AIモデルにおける精度の意味や重要な関連用語、および精度を計算する方法について、「製造業において良品と不良品を見分けるAIモデル」を例として詳しく解説します。


※今回の記事で精度の計算方法を紹介するモデルは、「良品か不良品かを見分ける」「犬・猿・雉を見分ける」といったタスクを行う「分類モデル」です。AIモデルの中には、過去の様々な数値データからある項目の未来の値を予測する「回帰モデル」もありますが、この記事では回帰モデルについては触れていませんのでご了承ください。


AIの精度とは

AIにおける「精度」とは、AIモデルがどれだけ正確に予測を行うかを示す指標です。一般に、AIモデルが問題を解決するために行う予測や分類が正確であるかどうかを測定します。今回の例では、「良品は必ず良品として認識し、不良品は必ず不良品として認識するAIモデル」を作成できれば、精度は100%ということになります。
ではどのように精度は計算されるのか、精度を理解するうえで知っておきたい4つの要素について説明します。

精度の計算における基本用語

以下の4つを知っておけば、精度の計算ができるようになります。今回の例では、検知したい対象を不良品であるとして、AIモデルが不良品と判断した場合を陽性、良品と判断した場合を陰性としています。

真陽性

英語ではTrue Positive、TPと略されます。AIモデルが不良品と判断し、実際に不良品であった場合を指します。

真陰性

英語ではTrue Negative、TNと略されます。AIモデルが良品と判断し、実際に良品であった場合を指します。

偽陽性

英語ではFalse Positive、FPと略されます。AIモデルが不良品と判断したが、実際には良品であった場合を指します。即ち、良品を誤検知してしまったケースです。

偽陰性

英語ではFalse Negative、FNと略されます。AIモデルが良品と判断したが、実際には不良品であった場合を指します。即ち、不良品を見逃してしまったケースです。

これら4項目は、一般的に以下のような混同行列と呼ばれる表にまとめられます。

混同行列

実際は不良品

実際は良品

AIが不良品と判断

TP
不良品を不良品と判断
→正解

FP
良品を不良品と判断
→誤検知

AIが良品と判断

FN
不良品を良品と判断
→見逃し

TN
良品を良品と判断
→正解

この混同行列を基に、精度の計算が可能です。

ただし、精度を評価する指標は複数あり、目的に応じてどの指標を重要視すべきかは異なります。次節では、精度の評価指標とその計算方法を説明していきます。

主要な精度の評価指標

ここでは精度を評価するために用いられる主Aな指標5つと、それぞれの指標の計算方法、メリット・デメリットを紹介します。分かりやすくするため、以下の例を用いて具体的な値を求めながら説明します。

「製品100個に対してAIによる外観検査を行ったところ、5個の不良品のうち、3個を不良品、2個を良品と判断した。また、95個の良品のうち90個を良品、5個を不良品と判断した。」

まずは混同行列を考えます。今回のケースでは、以下のような混同行列になります。

混同行列

実際は不良品

実際は良品

AIが不良品と判断

TP=3
不良品を不良品と判断
→正解

FP=5
良品を不良品と判断
→誤検知

AIが良品と判断

FN=2
不良品を良品と判断
→見逃し

TN=90
良品を良品と判断
→正解

正答率(Accuracy)

正答率という名前の通り、全ての予測のうち、正解した割合を示しています。不良品を不良品と判別した場合、良品を良品と判別した場合が正解したと言えるので、式としては以下のようになります。

精度の指標の中では、最も直感的な指標といえます。実運用ではこれが高ければ高いほど「精度の高いモデル」と言えそうですが、注意が必要です。学習データに大きな偏りがある場合(例えば良品が不良品の10倍以上の枚数があるなど)、AIの判定も良品に偏ってしまうことがあります。そうなると、例えば1000個流れてくる製品のうち不良品が10個だったとしても、1000個すべてを良品と判定すれば正答率は99%ということになってしまいます。そのため、学習データの偏りが考えられる場合には他の指標と組み合わせるのがよいでしょう。

メリット:全ての予測結果が計算に関わるため全体を俯瞰しやすく、直感的で分かりやすい。
デメリット:学習データに大きな偏りがある場合、信用できない。

また、正答率に対して、全予測のうち不正解だった割合を分類誤差(Classification Error)といいます。こちらは分子が「見逃しした場合+誤検知した場合」になるため、製品100個中見逃しが2個、誤検知が5個発生している今回のケースにおいては、分類誤差は7/100=7%ということになります。

適合率(Precision)

適合率は、AIが不良品だと判断したもののうち、実際に不良品だったものの割合です。

適合率が高ければ高いほど、良品の誤検知が少ないことを表しています。良品を不良品と検知してしまい無駄に廃棄してしまうのを防ぎたい、という場合に重要視すべき指標といえます。その代わり、この指標のみでは不良品の見逃しはカバーできません。

また、実運用では「AIが〇%くらいの確証を持って不良品だと検知した場合、不良品とみなす」というような運用を行います。「〇%」の部分を高く(=かなりの確証がないと不良品とみなさないように)設定すれば、適合率を上げることが可能です。

メリット:良品の誤検知がどの程度かが分かる。
デメリット:不良品の見逃しがどの程度かは分からない。

再現率(Recall)

適合率と対になっている指標が再現率です。再現率は、実際に不良品であったものを、AIがどれだけ見つけることができたかを表しています。

再現率が高ければ高いほど、不良品の見逃しが少ないことを表しています。不良品を絶対に検知してもらいたい、という場合に重要視すべき指標といえます。ただし、この指標のみでは良品の誤検知はカバーできません。

また、適合率の場合と同様に、実運用では「AIが〇%くらいの確証を持って不良品だと検知した場合、不良品とみなす」というような運用を行います。「〇%」の部分を低く(=あまり確証がなくても不良品とみなすように)設定すれば、再現率を上げることが可能です。

再現率を上げようとすると適合率が下がってしまい、適合率を上げようとすると再現率が下がってしまう、トレードオフの関係となっています。

メリット:不良品の見逃しがどの程度かが分かる。
デメリット:良品の誤検知がどの程度かは分からない。

F1スコア

F値とも呼ばれる指標です。適合率、再現率のどちらも同程度に考慮したい場合に使われる指標です。式は以下のようになっています。

詳しい説明は割愛しますが、F1スコアは適合率と再現率の調和平均(確率どうしの平均を求めたい際に用いられる平均)です。分子で掛け算を行っているため、適合率か再現率のどちらか一方が極端に低いとF1スコアも低くなります。そのため、F1スコアが最も高くなる場合が、適合率と再現率のバランスが最も取れた状態であるといえます。

F1スコアは学習データに大きな偏りがある場合でも使用できる評価指標です。ただし、学習データに偏りがない場合は正答率と近い値をとるようになり、計算するメリットは少なくなります。

メリット:学習データの偏りがあっても使用でき、バランスの取れた評価指標である。
デメリット:学習データの偏りがない場合、わざわざ計算するメリットは少ない。

ROC曲線、PR曲線とAUC

上記4つは計算した結果が率として現れる評価指標でしたが、こちらは結果がグラフの面積として現れる評価指標となります。

ROC曲線では新たに真陽性率、偽陽性率という言葉が出てくるため、はじめに紹介します。

真陽性率(True Positive Rate; TPR):すべての不良品のうち、AIが不良品だと判断したものの割合。再現率と同義
偽陽性率(False Positive Rate; FPR):すべての良品のうち、AIが誤って不良品だと判断したものの割合。今回の例の場合、95個の良品のうち5個を不良品とみなしていたので、5/95=約5%。

ROC曲線、PR曲線、AUCはそれぞれ以下のような意味を持っています。

ROC(Receiver Operating Characteristic)曲線:縦軸に真陽性率、横軸に偽陽性率をプロットした曲線。
PR(Precision-Recall)曲線:縦軸に適合率、横軸に再現率をプロットした曲線。
AUC(Area Under the Curve):直訳したとおりに「曲線の下の面積」。

PR曲線、ROC曲線は曲線の名称で、それぞれのAUCがそのまま評価指標となります。

具体的には、このようにAUCを求めていきます。
「製品100個それぞれに対して、AIが何%くらいの確信を持って不良品だと判断したか」の結果が以下のようであったとします。

今までの例であった「5個の不良品中2個を誤って良品と判断、95個の良品中5個を誤って不良品と判断」では、AIの確信度が50%以上の時に不良品と判断していたことが分かります。確信度30%以上の時に不良品と判断する場合を考えてみると、不良品は見逃しなくすべて不良品と判断できますが、その代わり20個の良品も不良品と判断してしまいます。

このように、AIが何%の確信を持った際に不良品と判断するかを変えることによって、真陽性、真陰性、偽陽性、偽陰性の値がそれぞれ変化し、それに伴って各評価指標の計算結果も変化します。

ここで、パーセンテージを20刻みで変化させた際の真陽性率(再現率)、偽陽性率、適合率をそれぞれ求めると以下のようになります。

不良品と判断する%

真陽性率(再現率)

偽陽性率

適合率

0%以上

100

100

5

20%以上

100

39

12

40%以上

80

7

36

60%以上

60

2

60

80%以上

40

0

100

100%以上

0

0

100

細かく%を変化させることでより正確なAUCを求めることができ、10%刻みで結果をプロットしたROC曲線、PR曲線が以下の通りです。青く塗られている部分がAUCとなります。

グラフを埋め尽くす長方形の面積を1とすると、AUCはROC曲線で0.953、PR曲線で0.726でした。

ROC曲線は正答率と同様に、良品を良品とみなせること、不良品を不良品とみなせることに重きを置いているため全体的な精度を掴むことができますが、偏りの大きいデータだと実情に合っていない大きい値になってしまいがちです。対して、PR曲線は偏りの大きいデータでも使用することができますが、偏りの小さいデータの場合はROC曲線の方がより効果的と言えます。

ROC曲線のメリット:全体的な精度を掴むことができる。
ROC曲線のデメリット:データに大きな偏りがある場合、信用できない。

PR曲線のメリット:データに偏りがある場合でも使用できる。
PR曲線のデメリット:データの偏りが小さい場合はROC曲線の方が効果的。

多値分類したい場合の平均の取り方

「良品か不良品か」だけでなく、不良品をさらに区別したい時などは「良品か傷か汚れか」のように、3つ以上に分類したい場合も考えられます。その際は、「良品かそれ以外か」「傷かそれ以外か」「汚れかそれ以外か」というように、分類したい数に応じてそれぞれの混同行列を作ることで同様に評価指標を計算可能です。

モデル全体の性能を見たい際には、評価指標の平均を取ればよいのですが、平均の取り方にも二種類あります。

マクロ平均:各混同行列から評価指標を計算し、その平均を取る。
マイクロ平均:各混同行列のTP、FP、TN、FNを合計して新たな混同行列を作り、評価指標を計算する。

平均といわれた際に、より想像しやすいものがマクロ平均かと思います。マクロ平均では評価指標をクラスごとに一度算出するため、どのクラスの値が良く、どのクラスの値が悪いのかが分かりやすいです。
対して、マイクロ平均ではクラスによるデータ数の違いに計算結果が影響されるため、モデル全体での性能評価に向いています。また、マイクロ平均は正答率、適合率、再現率、F1スコアの値が一致するため、評価指標に迷うこともなくなります。

物体検知モデルの学習における精度の評価指標

分類モデルの中でも、画像のどこに何があるのかを検知して分類する「物体検知モデル」の場合、学習時の計算方法はより複雑です。ここからは「物体検知モデルを学習した際に算出される精度とは何か」を説明していきます。

IoU(Intersection over Union)

日本語ではあまり訳されませんが、「交差している部分を全体で割ったもの」という意味合いの指標です。物体検知では、物体のある領域をBounding boxと呼ばれる領域で囲みます。

青色:事前に学習させたBounding box(Ground truth bounding boxといいます)
赤色:AIが予測したBounding box(Prediction bounding boxといいます)

この時、囲まれた範囲の中で重なっている部分をOverlap(Intersection)、Overlapを含む全体をUnionといいます。

この時のUnionとOverlapの面積の割合がIoUです。実際のピクセル数をカウントするとUnionが73239ピクセル、Overlapが61074ピクセルだったため、IoUは
61074/73239=約0.834でした。IoUが1に近いほどAIの予測が正解に近く、0に近いほどAIの予測と正解が離れていることになります。

物体検知における精度の計算方法

物体検知では精度を計算する際に、先ほどのIoUを用いて計算していきます。
最初に信頼度スコア(Confidence Score)という概念を紹介します。

信頼度スコア:IoUと、AIがその物体を何%の確証を持って検知しているか(以降、本記事では「確信度」と呼んでいます)をかけたもの。

信頼度スコアは「どのくらい正しく物体を囲めているのか」と「AIの確信度」の両方を考慮している値といえます。

ここで、先ほどのようなクッキー1枚が写されている画像10枚に対して、以下のような結果が得られたとします。あらかじめ信頼度スコアが高い順に並べています。

IoU

AIの確信度

信頼度スコア

IoU≧0.5かどうか

0.93

0.99

0.9207

True

0.88

0.76

0.6688

True

0.98

0.55

0.539

True

0.72

0.67

0.4824

True

0.46

0.98

0.4508

False

0.81

0.40

0.324

True

0.56

0.55

0.308

True

0.34

0.87

0.2958

False

0.27

0.22

0.0594

False

0.33

0.12

0.0396

False

この時、それぞれ真陽性、偽陽性、偽陰性を以下のように定義します。数えるのはBounding boxの数ですが、TP、FPではAIの予測によるBounding boxを、FNではGround Truth Bounding Boxを数えているのに注意してください。

真陽性(TP):予測した物体が正しくかつIoU0.5以上
偽陽性(FP):予測した物体が正しいがIoU0.5以下(間違った場所を囲んでいるとみなす)
偽陰性(FN):予測されなかったが、そこに物体がある(見逃し)

真陰性に関しては「予測されなかったかつそこに物体がない」場合となり、考えようとすると無数のBounding boxを考えられてしまうので、物体検知においては定義されていません。この3つさえあれば適合率・再現率は計算できるため、さっそく計算してみましょう。ただし、以下のように求め方が少しだけ変わっています。信頼度スコアが高い順に並べ替えた表の、上から順番に適合率・再現率を計算していきます。

IoU

AIの確信度

信頼度スコア

IoU≧0.5かどうか

適合率

再現率

0.93

0.99

0.9207

True

100

0.1

0.88

0.76

0.6688

True

100

0.2

0.98

0.55

0.539

True

100

0.3

0.72

0.67

0.4824

True

100

0.4

0.46

0.98

0.4508

False

80

0.4

0.81

0.40

0.324

True

83

0.5

0.56

0.55

0.308

True

86

0.6

0.34

0.87

0.2958

False

75

0.6

0.27

0.22

0.0594

False

67

0.6

0.33

0.12

0.0396

False

60

0.6

上記結果から、横軸を再現率、縦軸を適合率としてグラフを作ると以下のようになります。

薄い青で塗られている部分の面積、即ちPR曲線のAUCのことをAP(Average Precision)と呼びます。物体検知ではこれが精度の指標としてよく用いられています。
今回の場合、APは54%だったため、クッキーを検出するモデルの精度は54%であるといえるでしょう。今回はIoUが0.5以上を条件としてAPを求めましたが、IoU0.75以上を条件として求める場合や、IoU0.5以上からIoU0.95以上までを0.05刻みで上げながら各APを求めていき、最後に平均したものを最終的なAPとする、といった計算方法もあります。

ちなみに、計算の簡略化のため、近似された値が用いられることもあります。基本的にジグザグとしてパターンが続くグラフになるため、山になっている部分を平坦にした、次の赤色で示したようなグラフで計算することもあります。以下のグラフで計算した場合、APは57%となります。

また、「犬・猿・雉の検知」のような、複数のクラスを検知する場合には、各クラスに対してそれぞれAPを計算してから、それらを平均したものをmAP(mean Average Precision)と呼び、モデル全体の精度を評価する指標として用いられます。

まとめ

「AIの精度」というものが、具体的にどのような指標を基に定義されているのかについて詳しく説明しました。精度って何を根拠に判定されているの?という疑問を本記事で解消することができれば幸いです。

TechSword Visionでは、AIの精度をAP、mAPを用いて評価しております。これらは物体検知の分野ではポピュラーな指標であり、明確に計算が定義されているものです。そのため、精度の値に関する意図的な改竄や誤りが発生することなく、安心してお使いいただけます。また、システム導入後もAIに関する悩みや疑問がございましたら、専門知識を持ったエンジニアが解決・サポートいたしますので、いつでもご相談ください。

弊社サービスにご興味がある場合は、以下のリンクから紹介資料をご請求ください。

【サービス紹介PDFの請求はこちら】

また、具体的な導入事例や導入後の流れについても、ご希望に応じて説明させて頂きます。ぜひお気軽にお問い合わせください。

非エンジニアでも簡単

画像認識AIの
開発・実装・運用を
実現できる
ノーコードAI
プラットフォーム