7

マルチレイヤーをトレーニングする方法を理解しようとしています。しかし、適切なネットワーク アーキテクチャ (つまり、ネットワークの各層のノード/ニューロンの数) を決定する方法を理解するのに苦労しています。

特定のタスクのために、それぞれ 3 つの状態の 1 つを入力できる 4 つの入力ソースがあります。これは 4 つの入力ニューロンが 0、1、または 2 のいずれかを発火することを意味すると思いますが、私の知る限り、入力はバイナリのままにしておくべきでしょうか?

さらに、隠れ層のニューロンの量を選択する際に問題が発生しています。どんなコメントも素晴らしいでしょう。

ありがとう。

4

2 に答える 2

10

上記のダグの答えには、いくつかの点で同意しません。

4 つの離散 (3 種類のカテゴリ) 入力があります。4 つの概念入力のそれぞれに 1-of-3 エンコーディングを使用して、12 のバイナリ入力として表現する必要があります (そうしない強い理由がない限り)。したがって、入力が [2,0,1,1] の場合、ネットワークは次のように指定されます。バイアスのためですが、最も賢明なニューラルネットの実装ではそれは必要ありません。

隠しユニットの数をいくつか変えてみてください。入力層のサイズよりも小さい隠れ層のサイズに制限する必要はありませんが、それを大きくする場合は、おそらく L2 または L1 の重み減衰を使用して重みを規則化するように注意する必要があります。トレーニング中 (ホールドアウトされた検証セットのエラーが改善されなくなったら、トレーニングを停止します)。

于 2010-04-30T21:29:44.620 に答える
9

多層パーセプトロンの許容可能なネットワーク構造を決定することは、実際には簡単です。

  1. 入力レイヤー: データに含まれるフィーチャ/ディメンションの数、つまり、各データ行の列数。これに 1 (バイアス ノード用) を追加すると、それが最初の (入力レイヤー) のノードの数になります。

  2. 出力層: MLP は「マシン」モードまたは「回帰」モード (ここでは統計的な意味ではなく機械学習で使用される「回帰」) で実行されていますか?つまり、MLP はクラス ラベルまたは予測値を返しますか? 後者の場合、出力レイヤーには単一のノードがあります。前者の場合、出力層にはクラス ラベルと同じ数のノードがあります。たとえば、結果が各インスタンスに「不正」または「不正ではない」のいずれかのラベルを付けることである場合、それは 2 つのクラス ラベルであるため、出力層の 2 つのノードになります。

  3. 隠しレイヤー: これら 2 つ (入力と出力) の間には、明らかに隠しレイヤーがあります。常に単一の非表示レイヤーから始めます。では、H\ノードの数は? 経験則は次のとおりです。非表示レイヤーの (初期) サイズを、入力レイヤーのノード数よりもわずかに大きいノード数に設定します。入力レイヤーよりも少ないノードを持つ場合と比較して、この余分な容量は、数値最適化ルーチン (勾配降下法など) の収束に役立ちます。

要するに、ネットワーク アーキテクチャの 3 つの層から始めます。最初の (入力) と最後の (出力) のサイズは、それぞれデータとモデルの設計によって固定されます。ほとんどの場合、入力層よりわずかに大きい非表示層は、開始するのに適した設計です。

したがって、あなたの場合、開始する適切なネットワーク構造は次のようになります。

入力層: 5 ノード -->隠れ層: 7 ノード -->出力層: 3 ノード

于 2010-04-25T11:32:22.337 に答える