二項ロジスティック回帰分類器を実装しました。ふざけて、シグモイド関数 (1 / 1 + exp(-z)) を tanh に置き換えてみました。結果はまったく同じで、分類のしきい値は同じ 0.5 で、tanh は {-1,1} の範囲にあり、シグモイドは {0,1} の範囲にあります。
シグモイド関数を使用することは本当に重要ですか、それとも tanh のような任意の微分可能な非線形関数を使用できますか?
ありがとう。
二項ロジスティック回帰分類器を実装しました。ふざけて、シグモイド関数 (1 / 1 + exp(-z)) を tanh に置き換えてみました。結果はまったく同じで、分類のしきい値は同じ 0.5 で、tanh は {-1,1} の範囲にあり、シグモイドは {0,1} の範囲にあります。
シグモイド関数を使用することは本当に重要ですか、それとも tanh のような任意の微分可能な非線形関数を使用できますか?
ありがとう。
トレーニングの関数も変更しましたか、それとも同じトレーニング方法を使用してからシグモイドを tanh に変更しましたか?
私は、次のようなことが起こった可能性が非常に高いと思います。シグモイドと tanh のグラフを見てください。
シグモイド: http://www.wolframalpha.com/input/?i=plot+sigmoid%28x%29+for+x%3D%28-1%2C+1%29 tanh: http://www.wolframalpha. com/input/?i=plot+tanh%28x%29+for+x%3D%28-1%2C+1%29
tanh の場合、値 y = 0.5 は x = 0.5 付近であることがわかります。シグモイドでは、x = 0.5 からおおよそ y = 0.62 になります。したがって、おそらく今起こっていると思うのは、データにはこの範囲内に収まるポイントが含まれていないため、まったく同じ結果が得られるということです。データのシグモイド値を印刷してみて、0.5 から 0.62 の間に値があるかどうかを確認してください。
シグモイド関数を使用する理由は、確率と最尤から導出されるためです。他の関数は非常によく似た働きをするかもしれませんが、この確率論的背景が欠けています。詳細については、たとえばhttp://luna.cas.usf.edu/~mbrannic/files/regression/Logistic.htmlまたはhttp://www.cs.cmu.edu/~tom/mlbook/NBayesLogReg.pdfを参照してください。
結果の確率を表すため、関数の範囲は {0,1} にする必要があります。