2016-02-15 5 views
6

Ich arbeite an Deep Nets mit Keras. Es gibt eine Aktivierung "harter Sigmoid". Was ist seine mathematische Definition?Wie ist Hard Sigmoid definiert

Ich weiß was Sigmoid ist. Jemand hat ähnliche Fragen zu Quora gestellt: https://www.quora.com/What-is-hard-sigmoid-in-artificial-neural-networks-Why-is-it-faster-than-standard-sigmoid-Are-there-any-disadvantages-over-the-standard-sigmoid

Aber ich konnte nirgends die genaue mathematische Definition finden?

+0

ist es max (0, min (1, (x + 1)/2)) –

Antwort

0

ist

max(0, min(1, (x + 1)/2)) 
10

Da Keras sowohl Tensorflow als auch Theano unterstützt, kann die genaue Implementierung für jedes Backend unterschiedlich sein - ich werde nur Theano behandeln. Für Theano Backend Keras T.nnet.hard_sigmoid verwendet, was wiederum ist linearly approximated standard 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) 

dh max (0, min (1, x * 0,2 + 0,5))

+1

Keras TensorFlow Backend hat die gleiche Mathematik, obwohl von Hand implementiert. https://github.com/fchollet/keras/blob/master/keras/backend/tensorflow_backend.py#L1487 –

1

Als Referenz kann das hard sigmoid function definiert werden anders an verschiedenen Orten. In Courbariaux et al. 2016 [1] Es ist definiert als:

σ die „harte Sigmoid“ -Funktion ist: σ (x) = Clip ((x + 1)/2, 0, 1) = max (0, min (1, (x + 1)/2))

Die Absicht ist, einen Wahrscheinlichkeitswert zu liefern (also es sein zwischen 0 und 1) zur Verwendung in stochastischer Binarisierung neuronaler Netzwerkparameter (zB Gewicht, Zwangsaktivierungs , Gradient). Sie verwenden die Wahrscheinlichkeit p = σ(x), die von der harten Sigmoid-Funktion zurückgegeben wurde, um den Parameter x auf +1 mit p Wahrscheinlichkeit, oder -1 mit Wahrscheinlichkeit 1-p.

[1] https://arxiv.org/abs/1602.02830 - "Binarisierungs- Neuronale Netze: Training Tiefe Neuronale Netze mit Gewichten und Aktivierungen Constrained auf +1 oder -1", Matthieu Courbariaux, Itay Hubara, Daniel Soudry, Ran El-Yaniv, Yoshua Bengio, (Vorgelegt am 9. Februar 2016 (v1), zuletzt 17. März 2016 überarbeitet (diese Version, v3))