室村日記

日々、試行錯誤したことを備忘録的にまとめていきます

エディタの話とかパーセプトロンの話とか

1.はじめに

ゼロから作るDeep Learningに1週間で挑戦するわけですが,初日からいきなり遅刻してしまいました.
先行きが思いやられる...

さて,今日は3章まで勉強しました.


2.わかんないことばかり

とはいえいきなり”テキストエディタhoge.pyというファイルを作成して実行しろ”とか言われても初心者としては困るわけです.

 いやエディタって何よ?
 テキストファイルって何?文章?
 .pyって何?
 .jpgが画像ファイルってことくらいは知ってるけど...

こんなことからわからないわけです.その度に四苦八苦しながら調べるわけです.
例えばエディタって何?という疑問について,

エディタって何? --> コンピュータへの命令文であるコード(スクリプトとかソースとか言うこともあるらしい)を書くためのツールみたいなもの.らしいです.

文章書くというと,Wordだったり人によってはInDesignとか想像したりするかもしれません.
しかしコンピュータに命令を伝えるときには文字の強調とか文字カラー変えたりとかはどうでもいいわけです.
そんなことより少々(人間にとっては)見づらくても間違いなく命令文を正しく書いて,正しい形式で保存して,正しい仕組みで実行できるようにすることが大事なわけです.


さて.エディタに関してもっと言えば,もちろん人間のために文章書くツールがたくさんあるように,コードを書く(コーディングともいうらしい)ためのツール=エディタもたくさんあるようです.
その中にも有料無料のエディタが溢れているのですが,前回紹介したように,今回はatomというエディタを使っています.
なんでこれにしたかっていうと,まず無料であること,次に,パッケージという拡張セットみたいなのを導入することで自分の使いやすいようにカスタマイズできること,そしてそのパッケージの中に,コードを書きながら実行して結果を確かめることができるものがあること,というような理由が挙げられます.
特に最後の理由が大きいですね.こんな風に,コード書いてる途中にグラフを出力することもできます.
f:id:muromura:20170419010210p:plain


本に書いてある内容についてこれやりましたーあれやりましたーとだらだら書いて言ってもしょうがないので,まあこんな感じで,+αで調べたりしたことをメモしていこうと思います.


3.パーセプトロンニューラルネットワーク

まずパーセプトロンというのを勉強しました.
確か英語で受容体とか受容器とかとういう意味だったと思います.
英単語のperceptionが認知とか知覚とか言う意味だったので,たぶんあってますかね.

このパーセプトロンを勉強する目的は,次にニューラルネットワークにつなげるためです.
情報を取り扱う装置を考えるときに,パーセプトロンというのは本当に基本的なパーツで,極端な話だと理論的にはパーセプトロンだけでコンピュータを構成できるという話らしいです.
まずこのパーセプトロンを学び,次にその類似系であるニューラルネットワークを学ぶことでディープラーニングを学習していきます.
全体を理解するために,まずは部品の1つに注目してみようっていう話ですね.


さて,今回のパーセプトロン,受容っていうとただ刺激を受け入れるだけの器みたいな気がしますが,それだけではありません.
そもそも何らかの情報=刺激を受け取って処理するのが目的であることを考えると,このパーセプトロンも次の何かに情報を伝える必要があるわけです.
次の何かっていうのは別のパーセプトロンかもしれないし,また別の機構かもしれません.そういうのが繋がって全体の情報を処理する仕組み(=ニューラルネットワーク)ができています.
このときに,何を伝えるかっていう話なんですね.

例えば単純にあるパーセプトロンが”1を受け取って1を渡す”と言ったときでも,いくつかのパターンが考えられます.
つまり,受け取って渡す”1”というのが,0/1で表される何かのフラグ(例えば刺激があったら1,なかったら0など)なのか,それとも刺激の値そのもの(例えば5段階の刺激の中の1段階目)なのかという話です.

これについて「ゼロから作るDeep Learning」によると,この情報の渡し方を”活性化関数”と言って,いろいろな種類が考えられるようです.
上でatomの使い方として出した写真は,まさにその何種類かの活性化関数をグラフに表したものだったりします.

この辺りは機会学習の目的によって違ったりするようですが,まだ勉強が浅くて難しいことはわからないので今回は飛ばします.
どうも回帰などの教師あり学習では恒等関数を,分類などの教師なし学習ではソフトマックス関数を用いると良いようですね.

4.まとめ

ということで3章までに思ったことをちょっとまとめました.
時間もなく完全に理解しているわけでもない分野なので,非常に読みづらく間違っていることも多々あると思います.
そういうのは,全て学習し終えたときに,修正版としてまとめたいと考えています.

それでは.