• 締切済み

ニューラルネットワークの重みの行列について

ニューラルネットワーク(誤差逆伝播)では、重みを行列で表現して、行列計算を何回となくやっていくという風なプログラムになっていくと思います。”重み”というとどうしても重み付き平均が連想され、足して1になるようにする、というイメージにとらわれてしまうのですが、そのような制約はないということでもいいのでしょうか。足して1にならないということは増幅とか減衰が生じることを許容するということになりますが。 もし、それでOKならば、多くのテキストにみられる”重み”という言葉で説明しない方がいいのではないかと思いますが。そのあと、シグモイド関数で変換されたりするので、和の値が一定などの制約は必要なしなのだろうと思いますが。また、その”重み”の値も変化していくのでそうなのかなと思いますが。ニューラルネットワークはある意味、システムのルールさえ守っていれば融通無碍という風にも見えます。 また、ニューラルネットワークでは行きついた先が最適解である保証は取れるということになるでしょうか。行き当たりばったりを何回も繰り返すという印象をもってしまいます。あるいは別のタイプになりますが、乱数による総当たり戦の最終勝者を探すというような感じあります。そうすると乱数の発生の仕方に依存したりするように思えてきます。

みんなの回答

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.2

まさかとは思いますが、ニューラルネットワークは、プログラミングでなく学習で処理を覚えることは、理解しているでしょうか? 質問中に書かれた、「誤差逆伝搬」は学習を進めるための教師プログラムの処理のことで、ニューラルネットワーク自体の処理ではありません。質問文からはこのへんの混同があるような印象を受けました。 学習が完了したニューラルネットワークは、入力→メモリ→減衰係数→メモリ→減衰係数→・・・→メモリ→出力、という信号の流れが、文字通りネットワーク(網状のつながり)を作っているだけの存在になります(この図は見たことがあるはず)。これが脳の、神経細胞→シナプス→神経細胞→シナプス→・・・という構造を模しているわけです。 これは、普通のコンピュータと比べたら、およそ数学的な処理ができると思えるような構造ではありません。また、学習時、実行時とも、行われるのは数学的な行列計算ではありません。 脳を模した構造なので、人間のように間違えることもあるでしょうし、特定の答えに偏ったり、もしかしたら気まぐれに違う答えを出したりするかもしれません。 まだ、なぜこれでちゃんと計算ができるのかすら、完全にはわかっていないのが実情です。まだまだ、これから研究が進むシステムなのです。

  • drum_KT
  • ベストアンサー率43% (1108/2554)
回答No.1

ニューラルネットワークは、人間の脳神経細胞=ニューロン同士の複雑なネットワークが情報交換する仕組みを単純化したものなので、用語も数学や統計学から来ているというよりは、そちらから来ているとイメージした方が理解しやすいです。 重みという用語の意味は、あるニューロンと別のあるニューロンとの情報伝達の強度であって、ひとつひとつの値が独立に意味を持つのであって、けして行列全体としてひとつの意味を持つものではないと思います。 最適解であることは保証されません。このことは、ニューラルネットワークの初歩のテキストにも載っているはずです。局所最適化とかローカルミニマムという問題です。できるだけそうならないための工夫などが色々考案されています。 行き当たりばったりという比喩はある意味正しいと思います。そもそも、人間が言葉や概念を学習して記憶する仕組みを模倣しているので、同じことを習っても人によって覚えが違うように、例えば乱数発生系などの個性によって学習結果は異なりますね。

skmsk1941093
質問者

お礼

回答ありがとうございます。数値計算については常に妥当性はどうか?とか精度はどうか? ということが半ば口癖のように質問されます。”このような風になりました”、という結果がどのようなレベルにせよ誘導できたということに対する価値が従来、低いと感じています。第一近似解すら出せない問題というのもいっぱいあるだろうと思いますが。