softmax関数の定義


8

この質問はstats.stackexchange.com/q/233658でフォローアップします

クラス{0、1}のロジスティック回帰モデルは

P(y=1|x)=exp⁡(wTx)1+exp⁡(wTx)P(y=0|x)=11+exp⁡(wTx)

明らかにこれらの確率の合計は1ですを設定することにより、ロジスティック回帰を次のように定義することもできます。w=β1−β0

P(y=c|x)=exp⁡(βcTx)exp⁡(β0Tx)+exp⁡(β1Tx)∀c∈{0,1}

ただし、係数とは一意ではないため、2番目の定義はほとんど使用されません。つまり、2つの変数が互いに倍数である線形回帰のように、モデルは識別できません。β0β1

質問

機械学習で、クラス{0、1、...、K – 1}のソフトマックス回帰モデルが通常次のように定義されているのはなぜですか?

P(y=c|x)=exp⁡(βcTx)exp⁡(β0Tx)+⋯+exp⁡(βK−1Tx)∀c∈{0,…,K−1}

代わりにすべきではない

P(y=c|x)=exp⁡(wcTx)1+exp⁡(w1Tx)+⋯+exp⁡(wK−1Tx)∀c∈{1,…,K−1}P(y=0|x)=11+exp⁡(w1Tx)+⋯+exp⁡(wK−1Tx)

補足:統計では、softmax回帰は多項ロジスティック回帰と呼ばれ、クラスは{1、...、K}です。K = 2の場合、クラスは{0、1}ではなく{1、2}なので、これは少し厄介だと思います。ロジスティック回帰の一般化ではないからです。


それは通常そのように定義されていますか?参照を指すことができますか?
— Laconic

@TheLaconic scikit-learn.org/stable/modules/neural_networks_supervised.htmlおよびwww.tensorflow.org/versions/r1.1/get_started/mnist/beginners
— 農家の

OK。このように定義されたMNL回帰モデルを見たことがないので、私は尋ねました。しかし、どうやらそれはニューラルネットのコンテキストでは「通常」であり、現在、私はあなたと同じ質問をしています。
— Laconic

1
「Xにすべきではない」という質問にどのように答えるかはわかりません。与えられた定義は微分可能であり、確率分布を定義します(合計は1です)。それらは重要な部分のようですが、なぜそれを他の部分の代わりにすべきではないのですか?
— kbrose

識別可能性の欠如のため@kbrose
— テイラー

回答:


2

はい、係数ベクトルの1つが修正されない限り、識別可能性が不足していることは正しいです。これについて触れていないいくつかの理由があります。彼らがこの詳細を省略している理由について話すことはできませんが、それが何であるか、そしてそれを修正する方法の説明はここにあります。

説明文

観測と予測子とします。ここで、はからは、観測番号/インデックスを示します。次元の係数ベクトルを推定する必要があります。yi∈{0,1,2,…,K−1}xi⊺∈Rpi1nK pβ0,β1,…,βK−1

実際、softmax関数はとして定義されてい 微分可能性などの優れた特性を持ち、合計でになります。

softmax(z)i=exp⁡(zi)∑l=0K−1exp⁡(zl),
1

多項ロジスティック回帰は、ベクトル上の 各観測値に対してソフトマックス関数を使用しますi

[xi⊺β0xi⊺β1⋮xi⊺βK−1,]

つまり、

[P(yi=0)P(yi=1)⋮P(yi=K−1)]=[exp⁡[xi⊺β0]∑k=0K−1exp⁡[xi⊺βk]exp⁡[xi⊺β1]∑k=0K−1exp⁡[xi⊺βk]⋮exp⁡[xi⊺βK−1]∑k=0K−1exp⁡[xi⊺βk]].

問題

ただし、複数のパラメーターコレクションが同じ可能性を与えるため、可能性は識別できません。たとえば、すべての係数ベクトルを同じベクトルシフトすると、同じ尤度が生成されます。これは、ベクトルの各要素の分子と分母に定数を乗算すると変化しません。cexp⁡[−xi⊺c]

[exp⁡[xi⊺β0]∑k=0K−1exp⁡[xi⊺βk]exp⁡[xi⊺β1]∑k=0K−1exp⁡[xi⊺βk]⋮exp⁡[xi⊺βK−1]∑k=0K−1exp⁡[xi⊺βk]]=[exp⁡[xi⊺(β0−c)]∑k=0K−1exp⁡[xi⊺(βk−c)]exp⁡[xi⊺(β1−c)]∑k=0K−1exp⁡[xi⊺(βk−c)]⋮exp⁡[xi⊺(βK−1−c)]∑k=0K−1exp⁡[xi⊺(βk−c)]].

それを修正する

これを修正する方法は、パラメータを制約することです。それらの1つを修正すると、識別可能になります。これは、それらのすべてをシフトすることがもはや許可されないためです。

2つの一般的な選択肢があります。

  • セット、つまり(これについて言及している)を意味し、c=β0β0=0
  • set、つまりを意味します。c=βK−1βK−1=0

無視して

ただし、制限が不要な場合もあります。たとえば、数量信頼区間を作成することに興味があった場合、これはと同じであるため、比較的量は本当に重要ではありません。また、タスクがパラメーター推論ではなく予測である場合、すべての係数ベクトルが推定されても(制約なしで)、予測は影響を受けません。β10−β12β10−c−[β12−c]

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