GeeksforGeeks

この記事を読む前に、ニューラルネットワークとは何かを理解しておくことをお勧めします。 ニューラルネットワークを構築する過程で、どのような活性化関数を隠れ層と出力層で使用するかを選択することになります。 この記事では、その選択肢のいくつかを説明します。

Elements of a Neural Network :-
Input Layer :- この層は入力フィーチャーを受け取ります。 この層は外界からの情報をネットワークに提供する。この層では計算は行われず、ノードは情報(特徴)を隠れ層に渡すだけである。

隠れ層: 入力層から入力された特徴に対してあらゆる種類の計算を実行し、その結果を出力層に転送する。

出力層は、ネットワークによって学習した情報を外界に持ち出す。

活性化関数とそれを使用する理由

活性化関数の定義:活性化関数は重み付け和を計算してさらにそれに偏りを加えて、ニューロンが活性化されるかどうかを決定する。 活性化関数の目的は、ニューロンの出力に非線形性を導入することです。

説明:
私たちは、ニューラルネットワークが、重み、バイアス、それぞれの活性化関数に対応して動作するニューロンを持っていることを知っています。 ニューラルネットワークでは、出力の誤差に基づいて、ニューロンの重みやバイアスを更新することになる。 このプロセスはバックプロパゲーションと呼ばれる。 活性化関数は、重みとバイアスを更新するために誤差と一緒に勾配を提供するため、バックプロパゲーションを可能にします。 活性化関数は入力に対して非線形変換を行い、より複雑なタスクを学習し実行できるようにします。 層1 :-

z(1) = W(1)X + b(1)
a(1) = z(1)
ここで、

  • z(1) は層1
  • W(1) は隠れた層である
    ニューロンへのベクトル化重み付けである。w1、w2、w3、w4
  • Xは、ベクトル化された入力特徴量である。 i1 and i2
  • bは隠れ層のニューロンに割り当てられたベクトル化されたバイアス、すなわちb1 and b2
  • a(1) は任意の線形関数のベクトル化された形式である。

(注:ここでは活性化関数は考慮していない)

第2層すなわち 出力層:

// Note : Input for layer // 2 is output from layer 1z(2) = W(2)a(1) + b(2) a(2) = z(2) 

出力層での計算:

// Putting value of z(1) herez(2) = (W(2) * ) + b(2) z(2) = * X + Let, = W = bFinal output : z(2) = W*X + bWhich is again a linear function

この結果から、隠れ層があっても一次関数となり、ニューラルネットは何層あっても一次関数同士の合成は一次関数となり同じ振る舞いをすると結論付けることができる。 ニューロンは一次関数だけでは学習できない。 そこで、非線形の活性化関数を用いて、誤差の差に応じた学習をさせるのです。) 一次関数:

  • 式: 線形関数は、y=axのような直線に近い方程式をもちます。
  • 問題点:線形関数を微分して非線形性を持たせると、結果は入力xに依存しなくなり、関数が一定になるので、アルゴリズムに画期的な動作をもたらすことはない。 家の値段は大小様々なので、出力層で線形活性化を適用すればよい。 この場合でもニューラルネットは隠れ層に任意の非線形関数を持たせる必要がある

2). シグモイド関数:

  • S字型にプロットされる関数です。
    A = 1/(1 + e-x)
  • Nature : 非線型。 Xの値は-2〜2の間にあり、Yの値は非常に急であることに注意してください。
  • Value Range : 0 to 1
  • Uses : 通常、2値分類の出力層で使われ、結果は0か1であるが、シグモイド関数の値は0と1の間にあるだけなので、値が0.5以上なら1、それ以外は0と容易に予測することができる

3). Tanh関数:シグモイド関数より常に良い働きをする活性化はTanh関数で、Tangent Hyperbolic関数として知られています。 これは実際にはシグモイド関数を数学的にシフトしたものです。

  • Equation :-
  • f(x) = tanh(x) = 2/(1 + e-2x) - 1ORtanh(x) = 2 * sigmoid(2x) - 1 
    • Value Range :-1 to +1
    • Nature :- non-linear
    • Uses :-通常ニューラルネットワークの隠れ層で使われ、値が-1から1まであるので隠れ層の平均値が0またはそれに非常に近くなり、そのため平均値を0に近づけてデータを中心に置くことに役立つ。 これにより、次の層の学習がより容易になる。) RELU :- Rectified linear unitの略で、整流化された線形ユニット。 最も広く使われている活性化関数である。 主にニューラルネットワークの隠れ層に実装される。
    • 式:- A(x) = max(0,x).
    • Value Range :- [0, inf]
    • Nature :- 非線形、つまり誤差を簡単に逆伝播でき、ReLU関数によって活性化されるニューロンの複数の層を持つことができる。

    簡単に言えば、RELUはシグモイドやTanh関数よりはるかに速く学習するのである。) ソフトマックス関数:- ソフトマックス関数もシグモイド関数の一種であるが、分類問題を扱おうとするときに便利である。 ソフトマックス関数は、各クラスの出力を0と1の間で絞り、また出力の合計で割る。

  • 出力: – ソフトマックス関数は、各入力のクラスを定義するために確率を達成しようとしている分類器の出力層で理想的に使用されています。
  • CHOOSING THE RIGHT ACTIVATION FUNCTION

  • どの活性化関数を使用すべきかわからない場合、基本的な経験則は、一般的な活性化関数であり、最近ほとんどのケースで使用されている RELU を単純に使用することです。
  • 出力が2値分類の場合、シグモイド関数は出力層として非常に自然な選択です。
  • 脚注:
    活性化関数は入力に対して非線形変換を行い、学習してより複雑なタスクを実行することができます。

    コメントを残す

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