Quantcast
Channel: ウィリアムのいたずらの、まちあるき、たべあるき
Viewing all articles
Browse latest Browse all 7400

Rでnnetを使って、ニューラルネットワーク

$
0
0
授業で、「脳とニューロン」について、発表した人が、
即興で、Rのパッケージnnetを使って、ニューラルネットワーク
のサンプルをやっていたので、メモメモ
(最後にコマンド結果をはっつけてます)


■授業のメモメモ

脳とニューロン

樹状突起:入力
細胞体:処理
軸索:出力

ニューロン:うんじゅうみりセコンド
  →並列性

形式ニューロン:
  マカロックとピッツ

シグモイド関数
  微分可能だといいことあるので

学習
・教師あり:パーセプトロン、バックプロパゲーション
・教師なし

デルタ則
 εだけ修正

ヘッブの学習
  ↓
単純パーセプトロン:3層
  エラーコレクションメソッド
  ミンスキーの断罪
  欠点:
   線形分離が可能であることが前提
    →XORは学習できない

バックプロパゲーション

実験
・それぞれの形容詞に対してバックプロパゲーション

Rのパッケージ
・nnet
その他
・neuralnet
・RSNNS
・AMORE


■サンプル

(パッケージnnetをダウンロード後:赤字が入力箇所)


> library(nnet)
> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> index<-sample(nrow(iris),nrow(iris)*.7)
> iris.train<-iris[index,]
> model.nn<-nnet(Species~.,iris.train,size=10)
# weights: 83
initial value 128.802435
iter 10 value 38.327313
iter 20 value 7.115194
iter 30 value 5.585961
iter 40 value 4.695980
iter 50 value 4.626715
iter 60 value 4.624330
iter 70 value 4.624313
final value 4.624311
converged
>predict(model.nn,iris.train,type="class")
[1] "virginica" "virginica" "virginica" "virginica" "virginica"
[6] "versicolor" "setosa" "virginica" "versicolor" "versicolor"
[11] "virginica" "versicolor" "virginica" "virginica" "versicolor"
[16] "setosa" "setosa" "virginica" "virginica" "virginica"
[21] "setosa" "virginica" "versicolor" "virginica" "setosa"
[26] "virginica" "versicolor" "setosa" "virginica" "versicolor"
[31] "virginica" "virginica" "virginica" "setosa" "versicolor"
[36] "setosa" "virginica" "virginica" "versicolor" "versicolor"
[41] "setosa" "setosa" "setosa" "setosa" "setosa"
[46] "versicolor" "versicolor" "virginica" "setosa" "versicolor"
[51] "setosa" "versicolor" "virginica" "setosa" "versicolor"
[56] "setosa" "versicolor" "virginica" "setosa" "setosa"
[61] "setosa" "setosa" "setosa" "versicolor" "virginica"
[66] "versicolor" "virginica" "versicolor" "versicolor" "virginica"
[71] "virginica" "virginica" "virginica" "setosa" "setosa"
[76] "setosa" "setosa" "setosa" "setosa" "versicolor"
[81] "versicolor" "versicolor" "versicolor" "virginica" "versicolor"
[86] "versicolor" "virginica" "setosa" "setosa" "virginica"
[91] "virginica" "versicolor" "virginica" "versicolor" "virginica"
[96] "virginica" "setosa" "versicolor" "setosa" "setosa"
[101] "virginica" "versicolor" "versicolor" "setosa" "setosa"
> index.test<-setdiff(seq(nrow(iris)),index)
> iris.test<-iris[setdiff(seq(nrow(iris)),index),]
> predict(model.nn,iris.test,type="class")
[1] "setosa" "setosa" "setosa" "setosa" "setosa"
[6] "setosa" "versicolor" "versicolor" "setosa" "setosa"
[11] "setosa" "setosa" "setosa" "versicolor" "setosa"
[16] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[21] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[26] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[31] "versicolor" "versicolor" "virginica" "virginica" "virginica"
[36] "virginica" "virginica" "virginica" "virginica" "virginica"
[41] "virginica" "virginica" "virginica" "virginica" "virginica"
> table(data=iris.test$Species,prediction=predict(model.nn,iris.test,type="class"))
prediction
data setosa versicolor virginica
setosa 12 3 0
versicolor 0 17 0
virginica 0 0 13
>

Viewing all articles
Browse latest Browse all 7400

Trending Articles