9

ケラスを使用してディープネットに取り組んでいます。アクティベーション「ハードシグモイド」があります。その数学的定義は何ですか?

私はシグモイドが何であるかを知っています。誰かが Quora で同様の質問をしました: https://www.quora.com/What-is-hard-sigmoid-in-artificial-neural-networks-Why-is-it-faster-than-standard-sigmoid-Are-there -標準シグモイドに対する欠点

しかし、正確な数学的定義はどこにも見つかりませんでした。

4

4 に答える 4

13

Keras は Tensorflow と Theano の両方をサポートしているため、正確な実装はバックエンドごとに異なる可能性があります。ここでは Theano のみを取り上げます。Theano バックエンドの場合、Keras は を使用しますT.nnet.hard_sigmoid。これは、標準シグモイドを線形近似したものです。

slope = tensor.constant(0.2, dtype=out_dtype)
shift = tensor.constant(0.5, dtype=out_dtype)
x = (x * slope) + shift
x = tensor.clip(x, 0, 1)

つまり、次のとおりです。max(0, min(1, x*0.2 + 0.5))

于 2016-02-23T14:51:59.867 に答える
2

参考までに、hard sigmoid functionは場所によって定義が異なる場合があります。Courbariaux等において。2016 [1] 次のように定義されています。

σ は「ハードシグモイド」関数です: σ(x) = clip((x + 1)/2, 0, 1) = max(0, min(1, (x + 1)/2))

その目的は、ニューラル ネットワーク パラメーター (重み、活性化、勾配など) の確率的 2 値化で使用する確率値を提供することです (したがって、 と の間にあるように制約します0) 。ハード シグモイド関数から返され1た確率を使用して、パラメーターを確率付き、または確率付きに設定します。p = σ(x)x+1p-11-p

[1] https://arxiv.org/abs/1602.02830 - 「バイナリ化されたニューラル ネットワーク: +1 または -1 に制約された重みとアクティベーションを使用したディープ ニューラル ネットワークのトレーニング」、Matthieu Courbariaux、Itay Hubara、Daniel Soudry、Ran El-Yaniv 、Yoshua Bengio、(2016 年 2 月 9 日に提出 (v1)、最終改訂 2016 年 3 月 17 日 (このバージョン、v3))

于 2016-09-21T20:14:11.457 に答える