近年、様々な分野でAIが活用されています。if条件の静的なルールで抽出していたものが、より複雑で表現が難しい条件、人間の頭の中でも判断する時にYes or Noで解答できるような単純なケースもあれば、状況をみて今までの経験をもとに直感的に判断するような場面もあります。このように直感的な判断がAIによって対応できると今までシステムでは難しかった判断が可能になり、システムで対応できる領域も広がってきております。
セキュリティの世界でも従来のファイアウォールではこのポートとこの送信元を通すとか、通信データの中に特定の文字列が含まれていれば、通さないとか言葉で表現できるような制御は行うことができました。このような条件では不正な通信が通過するこがあり、静的なルールの限界になっております。
AIは異常検出の分野で多く利用されてきており、異物の混入を見つけたり、不正な取引を見つけたり、医療の世界ではレントゲンやCTの結果などから特定の病気を見つけたり、うまく活用することで人間よりも優れた成果をあげることができます。
このような様々な分野で利用されてきているAIですが、目的が異なると精度(Accuracy)に対する考え方も変わってきます。
例えば99%の精度について考えると100サンプル中、99サンプルが正解した場合はどうでしょうか?
数値的にが良いように見えます。
しかし、極端な例ですが、99サンプルがネガティブ(陰性)で1サンプルがポジティブ(陽性)の場合、100サンプルすべてネガティブ(陰性)と答えた99%の精度ですが、この精度は良いと言い難い結果であると思います。
評価するサンプルの状態も含めて考えることが重要になるのですが、もう少し観点を変えた評価指標が必要になります。
代表的な指標としては適合率(Precision)と再現率(Recall)です。
下図は予測と答えの関係を表してますが、組み合わせから四通り考えられます。ポジティブは陽性、ネガティブは陰性となりますが、例えばウィルスを検出するモデルがあった場合に、予測はウイルス(ポジティブ)であり、実際に(答え)もウイルスであった場合はTP(True Positive)になります。
適合率と再現率を理解するためにこの4つの組み合わせをみましたが、ここからは実際に適合率と再現率とはどのような指標なのか理解していきたいと思います。
具体的に癌を検出するAIモデルを例に解説してみます。
マトリックス内を癌を例に置き換えると下図のようになります。
適合率は「適合率(Precision) = TP/(TP+FP)」で算出することができますが、これは癌として予測した中で実際癌だった割合になります。 再現率は「再現率(Recall)= TP/(TP+FN」で算出することができますが、実際に癌だった人を癌と予測した割合になります。
癌を検出するモデルの場合は、癌の人を癌と予測することが重要なのでこの場合は再現率(Recall)が高いのが理想的なモデルになります。そのため、この数値が高くなるようにモデルを調整することが必要になります。
ここでのポイントは目的をどこにするかによりモデルを調整する際の重要視する指標が変わってくることです。
癌検査のモデルの場合、癌を見つけることが重要なので、癌ではない人を癌と識別してしまう間違いより、癌の人を癌を癌でないと識別してします方が問題です。
セキュリティの場合、間違って攻撃として遮断してしまいアクセスできなくなるのと、アクセスできなくなっても攻撃はしっかり攻撃を阻止したいというのは、守る先によって考え方が変わってくると思います。ユーザーのアクセスを重要視する場合は前者を優先するかもしれません。重要な資産でアクセスできなくなってもしっかり保護したい場合は後者の考え方が優先されるかもしれません。
今回は精度について書きましたが、目的に応じてAIモデルの調整する観点が変わってくることがご理解いただければと思います。