ニューラル ネットワーク: インタラクティブな演習

以下のインタラクティブな演習では、Terraform の内部動作について詳しく見ていきます。 生成します。まず、パラメータとハイパーパラメータが ネットワークの予測に影響します次に、学習した内容を活用して、 ニューラル ネットワークです。

演習 1

次のウィジェットは、以下の構成でニューラル ネットワークをセットアップしています。

  • 0.000.000.00 を含む 3 つのニューロンを持つ入力レイヤ
  • 4 つのニューロンを持つ隠れ層
  • 1 個のニューロンを持つ出力層
  • ReLU 活性化関数を適用: 出力ノードは、すべての隠れ層ノードと

ネットワークの初期設定を確認します(注: ▶️ または >| ボタンなど)をクリックし、ウィジェットの下でタスクを完了します。

タスク 1

ニューラル ネットワーク モデルに入力される 3 つの特徴量の値はすべて 0.00。ネットワーク内の各ノードをクリックして、初期化された 使用できます。再生ボタン(▶️)を押す前に、次の質問に回答してください。

モデルの出力値から 正か負か、0 か?
正の出力値
負の出力値
出力値 0

次に、ネットワークの上にある再生ボタン(▶️)をクリックして、隠れ層をすべて視聴します。 出力ノードの値が入力されます。上記の回答は正しかったですか?

こちらをクリックして説明をご覧ください

得られる正確な出力値は、重み および bias パラメータはランダムに初期化されます。ただし、各ニューロンは は、値が 0 で、入力レイヤを計算するために使用される 隠れ層のノード値はすべてゼロになります。たとえば、最初の 隠れ層ノードの計算は次のようになります。

y = ReLU(w11×0.00 + w21×0.00 + w31×0.00 + b)

y = ReLU(b)

したがって、各隠れ層ノードの値は、モデルの ReLU 値と等しくなります。 bias(b): b が負の場合は 0、b が 0 の場合は b 自体 評価します

出力ノードの値は、次のように計算されます。

y = ReLU(w11×x11 + w21×x21) +w31×x31 + w41×41 + b)

タスク 2

ニューラル ネットワークを変更する前に、次の質問に答えてください。

隠れ層をもう 1 つ追加した場合 最初の隠れ層の後にニューラル ネットワークに与えられます。この新しいレイヤ 3 ノードは、 同じ入力パラメータと重み/バイアス パラメータを計算 どのような影響を受けるか
すべてのノード 入力ノードは除きます。
クラスタ内のノードだけが、 最初の隠れ層
出力ノードのみ

次に、次のように 3 つのノードを持つ新しい隠れ層を追加するようにニューラル ネットワークを変更します。

  1. 1 hidden layer」というテキストの左側にある [+] ボタンをクリックして、新しいレイヤを追加します。 出力層の前に配置されます。
  2. 新しい非表示レイヤの上にある [+] ボタンを 2 回クリックして、ノードをさらに 2 つ追加します。 渡します。

上記の回答は正しかったですか?

こちらをクリックして説明をご覧ください

出力ノードのみが変更されます。このニューラル ネットワークの推論は、 「フィードフォワード」(開始から終了までの計算の進行状況)、加算 新しいレイヤがネットワークに追加されると、その新しいレイヤが レイヤのみを認識します。

タスク 3

ネットワークの最初の隠れ層にある 2 番目のノードを(上から)クリックします。 表示されます。ネットワーク構成を変更する前に、 質問です。

Deployment の 重み w12(最初の入力ノード x1 の下に表示) クラスタ内のノードが計算に影響を与える可能性がある
なし
2 番目のノードは、 隠れ層、2 番目の隠れ層のすべてのノード、 出力ノードを指定します。
クラスタ内のすべてのノードは、 第 1 隠れ層、第 2 隠れ層、出力層です。

次に、重み w12 のテキスト フィールド( 最初の入力ノード x1)を指定し、値を 5.00 に変更して Enter キーを押します。 グラフの更新を確認します。

答えは正しかったですか?答えを確認するときは注意が必要です。たとえば、ノードに 変化しないということは、基になる計算は変化していないということですか?

こちらをクリックして説明をご覧ください

最初の隠れ層で影響を受ける唯一のノードは 2 番目のノード( クリックされたもの)が表示されます。最初のノードの他のノードの値の計算は、 隠れ層はパラメータとして w12 を含まないため、 表示されます。第 2 隠れ層のすべてのノードは影響を受けます。 計算は、最初の列にある 2 番目のノードの値に 隠されています。同様に、出力ノードの値も影響を受けます。これは、 計算は、第 2 隠れ層のノードの値に依存します。

答えは「なし」だと思ったかクラスタ内のノード値は 重み値を変更したときにネットワークが変化したでしょうか。なお、基盤となる ノードの計算は、ノードの値を変更せずに変更される場合があります。 (例:ReLU(0) と ReLU(–5) はどちらも出力 0 になります。 ネットワークへの影響について ノードの値を確認します。計算結果も確認するようにしてください。

演習 2

[特徴クロス演習] カテゴリデータ モジュールでは、 非線形データを適合させるための特徴クロスを手動で構築しました。 ここで、モデルによって学習内容を自動的に学習するニューラル ネットワークを トレーニング中に非線形データを適合させる方法を 見てきました

タスク: ニューラル ネットワークを構成して、オレンジ色の点と 損失は 0.2 未満に抑えられており、 トレーニングデータとテストデータです

Instructions:

以下のインタラクティブ ウィジェットの内容:

  1. ニューラル ネットワークのハイパーパラメータを、いくつかのテスト 次のように構成します。 <ph type="x-smartling-placeholder">
      </ph>
    • 非表示のレイヤを追加または削除するには、[+] ボタンと [-] ボタンをクリックします。 隠れ層の見出しの左側に配置されます。
    • [+] と [-] をクリックして、隠れ層のニューロンを追加または削除する 非表示のレイヤの列の上にボタンを追加します。
    • [学習率] から新しい値を選択して、学習率を変更します。 プルダウンを使ってみましょう。
    • 活性化関数を変更するには 図の上にある [有効化] プルダウン。
  2. 図の上にある再生ボタン(▶️)をクリックして、ニューラル ネットワークをトレーニングします。 モデルを作成します。
  3. トレーニング データとして適合するモデルの可視化を観察する 進捗を確認できます。 損失のテストと 次のトレーニング損失値: [Output] セクションに表示されます。
  4. モデルのテストデータとトレーニング データの損失が 0.2 を下回らない場合は、 [Reset] をクリックし、別の設定セットで手順 1 ~ 3 を繰り返します。 設定。望ましい結果が得られるまでこの手順を繰り返します。

ソリューションについては、こちらをクリックしてください

次の方法で、テストとトレーニングの両方の損失を 0.2 未満に抑えることができました。

  • 3 つのニューロンを含む隠れ層を 1 つ追加しています。
  • 学習率には 0.01 を選びます。
  • ReLU の活性化関数を選択する。