tokyo r 2 machine learning
DESCRIPTION
TRANSCRIPT
Rで機械学習のパッケージを試す
2010/02/24
@nokuno
#tokyoR
ニューラルネットワーク
はじめに
ニューラルネットワーク
SVM
まとめ
目次 2
機械学習(きかいがくしゅう、Machine learning)とは
、人工知能における研究課題の一つで、人間が自然に行っている学習能力と同様の機能をコンピュータで実現させるための技術・手法のことである。
機械学習は検索エンジン、医療診断、スパムメールの検出、金融市場の予測、DNA配列の分類、音声
認識や文字認識などのパターン認識、ゲーム戦略、ロボット、など幅広い分野で用いられている。
機械学習とは 3
Wikipediaより
今回扱う教師あり学習の流れ
1. 学習データ(入力と出力の組)を用意する
2. 学習プログラムに与えて学習させる
3. テストデータを用意して、予測させる
4. 予測結果を使う、または評価する
基本的な流れ 4
機械学習アルゴリズムの一種
元ネタは脳科学("人工"ニューラルネットワーク)
分かりにくいネットワーク図で有名
こんなの
ニューラルネットワーク(NN)とは 5
Rのニューラルネットワークのパッケージ
標準パッケージで入っている
事前にlibrary()で読み込む
nnetについて 6
サンプル実行(よく分からない)
学習データ 7
このデータから入力 x と出力 t の関係を学習する
sin関数にノイズを加えたもの
入力と出力をベクトル(多次元なら行列)として渡す
size : 隠れユニット数(後述)
linout : 出力を0~1に制限するかどうかデフォルトでは制限ありになる。ハマった><
学習 8
nnet.formulaはよく分からなかったので教えてください(汗
入力: 0~1を100等分したデータ
出力: 入力を学習済みNNに与えた結果
なぜか入力をmatrixで渡さなければならない
学習時はベクトルも渡せたのに…
予測 9
学習データを通るような予測曲線を描く
ほどよくノイズを吸収してくれている。
グラフの重ね描きメンドイ。どうにかなりません?
結果 10
隠れユニット数は自由度を表す
考察 11
隠れユニット数:1自由度が小さすぎる
隠れユニット数:100
自由度が大きすぎる
今回は理想の出力が分かっていると仮定して評価
予測誤差の二乗平均を取る
評価 12
隠れユニット数
誤差n=3のときが最も誤差が小さい!
NNは入力と出力の関係を学習するもの
隠れユニット数は適切に設定する必要がある
まとめ 13
Rでニューラルネットワークをやってみる
http://d.hatena.ne.jp/syou6162/20081222/1229923231
分かりやすいパターン認識
石井健一郎他著
大学の授業の教科書でした
公式ヘルプ
参考文献 14
つづく?
15