• 締切済み

ニューラルネットの重みとバイアス

ニューラルネットの重みとバイアスの違いを教えてください。 重みづけは言ってみれば、ニューロンの興奮のしやすさみたいなものと思っていたのですが、バイアスが閾値のようなものであるという記述を読み、混乱しています。申し訳ありませんがニューラルネットやAIについては限りなく素人なので、なるべく平易に教えていただけると助かります。

みんなの回答

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

一般的な言葉づかいの話ですが、 「重みづけ」といった場合は、特定の個体を重要視するような意味で個体ごとに値を設定するのに対し、 「バイアス」といった場合は、全体的に(あるいはある範囲のグループに対して)値を偏らせる意味で、広く同じ値を設定するとき使うことが多いです。 ニューラルネットは概念程度しか知りませんが、 「重みづけ」はシナプスの結合の強さを表したもので、学習によって、シナプスごとにその値が変化していく(これがニューラルネットにおけるプログラミング)のに対し、 「閾値」は脳細胞の感度のようなもので、基本的に変化しません。 「バイアスをかける」のは、「もしも脳細胞の感度がもう少しよかったら」といった実験をしている場合じゃないでしょうか。 (1番の回答とだいたい同じ内容のはずです)

  • Tann3
  • ベストアンサー率51% (708/1381)
回答No.2

 ニューラルネットに詳しいわけではありませんが、一般論として。  ニューラルネットでの1~Nの入力(xi=x1~xN)→1個の出力(y)の伝達関数は、     y = H Σ( ai・xi + bi )    (1) と書けるようです。(特にニューラルネットに限らず、多入力・一出力の物理系なら、このように書けるものが多い)  ここで、Hは「ヘビサイドの階段関数」という、H(x) のxが正ならH(x)=1、xが負ならH(x)=0 となる関数。 (たとえば下記のp-8参照) http://www.cbrc.jp/~asai/LECTURE/H16SeitaiJouhouRon/NN_learning.pdf  (1)式で、各入力xiに対する係数aiが「重み」です。加算するときに「大きく寄与する」か「ほとんど寄与しない」かを決定するものです。  また、(1)式の Σ(bi ) に相当するものが「バイアス」になります。各入力xiがゼロの時にも、「バイアス」分の出力が出るということです。  Σ(bi ) が負の値の場合には、Σ(ai・xi)がある程度の正の値にならないと、Σ( ai・xi + bi )は正になりません。その意味で、y はある一定のΣ(ai・xi) の正の値以上でないと出力が出ないので(それが「ヘビサイドの階段関数」の機能)、その値を「しきい値」と呼ぶわけです。  簡単のために、1入力・1出力の     y = a・x + b    (2) を考えれば、「a」が「重み」、「b」が「バイアス」と言ってよいでしょう。「b」を「しきい値」と呼ぶときには、     y = a・x - b    (3) と書くのが一般的でしょう。

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

ニューラルネットワークとうのは、多数のニューロンがエッジで繋がっているモデルですが。 重みというのはエッジ毎についているのに対して、バイアスはニュー毎についています。

akeakamai
質問者

お礼

早速のご返答を有難うございます。ただ新たな疑問が・・・。 エッジというのはコネクション、よくあるニューラルネットの図でいう〇と〇をつなぐ線のことと思って良いですか?〇のことをノードとかとも言いますよね。 重みとはひとつのノードに対していくつの入力があるかということ?ノードの興奮を制止するメカニズムがない限り、入力が多ければ多いほどノード(ニューロン)は興奮しやすいということですか? ただ学習が進むと、コネクションの線が太くなったり、細くなったり、点線になったりするような図説も見たこともあります。これだとrabbit catさんのご指摘のような、いってみれば特定のノードから特定のノードの結びつきが強くなった、いってみれば信号が強くなったことに思います。これだと重みとはノードとノードの結びつきが強くなったことになりますよね。実際のニューロンでいえばより特定のニューロンからの入力に依存するようになるということと解釈して良いですか? ニューとはニューロンのことですよね。なのでバイアス(閾値?)は、特定のノード(ニューロン)の興奮のしやすさの状態、つまりどのくらいの強さの入力があると興奮して、インパルスが生じ、より上位(あるいは下位ないし同位)の別のノード(ニューロン)に出力信号を出すか・・・という理解でよろしいですか? お忙しいところ申し訳ありません。もう少し助けてください。あと、本当に門外漢でもわかるニューラルネットについての和書というのはあるのでしょうか?  

関連するQ&A

  • ニューラルネットの教師あり学習について質問です。

    最近誤差逆伝搬法を用いたニューラルネットについて プログラムを組んで実装してみようと思ったのですが あまり理解できていない部分があるのでよろしくお願いします。 私が作りたいのはフォントの違う数字画像の認識を 3つの特徴量(a,b,c)、3層のニューラルネット、 閾値関数にシグモイド関数、教師有り学習で作りたいのですが、 私の理解があっているかわからないのでご指摘をお願いします。 ・入力層は特徴量が3つなのでニューロンは3つ(a,b,cを入力)。 ・中間層は任意でいいということなので10つ。 ・出力層は数字が0~9までなので10つ。 教師ベクトルの与え方なのですが 出力層(0~9番とします)において各数字に対応する番号のニューロンは1、それ以外は0、 つまり 出力層の0番の教師ベクトルは{1,0,0,0,0,0,0,0,0,0} 1番目の教師ベクトルは{0,1,0,0,0,0,0,0,0,0} 9番目の教師ベクトルは{0,0,0,0,0,0,0,0,0,1} (シグモイド関数のため正確には0、1にはなりませんが・・) とあらかじめ決めておき、 教師ベクトルの学習の際は 0の画像ならば出力層は{1,0,0,0,0,0,0,0,0,0}^T となるように誤差逆伝搬を用いて中間層・出力層の重みの修正を行い、 同様に1~9の教師画像も対応する出力の番号以外0となるように 学習を行い、 識別を行いたい画像の特徴量を入力した際は 重みの修正は行わず 10この出力の誤差が最小となる教師ベクトルが第一候補、 誤差が最大となる教師ベクトルが第10候補 ということでよろしいのでしょうか? でもそうすると重みの値が一番最後に学習した教師ベクトルに 対応する重みになっているから ニューラルネット自体を10個つ用意する必要が ありますよね・・・? いま一つ理解できていないのでよろしくお願いします。

  • そもそもWindowsMessengerってなんですか?

    こんばんは。 GOO内で一応検索はしてみたつもりなのですが、 MSNMessengerのとの違いなどのご質問は あったようなのですが、そもそもこのWindowsMessenger というものは何なのでしょうか? ソフトの名前ですか?どんなときに使うのでしょうか? チャットができるような記述をみかけましたが、 それはネットに接続していないとできないのですよね? 超どしろうとで申し訳ありません。 教えてください。

  • ナイキのスニーカー、コルテッツ・ワッフルトレーナー・LDV・メトロプラ

    ナイキのスニーカー、コルテッツ・ワッフルトレーナー・LDV・メトロプラスはどういう違いがあるのですか?ネットで調べても違いがわからなく混乱しています。 特に次の点で教えてください。 (1)見た目 (2)値段 (3)作りの特徴 素人でもわかる大まかな違いで構いません。 よろしくお願いします。

  • ニューラルネットの標準化について

    ニューラルネットの学習前に,データ[X,Y] を標準化  (x-ave(x)) / std(x)  ave(x):xの平均  std(x):xの標準偏差 というようにすべてのデータについて,[0,1]に標準化しています. 学習後(BP法),ニューラルネットから得られた回帰式は,標準化したので, パラメータが[0,1]の範囲になってしまっています. この学習後得られたパラメータの標準化を解除して,標準化しないで学習して得られたパラメータのようにしたいのですが, 学習後のパラメータの標準化はどういうふうに解除すればいいのでしょうか?

  • ニューラルネットにおける学習について

    学習とは,サンプルから確率分布を推測することであるそうですが, (http://watanabe-www.pi.titech.ac.jp/~swatanab/kogi4-22.pptの3枚目) ニューラルネットワーク(NN)で学習して得られた関数は,確率分布なのですか? 確率分布なら[0,1]しか値をとらないですが,たとえば,多項式をNNで学習して得られた 関数は,1以上の値をとりますよね? そこで, 学習の定義が違うのか,それとも,NNが確率分布を扱わないものだからなのでしょうか? ニューラルネットは,2乗誤差E=1/2Σ(f(x;w) - Y)^2 を最小化する ように学習していることからニューラルネットは最尤法であると考えていいのでしょうか? また,最尤法でなく,例えばベイズ法を適用したものはあるのでしょうか? 長くなりましたが,回答よろしくお願いします.

  • ニューラルネットとMathematicaについて

    こんにちは。 現在私は、初心者ながらニューラルネットについて勉強しています。 そこで、Mathematicaを利用してこの勉強をしたいのですが、 そもそもMathematicaのツールでニューラルネットの計算は出来るのでしょうか? よろしければ、方法についても教えていただけると嬉しいです。 宜しくお願いいたします。

  • ニューラルネットの勉強がしたいです。

    こんばんは。 私は、最近ニューラルネットに興味を持ち始めた学生です。 はじめてニューラルネットの勉強をする人にオススメの参考書またはサイトなどがありましたら、教えていただけないでしょうか。 特に、リカレントニューラルネットについて詳しく書かれていれば、なお助かります。 自分でも調べてはいるのですが、イマイチ理解に苦しんでおります。 よろしくお願い致します。

  • ニューラルネットワークでのバイアス項と活性化関数について

    ニューラルネットワークについて http://mars.elcom.nitech.ac.jp/java-cai/neuro/menu.html を参考に勉強しています. 1. ニューラルネットワークのあるノードの出力は,前層のノードの重み和で表され,  out_i = Σ{W_ji*x_j}  from j=0~n となる. ここで,バイアス項として,W_0i,x_j0=1.0 というのがあるのですが, このバイアス項はどういう役割をするためにあるのでしょうか? 2. ノードx_iへの出力は,活性化関数g を用いて,  x_i = g(out_i) となる. ここで,「活性化関数は非線形関数でなければならない」というふうに 言われているのですが,なぜ非線形でなければならないのでしょうか? 以上の1.2.について御教授お願いします.

  • 母分散と標本分散

    母分散と標本分散の違いで混乱しています。 『例題で学ぶ 初歩からの計量経済学』白砂堤津耶著のP26以降の記述が理解できません。何で標本分散だと(n-1)で割るに母分散だと単純にnで割るのですか? さらにネットで調べてみると、上記の本と違う内容(たとえば、標本分散のほうをnで割り、母分散を(n-1)で割る)などがあり混乱しています。実際は何が正しのでしょうか? もし宜しければご回答よろしくお願いします。

  • phpでbotに3時間ごと、分にツイートさせた

    ド素人で申し訳ございません。 if(date("G") % 3 === 0 && date("i") == 11){ $response = $eb->postRandom("data.txt"); } phpで上の記述で、3時間ごと、11分にツイートさせたいのですが、 うまく動きません。 if(date("i") % 15 == 0){ $response = $eb->postRandom("data.txt"); } ネットで拾った15分ごとのこの記述はキチンと動きます。 どこか間違っているでしょうか?