web-dev-qa-db-ja.com

ロジスティック回帰のコスト関数に対数表現があるのはなぜですか?

ロジスティック回帰のコスト関数は

cost(h(theta)X,Y) = -log(h(theta)X) or -log(1-h(theta)X)

私の質問は、コスト関数の対数表現を置く根拠は何ですか?それはどこから来たのですか?どこからでも「-log」を置くことはできないと思います。誰かがコスト関数の導出を説明できれば、私は感謝するでしょう。ありがとうございました。

24
Nipun Alahakoon

出典コースラのスタンドフォードの機械学習コース 、アンドリューNg。彼とこの組織へのすべてのクレジット。このコースは、誰でも自分のペースで受講することができます。画像は、LaTeX(式)とR(グラフィック)を使用して自分で作成します。

仮説関数

ロジスティック回帰は、予測したい変数yが離散値しかとれない場合に使用されます(つまり、分類)。

バイナリ分類問題を考慮して(yは2つの値しか取ることができません)、パラメーターのセットθおよび入力フィーチャのセットx仮説関数は、[0、1]の間に制限されるように定義できます。ここで、g()はシグモイド関数を表します。

enter image description here

この仮説関数は、入力時にy = 1xθでパラメーター化される推定確率を同時に表します。

enter image description here

コスト関数

コスト関数は、最適化の目的を表します。

enter image description here

コスト関数の可能な定義は、仮説h_θ(x)と実際の値yの間のユークリッド距離の平均である可能性がありますが、すべてのmトレーニングセットのサンプル。仮説関数がシグモイド関数で形成されている限り、この定義は非凸コスト関数になります。つまり、グローバルミニマムに達する前に、ローカルミニマムを簡単に見つけることができます。コスト関数が凸であることを保証するため(したがってグローバル最小値への収束を保証するため)、コスト関数はシグモイド関数の対数を使用して変換されます

enter image description here

このようにして、最適化目的関数は、トレーニングセットのコスト/エラーの平均として定義できます。

enter image description here

48
Peque

このコスト関数は、単純に最大(対数)尤度基準の再定式化です。

ロジスティック回帰のモデルは次のとおりです。

P(y=1 | x) = logistic(θ x)
P(y=0 | x) = 1 - P(y=1 | x) = 1 - logistic(θ x)

尤度は次のように記述されます。

L = P(y_0, ..., y_n | x_0, ..., x_n) = \prod_i P(y_i | x_i)

対数尤度は次のとおりです。

l = log L = \sum_i log P(y_i | x_i)

尤度を最大化するθを見つけたい:

max_θ \prod_i P(y_i | x_i)

これは、対数尤度を最大化することと同じです。

max_θ \sum_i log P(y_i | x_i)

これをコストC = -lの最小化として書き直すことができます。

min_θ \sum_i - log P(y_i | x_i)
  P(y_i | x_i) = logistic(θ x_i)      when y_i = 1
  P(y_i | x_i) = 1 - logistic(θ x_i)  when y_i = 0
13
ysdx

私の理解(ここでは100%専門家ではありませんが、間違っているかもしれません)は、logは、 ガウス分布の式に現れるexp 確率密度。 (-log(x) = log(1/x)を思い出してください。)

Bishop [1]を正しく理解している場合:正と負のトレーニングサンプルが2つの異なるガウスクラスター(位置は異なるが共分散が同じ)に由来すると仮定すると、完全な分類器を開発できます。そして、この分類器はロジスティック回帰のように見えます(例えば、線形決定境界)。

もちろん、次の質問は、トレーニングデータが頻繁に異なる場合に、ガウスクラスターを分離するのに最適な分類器を使用する必要がある理由です。

[1]パターン認識と機械学習、Christopher M. Bishop、4.2章(確率的生成モデル)

7
maxy

「凸」ポイントの答えに心を包むことができませんでした。代わりに、ペナルティの程度の説明を好みます。対数コスト関数は、自信のある予測と誤った予測に大きなペナルティを科します。以下のようにMSEのコスト関数を使用する場合。

If y=1 cost=(1-yhat)^2; if y=0 cost=yhat^2.

[plot of the MSE cost

このコスト関数も凸です。ただし、ログコストほど凸状ではありません。凸の定義に誤りがある場合は、お知らせください。私は回帰の初心者です。

1
Zhang Wei

問題は、コスト関数(シグモイド関数)が[0,1]の間の出力を返すことですが、シグモイド値を大きなデータポイントに加算すると、シグモイド関数の結果が非常に大きくなる可能性があるため、数値安定性の問題が発生する可能性があります小さい10進数。シグモイド関数でlog()関数を使用すると、最適化の目標に実際に影響を与えることなく、発生する数値計算の問題も処理できます。

0