読者です 読者をやめる 読者になる 読者になる

どこからした匂い

機械学習 R

ニューラルネットワークの一番簡単っぽい単層パーセプトロンというのは、入出力関数がシグモイド関数ならば、GLMとかに分類されるロジステック回帰と本質的にほぼ同じものと考えてよさそうだ。GLMとNNの関係性が気になる。集合の包含関係的な意味で。

単純パーセプトロンの結合荷重(パラメータ)を推定するための学習アルゴリズ ムとしていくつかの方法が提案されているが、Rosenblattらの方法は、ネット ワークにあるパターンを分類させてみて間違っていたら結合荷重を修正する誤 り訂正型の方法であった。しかし、この学習規則は、線形分離可能でない場合、 すなわち、誤識別 0 にする線形識別関数が存在しない場合には、誤り訂正の 手続きを無限に繰り返しても解に到達できない可能性がある。

http://www.neurosci.aist.go.jp/~kurita/lecture/prnn/node20.html

ここよく分からない。

で、とりあえずロジステックと一緒なら、NNでやった結果と同じ感じになるか確かめようじゃないか、ということで実験。ロジステックモデルを走らせるのとか1000speakers以来である。青木先生のところからデータをひっぱってくるなどする。

data <- read.table("http://aoki2.si.gunma-u.ac.jp/R/lr.data",header=T)
data
summary(data)

で、どれが最適かとかは今回はいいので、とりあえずモデルを作って、係数情報を得るなどする。

> glm(y~x1+x2,family=binomial,data=data)

Call:  glm(formula = y ~ x1 + x2, family = binomial, data = data) 

Coefficients:
(Intercept)           x1           x2  
  -5.645581     0.008297     0.011386  

Degrees of Freedom: 97 Total (i.e. Null);  95 Residual
Null Deviance:	    76.71 
Residual Deviance: 72.18 	AIC: 78.18 
> summary(glm(y~x1+x2,family=binomial,data=data))

Call:
glm(formula = y ~ x1 + x2, family = binomial, data = data)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.4350  -0.5413  -0.4625  -0.3801   2.2197  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)  
(Intercept) -5.645581   3.048239  -1.852   0.0640 .
x1           0.008297   0.021208   0.391   0.6956  
x2           0.011386   0.005740   1.984   0.0473 *
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 76.714  on 97  degrees of freedom
Residual deviance: 72.184  on 95  degrees of freedom
AIC: 78.184

Number of Fisher Scoring iterations: 5

ふーむ。

こっからNN

考え方としては学習用データに対する二乗誤差最小化という感じらしい。二乗誤差の中身は、"実現値"と"入力ベクトルを線形結合したものにシグモイド関数をかました結果"ということらしいので、これは簡単。解析的にもいけるっぽいが(あれ、ロジステックって解析的にパラメータ出せたっけか)、ここは最急降下法を使ってパラメータを計算してみる。