• ベストアンサー

ニューラルネットワークの閾値について

ほとんどの文献でシグモイド関数を用いたニューラルネットワークに閾値が含まれています。 しかし、あまりその理由について触れられていません。(あまりと言うか、見つけられなかったわけで・・・ 閾値の必要性について知りたいです。 誰か教えてください( ̄人 ̄)頼んます強い人

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

shunenさんの考えている必要性は逆なのでは? 「シグモイド関数を用いたニューラルネットワークに閾値が含まれている」のではなく、「ニューラルネットワークには、閾値が不可欠であり、その閾値を処理するためには、微分可能である関数が必要であり、その関数に偶然近似できそうなシグモイド関数という関数があったから、使っている」のでは?  ニューラルネットワークには、閾値が不可欠です。というよりも、それがニューラルネットワークの本質と言っても、過言ではないのです。  一つの箱に仕切りがあり、仕切りの一方には赤い球が入っており、もう一方には青い玉が入っているとします。そこに、更に、どこかから1つの玉を持ってきたとします。その玉が赤色であれば、赤い玉の入っている仕切りに入れ、青玉ならば青玉の仕切りに入れます。  その仕切りが数学(ニューラルネットワーク)で言うところの閾値です。  数学的には、3種類以上の玉があり、その種類に応じた数の仕切りがあります。  更に一般的に言えば、その玉はあいまいな色(紫色とか?)で、どちらに分類していいか分からないときには、赤と青の中間的な場所に置かなくてはなりませんが、これを、赤とみなすか青とみなすかして、そこまで仕切りの判定基準を変えます(即ち、紫は赤の仕切りに入れておこうとかいう判断)。これによって、判定基準が変わることが、学習です。  時には、どちらに入れて良いか分からない場合で、紫は赤に入れておくと良いということを経験的に知っている人が経験者として教えてあげることがあります。この知らなかった判断基準を教えてあげる人(正確には、信号)を教師信号と言います。  ニューラルネットワーク(というより、情報学一般)は、数式に惑わされないことが大事です。情報学は、数学によって成り立っていますが、あくまでも数学は道具であって、機能が先に考えられ、「それに都合の良い関数がないかな?」と探して偶然見つけられた数式を変換式として当てはめているに過ぎません。  数式よりも機能を理解してください。

shunen
質問者

お礼

kansai_daisukiさんがおっしゃるような >一つの箱に仕切りがあり、仕切りの一方には赤い球が入っており、もう一方には青い玉が入っているとします。 >そこに、更に、どこかから1つの玉を持ってきたとします。その玉が赤色であれば、赤い玉の入っている仕切りに入れ、 >青玉ならば青玉の仕切りに入れます。 であれば、閾値は必要であるといううことはわかります。 でも、シグモイド関数を使ったら閾値がなくても学習できるんじゃないの?って思ったわけなんです。 これは、学習できるかもしれないけど閾値がなくなってる時点でニューラルネットワークじゃないよってことなんですか? もしよろしければ、お手数ですがお返事ください。m(_ _)m

その他の回答 (3)

  • kochory
  • ベストアンサー率45% (167/370)
回答No.4

#3です。 閾値0だと、シナプス荷重に負の値を許さない限り、 一つでも入力が来たら発火するだけの素子になってしまいます。 シナプス荷重が学習によって正負どちらの値にも変化できる ようなモデルなら閾値に実質的な意味はなくなりますが、 そのようなモデルは生理的に妥当ではないので (実際の神経細胞のシナプスは興奮性か抑制性かがあらかじめ 決まっていて、シナプス荷重としては正か負かのどちらかの値しか取れない) リアリスティックなモデル化を考える場合は採用できません。 工学的に、ただ「役に立てばいい」という立場に立つなら 閾値0でシナプス荷重に正負の値を許すモデルにしても 問題ないでしょうし、そのほうが形式的にもすっきりするでしょう。

shunen
質問者

お礼

たびたびのご回答ありがとうございました。 参考にさせていただきたいと思います。

  • kochory
  • ベストアンサー率45% (167/370)
回答No.3

閾値の必要性を考えるだけなら、シグモイド関数でなくて マッカロー・ピッツ型の離散値をとるニューロンで考えた ほうがわかりやすいと思います。 2つの入力しかないニューロンを考えます。 それぞれの入力は0か1で、入力の和が閾値を越えたら 発火するものとします。 閾値が0だとしたら、どちらかの入力が1なら、このニューロンは 発火するわけですから、このニューロンは2つの入力に 対してOR演算をする素子とみなすことができます。 一方、閾値を1.5にした場合を考えると、2つの入力が 両方とも1でないと発火しませんから、この場合、この ニューロンは2つの入力に対してAND演算をする素子とみなす ことができるわけです。 つまり、閾値を変えることによって、ニューロンの演算規則が がらっと変わってしまうわけです。 ニューラルネットが柔軟な計算能力をもつ理由の一端は ニューロンのこのような性質にあるわけですから、モデル化の 際にはぜひとも導入する必要があるわけです。 ただ、閾値を0としておいて、上記のような閾値の変化を、 常に入力があり、荷重が負の値をとるシナプスの荷重変化として 記述する流儀もあります(甘利さんの教科書はそうなってたはず)。 このように、学習は全てシナプスに担わせて、閾値は 一定値(ゼロ)として記述するのも一つの方法です。

shunen
質問者

お礼

そうなんですよね kochoryさんが言われるような場合だと、kochoryさんやkansaiさんのはなしを聞いて理解できます。 でも、kansaiさんの所でも書いたんですが、シグモイド関数だと閾値がなくても(閾値ゼロ)学習できる気がするんです。閾値があるから学習しやすいとかあるんですか? お手数ですが、よろしかったらお返事ください。m(_ _)m

  • Piazzolla
  • ベストアンサー率44% (88/196)
回答No.2

生理学的な意味でのニューロンの性質はいくつかあります。 (1)空間的加算性 もっとも大きな性質ですが、樹状突起によってつながっている複数のニューロンの軸索から、入力信号が入ります。この信号は、強められたり弱められたりしながら細胞体の内部電位を形成していきます。この電位は、入力信号に重み係数を乗じて線形和として表されます。 (2)時間的加算性 入力信号は時間とともに変動していきます。したがって、内部電位は各時刻における信号の時間的線形和で表されます。これは、ニューロンの中を情報が通過するのに遅延を伴うことを意味しています。 (3)非線形性 入力信号が入り、細胞体の内部電位が徐々に上昇していき、ニューロンの閾値を超えると、軸索にインパルスが出力されます。このインパルスは、内部電位の強さによらず一定の値をとります。つまりニューロンは非線形になっています。 (4)2値性 ニューロンの信号は、巨視的に見ると、大きさが一定なインパルスが、ある時刻に存在するかしないかの2値の信号を作り出しているといえます。 以上の特徴をモデル化するとき、実現できる関数としてシグモイド間数(ロジスティック関数)が適当だという事になります。 専門ではないので、文面がおかしかったらすみません。

shunen
質問者

お礼

そうですねえ やはり、ニューラルネットワークには閾値というものがある。 そのニューラルネットワークにシグモイド関数を用いている。 ニューラルネットワークには閾値があるものなのだから、閾値の必要性を問うのは間違ってるのかもしれませんネエ・・・ 回答ありがとうございました。

関連するQ&A