ニューラルネットワークについて
http://mars.elcom.nitech.ac.jp/java-cai/neuro/me …
を参考に勉強しています.
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.について御教授お願いします.
No.1
- 回答日時:
直感的理解の話だろうと思うんで、そのレベルで説明しますと、
2. gが線形(一次式)だと、ニューラルネット全体のやる計算は、出力ひとつあたり1個のノードで表せる。従って、階層化は不要。つまりパーセプトロンになってしまって、ニューラルネットを考えてる意味がないから。
1. Σx_i w_iがほとんど0で、ちょっとしか変動しないような場合を考えると分かり易いかな?g(offset+Σx_i w_i)のoffsetを変えると、y=g(x)のグラフ(非線形なんで、直線ではなく曲がっている)のうちの、どのぐらい曲がってる部分を使うかを調節することができるから。
という単純なこと。
この回答への補足
2.について
・パーセプトロンとニューラルネットは違うものなのですか?同じものと認識していたのですが・・・。
>>出力ひとつあたり1個のノードで表せる。従って、階層化は不要。
この箇所が理解できないのですが,自分では以下のように考えたのですが,どういう意味なのですか?
出力をyとしたとき,3層パーセプトロンでは,
y = h( Σ{w_ij * g(Σw_jk*x_k)} )
g,h は,活性化関数
と表されて,例えば,g(x)=h(x)=x+1 のような線形のときは,出力yは線形に
なってしまい,g(x)=x+1,h(x)がexp関数やシグモイド関数なら出力yが非線形になる.
1.つまり,重み和が0に近いときには,あらかじめ決めたバイアスの
値によって,発火させる(fire)かが決められるということですか?
結構詳しく知りたいので,数式等を用いて頂くとありがたいです.
補足よろしくお願いします.
No.2ベストアンサー
- 回答日時:
ANo.1のコメントについて。
> ・パーセプトロンとニューラルネットは違うものなのですか?同じものと認識していたのですが・・・。
ううむ。違うと言ってるのに、違うのかと尋ねられても…な。
この手の研究は、脳の仕組みを真似しようという動機で始まった。でも、最初に考えられたパーセプトロンは、パターン認識能力がごく限られていることがすぐに分かった。で、ひとひねりしたのがartificial neural networkって訳だけれど、実際の神経細胞ネットワークとはだいぶ違うシステムです。Backpropagationという比較的効率の良い学習アルゴリズムがあることがポイント。詳しい事は自分で調べてね。
>>>出力ひとつあたり1個のノードで表せる。従って、階層化は不要。
> 出力をyとしたとき,3層パーセプトロンでは,
> y = h( Σ{w_ij * g(Σw_jk*x_k)} )
この式のgが線形、つまり
g(x)=Ax+B
と書けるとき、代入すると
y = h( Σ{w_ij Σ(A(w_jk x_k)+B)} )
= h( A Σ{w_ij Σw_jk x_k)} + BΣ{Σw_ij} )
= h( A ΣΣ{w_ij Σw_jk x_k)} + BΣ{Σw_ij} )
ここで、
V_ik = Aw_ijΣw_jk
V_i0 = BΣΣw_ij
x_0 = 1
とおくと、
y= h( Σ{V_ik x_k)} )
と表せる。gが要らなくなっただけじゃなくて、ほら、層になってたものが、出力yについて1個のノードにまとめられたでしょ? ここでhが閾値関数(階段関数)sgn(x)であれば、これはパーセプトロンに他なりません。
sgn(x) = if x>0 then 1 else -1
> 例えば,g(x)=h(x)=x+1 のような線形のときは,出力yは線形に
> なってしまい,g(x)=x+1,h(x)がexp関数やシグモイド関数なら出力yが非線形になる.
hはパーセプトロンでは閾値関数ですから、neural netのhとはちょっと違うように見える。ところが、アウトプットを最終的にYesかNoかに絞って使う応用であれば、neural netでもhとして閾値関数を使わざるを得ない。hは本質的ではないですね。
> 1.つまり,重み和が0に近いときには,あらかじめ決めたバイアスの
> 値によって,発火させる(fire)かが決められるということですか?
いやいや、fireするかしないか(YesかNoか)というのはgが閾値を持つとき(例えばsgn(x)であるとき)の話でしょう。そうじゃなくて、ですね、グラフを描いて考えればお分かりになると思うんですが、
g(x)が直線のグラフであるならば、xにバイアスを加えた g(x+bias) は g(x)+B (Bは定数)になるだけです。つまり、hに定数項を加えるのと同じ意味しかない。
でもg(x)が曲線のグラフになってると、バイアスを加えたものg(x+bias)はグラフをx軸にそってずらしたことになる。gはxによって傾きが違うので、例えば「重み和が0に近いとき」に、入力の僅かな違いに対してノードの出力が敏感に変わる(傾きが急)か、あるいは鈍感(傾きが緩やか)なのかがbiasによって変化する。
ついでに申し上げると、exp関数やシグモイド関数を使うのはなぜかというと、計算が楽な単調曲線、というだけのことであって、要するにテキトーに曲がってて単調であれば別に何でもいいんです。
> 結構詳しく知りたいので,数式等を用いて頂くとありがたいです.
プログラムを書くのなら式が必要だけど、全体の働きを理解したり応用したりするには直感的理解が大事。式はむしろ邪魔かも知れませんよ?
詳細な回答でよく分かりました.
今後もまた質問することがあると思うので,そのときはまたよろしくお願いします.
ありがとうございました.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 工学 半導体 光減衰法による少数キャリアのライフタイム測定で周波数を変えたときの検出波形(縦軸出力電圧、横 1 2023/05/16 19:15
- 数学 大学数学を理解するためには高校数学の全単元を復習する必要がありますか。 5 2023/02/28 13:37
- 日本語 用言の活用組織はいかにして生成したか:或る試論 1 2022/06/30 05:41
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- その他(恋愛相談) あなたがYESでも、わたしがNOなら性暴力←ヤバイ男たちに効いている? 4 2023/04/18 20:14
- Visual Basic(VBA) VBA エクセル 条件の設定 1 2022/03/28 10:24
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- その他(ニュース・社会制度・災害) ニューロセクシズム(神経性差別)対策方法は何かありますか? 1 2022/10/26 20:40
- XML マスターノード 1 2023/03/14 10:38
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
近似曲線の数式を手計算で出し...
-
Σの添え字について
-
Π←これは一体?
-
シグマの記号の読み方
-
2重ΣΣのΣ記号は交換可能でしょ...
-
Σの下にくるk=1のkってなに...
-
平面の計算方法
-
Σk(k+1) k=1 式を教えて下さい ...
-
Σの上が2n
-
Σx^2と(Σx)^2の違いは?
-
数列の問題です。次の数列の和...
-
二重和(ΣΣ)の計算方法について
-
19 Σk k=6 の和を求めろという...
-
理系数学プラチカの45(2)のまた...
-
最小二乗法における有効数字に...
-
a1=1,an+1=an+3n-1 この条...
-
分散について
-
Σのk=2
-
数学で答えを教えて欲しいので...
-
調和数列の和なんですが。。。。。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報