ロジスティック回帰に適切な損失関数はどれですか?


31

ロジスティック回帰の損失関数の2つのバージョンについて読みましたが、どちらが正しいか、なぜですか?

  1. Machine Learningから、Zhou ZH(中国語)、:β=(w,b) and βTx=wTx+b

    (1)l(β)=i=1m(yiβTxi+ln(1+eβTxi))

  2. 私の大学のコースから、:zi=yif(xi)=yi(wTxi+b)

    (2)L(zi)=log(1+ezi)


最初のサンプルはすべてのサンプルの累積であり、2番目のサンプルは単一のサンプルに関するものであることは知っていますが、2つの損失関数の形式の違いについてはもっと興味があります。どういうわけか、私はそれらが同等であると感じています。

回答:


31

関係は次のとおりです:。l(β)=iL(zi)

ロジスティック関数をとして定義します。それらには、というプロパティがあります。または言い換えると:f(z)=ez1+ez=11+ezf(z)=1f(z)

11+ez=ez1+ez.

両側の逆数を取る場合、取得するログを取得します。

ln(1+ez)=ln(1+ez)+z.

両側からを引くと、これが表示されるはずです。z

yiβTxi+ln(1+eyiβTxi)=L(zi).

編集:

現時点では、この答えをが。おそらく、元の質問にタイプミスがあります。- Y I β Tは、xはI + L N 1 + E Y I β Tは、xはIをyiβTxi+ln(1+eβTxi)yiβTxi+ln(1+eyiβTxi)

編集2:

元の質問にタイプミスがなかった場合、@ ManelMoralesは正しいと思われ、 -1,1とき、確率質量関数は性質に起因している、。彼は表記新しい曖昧性を導入しているため、ここで書き直しています。残りは、各コーディングに対して負の対数尤度をとることによって続きます。詳細については、以下の回答をご覧ください。P Y iは = Y I= F Y I β Tは、xはIF - Z = 1 - F Z ZをI Yy{1,1}P(Yi=yi)=f(yiβTxi)f(z)=1f(z)ziy


42

OPは、これら2つの関数間の関係はサンプルの数によるものであると誤解しています(つまり、単一とすべて)。ただし、実際の違いは、単にトレーニングラベルを選択する方法です。

バイナリ分類の場合、ラベルまたは割り当てることができます。y=±1y=0,1

すでに述べたように、ロジスティック関数は確率の形式、つまりおよび持っているため、適切な選択です。など。ラベルを選択すると、割り当てることができます σ(z)σ(z)=1σ(z)σ(z)(0,1)z±y=0,1

P(y=1|z)=σ(z)=11+ezP(y=0|z)=1σ(z)=11+ez

ようにコンパクトに記述できます。P(y|z)=σ(z)y(1σ(z))1y

対数尤度を最大化する方が簡単です。対数尤度の最大化は、負の対数尤度の最小化と同じです。以下のためにサンプル、自然対数といくつかの簡素化を取った後、我々は見つけるでしょう:m{xi,yi}

l(z)=log(imP(yi|zi))=imlog(P(yi|zi))=imyizi+log(1+ezi)

完全な導出と追加情報は、このjupyterノートブックに記載されています。一方、代わりにラベル使用した可能性があります。割り当てられることは明らかですy=±1

P(y|z)=σ(yz).

ことも明らかです。この場合、損失関数を最小化する前と同じ手順に従ってくださいP(y=0|z)=P(y=1|z)=σ(z)

L(z)=log(jmP(yj|zj))=jmlog(P(yj|zj))=jmlog(1+eyzj)

負の符号によって誘発される逆数を取ると、最後のステップが続きます。これらの2つの形式を同一視すべきではありませんが、各形式でが異なる値を取る場合、これら2つの形式は同等です。y

yizi+log(1+ezi)log(1+eyzj)

の場合は簡単に表示できます。もしその後、左手側および右側に。yi=1yi1yi=0yi=1

2つの異なる形式がある理由については根本的な理由があるかもしれませんが(2つの異なるロジスティック損失の定式化/表記がある理由を参照)、前者を選択する理由の1つは実際的な考慮事項です。前者では、プロパティを使用して、および、どちらも収束分析に必要です(つまり、ヘッセ行列を計算して損失関数の凸性を決定します)。σ(z)/z=σ(z)(1σ(z))l(z)2l(z)


ロジスティック損失関数は凸ですか?
user85361

2
Log reg凸ですが、 -convexではありません。したがって、勾配降下が収束するのにかかる時間に制限を設けることはできません。正則化項を追加することにより、の形を調整して強く凸にすることができます:正の定数 、新しい関数を stとして定義しますは lambda-強い凸であり、収束限界を証明できます。残念ながら、現在、別の機能を最小化しています!幸いなことに、正則化関数の最適値が元の最適値に近いことを示すことができます。l(z)αlλL 'Z λ L 'l(z)=l(z)+λz2l(z)λl
マヌエルモラレス

あなたが紹介したノートブックは消えてしまいました。別の証拠を入手しました:statlect.com/fundamentals-of-statistics/…– Domi.Zhang 18
1

2
これが最も役立つ答えだと思いました。
mohit6up

@ManuelMorales正則化された関数の最適値が元の値に近いというリンクはありますか?
マーク

19

ロジスティック回帰の損失関数を次のように学びました。

ロジスティック回帰はバイナリ分類を実行するため、ラベル出力はバイナリの0または1です入力特徴ベクトル与えられたバイナリ出力が1になる確率とします。係数は、アルゴリズムが学習しようとしている重みです。y x wP(y=1|x)yxw

P(y=1|x)=11+ewTx

ロジスティック回帰はバイナリであるため、確率は単に1から上記の項を引いたものです。P(y=0|x)

P(y=0|x)=111+ewTx

損失関数は、1つのトレーニング例の(A)出力にを掛け、(B)出力にを掛けた合計です。以上トレーニングの例。y = 1 P y = 1 y = 0 P y = 0 mJ(w)y=1P(y=1)y=0P(y=0)m

J(w)=i=1my(i)logP(y=1)+(1y(i))logP(y=0)

ここで、はトレーニングデータのラベルを示します。トレーニングインスタンスのラベルが場合、で、左側の被加数はそのままですが、右側の被加数はなり。一方、トレーニングインスタンスにがある場合、用語持つ右の被加数はそのまま残りますが、左の被加数はなり。対数確率は、計算を簡単にするために使用されます。y(i) 1 y i = 1 1 y i 0 y = 0 1 y i 0ith1y(i)=11y(i)0y=01y(i)0

次に、とを以前の式に置き換えると、次のようになります。P y = 0 P(y=1)P(y=0)

J(w)=i=1my(i)log(11+ewTx)+(1y(i))log(111+ewTx)

このフォームの詳細については、スタンフォードの講義ノートをご覧ください。


この回答は、ここで関連する視点も提供します。
GeoMatt22 16

6
あなたが持っている表現は、損失(最小化)ではなく、対数尤度(最大化)です。
ゼノシオン

2
@xenocyon true-この同じ定式化は通常、負の符号を完全な合計に適用して記述されます。
アレックスクリビス

1

平均二乗誤差の代わりに、対数損失とも呼ばれるクロスエントロピーと呼ばれるコスト関数を使用します。クロスエントロピー損失は、y = 1の場合とy = 0の場合の2つの別個のコスト関数に分割できます。

j(θ)=1mi=1mCost(hθ(x(i)),y(i))Cost(hθ(x),y)=log(hθ(x))if y=1Cost(hθ(x),y)=log(1hθ(x))if y=0

それらをまとめると、次のようになります。

j(θ)=1mi=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x)(i))]

上記の式でとを乗算するのは卑劣なトリックで、と両方のケースで同じ式を使用して解きます。場合、最初の側は相殺します。場合、第二の側は相殺します。どちらの場合も、実行する必要がある操作のみを実行します。y(1y)y=1y=0y=0y=1

forループを使用したくない場合は、上記の式のベクトル化された形式を試すことができます

h=g(Xθ)J(θ)=1m(yTlog(h)(1y)Tlog(1h))

説明全体はMachine Learning Cheatsheetで見ることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.