ロジスティック回帰: 損失と正則化

ロジスティック回帰モデルは、線形回帰モデルと同じプロセスでトレーニングされますが、次の 2 つの重要な違いがあります。

  • ロジスティック回帰モデルでは、二乗損失ではなく、損失関数として Log Loss が使用されます。
  • 過学習を防ぐには、正則化を適用することが重要です。

以降のセクションでは、この 2 つの考慮事項について詳しく説明します。

ログ損失

線形回帰モジュールでは、二乗損失(L2 損失とも呼ばれます)を損失関数として使用しました。二乗損失は、出力値の変化率が一定である線形モデルに適しています。たとえば、線形モデル $y' = b + 3x_1$ がある場合、入力値 $x_1$ を 1 ずつ増やすたびに、出力値 $y'$ は 3 ずつ増加します。

ただし、ロジスティック回帰モデルの変化率は一定ではありません。確率の計算で説明したように、sigmoid曲線は線形ではなく S 字型です。ログオッズ($z$)の値が 0 に近い場合、$z$ のわずかな増加でも、$z$ が大きな正の数または負の数の場合よりも $y$ の変化が大きくなります。次の表に、5 ~ 10 の入力値に対するシグモイド関数の出力と、結果の差を捉えるために必要な精度を示します。

入力 ロジスティック出力 必要な精度桁数
5 0.993 3
6 0.997 3
7 0.999 3
8 0.9997 4
9 0.9999 4
10 0.99998 5

シグモイド関数の誤差を計算するために二乗損失を使用した場合、出力が 01 に近づくにつれて、これらの値を追跡するために必要な精度を維持するためにより多くのメモリが必要になります。

代わりに、ロジスティック回帰の損失関数は対数損失です。対数損失方程式は、データから予測までの距離だけでなく、変化の大きさの対数も返します。ログ損失は次のように計算されます。

$\text{Log Loss} = -\frac{1}{N}\sum_{i=1}^{N} y_i\log(y_i') + (1 - y_i)\log(1 - y_i')$

ここで

  • \(N\) は、データセット内のラベル付きの例の数です。
  • \(i\) は、データセット内の例のインデックスです(例: \((x_3, y_3)\) はデータセットの 3 番目の例です)。
  • \(y_i\) は、 \(i\)番目の例のラベルです。ロジスティック回帰であるため、 \(y_i\) は 0 または 1 のいずれかである必要があります。
  • \(y_i'\) は、 \(x_i\)の特徴量のセットが与えられた場合の、 \(i\)番目の例に対するモデルの予測(0 ~ 1 の範囲)です。

ロジスティック回帰の正則化

正則化は、トレーニング中にモデルの複雑さにペナルティを科すメカニズムであり、ロジスティック回帰モデリングにおいて非常に重要です。正則化を行わないと、ロジスティック回帰の漸近的な性質により、モデルに多数の特徴量がある場合に損失が 0 に近づき続けます。そのため、ほとんどのロジスティック回帰モデルでは、次の 2 つの戦略のいずれかを使用してモデルの複雑さを軽減します。

  • L2 正則化
  • 早期停止: 損失がまだ減少している間にトレーニングを停止するようにトレーニング ステップ数を制限します。