Funcții de activare a straturilor

Utilizarea activărilor

Activările pot fi utilizate fie prin intermediul unui strat Activation, fie prin intermediul argumentului activation suportat de toate straturile frontale:

model.add(layers.Dense(64, activation=activations.relu))

Acest lucru este echivalent cu:

Toate activările încorporate pot fi, de asemenea, transmise prin intermediul identificatorului lor de șir de caractere:

model.add(layers.Dense(64, activation='relu'))

Activări disponibile

Funcția relu

tf.keras.activations.relu(x, alpha=0.0, max_value=None, threshold=0)

Aplică funcția de activare unitară liniară rectificată.

Cu valori implicite, aceasta returnează activarea ReLU standard:max(x, 0), maximul în funcție de element al lui 0 și tensorul de intrare.

Modificarea parametrilor impliciți vă permite să folosiți praguri diferite de zero,să modificați valoarea maximă a activării și să folosiți un multiplu diferit de zero al intrării pentru valori sub prag.

De exemplu:

Argumente

  • x: Intrare tensor sau variable.
  • alpha: Un float care guvernează panta pentru valorile mai mici decât pragul.
  • max_value: Un float care stabilește pragul de saturație (cea mai mare valoare pe care funcția o va returna).
  • threshold: Un float care dă valoarea de prag a funcției de activare sub care valorile vor fi amortizate sau setate la zero.

Returnează

Un Tensor care reprezintă tensorul de intrare,transformat de funcția de activare relu.Tensorul va avea aceeași formă și dtip de intrare x.

Funcția sigmoidă

tf.keras.activations.sigmoid(x)

Funcția de activare sigmoidă, sigmoid(x) = 1 / (1 + exp(-x)).

Aplică funcția de activare sigmoidă. Pentru valori mici (<-5),sigmoid returnează o valoare apropiată de zero, iar pentru valori mari (>5)rezultatul funcției se apropie de 1.

Sigmoid este echivalent cu un Softmax cu 2 elemente, unde al doilea element este presupus a fi zero. Funcția sigmoid returnează întotdeauna o valoare între0 și 1.

De exemplu:

Argumente

  • x: Tensor de intrare.

Întoarce

  • Tensor cu activarea sigmoidală: 1 / (1 + exp(-x)).

Funcția softmax

tf.keras.activations.softmax(x, axis=-1)

Softmax convertește un vector real într-un vector de probabilități categorice.

Elementele vectorului de ieșire sunt în intervalul (0, 1) și au suma 1.

Care vector este tratat independent. Argumentul axis stabilește pe ce axă a intrării se aplică funcția.

Softmax este adesea utilizat ca activare pentru ultimul strat al unei rețele de clasificare, deoarece rezultatul poate fi interpretat ca o distribuție de probabilități.

Softmax al fiecărui vector x este calculat caexp(x) / tf.reduce_sum(exp(x)).

Valorile de intrare în sunt cotele logaritmice ale probabilității rezultate.

Argumente

  • x : Tensor de intrare.
  • axis: Integer, axa de-a lungul căreia se aplică normalizarea softmax.

Returns

Tensor, ieșire a transformării softmax (toate valorile sunt non-negative și însumate la 1).

Raise

  • ValueError: În cazul dim(x) == 1.

Funcția softplus

tf.keras.activations.softplus(x)

Funcția de activare softplus, softplus(x) = log(exp(x) + 1).

Exemplu de utilizare:

Argumente

  • x: Tensor de intrare.

Returnează

  • Activarea softplus: log(exp(x) + 1).

Funcția softsign

tf.keras.activations.softsign(x)

Funcția de activare softsign, softsign(x) = x / (abs(x) + 1).

Exemplu Utilizare:

>>> a = tf.constant(, dtype = tf.float32)>>> b = tf.keras.activations.softsign(a)>>> b.numpy()array(, dtype=float32)

Argumente

  • x: Tensor de intrare.

Returnează

  • Activarea softsignului: x / (abs(x) + 1).

Funcția tanh

tf.keras.activations.tanh(x)

Funcția de activare tangentă hiperbolică.

De exemplu:

Argumente

  • x: Tensor de intrare.

Întoarce

  • Tensor de aceeași formă și dtip de intrare x, cu activare tanh:tanh(x) = sinh(x)/cosh(x) = ((exp(x) - exp(-x))/(exp(x) + exp(-x))).

Funcția selu

tf.keras.activations.selu(x)

Scaled Exponential Linear Unit (SELU).

Funcția de activare SELU (Scaled Exponential Linear Unit) este definită ca:

  • if x > 0: return scale * x
  • if x < 0: return scale * alpha * (exp(x) - 1)

unde alpha și scale sunt constante predefinite (alpha=1.67326324 și scale=1.05070098).

În principiu, funcția de activare SELU înmulțește scale (> 1) cu ieșirea funcției tf.keras.activations.elu pentru a asigura o pantă mai mare de unu pentru intrările pozitive.

Valorile lui alpha și scale sunt alese astfel încât media și varianța intrărilor să fie păstrate între două straturi consecutive, atâta timp cât ponderile sunt inițializate corect (a se vedea inițializatorul tf.keras.initializers.LecunNormal) și numărul de unități de intrare este „suficient de mare” (a se vedea documentul de referință pentru mai multe informații).

Exemplu de utilizare:

Argumente

  • x: Un tensor sau o variabilă pentru care se calculează funcția de activare.

Returnează

  • Activarea unitară exponențială scalată: scale * elu(x, alpha).

Notes: – A se utiliza împreună cu inițializatorul tf.keras.initializers.LecunNormal. – A se utiliza împreună cu varianta de renunțare tf.keras.layers.AlphaDropout (nu cu renunțarea obișnuită).

Referințe: – Klambauer et al., 2017

funcția elu

tf.keras.activations.elu(x, alpha=1.0)

Unitatea liniară exponențială.

Unitatea liniară exponențială (ELU) cu alpha > 0 este:x dacă x > 0 șialpha * (exp(x) - 1) dacă x < 0Hiperparametrul ELU alpha controlează valoarea la care oELU se saturează pentru intrări nete negative. ELU diminuează efectul de gradient descrescător.

ELU au valori negative, ceea ce împinge media activărilor mai aproape de zero.Activările medii care sunt mai aproape de zero permit o învățare mai rapidă, deoarece aduc gradientul mai aproape de gradientul natural.ELU-urile se saturează la o valoare negativă atunci când argumentul devine mai mic.Saturarea înseamnă o derivată mică care scade variațiași informația care se propagă în stratul următor.

Exemplu de utilizare:

Argumente

  • x: Tensor de intrare.
  • alfa: Un scalar, pantă de secțiune negativă. alpha controlează valoarea la care o ELU se saturează pentru intrările negative ale rețelei.

Returns

  • Funcția de activare a unității liniare exponențiale (ELU): dacă x > 0 șialpha * (exp(x) - 1) dacă x < 0.

Referință: Fast and Accurate Deep Network Learning by Exponential Linear Units (ELU) (Clevert et al, 2016)

funcția exponențială

tf.keras.activations.exponential(x)

Funcția de activare exponențială.

De exemplu:

Argumente

  • x: Tensor de intrare.

Întoarce

  • Tensor cu activare exponențială: exp(x).

Crearea de activări personalizate

De asemenea, puteți utiliza un tensor TensorFlow apelabil ca activare (în acest caz ar trebui să preia un tensor și să returneze un tensor de aceeași formă și dtype):

model.add(layers.Dense(64, activation=tf.nn.tanh))

Despre straturile de „activare avansată”

Activările care sunt mai complexe decât o simplă funcție TensorFlow (de ex. activările care pot fi învățate, care mențin o stare)sunt disponibile ca straturi de activare avansată,și pot fi găsite în modulul tf.keras.layers.advanced_activations. Acestea includ PReLU și LeakyReLU.Dacă aveți nevoie de o activare personalizată care necesită o stare, ar trebui să o implementați ca un strat personalizat.

Rețineți că nu trebuie să treceți instanțele straturilor de activare ca argument activation al unui strat.Acestea sunt destinate să fie utilizate la fel ca straturile obișnuite, de exemplu:

x = layers.Dense(10)(x)x = layers.LeakyReLU()(x)

Lasă un răspuns

Adresa ta de email nu va fi publicată.