• 締切済み

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

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

みんなの回答

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

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

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

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

skmsk1941093
質問者

お礼

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

関連するQ&A

  • ニューラルネットワーク

    0~9までの7セグメントディスプレイで表す数字を識別するニューラルネットワークを作成したいのですがなかなかわからないので質問したい所存です。 7セグメントを1~7のノードに割り振り中間層に10個のノード8~17でつなぎ出力するノードを18~27として18から0~9まで出力するようにしたいのですが、やり方としてまず、 27個のノードの結合関係を隣接行列で表す。 つぎに内部状態と重みのとる値の範囲を示す。 そしてそのニューラルネットワークに入力を与え、出力を計算する手順を説明するとのことなのですが。 よろしければアドバイス等お願いいたします。

  • ニューラルネットワークでデータを正規化するには?

    こんにちは、今ニューラルネットワークをプログラミングしているのですが、データを正規化しようと思っています たとえば教師データの入力が年齢と身長、出力が体重のデータがあるとします 年齢  身長  目的変数:体重 24    150 |  65(kg) 24    172 |  73(kg) という年齢が同じデータがある場合 正規化するにはどうればいいでしょうか? 正規化は 正規化後の値 = (正規化前の値 - 最小値) / 最大値 - 最小値 で出すと書いてあったのですが、年齢は最小値と最大値が同じ 24 しかありませんよね、この場合はどうすればいいのでしょうか? またついでにこの様な最小値 = 最大値の正規化されたデータを元に戻すにはどうすればいいのでしょうか?(出力層のシグモイド関数の計算結果を元のデータの単位に戻したいんです) わかりにくかったらすいません、ご存じの方よろしくお願いします。

  • ニューラルネットワークの「重み」について

    「ニューラルネットワークの重みの初期値によって、学習の結果は変わることはないが、学習の進み方や速さには影響が出る」という話を聞きましたが、この知識は正しいでしょうか? (私は重みの初期値はニューラルネットワークの学習の結果にも進み方・速さにも影響があると思っているのですがいかがでしょうか?)

  • ニューラルネットワークってなに?

    題名のままですがニューラルネットワークとはなんでしょうか. よく巡回セールスマンの効率的な回り方などで ニューラルネットワークとの言葉が出てきますが 調べても, 用語の説明とかはなかなか見つからなくて… 見つかっても,ちょっと難しくて… わかりやくニューラルネットワークを おしえてください!

  • ニューラルネットワークについて

    最近ニューラルネットについて勉強しています。 特に準ニュートン法での学習について考えています。 ある日手に入れたデータで学習したところ、誤差があまり小さくならなかったので(何度も学習を試し、ノイズ混入も試したので、ローカルミニマムに引っかかっている感じではないと思います)、中間層のユニット数を莫大に大きくしました(最初試したときの100倍以上です)。 しかし誤差が全然変らない、という結果が出ました。 このように、自由度を上げても学習しきらないことってあるんでしょうか。もしあるのなら、その原因は何でしょうか。また、学習しない原因となっている邪魔なデータを探す方法ってあるのでしょうか(出来れば視覚的に見えると嬉しいです)。 宜しくお願い致します。

  • ニューラルネットワークについて

     私は今、ニューラルネットワークやDeepLearningといったものに興味があり、 その仕組みや設計方法、プログラムや使い方等を、ネットや本で調べているのですが、 どれを見てもたくさんの専門用語や複雑な数式で説明されているものがほとんどで、 それらを全く理解できないわけではないですが、詳細な解き方や、直感的な考え方の説明が 欲しいです。自分でも色々調べましたが、私が今知っていることと言えば、ニューラルネットが どんなもので、どんなことが出来て、どんな種類があるか、また、ニューロンの動作を表す数式が なんとなく理解できる程度で、そこからもっと発展した話についてはほとんど分かりません。 さらに調べていくうちに、DeepLearningや、SOINN等の、高い性能を持つニューラルネットの 存在も知り、もっと強い興味が湧いてそれらについても調べてみましたが、英語で書かれた サイトや、大学の論文と思われるものが出てくるばかりで、これについても分かっていることは、 段数の多いニューラルネットで、認識精度がとても良いということくらいです。もっと詳しく分かる ようになり、自分でも何か認識させたり、ロボットに組み込んで使うなど、色々やりたいことは あります。誰かに質問することも考えましたが、周りにいるのはロボット専門の人で、ニューラル ネットワークについて分かりやすい説明を得るのは難しいと考えました。私自身も学力があまり よくなく、どうすれば良いか分からない状態です。ニューラルネットワークやDeepLearningの 数式の詳細な解き方、ネットワークの説明を直感的で分かりやすい、詳しい設計方法等が 書かれている、サイト、書籍等をご存知でしたら、教えて頂けるととても有難いです。曖昧な 表現で分かりにくく、カテゴリが合っているかどうかもよくわからず、また、虫がいい質問である とは思いますが。よろしくお願いします。

  • (緊急)ニューラルネットワークについて

    ニューラルネットワークに関して、人間の心の働きと比較した時の問題点をいくつか教えて頂けますか?

  • ニューラルネットワークに関する本

    今回、ITと生物学との関連についての授業で、課題として、ニューラルネットワークについてのレポートを書くことになりました。そこで、参考文献を探していたのですが、プログラムに重点を置く本が多くみつかりました。 ですが、僕自身は理工系の学部ではないため理解しづらく、レポートもプログラムよりも応用面に重点を置きたいのですが、そのようなレポートを書く上で、参考となる本を教えて頂けませんでしょうか?お願いします。

  • 階層型ニューラルネットワークについて

    大学から出された課題です。 階層型ニューラルネットワークについて教えてもらえませんか? 詳細があるサイトなどあったら教えてほしいのですが。。 最終的に、 学習データ数Pの時刻tにおける重みの変化量を数式で表し、解説しなければなりません。 よろしくお願い致しますm(_ _)m