web-dev-qa-db-ja.com

ロジスティック回帰のために独自のコスト関数を定義しても大丈夫ですか?

最小二乗モデルでは、コスト関数は、入力の関数としての予測値と実際の値の差の二乗として定義されます。

ロジスティック回帰を行う場合、コスト関数を、シグモイド関数(出力値)と実際の出力の差の2乗として定義するのではなく、対数関数に変更します。

パラメータを決定するために独自のコスト関数を変更および定義しても大丈夫ですか?

21
London guy

はい、あなたはcan独自の損失関数を定義できますが、初心者の場合は、おそらく文献の損失関数を使用したほうがよいでしょう。損失関数が満たすべき条件があります。

  1. それらは、最小化しようとしている実際の損失に近似している必要があります。他の回答で述べたように、分類の標準的な損失関数はゼロワン損失(誤分類率)であり、分類器のトレーニングに使用されるものはその損失の近似値です。

    線形回帰による二乗誤差損失は、ゼロ1損失にうまく近似されないため、使用されません。モデルが、意図された回答が+1(正のクラス)であるときに、あるサンプルに対して+50を予測すると、予測はオンになります決定境界の正しい側であるため、ゼロ1損失はゼロですが、二乗誤差損失は49²= 2401のままです。一部のトレーニングアルゴリズムは、予測を{-1、+ 1}に非常に近づけるために多くの時間を浪費します。サイン/クラスラベルだけを正しく取得することに焦点を合わせる代わりに。(*)

  2. 損失関数は、目的の最適化アルゴリズムで機能するはずです。そのため、ゼロワンロスは直接使用されません。明確に定義された勾配(またはヒンジのように 劣勾配 )がないため、勾配ベースの最適化手法では機能しません。 SVMの損失があります)。

    ゼロワンロスを直接最適化する主なアルゴリズムは、古い パーセプトロンアルゴリズム です。

また、カスタム損失関数をプラグインすると、ロジスティック回帰モデルではなく、他の種類の線形分類器を構築することになります。

(*)二乗誤差線形判別分析で使用されますが、これは通常、反復ではなく厳密な形式で解決されます。

29
Fred Foo

ロジスティック関数、ヒンジ損失、平滑化ヒンジ損失などは、ゼロ1の二項分類損失の上限であるために使用されます。

これらの関数は一般に、正しく分類されているがまだ決定境界に近い例にもペナルティを課し、「マージン」を作成します。

したがって、二項分類を行う場合は、必ず標準の損失関数を選択する必要があります。

別の問題を解決しようとしている場合は、別の損失関数の方がパフォーマンスが向上する可能性があります。

10
user1149913

損失関数を選択するのではなく、モデルを選択します

損失関数は通常、機械学習で最も一般的なアプローチである最尤推定(MLE)を使用してパラメーターを適合させるときに、モデルによって直接決定されます。

線形回帰の損失関数として平均二乗誤差について言及しました。次に、クロスエントロピー損失を参照して、「コスト関数を対数関数に変更します」。コスト関数は変更しませんでした。実際、平均二乗誤差は、yがガウス分布によって正規分布していると仮定した場合の線形回帰のクロスエントロピー損失であり、その平均は_Wx + b_によって定義されます。

説明

MLEを使用すると、トレーニングデータの可能性が最大になるようにパラメーターを選択します。トレーニングデータセット全体の尤度は、各トレーニングサンプルの尤度の積です。これはゼロにアンダーフローする可能性があるため、通常、トレーニングデータの対数尤度を最大化/負の対数尤度を最小化します。したがって、コスト関数は、各トレーニングサンプルの負の対数尤度の合計になります。これは次の式で与えられます。

-log(p(y | x; w))

ここで、wはモデルのパラメーター(バイアスを含む)です。さて、ロジスティック回帰の場合、それはあなたが参照した対数です。しかし、これは線形回帰のMSEにも対応しているという主張はどうでしょうか。

MSEがクロスエントロピーに対応することを示すために、yは通常、平均の周りに分布していると仮定します。これは、_w^T x + b_を使用して予測します。また、分散が固定されていると想定しているため、線形回帰では分散を予測せず、ガウス分布の平均のみを予測します。

p(y | x; w) = N(y; w^T x + b, 1)

_mean = w^T x + b_と_variance = 1_を見ることができます

さて、損失関数はに対応します

-log N(y; w^T x + b, 1)

ガウスNがどのように定義されているかを見ると、次のことがわかります。

enter image description here

さて、その負の対数を取ります。その結果、次のようになります。

enter image description here

1の固定分散を選択しました。これにより、第1項が一定になり、第2項が次のように減少します。

0.5 (y - mean)^2

ここで、平均を_w^T x + b_として定義したことを思い出してください。最初の項は一定であるため、ガウスの負の対数を最小化することは最小化に対応します

_(y - w^T x + b)^2_

これは、平均二乗誤差の最小化に対応します。

3
Kilian Batzner

数学が平均二乗誤差の根底にあるのは誤差のガウス分布であるのに対し、ロジスティック回帰の場合は、基礎となる(グラウンドトゥルース)分布と予測分布の2つの分布の距離であると言いたいです。

2つの分布間の距離をどのように測定できますか?情報理論では、これは相対エントロピー(KLダイバージェンスとも呼ばれます)であり、相対エントロピー と同等 クロスエントロピーです。また、ロジスティック回帰関数は、クロスエントロピーおよび 最大エントロピー と同等の ソフトマックス回帰 の特殊なケースです。

0
Lerner Zhang

はい、他のコスト関数を使用してパラメーターを決定できます。

二乗誤差関数(線形回帰で一般的に使用される関数)は、ロジスティック回帰にはあまり適していません。

ロジスティック回帰の場合と同様に、仮説は非線形(シグモイド関数)であるため、二乗誤差関数は非凸になります。

対数関数は、局所的な最適値がない凸関数であるため、最急降下法が適切に機能します。

0
Dr Nisha Arora

ロジスティック回帰モデルにスカラー入力xがあり、モデルが各入力サンプルxに対して確率$\hat {y}(x)= sigma(wx + b)$を出力するとします。入力$ x $がスカラーである非常に特殊なケースで、2次損失関数を作成すると、コスト関数は次のようになります。$ C(w、b):=\Sigma_ {x} | y(x)-\ hat {y}(x)| ^ 2 =\Sigma_ {x} | y(x)-\ sigma(wx + b)| ^ 2 $。勾配降下法を適用しようとすると、次のことがわかります。$ C '(w)、C'(b)$は$\sigma '(wx + b)の倍数です。 $。これで、シグモイド関数は漸近的であり、出力$\sigma(z)$が$ 0 $または$ 1 $に近づくと、その導関数$\sigma '(z)$はほぼゼロになります。つまり、学習が悪い場合、例:$\sigma(wx + b)\ approx 0 $、ただし$ y(x)= 1 $、次に$ C '(w)、C'(b)\ upperx 0 $。

さて、上記の状況は2つの観点から悪いです:(1)C(w、b)を最小化することから遠く離れていても、十分に速く収束しないため、最急降下法は数値的にはるかに高価になります、そして(2)それは人間の学習に反直観的です:私たちは大きな間違いを犯したときに速く学びます。

ただし、クロスエントロピーコスト関数のC '(w)とC'(b)を計算する場合、2次コストの導関数とは異なり、クロスエントロピーコストの導関数はの倍数ではないため、この問題は発生しません。 $ sigma '(wx + b)$であるため、ロジスティック回帰モデルの出力が0または1に近い場合、最急降下法は必ずしも遅くなるとは限らないため、最小値への収束が速くなります。関連するディスカッションはここにあります: http://neuralnetworksanddeeplearning.com/chap3.html 、私が強くお勧めする優れたオンラインブックです!

さらに、クロスエントロピーコスト関数は、モデルパラメータの推定に使用される最尤関数(MLE)の負の対数であり、実際、線形回帰の場合、2次コスト関数を最小化することは、MLEを最大化すること、または同等に最小化することと同等です。 MLE =クロスエントロピーの負の対数、線形回帰の基礎となるモデルの仮定-詳細については、 http://cs229.stanford.edu/notes/cs229-notes1.pdf のP.12を参照してください。 。したがって、分類と回帰のいずれの機械学習モデルでも、MLEを最大化(またはクロスエントロピーを最小化)してパラメーターを見つけることには統計的有意性がありますが、ロジスティック回帰の2次コストを最小化しても統計的有意性はありません(線形回帰の場合はそうですが)前に述べたように、回帰)。

それが物事を明らかにすることを願っています!