バックプロパゲーションニューラルネットワークにおける非線形活性化関数
1.はじめに
このチュートリアルでは、バックプロパゲーションアルゴリズムやその他の学習手順で最も一般的に使用される非線形活性化関数について学習します。
非線形関数の使用につながった理由は、前の記事で分析されています。
2。フィードフォワードニューラルネットワーク
バックプロパゲーションアルゴリズムは、完全に相互接続された フィードフォワードニューラルネットワーク(FFNN)で動作します。
構造を持つユニットの場合:
この関数は、入力の加重和の変換を実行します。
FFNNについては、線形モデルの記事で詳しく説明しています。
3。活性化関数ファミリーのガイド
例として、次の非線形関数を考えてみましょう。
線形関数に関する記事で行った考察から、平面(線形モデル)が図の関数を近似できないことは明らかです。
はじめに、「ニューロン」ではなく「ユニット」という用語を使用しました。 多くの場合、生物学的類似性は誤解を招く恐れがあります。
ニューラルネットワークは数学的および統計的手順であり、生物学的ニューラルネットワークとの類似性は限られています。 ただし、このアナロジーは状況によっては役立つ場合があります。ニューロンの出力について説明し、活性化関数として非線形関数の特定のファミリーを選択することを正当化します。
生物学的ニューロンは電気信号を送信します。 これは、細胞膜を介して軸索を介して下流のニューロンに伝播します。 電位差と電気信号は、イオンKとNa(活動電位)の濃度に変化があったときに、ニューロンが電気的平衡を再確立しようとした結果です。
このメカニズムの特徴と経時変化は、1952年にホジキンとハクスリーによって説明されました。彼はこの仕事で1963年にノーベル医学賞を受賞しました。
3.1. シナプス
あるニューロンから別のニューロンへの信号の伝達は、シナプス伝達との2つのタイプを介して行われます。 2つのニューロンが互いに接触している場合、電気信号が直接通過します(電気対合)。 2つのニューロンが接触しない場合、信号は化学神経伝達物質(化学シナプス)を使用して伝播します。
電気的対合は、2つの細胞間の物理的接触を考えると一般的に速く、双方向であり、伝統的に反射反応に関連しています。 ただし、このタイプの信号は変調されておらず、環境条件の変化に適応できません。
したがって、進化は、信号を増強または阻害することを可能にする一方向性の、典型的には高等動物における化学シナプスを生成した。
化学シナプスは電気シナプスよりも伝達率が低いですが、は可塑性と、学習につながる環境条件への適応、つまりニューロン接続のキャリブレーションを可能にします。
類推を強制したい場合、人工ニューラルネットワークの調整可能な重みは、生物学的化学シナプスに類似した数学的モデルです。
3.2. ステップ関数
生物学的ニューロンの出力はデジタルであり、発火するかどうかは関係ありません。
膜電位は非常に限られた時間で最大値に達します。 人工ニューラルネットワークのユニットの信号のモデリングに時間の概念を含めることで、非常に活発な研究分野であるスパイキングニューラルネットワークが生まれました。 信号の生成は、その値がしきい値を超えたために不連続な性質を持つ場合に発生します。
以下に、この動作、つまりステップ関数を示します。これは、生物学的ニューロンの活性化関数と同等と見なすことができます。
4.バックプロパゲーション
ここで、バックプロパゲーションの背後にある理論を簡単に扱いましょう。 優れた参考資料は、古典的なKroseとVanderSmagtの紙とBishopの本です。
4.1。普遍近似定理
バックプロパゲーションは、多層ニューラルネットワークをトレーニングするために開発したアルゴリズムです。
ただし、このタイプのネットワークの必要性は、普遍近似定理と矛盾しているようです。 この結果は、単一の隠れ層と非線形活性化関数を備えたネットワークが、実質的にすべての連続関数を近似できることを示しています。 最初のバージョンは、シグモイド活性化関数について1989年にCybenkoによって実証されました。
残念ながら、理論的な結果は1つであり、アプリケーションは別のものです。
- 単一層のネットワーク内のユニット数が、問題のサイズに応じて指数関数的に増加することを示すことができます。は適用できないか、場合によっては学習を実行できず、一般化スキルが不十分です。
- さらに、普遍近似定理は学習プロセスについて何も教えてくれません
さらなる研究により、元のチベンコの結果が洗練されました。
1991年に、Hornikは、それが活性化関数の特定の選択ではなく、ニューラルネットワークにユニバーサル近似器である可能性を与える多層フィードフォワードアーキテクチャ自体であることを示しました。 これらの考慮事項は、多層ニューラルネットワークに適用可能なバックプロパゲーションなどのアルゴリズムの検索を正当化します。
4.2。学習ルール
監視付きニューラルネットワークでは、ターゲットの測定データを使用して、特定の入力が与えられた場合のネットワークの出力を調整できます。
学習プロセスは、そのターゲットの可能な限り最良の予測を可能にするネットの重みの変化で構成されます。 このバリエーションは、ルールの適用によって発生します。
このタイプのモデルの事実上すべての学習ルールは、1949年にHebbによって提案されたHebbian学習ルールの変形です。 いくつかの例は次のとおりです。
ここで、重みはユニットとの間の接続を指します。
出力層の前の層の単位の出力が現在の単位の入力になることに注意してください()。
は学習率と呼ばれる比例定数であり、最適化するネットワークのパラメータの1つです。
は、出力ユニットに対して測定されたターゲットです。
最後のルールは、出力と目的の値の差に応じて重みの変化を実現し、線形活性化関数を使用してわずかな微分計算で取得できるという点で、特に直感的です。
4.3。デルタルール
測定データのデータセットのレコードを使用して、予測の良さの尺度としてネットワーク出力とターゲットの間の二乗誤差を使用する単一層のネットワークを想定します。
線形加重和である活性化関数によって与えられるネットワーク出力を使用して:
誤差の表現の要因は任意であり、微分プロセス中に単位係数を取得するのに役立ちます。
パターンの場合、デルタルールは重みの変動をエラー勾配に関連付けます。
負の符号は、重みを変化させて誤差を最小限に抑えようとしていることを示しています。このため、最急降下法とも呼ばれます。
導関数は連鎖律で計算できます:
エラーと出力の前の式から、次のようになります。
これが最終的な表現につながります。
4.4。クレジット割り当ての問題
上記の前の記事では、線形活性化関数を備えた多層ネットワークが、線形活性化関数を含むユニットを備えた1層ネットワークに減少することを確認しました。 この場合、前のセクションで導出されたデルタルールが適切な学習ルールです。
複数の層と非線形活性化関数を使用してネットワークの表現力を高めたい場合は、2つの任意の層を接続する重みの学習ルールを見つける必要があります。 出力ウェイトに接続されているウェイトについては、原則として前のセクションと同様の手順を仮定することができます。
ユニット出力とターゲットを比較することで、学習ルールを取得できます。 ただし、プリ出力レイヤーの場合、エラーを最小限に抑えるために重みをどのように変更しますか?
この場合、検索を指示するためのガイドとしてのターゲットの助けはありません。 さらに、隠れ層の重みの変化により、出力が下流層の入力になり、出力層に至るまで続きます。これは、出力層が可能な唯一の層であるため、問題があります。 target を使用して、すべての重みの全体的な変動がマイナーエラーを生成したかどうかを理解します。
この難しさはクレジット割り当て問題として知られており、現在ディープラーニングと呼ばれているものの開発に大きな障害をもたらしました。 つまり、 Rumelhart、Hinton、およびWilliamsがバックプロパゲーションアルゴリズムについて説明した今では古典的な記事を公開した1986年までです。 同様のアルゴリズムは1970年代から知られていますが、著者はそれを学習手順としてどのように使用できるかを示しました。
4.5。一般化されたデルタルール
デルタルールを一般化し、チェーンルールを使用して、隠れ層の重みの変化の式を取得するという考え方です。
2つの相互接続されたレイヤーの場合、およびを使用すると、加重和は次のように一般化されます。
ネットワークユニットの一般的な非線形活性化関数の使用:
連鎖律により、出力層と非表示層の単位について次の式を取得できます。
上記の式は、活性化関数の導関数を含むため、連続関数が必要です。
4.6。生物学的ニューロンから非線形人工ニューラルネットワークへ
これまでに行った考慮事項により、活性化関数として非線形数学関数を選択するための基準が得られます。 それらは、バックプロパゲーションで必要とされるように、連続的で微分可能でなければならず、生物学的ニューロンの出力の傾向を再現する必要があります。
シグモイド関数とReLUファミリーの2つの可能なカテゴリーを研究します。
5. シグモイド活性化関数
シグモイド関数は、すべての実数入力値に対して定義され、各点で非負の導関数を持つ、有界で微分可能な実数関数です。 ここにいくつかの重要なシグモイド関数とそれらの主な機能があります。
5.1. ロジスティック
ロジスティック関数の出力は次の範囲です。
勾配が滑らかであるという利点がありますが、計算コストが高くなるという欠点があります。
5.2. 双曲線タンジェント
双曲線接線には、ロジスティクス関数の長所と短所がありますが、次の範囲の出力があります。
5.3. Softmax
Softmaxは、分類問題、通常は出力層で使用できます。
5.4. 逆双曲線タンジェント( arctanh )
上記と似ていますが、使用量が少なくなります。
5.5. グーデルマン
グーデルマン関数は、複素数を明示的に使用せずに、循環関数と双曲線関数を関連付けます。
5.6. エラー関数
エラー関数は、ガウスエラー関数とも呼ばれます。 統計では、の非負の値、および平均0と分散erfで正規分布する確率変数は、次の範囲に入る確率です。
5.7. 一般化されたロジスティック
一般化されたロジスティック関数は、次のロジスティック関数に還元されます。
5.8. クマラスワミー機能
Kumaraswamy関数は、ロジスティック関数のもう1つの一般化です。 これは、次のロジスティック関数に還元されます。
5.9. Smoothstep関数
Smoothstep関数は次のとおりです。
5.10. 代数関数
そして最後に代数関数:
5.11. シグモイド活性化関数の問題
活性化関数としてリストされている関数を適用するには、通常、検討中の問題のデータセットを再スケーリングする必要があります。
たとえば、ロジスティック関数を使用する場合、関数の値が近似できるように、ターゲットを範囲内で正規化する必要があります。 この必要性は、シグモイド関数だけでなく、すべての活性化関数に共通しています。
ただし、これらの関数は、の値が大きい場合と小さい場合に飽和効果があり、ネットワークの分解能が低下します。
このメカニズムは、いわゆる勾配消失問題につながります。これは、特定の条件下での勾配のキャンセルであり、学習プロセスを妨げる可能性があります。 この欠点は、たとえばロジスティック関数またはの場合に、より狭い正規化間隔を使用することで軽減できます。
さらに、シグモイド関数は、一般に、計算量が多くなります。
6. 整流された線形ユニット。 ReLUファミリー
6.1. 一般的な特性
ReLUファミリには多くの利点があります。
- 生物学的妥当性
- より良い勾配伝播:両方向に飽和するシグモイド活性化関数と比較して、消失勾配問題が少なくなります
- 計算効率:比較、加算、乗算のみ
- スケール不変
次の図は、以下で説明するいくつかの機能のグラフィック表現を示しています。
6.2. ReLU
一次関数のように見えますが、ReLUには微分関数があり、バックプロパゲーションが可能です。
ただし、いくつかの問題があります。
場合によっては、ネットワーク内の多数のニューロンがデッド状態でスタックし、モデルの容量が効果的に減少する可能性があります。 この問題は通常、学習率の設定が高すぎる場合に発生します。 代わりにLeakyReLUを使用することで軽減できます。これにより、に小さな正の勾配が割り当てられます。
また、これは無制限の関数です。つまり、最大値または最小値がありません。
6.3. 漏れのあるReLU
Leaky ReLUは、負の部分に小さな勾配を設定することで、死にかけているReLUの問題を軽減し、負の値にバックプロパゲーションを適用できるようにします。
ただし、の一貫した予測はできません。
6.4. パラメトリックReLU
パラメトリックReLUを使用すると、Leaky ReLUのように任意の値を定義する代わりに、パラメーターaを学習プロセスに挿入できます。
6.5. 騒々しいReLU
もう1つは、NoisyReLUと呼ばれるReLUの拡張です。 主な違いは、出力には、平均と標準偏差がゼロのガウス確率密度によって生成されたノイズが含まれていることです。
6.6. ELU
指数線形単位(ELU)は、平均アクティベーションをゼロに近づけようとします。これにより、学習が高速化されます。 ELUは、ReLUよりも高い分類精度を得ることができます。
6.7. SoftplusまたはSmoothReLU
ReLU(Softplus / SmoothReLU)関数の滑らかな近似には、その導関数がロジスティック関数であるという注目すべき特徴があります。
6.8. スウィッシュ機能
Swish関数はGoogleによって開発され、ReLU関数と同じレベルの計算効率で優れたパフォーマンスを発揮します。
7. 複雑な非線形活性化関数
7.1. 複雑な問題
以前に検討したすべての活性化関数は実際のものです。 しかし、複雑な機能を持つモデルを使用するアプリケーション分野があります。
典型的な例は電磁システムであり、その多くは振幅と位相を持つある種の波動現象をモデル化しています。 複雑な性質は、波が周期関数であり、オイラーの公式から、虚数の指数で表すことができるという事実に由来しています。
虚数単位はどこですか。
架空の活性化関数を使用できる他のアプリケーション分野は、電磁波と光波、アナログおよびデジタル回路の電気信号です。 電子波; 超伝導体; 量子計算; 音波と超音波; 定期的な類型とメトリック; 再発ダイナミクスの高い安定性; カオスとフラクタル; クォータニオン。
7.2. 複素数値ニューラルネットワークの活性化関数
ニューラルネットワークの本質的に複雑な問題は、いくつかの方法で処理できます。 たとえば、モデルの実数成分と虚数成分を別々の出力単位として含むネットワークを、実数関数のみを使用して設計できますが、それらを直接処理することもできます。
トピックは非常に広いです。 重要な問題は、複雑な非線形活性化関数を利用するバックプロパゲーションの拡張を導き出すことが可能であり、その結果、いわゆる複雑な値のニューラルネットワーク(CVNN)が得られることです。
これらの活性化関数は、前のセクションで分析したいくつかのシグモイド関数の式を使用します。 ネットワークの各ユニットは複雑な出力を生成します。これを集約すると、次のレイヤーのユニットの複雑な入力になります。
通常、関数の2つの主要な形式、実想像型の活性化関数を検討します。
および振幅位相型の活性化関数:
ここで、は複素数の引数、およびその実数成分と虚数成分です。
8. 結論
このチュートリアルでは、バックプロパゲーションアルゴリズムで使用される非線形活性化関数の概要を説明しました。
数学関数とその特性の単純なリストを作成する代わりに、論理的な観点からテキストの処理につながる問題とニーズを強調して、質問に一貫したアプローチを提供しようとしました。
架空の関数など、あまり知られていない拡張機能により、最近では、フィードフォワードニューラルネットワークとバックプロパゲーションアルゴリズムのアプリケーションを新しい問題に拡張することが可能になりました。
また、バックプロパゲーション以外のアルゴリズムを使用してネットワークをトレーニングするために、他の多くの非線形活性化関数を発見することもできます。 たとえば、放射基底関数(RBF)はガウス関数を使用します。 ただし、この記事では、バックプロパゲーションメカニズムに焦点を当てました。