質問: ニューラルネットワークで入力層・中間層・出力層があるわけですが、入力層をインプットとして出力層を推定するモデリングを考えていくのが基本だろうと思います。 そこで質問なのですが、出力層というのアウトプットとして欲しいものであり、入力層はそれを説明するに足りる情報だとみなすことができるように思います。という風に考えると入力層は説明には足りない数だとなっていた場合、十分学習した後、アウトプットはどのように変化していくものでしょうか。不安定とか発散とかそういう結果になるのでしょうか。また、正しくモデリングするためには入力層はある程度の数が必要ということになるのでしょうか。つまり必要な数よりも少ないとダメだけど、少々多いのは構わないということになるのでしょうか。それともモデリングの対象ごとにいろいろ違うということになるものでしょうか。また、入力層として必要なデータは理屈で考えて因果関係が説明できるものから選ぶというのが基本なのでしょうか。”風が吹けば桶屋が儲かる”ということで、風のデータは入力層に必ず含め、桶屋の収入をアウトプットとするという風にする、ということですが。 よろしくお願いします。
回答: ご自身で書かれている通り入力層には、説明変数を配置します。 説明変数は因果関係を説明する必要はなく、単なる相関であってもかまいません。 説明変数が不足していた場合には、一意対応にならないデータを学習する危険性があるので、モデルはどちらともつかない結果を出すであろうと考えられます。 入力層の数(入力変数の数)は、多ければいいというものではなく、学習させるデータ量によります。 学習させるデータ量が実用上無限に近ければどれだけ説明する変数を増やしても良いですが、学習させるデータがすくない場合には、説明変数を絞り込むほうが良いです(統計の問題です)。 ニューラルネットモデルは、因果関係を学習することもできるし、風が吹けば桶屋が儲かるというような相関(があれば)も学習できます。 後者には相関がない場合が多いと思われるので、入出力に因果関係(明確であるかないかを問わず)があるほうがモデルとして構築しやすいでしょう。 なお、ニューラルネットは、簡単に云ってしまえば単なるカーブフィットの数式モデルなので、数式に乗らないような関係はモデル化できません。 なお、モデルをグラフ化したときに凹凸があまりに多いような場合は、過学習だと理解しましょう。 入力変数は、必要に応じて予備換(対数変換など)してから入力するほうがいい場合が多いです。 入力に対して出力がなるべくリニアに近くなるようにモデルを作るよう入力変数を予備変換するとわかりやすい結果が出ます。 具体的な問題があれば再度ご質問ください。