レイヤー活性化関数

活性化の使用

活性化は、Activationレイヤー、またはすべてのフォワードレイヤーでサポートされているactivation引数を介して使用することができます:

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

これは、同等です。

すべての組み込み活性化は、その文字列識別子を通じて渡すこともできます:

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

利用できる活性化

relu function

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

rectified linear unit activate functionを適用します。

デフォルト値では、標準的なReLU活性化関数:max(x, 0)、0と入力テンソルの要素ごとの最大値が返されます。

デフォルトのパラメータを変更すると、ゼロでない閾値を使用したり、活性化の最大値を変更したり、閾値以下の値に対してゼロでない入力の倍数を使用したりすることができます。 入力 tensor または variable.

  • alpha: float 閾値より低い値に対する傾きを制御する。
  • max_value: 飽和のしきい値(関数が返す最大の値)を設定するfloat
  • threshold:
  • Returns

    relu活性化関数によって変換された入力テンソルを表すTensor。テンソルは入力 x.

    シグモイド関数

    tf.keras.activations.sigmoid(x)

    シグモイド活性化関数、 sigmoid(x) = 1 / (1 + exp(-x)).

    シグモイド活性化関数を適用する。 小さい値(<-5)ではsigmoidは0に近い値を返し、大きい値(>5)では関数結果は1に近くなる。

    シグモイドは2要素のソフトマックスと同等で、第2要素は0であると仮定される。 シグモイド関数は常に0と1の間の値を返します。

    例:

    引数

    • x: 入力テンソル。

    戻り値

    • シグモイド活性を持つテンソル。 1 / (1 + exp(-x)).

    softmax function

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

    実数ベクトルをカテゴリ確率のベクトルに変換する。

    出力ベクトルの要素は範囲 (0, 1) で合計が 1 になる。

    それぞれのベクトルが独立して処理される。 axis 引数は関数が入力のどの軸に沿って適用されるかを設定する。

    ソフトマックスは結果が確率分布として解釈できるため、分類ネットワークの最終層の活性化としてよく使われる。

    各ベクトルxのソフトマックスはexp(x) / tf.reduce_sum(exp(x))のように計算される。

    入力値inは結果の確率の対数オッズである。

    引数

    • x : 入力テンソル
    • axis.Softmax.Softmax.SoftMax.SoftMax.SoftMax.SoftMaxはソフトマックスを入力テンソルに適用する。 整数, ソフトマックス正規化が適用される軸.

    戻り値

    テンソル, ソフトマックス変換の出力 (すべての値は非負で和が 1).

    Raises

    • ValueError.を返す: dim(x) == 1.

    softplus function

    tf.keras.activations.softplus(x)

    Softplus activation function, softplus(x) = log(exp(x) + 1).

    使用例:

    Arguments

    • x.を使用する場合、 を使用する。 入力テンソル.

    戻り値

    • softplus活性化.softplus活性化.softplus活性化.softplus活性化: log(exp(x) + 1).

    softsign function

    tf.keras.activations.softsign(x)

    Softsign activation function, softsign(x) = x / (abs(x) + 1).

    使用例:

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

    Arguments<1265><4296>

    • を返す。 入力テンソル.

    Returns

    • ソフトサイン活性化: x / (abs(x) + 1).

    tanh function

    tf.keras.activations.tanh(x)

    双曲正接活性化関数

    例えば:

    アーギュメント

    • x.を入力する。 入力テンソル。

    戻り値

    • 入力xと同じ形状でd型のテンソル、tanh活性化:tanh(x) = sinh(x)/cosh(x) = ((exp(x) - exp(-x))/(exp(x) + exp(-x))).

    selu function

    tf.keras.activations.selu(x)

    拡張指数線形ユニット(SELU).

    Scaled Exponential Linear Unit (SELU) activation functionは次のように定義されます:

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

    ここでalphascaleはあらかじめ定義された定数(alpha=1.67326324scale=1.05070098 )であります。

    基本的にSELU活性化関数はtf.keras.activations.elu関数の出力にscale (> 1) を掛け、正の入力に対して1より大きな傾きを確保する。

    重みが正しく初期化され(tf.keras.initializers.LecunNormal初期化子参照)、入力ユニットの数が「十分大きい」(詳細は参考文献参照)限り、連続する2つの層間で入力の平均と分散が保存されるようにalphascaleの値が選ばれている。

    使用例:

    引数

    • x:

    Returns

    • Scaled Exponential Unit Activation。 scale * elu(x, alpha).

    Notes: – tf.keras.initializers.LecunNormalイニシャライザーと一緒に使用する。 – ドロップアウトバリアントtf.keras.layers.AlphaDropoutと一緒に使うこと(通常のドロップアウトではない)

    参考文献。 – Klambauer et al., 2017

    elu function

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

    Exponential Linear Unit.

    alpha > 0による指数線形ユニット(ELU)は:x if x > 0 andalpha * (exp(x) - 1) if x < 0The ELU hyperparameter alpha controls the value to which anELU saturates for negative net inputs.となる。 ELUは消失勾配効果を弱める。

    ELUは負の値を持ち、活性度の平均を0に近づける。0に近い平均活性度は勾配を自然勾配に近づけるため、より速い学習が可能になる。ELUは引数が小さくなると負の値に飽和する。飽和するということは、微分が小さくなり、次の層に伝搬されるバリエーションと情報が減少する。

    使用例:

    引数

    • x: 入力テンソル
    • alpha: スカラー、負のセクションのスロープ。

    Returns

    • ELU (Exponential Linear Unit) activation function: x > 0ならxx < 0ならalpha * (exp(x) - 1)

    参考になります。 Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs) (Clevert et al, 2016)

    exponential function

    tf.keras.activations.exponential(x)

    Exponential activation function.

    例:

    Arguments

    • x.を使用する場合は、
      • Exponential Linear Units (ELUs) by Exponential Units (ELUs) (Clevert et al, 2016) 入力テンソル。

      戻り値

      • 指数的活性化を持つテンソル。 exp(x).

      カスタムアクティベーションの作成

      アクティベーションとしてTensorFlow callableを使うこともできる(この場合、テンソルを受け取り、同じ形とd型のテンソルを返す):

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

      「高度アクティベーション」層について

      Activity is more complex than a simple TensorFlow function (eg.s.. 学習可能な活性化、状態を維持する活性化など)、Advanced Activationレイヤーとして、モジュールtf.keras.layers.advanced_activationsにある。 状態を必要とするカスタムアクティベーションが必要な場合は、カスタムレイヤーとして実装する必要があります。

      Note that you should not apply activation layers instances as the activation argument of a layer.They meant to be just like regular layers, e.g.

      x = layers.Dense(10)(x)x = layers.LeakyReLU()(x)
  • コメントを残す

    メールアドレスが公開されることはありません。