
拓海先生、最近部下から「キャリブレーションが大事だ」と言われまして。温度スケーリングという手法が簡単だと聞いたのですが、結局うちの現場でもそれで済むのでしょうか。

素晴らしい着眼点ですね!温度スケーリングは後処理で信頼度を調整する簡単な方法ですよ。まず結論を端的に言うと、データのクラスが重なっている場合には温度スケーリングだけでは限界があるんですよ。

なるほど。温度スケーリングは後から数値をいじるだけのものだと聞きましたが、なぜそれでダメになるのですか。投資対効果の観点で教えてください。

大丈夫、一緒に分かりやすく整理しますよ。要点を三つにすると、まず温度スケーリングは確率の「釣り合い」を取るだけで、モデルが持つ本質的な誤りを直せないです。次に、クラスの重なりが大きいと、その誤りが後からの補正で埋まらないです。最後に、トレーニング時に工夫する方法は場合によっては投資に見合う改善をもたらせるんです。

投資対効果が肝心という点、よく分かります。で、トレーニング時の工夫というのはどんなものでしょうか。現場のオペレーションを大きく変えずに済みますか。

工夫の典型例はデータ拡張のMixupです。Mixupは既存データを混ぜて学習させる手法で、モデルに曖昧な領域をなだらかに学ばせられます。現場の流れを全て変える必要はなく、学習データの生成工程にステップを一つ付けるだけで済むことが多いです。

それは現場としては助かります。ですが、うちの製品はカテゴリが多くて似ている物も多いのです。これって要するにクラスが重なっているから温度スケーリングが効かないということ?

その理解で合っていますよ。要するにクラスの支持集合が重なっていると、モデルは特定の入力に対して本当はどのクラスか判断が難しい状態に陥るんです。温度スケーリングは確率のスケールを変えるだけなので、元の決定境界の不確かさを消せないのです。

では、実務としてどう判断すればよいでしょう。まずは温度スケーリングを試した後で効かなければMixupに投資する、というフローでよいですか。

大丈夫、その判断は現実的で合理的です。まずは評価指標として「予測確率のキャリブレーション(Calibration)」を導入し、温度スケーリングをかけたときの改善度合いを測る。改善が限定的ならば学習段階の手法、例えばMixupの導入を検討する流れが効率的ですよ。

評価指標と言いますと、どれを見れば一番分かりやすいでしょうか。現場の部長に説明しやすい指標が欲しいのですが。

分かりやすい指標はExpected Calibration Error(期待キャリブレーション誤差、E C E)です。これは予測確率と実際の正答率の差を平均したもので、低いほど良いです。部長には「予測の信用度がどれだけ実際に当たっているかの平均誤差」と説明すると伝わりますよ。

よく分かりました。最後にまとめをお願いします。これを聞いて部内で説明しますので、簡潔に三点でお願いします。

素晴らしい着眼点ですね!三点にまとめます。第一に、温度スケーリングは簡単で有用だが、クラスの重なりがある場合には限界がある。第二に、トレーニング時の工夫、例えばMixupのようなデータ拡張は重なりを和らげてキャリブレーションを改善できる。第三に、まずはE C Eなどで効果を定量評価し、温度スケーリングで不十分なら学習時対策を検討する流れが現実的である、です。

分かりました。要するに、簡単な後処理で済ませられることもあるが、カテゴリが似ていて重なりが大きいなら学習時に手を入れた方が現実的だと。まずE C Eを見て、温度スケーリングでダメならMixupを試す、これで部内会議で説明します。ありがとうございました。


