パーセプトロン
まずは、>>1がパーセプトロンについて概略を説明してくれよ! 古本屋でパーソナルメディア出版のパーセプトロン買った。
内容は読んでないからわかりません。いや、読んでも私では理解できません。
結局、分からずじまいなんだが・・・誰か説明を頼ム! wikipedia読んだけどよくわからない。
複数の入力に対し、何らかのアルゴリズムに基づいて決定的な出力を行うという事だろうか。
a,b,cという入力から判断して0若しくは1を出力するみたいな。
但し、各入力がどのようなパラメータの手続きにより判断されるかはランダムみたいな。
いや、よくわからないけど。
何かの近似解の算出には使えるのかもしれない。
普通に解くと物凄い時間のかかる問題を高速に80%の確率で正答するとか。 >>11
要するに、データを線形分離しながら分類して、どんどん収束させていく仕組みのことだよ。
ステップ数が多くなればなるほど精度が増す、すなわち、学習率が向上するというわけだ!
もし上記の説明で理解できなければ、明らかに知識不足だから、↓の本でも熟読してくれ。
Amazon.co.jp: 学習とニューラルネットワーク (電子情報通信工学シリーズ): 熊沢 逸夫: 本
http://www.amazon.co.jp/dp/4627702914/ めちゃ簡単な部品を組み合わせただけで、パターン認識ができてしまう。
ねじだけで作ったDVDプレイヤーくらいのインパクトがある。
◆めちゃ簡単な部品
使う部品はこれだけ。ウソのようだが本当である。
◇部品A
『入力A』→入力Aに重みを付ける『重みA』→
◇部品B
『入力B』→
『入力C』→◎→出力
『入力D』→
◎の解説:
『入力BとCとDを加算。その値が閾値より大きければ1を
出力(発火と呼ばれる)。その値が閾値より低ければ0を出力』 こんな単純な部品の組み合わせで、例えば写真を見て
『この人は日本人かインド象か?』などのパターン認識をしてしまう。 こんな単純な部品の組み合わせで、例えば写真を見て
『この人は日本人かインド象か?』などのパターン認識をしてしまう。 パーセプトロンには
『単純パーセプトロン』と
http://hooktail.org/computer/index.php?plugin=ref&page=Perceptron&src=perceptron5.png
『多層パーセプトロン』がある。
http://hooktail.org/computer/index.php?plugin=ref&page=Perceptron&src=perceptron4.png
どう違うかは図を見れば分かると思うが、
『単純パーセプトロン』は2層だし、
『多層パーセプトロン』は3層だ。
『単純パーセプトロン』は大したことできない。
『多層パーセプトロン』は何でもできる。
(『単純パーセプトロン』は直線の向こう側か?それとも直線のこっち側か?の認識しかできない。) ◆多層パーセプトロンの作り方
上記リンク先の図のように、部品を3層に組むだけである。
これだけである。
しかし、これだけでは動いてくれない。
学習させていかないといけない。
□□□□□□□□□□
□●□□□□□□□□
□□□□□□□□□□
□□□●□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□▲□□
□□□□□▲□□□□
□□□□□□□□□□
●=インド人
▲=日本人
だとしよう。どうやってパターン認識すべきか。 □□□□□□□□/□
□●□□□□□/□□
□□□□□□/□□□
□□□●□/□□□□
□□□□/□□□□□
□□□/□□□□□□
□□/□□□□□□□
□/□□□□□▲□□
/□□□□▲□□□□
□□□□□□□□□□
答えは『線を引いて、それのこっち側がインド人。
向こう側が日本人』とすればいい。
これがパーセプトロン。
で、どういう線を引けばいいのか。それがパーセプトロンの学習。 ところで >>14 で示した部品を組み合わせただけで、
『線を引いて、それのこっち側がインド人。 向こう側が日本人』
(インド人データだと発火する。日本人データだと発火しない)
そんな回路が作れるのだろうか?
インド人と日本人は直線で分けれるものとする。
これは宿題だ。 □□□□□□□□□□
□□□□□□□□□□
□□□□□□□●□□
●□□□□□□□□□
●□□▲□□□□□□
□□□□□▲□□□●
□□□□□□□□□□
▲□□□□□□□□□
□□▲□□□□□□□
これだとどうだろうか? □□□□□□□□□□
□□□□□□□□□□
□□□□/\□●□□
●□□/□□\□□□
●□/▲□□□\□□
□/□□□▲□□\●
/□□□□□□□□\
▲□□□□□□□□□
□□▲□□□□□□□
こういう線を引けばいい。
これが >>13 が言っている『データを線形分離しながら分類して、どんどん収束させていく仕組み』だ。
ところで、パーセプトロンで
こんな曲がった線で分けるような事ができるだろうか?
前に書いた部品の図を良く見てほしい。
あれは組み合わせれば【『Zが発火』もしくは『Yが発火』したら発火】という
OR回路が作れる。つまり、【『線分W』のこっち側】もしくは【『線分V』のこっち側】
で発火する回路が作れるってことだ。 つーか人間の脳は明らかにパーセプトロンじゃないよな。小脳はともかく大脳だと抑制のフィードバックだのモジュレータだの回路が複雑すぎるわ 素晴らしいが、結局特徴量の抽出アルゴリズムが最重要。
判定が速いのはいい。 パーセプトロンとSVMとがどちらも線型分離で分類するなら、
両者の違いは何? パーセプトロンは、とにかく分離できればOK
SVMは、できるだけ「よく」分離しようとする(マージン最大化)
もし線形分離可能なデータがあったとして、分離の仕方は一通りでは無いよね? その「よく」ってのは曲者で、学習データから得られた最大マージンとなる境界が
真の境界と一致するとは限らない。 >>38
あくまでも効率的に分析するためのツールだからな
精確さを重視するならコストをかけて調べるべきだ いまでもニューラルネットとか、真面目に研究してる人っているのかな?
ファジーやGAやニューラルネットが混沌としてた時代に学生やってたので、ふと気になった。
統計処理や回帰分析でパターン認識やればすぐにいい成果でるのがわかってるんだから、幾何や解析の手法を持ち込んでメタなレイヤーか学習関数をいれてやればと手をつけたら誰も相手してくれなくなった。
一台のEWSワークステーションをシェアしてて、40MBのライブラリをHDDにダウンロードしたら怒られる時代。GPU,SSD,数GBの主記憶。もう当時とは別世界だな。