
拓海先生、最近部下に「AIの評価指標がおかしい」と言われまして、特にソフトマックスの出力を根拠に攻撃の強さを評価している例があると。私にはピンと来ないのですが、要するに何が問題なのでしょうか。

素晴らしい着眼点ですね!大丈夫、順を追って説明しますよ。まず結論だけ言うと、ソフトマックス(Softmax function、ソフトマックス関数)の出力だけを見て「敵対的例(adversarial examples、AE;敵対的入力)の強さ」を評価すると誤解を生みやすいんです。

これって要するに、確率のように見える値を信用してはいけないということですか。現場では「信頼度99%」とか言われると安心してしまうんですが。

その通りです、でも理由はもう少し踏み込みますね。要点を三つにします。1) ソフトマックスは数値を確率っぽく変換するが内部の大きさ(ロジット)情報を隠しやすい、2) 既存の攻撃手法でソフトマックスをだますことが容易である、3) そのため防御評価の際に誤った安心感が生まれるんです。

なるほど。実務で言えば、表面的なレポート指標に騙されて、投資判断を誤るリスクがあるということですね。では、どこを見れば良いのですか。

良い質問です。論文ではクラス活性化(class activations、CA;クラスごとの未変換スコア、一般にロジットと呼ばれる値)を見るべきだと示しています。要するに確率に変換する前の数値の分布と大きさが重要で、ソフトマックスはそれを平滑化してしまうのです。

具体例はありますか。現場のエンジニアが作った敵対的画像で、確かに分類は間違っているがソフトマックスは100%を示している、という話を聞きます。

論文では二つのケースを示しています。一つは過度に最適化された敵対的例(over-optimized adversarial examples)で、ロジットが異常に大きくなりソフトマックスはすぐに飽和して1.0に近づくが、実際の分類境界や汎化の弱点を隠すという現象です。もう一つはマルチクラス最適化(multi-class optimized)で、複数クラスのロジットを同時に上げることでソフトマックスの確率分布が曖昧になり、強さの評価が難しくなる事例です。

それは厄介ですね。要するにソフトマックスの数字だけで安心してしまうと、本当の危険性を見落とす、と。投資対効果の評価を誤る可能性もある。

その通りです。ですから評価の実務では、ロジット(クラス活性化)を可視化し分布や最大値の倍率を確認すること、複数の指標を組み合わせること、そして実際のモデルに対する扱い易さ(例えば単純な検出手法で見つかるか)を評価軸に入れることが推奨されます。大丈夫、一緒に手順を作れば導入できますよ。

具体的にはどんな手順で評価すれば良いですか。短時間で経営判断できる指標を教えてください。

要点を三つだけ挙げますよ。1) ソフトマックスの確率と併せてロジットの最大値と第二位との差(マージン)を見る。2) ロジットの絶対値の増加幅をチェックして、過度に大きくなっていないかを確認する。3) マルチクラス最適化の兆候として複数クラスのロジットが同時に高くなっていないかを確認する。これで現場の騙しやすさはかなり見抜けますよ。

ありがとうございます。これなら現場に指示できます。つまり、ソフトマックスの「信頼度99%」という表面的数字だけで判断せず、ロジットの分布やマージンを見て、複数の指標でリスクを評価する、ということですね。


