前回の続きで、一般化線形モデル(GLM)と多層パーセプトロンの比較です。
"一般化線形モデル(GLM)とニューラルネットって一緒やんね (1)"
機械学習の観点から:多層パーセプトロン
ニューラルネット、パーセプトロンについては下記に非常にわかりやすくまとめて下さっているので、是非ご参考に下さい。
"第3回 単純パーセプトロン · levelfour/machine-learning-2014 Wiki · GitHub"
"第3回 多層パーセプトロン · levelfour/machine-learning-2014 Wiki · GitHub"
単純パーセプトロンだと線形分離可能、つまり直線でデータを分けきれる場合のみ、識別関数のパラメーターは収束します。
もし線形分離不可のデータを与えると、健気にパラメーターを求め続けたりもして可愛げあります。
学習データを[tex:x_1, x_2,…,xi…]、結合係数を[tex:w_1, w_2,…,wi…]とそれぞれ置くと、
単純パーセプトロンは、数式で下記のように表現されます。
z = \sum_{i=0}^n w_i x_i = W^{\mathrm{T}}X
しかし、世の中は直線のみで分離出来るほど簡単な事象ばかりではありません。
線形分離不可能な事象をどう取り扱うか考えた末に、隠れ層(中間層)にシグモイド関数で処理をする形で多層化することになりました。
なんかいきなり出てきた感のある、シグモイド関数ですがここで活用する理由は、
・非線形であるから。線形だと階層増やしたとしても、線形和の形で階層を圧縮できてしまうから。
・あらゆる説明変数で微分可能な単調増加であるから
ということで、厳密にこれじゃないとダメってわけでも無さそうです。
隠れ層でのj番目の出力素子を数式で表すと、
y = \frac{1}{1+exp(-\alpha (\sum_{i=0}^n w_{ji} x_{ji}))} = \frac{1}{1+exp(-\alpha W_j^{\mathrm{T}}X)} (2)
となります。
機械学習では、この後「入力層→隠れ層→出力層」についての
識別関数を考慮しながら結合係数(パラメーター)を推定していきます。
結局一緒だよね
一般化線形モデル(GLM)と多層パーセプトロンは2つの手法は用途が異なるので、当然手続が異なる部分があったり、今回ざっくりの理解のために、
厳密性を欠いている部分があったりしますが、(1)式と(2)式を見比べて頂と、
「ばらばらのデータの中にばちっと線をひく」ために似たようなことをやっていることが、感覚的に理解できるのではと思います。
※(1)式と(2)式の差である右辺分母にあるαは、ゲイン(gain)と呼ばれるそうで、0付近の勾配に影響します。
なんでこれがくっついているのかは、ごめんなさい知りません、どなたか教えて下さい。