問題タブ [activation-function]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - カスタム シグモイド活性化関数
そこで、Keras を使用して畳み込みニューラル ネットワークを実装しています。デコード トポロジの最後には、シグモイド アクティベーションを備えた Conv2D レイヤーがあります。
基本的に、シグモイドの実装を変更したいのですが、私の目標は、シグモイド関数が 0.5 未満の値を取得する場合は 0 を返し、0.5 以上の値を取得する場合は 1 を返すバイナリ型のアクティベーションにすることです。
Tensorflow 実装内を検索すると、シグモイドが次のようなものであることがわかりました。
gen_math_ops の戻り値を操作して、その値を 0.5 のしきい値と比較するのに問題があります。tensor 型の制限のために if が使用できないことはよくあることですが、これをどのように解決すればよいでしょうか?
neural-network - ReLU が畳み込みニューラル ネットワークのアクティベーション ユニットとして使用されるのはなぜですか?
私は CNN を使用して画像を分類しようとしていますが、私が見る限り、ReLu は各畳み込み層のアクティベーション ユニットとして人気があります。私の理解に基づいて、ReLU はすべての正の画像強度を保持し、負の画像強度を 0 に変換します。私にとって、それは処理ステップのようなものであり、実際には「起動」ステップではありません。では、ここで ReLU を使用する目的は何ですか?
neural-network - 勾配降下法に relu を使用することの影響
relu 活性化関数に導関数が含まれていないという事実は、どのような影響がありますか?
Numpy で ReLU 関数を実装する方法relu を最大 (0 , 行列ベクトル要素) として実装します。
これは、勾配降下法では relu 関数の微分をとらないということですか?
アップデート :
RELU を使用したニューラル ネットワークのバックプロパゲーションから
このテキストは理解に役立ちます :
ReLU 関数は次のように定義されます。 x > 0 の場合、出力は x、つまり f(x) = max(0,x) です。
したがって、導関数 f '(x) については、実際には次のようになります。
x < 0 の場合、出力は 0 です。x > 0 の場合、出力は 1 です。
導関数 f '(0) は定義されていません。したがって、通常は 0 に設定するか、アクティベーション関数を小さな e の場合は f(x) = max(e,x) に変更します。
一般的に: ReLU は、整流器活性化機能を使用するユニットです。つまり、他の隠れ層とまったく同じように機能しますが、tanh(x)、sigmoid(x)、または使用するアクティベーションを除いて、代わりに f(x) = max(0,x) を使用します。
シグモイド アクティベーションを使用して動作する多層ネットワークのコードを記述した場合、文字通り 1 行の変更になります。順伝播または逆伝播については、アルゴリズムの変更はありません。単純なモデルがまだ機能していない場合は、戻って最初から始めてください。それ以外の場合、あなたの質問は実際には ReLU に関するものではなく、NN 全体の実装に関するものです。
しかし、ニューラル ネットワークのコスト関数は通常、活性化関数の導関数を使用するため、これにはまだ混乱が残ります。