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

前の演習では、メッセージにタグを追加する 非線形性を表現するのに十分ではありませんでした。 線形演算に対して実行される線形演算は、依然として線形です。

学習するニューラル ネットワークをどのように構成すればよいか どうでしょうか非線形関数をなんらかの方法で モデルに取り込むこともできます

少し見覚えがあるかもしれませんが、それは実際に 線形モデルの出力に非線形数学演算を 説明します。[ロジスティック回帰] セクション そこで、線形回帰モデルを適応させて、0 から 出力値(確率を表す)を 1(確率を表す)に シグモイド関数

ニューラル ネットワークにも同じ原理を適用できます。モデルについて復習しましょう。 演習 2 よりも前のステップで、 各ノードの値を出力するために、まずシグモイド関数を適用します。

[>|] ボタンをクリックして、各ノードの計算をステップごとに確認できます。 (再生ボタンの右側に表示されます)。実行された数学演算を確認する グラフの下の [Calculations] パネルで各ノード値を計算します。 各ノードの出力は、トレーニング データの 組み合わせられ、出力値は 0 と 1 の間で押しつぶされました。

ここでシグモイドは 活性化関数 ニューラル ネットワークでは、ニューロンの出力値の非線形変換です。 次のタスクの計算に入力として渡されます。 レイヤで行われます。

活性化関数を追加したので、レイヤを追加するとインパクトが強くなります。 非線形性に非線形性を積み重ねることで、モデル化が非常に複雑になる 入力と予測出力の関係の変化を示します簡単に言うと、各レイヤには より複雑で高水準な関数を、未加工のデータの できます。この仕組みについて理解を深めたい場合は、 Chris Olah の優れたブログ投稿をご覧ください。

一般的な活性化関数

活性化関数としてよく使用される 3 つの数学関数は、 シグモイド、tanh、ReLU です

シグモイド関数(前述)は、入力に対して次の変換を実行します。 $x$、0 と 1 の間の出力値を生成:

\[F(x)=\frac{1} {1+e^{-x}}\]

この関数をプロットすると、次のようになります。

図 4. シグモイド関数のプロット:
      x が負に近づくにつれて漸近的に X 軸に近づく
      x が無限大に近づくと 1 になります。
図 4. シグモイド関数のプロット。

tanh(双曲線正接の略)関数は、入力 $x$ を –1 と 1 の間の出力値が生成されます。

\[F(x)=tanh(x)\]

この関数をプロットすると、次のようになります。

図 5. tanh 関数のプロット:
      S 字曲線は、シグモイド関数よりも急勾配
      x が負の無限大に近づくと -1 に、x に近づくと 1 に近づく
      あります。
図 5. tanh 関数のプロット。

正規化線形ユニット活性化関数(ReLU、 次のアルゴリズムを使用して出力を変換します。

  • 入力値 $x$ が 0 未満の場合は 0 を返します。
  • 入力値 $x$ が 0 以上の場合は、入力値を返します。

ReLU は max() 関数を使用して数学的に表現できます。

$$F(x)=max(0,x)$$

この関数をプロットすると、次のようになります。

<ph type="x-smartling-placeholder">
</ph> 図 6. ReLU 関数のプロット: 水平線
      x 軸に沿って負の無限大から 0 まで移動し、それが対角線になります
      傾き 1(y=x)で 0 から無限大まで右に上っていきます。 <ph type="x-smartling-placeholder">
</ph> 図 6.ReLU 関数のプロット。

ReLU はしばしば平滑化関数よりも活性化関数として シグモイドや tanh のような関数よりも 勾配消失の問題 ニューラル ネットワーク トレーニングで取り上げます。ReLU の方が これらの関数よりもはるかに効率的です

その他の活性化関数

実際には、あらゆる数学関数が活性化関数として機能します。 \(\sigma\) が活性化関数を表すとします。 ネットワーク内のノードの値は 数式:

$$\sigma(\boldsymbol w \cdot \boldsymbol x+b)$$

Keras は、すぐに使用できる多くのサポートを 活性化関数 それでも、ReLU から始めることをおすすめします。

概要

次の動画は、これまでに学んだことのまとめです。 詳しく見ていきます。

これでモデルには、ユーザーが通常使用するものと同様の標準コンポーネントがすべて ニューラル ネットワークを指す場合、

  • ニューロンに似たノードの集合。レイヤで編成されます。
  • 各ニューラル ネットワーク間の接続を表す重みのセット その下のレイヤで作成されます。その下のレイヤは、 ニューラル ネットワーク層などに分けられます。
  • ノードごとに 1 つずつ、一連のバイアス。
  • レイヤ内の各ノードの出力を変換する活性化関数。 層によって活性化関数が異なる場合があります。

注意点: ニューラル ネットワークは、必ずしも ニューラル ネットワークは、有効な特徴量クロスを 多くの場合 うまくいきます