田舎な爺だ

道東・オホーツクの観光、成功法則、自分の考えていることを書いています。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- --:-- | スポンサー広告 | TB(-) | コメント(-) |
 今回は、私の備忘録も兼ねてここにニューラルネットワークの1つである多層パーセプトロンの仕組みを下に示しておきます。多層パーセプトロンの特徴は、教師信号と言われる入出力信号を学習させることにより、未知の入力信号を過去の学習データに照らし合わせてもっともらしい出力を返すということができます。この能力を「汎化能力」といいます。

 ニューラルネットワークは、脳のニューロンの仕組みを模したものをつないでネットワーク状にしたものです。ニューロンを模したものを「形式ニューロン」と呼びますが、実は、ニューロンのごく一部の機能のみを形式化したにすぎません。ニューロンは、ある一定の強さの刺激を加えると、電気信号を出すのですが、その仕組みを形式化したものを利用します。


 多層パーセプトロンは、そのニューロンをつなぎ合わせたものです。これは、入力層、中間層、出力層をもち、それぞれがノードでつながれています。信号の流れは、入力層→中間層→出力層と流れていきます。それを以下の図で示します。
20070210203052.jpg

 丸の1つ1つがニューロンで、ニューロン同士をつなぐ線が、ノードです。このノードには重みがつけられており、線に書かれている数値が重みです。一般的な多層パーセプトロンは、この重みの数値を変えることで学習します。このような単純なもので、汎化能力をもつのが非常にこのネットワークの優れたところです。

 一般的にニューロンの入力信号xは、出力信号y,ノードの重みwとすると以下のよう(以下は出力層の例)になります。また、xの右上につけられた添え字は、層を現します。以下の例ではNと書いてあるので、出力層であることを示します(まぎわらしいですが、決して累乗を表すものではありません。)。xの右下に書かれている添え字は、その層の何番目のニューロンかを表しています。出力信号であるyも同様です。ノードの重みwについては、右上に書かれた添え字が、どこからどこの層につながっているノードかを示しています。以下の例では、M層(中間層)からN層(出力層)間のノードであることを示し、右下の添え字は、M層のi番目のニューロンからN層のj番目のニューロンをつなぐノードであることを示しています。
20070210203740.gif

 すなわち、1つ前の層の出力に重み付けされたものの総和が次の層の入力となります。ただ、入力層に関しては前の層が無いので、多層パーセプトロンに与えられた入力信号がそのまま出力信号となります。

 ニューロンの出力信号yは、先ほどの入力信号xを利用して以下のように求めます。ここでαはゲインと呼ばれるものです。αについている添え字については、xと同様です。ちなみに、以下の関数はシグモイド関数と呼ばれています。
20070210204323.gif


ここで、入力信号に対して、実際に出力されるべき信号(教師信号)を
20070210204330.gif

とします。このとき、多層パーセプトロンの実際の出力との誤差をあらわす評価関数Eを以下のように定義します。(aは上述の教師信号の出力)
20070210204336.gif

 すると、誤差を最小にするように各ノードの重みを変化させればよいのですが、重みの数値を大きくすればいいか小さくすればいいか、この時点ではわかりません。そこで、先ほどの評価関数Eを各重みwで偏微分すればどちらにすればよいかわかりますね。
 中間層-出力層のノードについて偏微分した結果は以下のようになります。
20070210204342.gif


 入力層-中間層のノードについて偏微分した結果は以下のようになります。
20070210210633.gif


 上記の結果を元の重みに学習定数cをかけて引けばよいことになります。
20070210211432.gif


 このような式でニューラルネットは教師信号により学習されます。上記をうまくやれば、ゲインでも学習させることができます。すなわち、評価関数Eをαで偏微分してやればいいのですね。ここでは、式は載せませんが、要望があればがんばって式を作って載せたいと思います。

 ちなみに、この文章を作るのにかなり数式を多用しましたが、以下のページのCGIを使わせていただきました。ありがとうございました。
●数式画像作成ツール(物理のかぎしっぽ様)
http://hooktail.maxwell.jp/cgi-bin/mathimg.cgi
2007.02.11 19:00 | 人工知能 | TB(0) | コメント(15) |

Microsoft Visual Studio 2005 Expressは
下のページからダウンロードできるよ。
http://www.microsoft.com/japan/msdn/vstudio/express/

ただ、CDのイメージしかダウンロードできないから、デーモンツールを使ってやるか、実際にこれをCDに焼いて使ってみてね。

2007.02.14 12:17 URL | 田舎爺 #- [ 編集 ]

MicrosoftのVisual Studio 2005ね。
2004かな?は持ってるよ。

なれないモンで使いにくくて。。。

全うなプログラマーの方々はうまく使うよね。

2007.02.14 12:09 URL | ヒゲ #UzUN//t6 [ 編集 ]

OSかぁ。やってみた気もするが、俺にはまだ敷居が高いなぁ。でも興味はあるな。今週末もし時間があればrandyの言っていたOS自作入門でも図書館にあれば借りてくるか。でも、今はやっぱり遺伝的アルゴリズムとか汎用的なアルゴリズムのほうが今は興味があるな。これもある程度プログラムできたら公開しようと思ってるんだ~。

椿ちゃんとこは、男ばかりなんだ^^むさくるしい男どもが多そうだね。プログラマはひげもそらずにもくもくとプログラム書いている印象あるからな。現に俺がそうだし。
華やかな仕事かぁ。いや、大丈夫!君にはピアノという素晴らしい才能があるじゃぁないか!仕事は華やかじゃなくても、それ以外で華があればいいのだ!

あと、ヒゲよ。開発環境なら、おれも使っているMicrosoftのVisual Studio 2005でフリーのやつあるからそれもいいぞ。今回作ったニューラルネットワークのプログラムはそれ使ってるから。

2007.02.14 11:00 URL | 田舎爺 #- [ 編集 ]

っていうかね、PHPから入ったから。
Cはがんばればたぶん何とかなるんじゃないかと思う。PHPしかわかんないよ。

うちはwebアプリだけ。
新潟のオープンソース協会の出しているCentOSベースのLinuxにPHPとPostgreSQLな構成で。

OS作って、組み込みのアプリでも作るかい?
あ、でも僕んトコ開発環境がないから出来ればオープンソースでできるモンがいいな。

2007.02.14 10:23 URL | ヒゲ #UzUN//t6 [ 編集 ]

田舎爺はまっとうに卒業したが、俺やヒゲはまともな大学生活してないけどこんなけ縁があるのも面白いもんだな!
あと俺の研究は高度じゃなくて、ただの整数論だから本当に役に立たんのだ・・・
でも3人いたらなんか作れそうだな。
最近"OS自作入門"って本を読んで面白かったんだが、OSかなんかやってみるか?

2007.02.13 23:51 URL | randy #- [ 編集 ]

私も大学での勉強は今は全然役に立ってないのよぉ。。。
私の場合、もともと電々だし研究も高周波関係だったからね^^;
今の会社でも、一応本来の専門は電気系になってるんだけど、最初に就いた業務が組み込み系だったせいで、なんとなくずるずると・・・(^-^;)

でも最近、もっと女性らしいというか華やかな仕事してみたいと思う今日この頃な椿姫でした・・・
(職場男ばっかなんだもんv-406)

2007.02.13 23:49 URL | 椿姫 #bPnHBjPI [ 編集 ]

お!すまん!忘れてたwすっかり卒業した気分でいたwあれだけ一緒にいたからよ~。なんかrandyと一緒に卒業した記憶が残っててw

そっかぁ、PostgreSQL使ってるのかぁ。Postgresはいいね。管理ツールもある程度しっかりしてるから。あれがタダで使えるんだから良いよね。そういえば、MySQLも最近、管理ツールしっかりしてきたね。

PHPも触ってるのか。あれはC言語に近いからC言語やったことある人はわかりやすくていいね。仕事で使ってるのかい?ヒゲは。ともかく、Webサーバをどこかに立ててやってるのかな?

2007.02.13 21:25 URL | 田舎爺 #- [ 編集 ]

や、すまん
僕卒業してないんだなw

僕はPostgreSQLがメイン。
ごくまれにMySQL。

ほぼPHPオンリー。

オープンソースじゃないと開発にも金かかるからね~

2007.02.13 21:20 URL | ヒゲ #UzUN//t6 [ 編集 ]

俺の場合は、プログラム書くのが趣味みたいなもんだから、あんまり気にしないでくれ~。小学校の時からプログラマになりたかった人間だから、色々家でも無料のプログラム作るためのツール使って楽しんでるよ。最近では、データベース(MySQLとかPostgreSQLとか)もフリーでいっぱいあるからプログラム書くには困らないね~。

俺、できることならもう一回大学行ってみたいんだな。そういうのもあってちょっとずつ研究のタネ持っておくといいかなぁと思ってね。

randyも仕事にはあんまり活きてないみたいだね。ま、randyのはちょっと高度すぎるのかもしれんね。俺のは色々生かしてみたいのだけど、なかなか機会がなくてな。

ヒゲは、俺ら(randyと俺)と畑違いだからしかたないべ。

ところで、この記事の書き込み、みんな同じ大学卒業しているから面白いな。卒業してしばらくして、こんなところでこんなので盛り上がるとは思わなかった(笑。備忘録で書いただけなのに^^

2007.02.13 21:09 URL | 田舎爺 #- [ 編集 ]

ドロップアウトした僕としてはこういったものの楽しみっていまいちわかんないんだけど、正直感心する。

よくプライベートでもプログラム書く気になるね。ホントすごいと思う。
僕は極力家では考えたくないなぁ。

まぁ、僕は爺やrandyと違って全うなプログラマーじゃないからかも知れんけど。。。

2007.02.13 16:24 URL | ヒゲ #UzUN//t6 [ 編集 ]

俺のは暗号だったけど、今のところ問題点(素因数分解の問題)も今後の対策(量子暗号等の研究)も大体わかってて、プログラマでは生きて来ないなぁ。しかも整数論だしな。やるとすればRSAチャレンジ位で完全に趣味の領域だな。
でも久しぶりに思い出して考えてたら楽しかったヨ。

2007.02.13 00:30 URL | randy #- [ 編集 ]

これは、半分備忘録を兼ねてるので、気にしないで^^よく数式を導き方を忘れちゃっていつもノートに書くんだけど、そのノートがどっかいっちゃう…(泣。自分のブログに書いておけば絶対大丈夫でしょ^^

そっかぁ椿姫さんは、組み込み系のプログラムやってたんだ。組み込み系は大変そうだね~。俺は業務系のソフトウェアばかり開発しているから、同じプログラマとはいえ、ぜんぜんやっていること違うね~。

あと!この記事で書いた内容、ぜんぜん業務に生かされていないのがちょっと悲しい1コマでした、、、randyとか椿姫さんとかは大学でやったこととか生かしてるのかなぁ?ちょっと気になるなぁ。

2007.02.12 21:01 URL | 田舎爺 #- [ 編集 ]

OH My God!! 私にはワカリマセ~ン(><)

というかこんな数式、卒業以来見るの初めてかも。。。(ーー;)

でも、必修のプログラムの単位が取れなくて卒業危うかった私も、今は組み込みプログラマーやってるよ。。。世も末だね(苦笑)

大学生でもう少し勉強しておくべきだったと最近ひしひしと感じている椿姫でした。。。

2007.02.12 19:59 URL | 椿姫 #bPnHBjPI [ 編集 ]

せっかく大学で1年かけて研究室でやってたことだからな~。そのままにしておくのはもったいないしょ~。
今でも暇あればプログラム作って検証してるよ。結局、いいアイデアが浮かばなくて、進歩していないんだけど。randyも研究室でやってたこと思い出してみるといいぞ。結構楽しいもんだぞ。

2007.02.12 13:55 URL | 田舎爺 #- [ 編集 ]

こういうの見ると卒論の続きをまたやってみたくなるな。
でもまだ色々組んでやってるとは思わなかったぞ。

2007.02.12 13:42 URL | randy #- [ 編集 ]













管理者にだけ表示

トラックバックURL↓
http://alcange.blog71.fc2.com/tb.php/222-9dd0d87e

アドセンス

FC2カウンター

カレンダー(月別)

10 ≪│2017/11│≫ 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -

ブログ内検索

メールフォーム

名前:
メール:
件名:
本文:

RSSフィード

| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。