2017-05-31 40 views
0

私はPythonでHingeの損失関数を実装しようとしており、誤解を招いています。PythonのSoftmaxとHinge関数

私が読んで使ったいくつかのソース(たとえば、Luca Massoronの "Pythonの回帰分析")では、HingeがSoftmax関数と呼ばれることがあります。

しかし、ヒンジ、ので、私にとっては一種の奇妙です: enter image description here

とソフトマックスは次のように単なる指数関数である:

:私は(ソフトマックス用)Pythonで、このようにその機能を作っ enter image description here

    def softmax(x): 
        e_x = np.exp(x - np.max(x)) 
        return e_x/e_x.sum(axis=0) 
    

    は2つの質問があります

  1. softmax関数をヒンジ関数と同じように使用できますか?
  2. もしそうでなければ、ヒンジをPythonでどのように実装できますか?

ありがとうございます。

答えて

1

softmax関数をヒンジ関数と同じように使用できますか?

いいえ - これらは同等ではありません。

ヒンジ関数は損失関数であり、十分に較正された確率を提供しませんが、softmaxはマッピング関数です(スコアの集合を1つに合計したもの)。

もしそうでなければ、ヒンジをPythonでどのように実装できますか?

import numpy as np 
import matplotlib.pyplot as plt 

xmin, xmax = -1, 2 
xx = np.linspace(xmin, xmax, 100) 
plt.plot(xx, np.where(xx < 1, 1 - xx, 0), label="Hinge loss") 

は、この次のスニペットは、ヒンジ損失関数の本質を捉え

関連する問題