ニューラルネットワークの前半を学ぶ

前回はパーセプトロンを学んだ。
今回はニューラルネットワーク

パーセプトロンの難点は重さを決める必要があること。
ニューラルネットワークではそれが解決される。らしい。

活性化関数

入力信号の総和を出力信号に変換する関数が活性化関数。
で、単純に閾値で活性化するような活性化関数をステップ関数と呼ぶ。
昨日やってた関数は閾値を使ってたので、活性化関数を使ってたとも呼べる。
※入力信号(に重さをかけたモノ)の総和で0,1を出すのがパーセプトロンなので、
厳密にはパーセプトロンの先、出力の前の話が活性化関数であると理解。
"そのまま素通りのステップ関数があったよね"みたいなことですかね。

ステップ関数のほかにもシグモイド関数、ソフトマックス関数などがある。
単層パーセプトロンでは線形だったけども、活性化関数のおかげで非線形になる。

つなぎ方

パーセプトロンではいくつかの入力にそれぞれの重さをかけて、足して、判定、出力だったのが、
x1*w1 + x2*w2
ニューラルネットワークではいくつかの入力にさらにいくつかの重さをかけて、活性化関数を通って出力になる。
(x1*w11 + x2*w12) と (x1*w21 + x2*w22) と (x1*w31 + x2*w32) を活性化関数にかける。
[x1, x2] と [[w11, w21, w31], [w12, w22, w32]]の行列計算。で出力も三つ[a1, a2, a3]になる。
回帰問題か、分類問題かによって活性化関数のかけ方に違いが出る。

ここまでがニューラルネットワークの計算するとこの概念。

次回は

ニューラルネットワークの出力層を設計ですってよ。
そのまま調子よければ手書き数字認識まで行きたいね!
さよなら!