活性化関数ハードシグモイド



Activation Function Hard Sigmoid

標準のシグモイドは、exp()関数の計算が必要なため、計算に時間がかかります。これは、複雑なコードを介して実行されます(CPUアーキテクチャで利用可能な場合はハードウェア支援が必要です)。多くの場合、高精度のexp()の結果は必要なく、近似で十分です。これは、勾配降下/最適化ニューラルネットワークの多くの形式に当てはまります。結果が小さな誤差に匹敵する限り、正確な値は「球場」値ほど重要ではありません。

これは、シグモイド、「超高速」シグモイド、および「ハード」シグモイドのプロットです。
シグモイド(青)が滑らかであるのに対し、超高速(緑)と硬い(赤)のシグモイドは区分的に線形であることに注意してください。実際、これらの近似は、カットポイントのペア間の線形補間として計算されます。線分のセットを形成するいくつかの点で青い折れ線グラフに接触する緑の折れ線グラフに注意してください。この近似の結果の計算は、exp()と除算を介してS状結腸を実装するルーチンを呼び出すよりも大幅に高速です。必要なのは、どの線形セグメントxが存在するかを判別し、単純な補間を行うことだけです。近似は次のとおりです。近似ですが、エラーは十分に低いため、多くのANNアルゴリズムは近似で正常に実行されます。



ハードシグモイドの場合、カットポイントは少なくなります。実際には2つしかないため、結果がどのセグメントにあるかを確認するために2つの比較のみが必要であり、他の2つのセグメントは一定であるため、中央のセグメントに対して1つの補間のみが必要です。言い換えれば、0と定数1:非常に高速です。誤差は超高速シグモイドの場合よりも大きくなりますが、特定のケースによっては、数値結果が大幅に変わらない場合があります。実際、分類の問題の場合、エラーが発生することはめったにありません(エラーが発生した場合、さらにトレーニングを行うと修正される傾向があります。トレーニングサイクルは標準のシグモイドよりもはるかに高速であるため、実行できる追加のトレーニングです)。

追加の詳細として、正則化の形式としてS状結腸を計算するときに区分的補間を使用する効果を確認できます。これは、適切な状況では、有用な特徴検出器の作成に大いに役立ちます。問題が関数近似である場合は、より極端な近似(ハードシグモイドなど)を使用しないでください。エラーはゆっくりと減少し、目標に到達する前に横ばいになる可能性があります。ただし、繰り返しになりますが、分類を行う場合は通常、まったく問題ありません。