ロジスティック回帰のコスト関数は
cost(h(theta)X,Y) = -log(h(theta)X) or -log(1-h(theta)X)
私の質問は、コスト関数の対数表現を置く根拠は何ですか?それはどこから来たのですか?どこからでも「-log」を置くことはできないと思います。誰かがコスト関数の導出を説明できれば、私は感謝するでしょう。ありがとうございました。
出典: コースラのスタンドフォードの機械学習コース 、アンドリューNg。彼とこの組織へのすべてのクレジット。このコースは、誰でも自分のペースで受講することができます。画像は、LaTeX(式)とR(グラフィック)を使用して自分で作成します。
ロジスティック回帰は、予測したい変数yが離散値しかとれない場合に使用されます(つまり、分類)。
バイナリ分類問題を考慮して(yは2つの値しか取ることができません)、パラメーターのセットθおよび入力フィーチャのセットx仮説関数は、[0、1]の間に制限されるように定義できます。ここで、g()はシグモイド関数を表します。
この仮説関数は、入力時にy = 1xθでパラメーター化される推定確率を同時に表します。
コスト関数は、最適化の目的を表します。
コスト関数の可能な定義は、仮説h_θ(x)と実際の値yの間のユークリッド距離の平均である可能性がありますが、すべてのmトレーニングセットのサンプル。仮説関数がシグモイド関数で形成されている限り、この定義は非凸コスト関数になります。つまり、グローバルミニマムに達する前に、ローカルミニマムを簡単に見つけることができます。コスト関数が凸であることを保証するため(したがってグローバル最小値への収束を保証するため)、コスト関数はシグモイド関数の対数を使用して変換されます。
このようにして、最適化目的関数は、トレーニングセットのコスト/エラーの平均として定義できます。
このコスト関数は、単純に最大(対数)尤度基準の再定式化です。
ロジスティック回帰のモデルは次のとおりです。
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
私の理解(ここでは100%専門家ではありませんが、間違っているかもしれません)は、log
は、 ガウス分布の式に現れるexp
確率密度。 (-log(x) = log(1/x)
を思い出してください。)
Bishop [1]を正しく理解している場合:正と負のトレーニングサンプルが2つの異なるガウスクラスター(位置は異なるが共分散が同じ)に由来すると仮定すると、完全な分類器を開発できます。そして、この分類器はロジスティック回帰のように見えます(例えば、線形決定境界)。
もちろん、次の質問は、トレーニングデータが頻繁に異なる場合に、ガウスクラスターを分離するのに最適な分類器を使用する必要がある理由です。
[1]パターン認識と機械学習、Christopher M. Bishop、4.2章(確率的生成モデル)
問題は、コスト関数(シグモイド関数)が[0,1]の間の出力を返すことですが、シグモイド値を大きなデータポイントに加算すると、シグモイド関数の結果が非常に大きくなる可能性があるため、数値安定性の問題が発生する可能性があります小さい10進数。シグモイド関数でlog()関数を使用すると、最適化の目標に実際に影響を与えることなく、発生する数値計算の問題も処理できます。