ニューラルネットワークの最適な層数は?


13

ニューラルネットワーク(フィードフォワード、バックプロパゲーション、RNN)の実装中に作成する最適なレイヤー数を決定する方法

回答:


8

Pruningニューラルネットワークと呼ばれる手法があり、これは同じ目的でのみ使用されます。

剪定は、隠れ層の数で行われます。このプロセスは、決定木の枝刈りプロセスに非常に似ています。プルーニングプロセスは次のように行われます。

  • 標準のトレーニングアルゴリズムを使用して、大規模で密に接続されたネットワークをトレーニングする
  • 訓練されたネットワークを調べて、重みの相対的な重要性を評価します
  • 最も重要でない重みを削除します
  • 剪定されたネットワークを再訓練する
  • 満足するまで手順2〜4を繰り返します。

ただし、ニューラルネットのプルーニングには最適化された方法いくつかあり、非常に活発な研究分野でもあります。


対称的なアプローチは、ネットワークアーキテクチャに適用される一般的な「グリッド検索」です。小規模に(非常に高速に)開始し、より大きなアーキテクチャを自動的に試行します。このすべてが...けれども、ただ強引です
エリックプラトン

@EricPlaton +1グリッド検索。MLアルゴのハイパーチューニングに非常に便利です。しかし、それは計算的に非常に集中的ではありませんか?
-Dawny33

1
はい、高価です。しかし、私たちが小さく始めることができるとき、最初の段階はかなり速く行くことができて、何を目指すべきかについてより良い考えを与えることができます。
エリックプラトン

@EricPlaton「グリッド検索」は、それ自身の別の答えに値するでしょう:)
Dawny33

私はそれについて考えましたが、それから2つの選択肢があり、おそらく「同じように正しい」答えがあります...読者にとって最善は答えを1つとしてまとめることだと思いました。
エリックプラトン

0

ハイパーパラメーターの関数として損失(またはその他)を最適化する一般的な方法として、ベイジアンハイパーパラメーターの最適化を見ることができます。ただし、一般的にネットワークが深いほど良いため、レイヤ数の関数として損失を最適化することはあまり楽しいことではありません。

グリッド検索と少しの常識(多くの例を見て学んだように)が最善の策です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.