中間層はどのぐらいが良いのか...?
ディープラーニングのモデルを作っている時に、一番気にするパラメータは中間層の数だろう。
残念ながら、それについての一般的な正解は現時点ではない。
中間層の層数と各層のサイズが大きくなればなるほどネットワークの柔軟性が増す。
さらに、訓練集合における誤差を小さくできる可能性もある。しかし同時に学習済みネットワークは訓練データに含まれるノイズも学習してしまう。
ネットワークサイズがある限界に達すると、訓練データに対する誤差も増加し始める。
ここの部分は職人芸と呼ばれるようなところだ。
セオリーとしては、中間層の素子数を入力の数Nよりも大きくとり、1層ずつ増やしていき精度を見ていくのがいいだろう。
一般には、あらゆる連続な非線形関数は3層ニューラルネットワークで近似できるということが証明されている。
以下では、論文に記述されていたもの。