こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

ニューラルネットワークの入力層の選択

ニューラルネットワークで入力層・中間層・出力層があるわけですが、入力層をインプットとして出力層を推定するモデリングを考えていくのが基本だろうと思います。
そこで質問なのですが、出力層というのアウトプットとして欲しいものであり、入力層はそれを説明するに足りる情報だとみなすことができるように思います。という風に考えると入力層は説明には足りない数だとなっていた場合、十分学習した後、アウトプットはどのように変化していくものでしょうか。不安定とか発散とかそういう結果になるのでしょうか。また、正しくモデリングするためには入力層はある程度の数が必要ということになるのでしょうか。つまり必要な数よりも少ないとダメだけど、少々多いのは構わないということになるのでしょうか。それともモデリングの対象ごとにいろいろ違うということになるものでしょうか。また、入力層として必要なデータは理屈で考えて因果関係が説明できるものから選ぶというのが基本なのでしょうか。”風が吹けば桶屋が儲かる”ということで、風のデータは入力層に必ず含め、桶屋の収入をアウトプットとするという風にする、ということですが。
よろしくお願いします。

投稿日時 - 2019-09-18 13:45:06

QNo.9658087

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

ご質問の内容を私なりに理解して書き直してみました。

多入力1出力(MISO=Multiple-Input Single Output)モデルを想定する。

(1)入力変数相互に関連がなく全て独立である場合
(2)入力変数の一部は完全に他の入力変数から独立しており、その他は相互に従属関係にある

ご質問者は(2)の問題を複雑にしすぎていて、そのままでは理解が難しいと思いますので、独立の入力変数と従属の入力変数のちがいを書きます。

(a)入力変数が互いに独立な場合
y=f(x1,x2)
入出力間のゲイン
G1=∂y/∂x1
G2=∂y/∂x2
(b)入力変数相互に関係がある場合
単純のため、x2=x1という事例を考えます。
y=f(x1,x2)=f(x1,x1)
G=∂y/∂x1 (式の中のx2はすべてx1に置き換えられた状態)
これが、x2を式の中にそのまま残して(a)と同じようにすると、ゲインが正しくなりません。

NNモデルの場合、ゲインの考え方が非常に重要です。
NNが廃れてしまった理由は、入出力の関係の結果だけに注目して本来の入出力間の関連を軽視したからだと思います。

(a)に戻ると、
f(x1+h,x2)≒f(x1,x2)+h ∂f/∂x1
のように近傍の近似モデルができます(Taylorの定理)。
入力変数相互に相関などがあると、このような近似モデルがうまくいきません。

NNは、数式的にはこんなものだとザクッと考えた上で、疑問に思われている具体的モデルを考えます。

>東京のラーメンの売り上げが、ニューヨークの美術館の来場者数で説明できたらおかしいわけですね。

これは、
G=∂y/∂x=0
という関係に相当します。
相関を直接見ると、入力軸(横軸)のある一定値に対して、出力値がタテにばらついている状態。

>東京の気温が大阪の気温で説明できる
これは、説明できるのではなく、気温が決まる条件の結果そうなっているだけだと思います。
こういうモデルはNNを使うよりもカオスモデルのほうがいいでしょう。

直接の解答にはなっていませんが、モデルを作る目的別に考えてみてはいかがでしょうか?
出力を知りたいだけ   → 入力変数相互の関連については考えなくて良い
入出力の関係を知りたい → 独立な入力変数だけでモデルを構成する

投稿日時 - 2019-09-25 06:42:44

ANo.1

ご自身で書かれている通り入力層には、説明変数を配置します。
説明変数は因果関係を説明する必要はなく、単なる相関であってもかまいません。
説明変数が不足していた場合には、一意対応にならないデータを学習する危険性があるので、モデルはどちらともつかない結果を出すであろうと考えられます。
入力層の数(入力変数の数)は、多ければいいというものではなく、学習させるデータ量によります。
学習させるデータ量が実用上無限に近ければどれだけ説明する変数を増やしても良いですが、学習させるデータがすくない場合には、説明変数を絞り込むほうが良いです(統計の問題です)。
ニューラルネットモデルは、因果関係を学習することもできるし、風が吹けば桶屋が儲かるというような相関(があれば)も学習できます。
後者には相関がない場合が多いと思われるので、入出力に因果関係(明確であるかないかを問わず)があるほうがモデルとして構築しやすいでしょう。
なお、ニューラルネットは、簡単に云ってしまえば単なるカーブフィットの数式モデルなので、数式に乗らないような関係はモデル化できません。
なお、モデルをグラフ化したときに凹凸があまりに多いような場合は、過学習だと理解しましょう。
入力変数は、必要に応じて予備換(対数変換など)してから入力するほうがいい場合が多いです。
入力に対して出力がなるべくリニアに近くなるようにモデルを作るよう入力変数を予備変換するとわかりやすい結果が出ます。
具体的な問題があれば再度ご質問ください。

投稿日時 - 2019-09-23 13:07:37

お礼

回答ありがとうございます。NNでの入力と出力の変数の選択としては、因果関係がハッキリしているもの、ハッキリしてはいないけどその方向にあるもの(天気は西から東に移っていくので入力:西日本の気温と出力:東日本の気温)、全く因果関係がないものです。複数の入力層すべて全く因果関係がないものだとしたらどうなるのかなと思うのですが。こういうものはフェイクデータで試してみることができると思います。出力y, 入力候補にx1,x2,x3,x4,x5としておき、実はy=f(x1,x2)となっていたとします。このような場合、入力層が3つある場合、その3つのうち2つをx1,x2とする、1つだけx1かx2とし残りがx3,4,5から2つとする、無関係なx3,4,5入力層とする、というパターンですね。どういう違い出てくるものでしょうか。x3,4,5を選択していたら学習すればするほど誤差が大きくなるとかですが。NNの面白さというか、その真価は利用者に考えさせないというところにあるように思っていました。でもそれではダメでやっぱり事前にちゃんと検討したものでやってください、ということになるのでしょうか。私の希望としては、説明できる可能性がある入力層を選択していればOKで、逆に絶対あり得ない入力層はダメという程度でいい、ということなのですが。東京のラーメンの売り上げが、ニューヨークの美術館の来場者数で説明できたらおかしいわけですね。そういうのではダメだけど、東京の気温が大阪の気温で説明できる(気象は西から東へ進むから)可能性はあるわけです。そういうのでやってくれってことじゃないかと思うのですが。どうでしょうか。

投稿日時 - 2019-09-24 01:55:30