web-dev-qa-db-ja.com

ニューラルネットワーク:活性化関数と伝達関数

アクティベーションと伝達関数の間には少し混乱があるようです。から ウィキペディアANN

enter image description here

伝達関数はネットを計算し、活性化関数はニューロンの出力を計算しているようです。しかし 活性化関数のMatlabドキュメント 引用:

satlin(N、FP)は、ニューラル伝達関数です。伝達関数は、ネット入力からレイヤーの出力を計算します。

では、誰が正しいのでしょうか?また、活性化関数または伝達関数という用語を同じ意味で使用できますか?

18
dynamic

wikipedia からも引用します:「通常、各ノードの合計は重み付けされ、合計は活性化関数または伝達関数として知られる非線形関数を通過します。関数

少なくとも機械学習では、私が読んだすべての本で同じ意味で使用されています。

  • 活性化関数は最近ほとんど独占的に使用されています
  • 伝達関数は、機械学習が一般的でなく、ほとんどの読者が電気工学/信号処理のバックグラウンドを持っていた80/90年代の本で主に使用されています。

だから、要約すると

  • 用語活性化関数を使用する
  • 他の誰かがそれらを区別する場合は、それらが何を意味するのかを明確にするように依頼してください
13
blue_note

"Survey of Neural Transfer Functions"、from Duch and Jankowski(1999) で見つけたいくつかの調査の後、次のようになりました。

transfer_function = activation function + output function

そして、IMOという用語は、ニューロンがアクティブ化されることを確認し、そこからの出力を計算するための値(信号強度)が必要なため、今では意味があります。そして、プロセス全体が行うことは、あるレイヤーから別のレイヤーに信号を転送することです。

2つの関数は、信号がニューロンによって処理される方法を決定します。 活性化関数は、ニューロンが受信する信号の合計を決定します。活性化関数の値は通常スカラーであり、引数はベクトルです。ニューロンの信号処理を決定する2番目の関数は、出力関数o(I)であり、スカラーのアクティブ化を操作してスカラー値を返します。通常、スカッシング関数は、出力値を指定された範囲内に保つために使用されます。これらの2つの関数は、ニューロンの発信信号の値を一緒に決定します。アクティベーションと出力関数の構成は、伝達関数o(I(x))と呼ばれます。

12
JRMGarcia

伝達関数は名前変換に由来し、変換の目的で使用されます。一方、活性化関数は、出力が特定のしきい値を満たし、0または1を出力するかどうかをチェックします。非線形伝達関数のいくつかの例は、softmaxとsigmoidです。たとえば、連続入力信号x(t)があるとします。この入力信号は、伝達関数y(t)を介して出力信号H(s)に変換されます。

_                      Y(s) = H(s)X(s)
_

上記のように、伝達関数H(s)は、変換によって入力X(s)の状態を新しい出力状態Y(s)に変更します。 H(s)を詳しく見ると、ニューラルネットワークの重みを表すことができます。したがって、H(s)X(s)は、単に入力信号とその重みの乗算です。次に、特定のレイヤー内のこれらの入力と重みのペアのいくつかが合計されて、別のレイヤーの入力が形成されます。つまり、ニューラルネットワークへの任意のレイヤーへの入力は、単にその入力と重みの伝達関数、つまり線形変換です。入力が重みによって変換されるためです。しかし、現実の世界では、問題は本質的に非線形です。したがって、入力データを非線形にするために、アクティベーション関数と呼ばれる非線形マッピングを使用します。アクティベーション関数は次のとおりです。特定のニューラル機能の存在を決定する意思決定関数。0と1の間にマッピングされます。ここで、0は機能が存在しないことを意味し、1は機能が存在することを意味します。残念ながら、重みに発生する小さな変化は反映できません。それは取ることができるだけなので、アクティベーション値で0または1のいずれかです。したがって、非線形関数は連続的であり、この範囲間で微分可能でなければなりません。
実際には、活性化を出力する前に、シグモイドが連続で微分であるため、最初にシグモイドを計算し、次にそれを活性化関数への入力として使用して、シグモイドの出力がその活性化しきい値よりも高いかどうかをチェックします。ニューラルネットワークは、-無限大から+正の無限大までの任意の入力を受け取ることができる必要がありますが、_{0,1}_または場合によっては_{-1,1}_の範囲の出力にマッピングできる必要があります。活性化関数の必要性。

2
chibole

私は機械学習分野の初心者でもあります。私が理解していることから...

伝達関数:伝達関数は正味重量を計算するため、コードを変更するか、伝達関数の前に計算を行う必要があります。タスクに応じて、さまざまな伝達関数を使用できます。

活性化関数:これは、しきい値を計算するために使用されます。つまり、ネットワークが出力を提供するタイミングです。計算結果がしきい値よりも大きい場合は、出力が表示されますが、そうでない場合は表示されません。

お役に立てれば。

1
SRQ

この図は正しいと思いますが、用語的には正確ではありません。

伝達関数には、ダイアグラムにアクティブ化関数と伝達関数の両方が含まれています。ダイアグラムで伝達関数と呼ばれるものは、通常、ネット入力関数と呼ばれます。正味入力関数は、入力に重みを追加し、正味入力を計算するだけです。これは通常、入力の合計に指定された重みを掛けたものに等しくなります。シグモイド関数、ステップ関数などの活性化関数がネット入力に適用され、出力が生成されます。

0
Bran