前の演習では、メッセージにタグを追加する 非線形性を表現するのに十分ではありませんでした。 線形演算に対して実行される線形演算は、依然として線形です。
学習するニューラル ネットワークをどのように構成すればよいか どうでしょうか非線形関数をなんらかの方法で モデルに取り込むこともできます
少し見覚えがあるかもしれませんが、それは実際に 線形モデルの出力に非線形数学演算を 説明します。[ロジスティック回帰] セクション そこで、線形回帰モデルを適応させて、0 から 出力値(確率を表す)を 1(確率を表す)に シグモイド関数。
ニューラル ネットワークにも同じ原理を適用できます。モデルについて復習しましょう。 演習 2 よりも前のステップで、 各ノードの値を出力するために、まずシグモイド関数を適用します。
[>|] ボタンをクリックして、各ノードの計算をステップごとに確認できます。 (再生ボタンの右側に表示されます)。実行された数学演算を確認する グラフの下の [Calculations] パネルで各ノード値を計算します。 各ノードの出力は、トレーニング データの 組み合わせられ、出力値は 0 と 1 の間で押しつぶされました。
ここでシグモイドは 活性化関数 ニューラル ネットワークでは、ニューロンの出力値の非線形変換です。 次のタスクの計算に入力として渡されます。 レイヤで行われます。
活性化関数を追加したので、レイヤを追加するとインパクトが強くなります。 非線形性に非線形性を積み重ねることで、モデル化が非常に複雑になる 入力と予測出力の関係の変化を示します簡単に言うと、各レイヤには より複雑で高水準な関数を、未加工のデータの できます。この仕組みについて理解を深めたい場合は、 Chris Olah の優れたブログ投稿をご覧ください。
一般的な活性化関数
活性化関数としてよく使用される 3 つの数学関数は、 シグモイド、tanh、ReLU です
シグモイド関数(前述)は、入力に対して次の変換を実行します。 $x$、0 と 1 の間の出力値を生成:
\[F(x)=\frac{1} {1+e^{-x}}\]
この関数をプロットすると、次のようになります。
tanh(双曲線正接の略)関数は、入力 $x$ を –1 と 1 の間の出力値が生成されます。
\[F(x)=tanh(x)\]
この関数をプロットすると、次のようになります。
正規化線形ユニット活性化関数(ReLU、 次のアルゴリズムを使用して出力を変換します。
- 入力値 $x$ が 0 未満の場合は 0 を返します。
- 入力値 $x$ が 0 以上の場合は、入力値を返します。
ReLU は max() 関数を使用して数学的に表現できます。
この関数をプロットすると、次のようになります。
<ph type="x-smartling-placeholder">ReLU はしばしば平滑化関数よりも活性化関数として シグモイドや tanh のような関数よりも 勾配消失の問題 ニューラル ネットワーク トレーニングで取り上げます。ReLU の方が これらの関数よりもはるかに効率的です
その他の活性化関数
実際には、あらゆる数学関数が活性化関数として機能します。 \(\sigma\) が活性化関数を表すとします。 ネットワーク内のノードの値は 数式:
Keras は、すぐに使用できる多くのサポートを 活性化関数 それでも、ReLU から始めることをおすすめします。
概要
次の動画は、これまでに学んだことのまとめです。 詳しく見ていきます。
これでモデルには、ユーザーが通常使用するものと同様の標準コンポーネントがすべて ニューラル ネットワークを指す場合、
- ニューロンに似たノードの集合。レイヤで編成されます。
- 各ニューラル ネットワーク間の接続を表す重みのセット その下のレイヤで作成されます。その下のレイヤは、 ニューラル ネットワーク層などに分けられます。
- ノードごとに 1 つずつ、一連のバイアス。
- レイヤ内の各ノードの出力を変換する活性化関数。 層によって活性化関数が異なる場合があります。
注意点: ニューラル ネットワークは、必ずしも ニューラル ネットワークは、有効な特徴量クロスを 多くの場合 うまくいきます