マトリョーシカ的日常

ワクワクばらまく明日のブログ。

ぜんぜんディープじゃないディープラーニング学習/ 手書き数字認識

f:id:kyokucho1989:20180820041341j:plain
Photo by Kalen Emsley

 昆虫には足が六本ある、という旨を息子に伝えてやると、彼はカブトムシの足を数え始めた。五本くらいあったようだ。虫かごで飼われているそれも、最近は食欲が落ちてきたようで、昆虫ゼリーの減りが遅くなっている。数日前から涼しい風が吹いてきて、ようやく人間が生活できる環境が整ってきた。昨日の最高気温は三十二度だったらしい。夏が終わらない。

 ディープラーニングの学習をちょっとすすめた。本に書かれていた「手書き数字の認識」をした。これはMNISTという手書き文字の画像データセットを使って、機械にその画像が数字の何であるかを理解させるものだ。先ほどになって、ようやくサンプルコードのありかがわかった。URLが本に書かれていた。今まで私はなにを見ていたのだ。以下からいろいろ見れる。

続きを読む

はじめてのpython体験と夏のディープラーニング

f:id:kyokucho1989:20180815054829j:plain
photo url

 夏の暑さがやっと例年並みになってきて、早朝の作業が行えるようになった。これからはアサガオの水やりのごとく、pythonの学習をやろうと思う。当面の目標はディープラーニングをつかってなんか面白いものをつくって、aidemy noteのコンテストに応募することである。とりあえずやったことのまとめを書く。

 とりあえず環境というものを構築した。PCは古いmacbookを使っている。入門書に倣って、python3とanacondaというのをダウンロードした。ターミナルと呼ばれる黒いアイコンに文字をひかりあれ、と打つとそのようになった。よかった。単純な文法の勉強などはaidemyの「python入門」という無料講座を利用した。いろいろ書いてあったし、ブラウザさえあればコードがかけるので楽しかった。

aidemy.net

 そのあといろいろあって手がとれなかったが、今日になってようやく勉強を進めた。魚の本(ディープラーニングの赤い本)のp65にある3層ニューラルネットワークの実装をやってみた。その通りに書き写して実行したがエラーが出た。原因はいろいろあった。numpyという多次元配列をインポートしてなかった。networkの綴りがところどころで"netwrok"になってた。sigmoid関数を定義していなかった。identity_function関数を定義していなかった。それらをやってみるとちゃんとプログラムは動いた。

 ターミナルにこのように表示された。

[0.31682708 0.69627909]

 ちょっと意味がわからなかった。なにこれ。この数字が出たら世界がどう変わるのだろうか。知らない。知らないなりに少しずつ勉強していくしかない。

 そもそも3層ニューラルネットワークとはなんなのか。ニューラルネットワークというのはいつかの記事で説明したが、人間の神経回路を模した情報のネットワークのことだ。丸と矢印で構成されていて、丸は数値を演算し、矢印が運ぶ役割を持っている。3層というのは、数値の演算が3回行われるということだろう。

 それぞれの層にはたくさんの丸がいるが、それらは一回の行列計算でいい感じに計算することができる。たとえば一層目の計算は以下のようになる(p61の式(3.9)参照)

 A^{(1)} =  X W^{(1)} + B^{(1)}
さらにこの計算結果をシグモイド関数に入れる。
 Z^{(1)} (A^{(1)}) = \frac{1}{1+exp(-A^{(1)})}

 上つきもじは「何層目の行列ですよ」ということを示している。

 ここで得られた出力Zを次の行列Aに使う。
 A^{(2)} =  Z^{(1)}  W^{(2)} + B^{(2)}


 
 こうやっていい感じに計算するらしい。この計算で本当に人工知能が生まれてくるのだろうか。脳のデータはこうしてやりとりされるのだろうか。やっぱり意味がわからん。

 本日はここまで。

詳細!Python 3 入門ノート

詳細!Python 3 入門ノート

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

noteの音声配信ばかりやってる / たのしさのなかにいる

f:id:kyokucho1989:20180811060107j:plain
photo by Casey Horner

 全然ブログを書いていなかった。しかも文章化する脳みその働きに少し違和感を抱く。いままでは単純に文章化用の神経回路の働きを促してやるだけでよかったが、今回はそれとは異なる。信号が流れる向きを変えてから強化してやらないといけない。noteで音声配信を始めたのが原因である。

 からあげさんがnoteで音声配信をやっている。
karaage.hatenadiary.jp

 楽しそう!と思ったので自分もはじめることにした。
note.mu

 録音はandroidアプリの簡単ボイスレコーダーをつかった。編集はReaperをつかった。自分のつぶやきを適当にまとめているだけだが、それでも楽しい。現在第三回まで公開している。第五回目まで録り溜めしているので、少しずつ放出していく。

 私の楽しさの根源はどこにあるのか知りたい。いったい何を基準にしているのだろう。その基準がわかれば楽しさをいいようにコントロールして、集中したり拡散したりできるのになあと思う。最近は周囲に楽しいことがありすぎて大変なことになりつつある。あれもやりたいし、これもやりたい。ひとつずつ片付けるしかない。片付けるという表現も妙だが、実際そんなかんじだから問題はない。

 音声による思考の整理は文章によるそれとすこし異なり、なんだか興味深い。文章はあとから編集ができるためよりよい言葉だけを表示させることが可能だが、音声はそんなことができない。一過性のものだからやり直しがきかない。それでもリアルタイムに思考の流れを感じることができて非常にエキサイティングだ。そこまでではないか。

 ひとりごとをずっとしゃべっているのが純粋に楽しいだけなんだとおもう。たのしさのなかにいる。

スーパー☆近況報告

f:id:kyokucho1989:20180803051057j:plain
Photo by Alberto Restifo


 木魚叩きロボットは製作を停止することにした。3Dプリンターの稼働がネックになっていて、フィラメント代がバカにならないのと、深夜に動かすと稼働音で子供が起きるかもしれないためである。あと、機械の熱で部屋がくそ暑くなる。おかしいよね、外気の最高気温が37度くらいだけど、いま部屋の中で動かしたらサウナになりそう。私の書斎には冷房はありません。日中は使わないので問題ないけど、大変だー。

 いろいろあって、車で通勤することになった。出社時間も早くなって、退社時間も早くなった。早寝早起き。通勤次に車内でVoicyを聞いてるけど、ただ聞くだけだとなんか物足りなくなってきた。id:karaageさんのように音声配信でも始めようか。地声をオープンにするのはなんだか嫌なので、機械にしゃべらせよう。音声認識ソフトで声を文章化させて、そいつをゆっくりさんに変換させてみよう。

 先日の記事からAidemyでPythonの勉強を始めている。これすごいね。環境構築もくそもいらない。フリーメールでアカウント登録するだけでプログラミングができる。とりあえず無料でできるところまでは頑張ってやりたい。あとは今月中になんかつくって公開する必要があるのだけれど、なににしようか。トポロジー最適化をディープラーニングでやってみたいけど、ぜんぜん仕組みがわからない。文字列処理をつかって短歌でもつくろうか。

 いろいろやってみますー。
 

はじめてのトポロジー (PHPサイエンス・ワールド新書)

はじめてのトポロジー (PHPサイエンス・ワールド新書)

ディープラーニングの学習とAidemyコンテストへの応募/ゼロから作るDeep Learning

https://www.instagram.com/p/BlydPMRAUnI/

 息子に時間の概念を伝えようとしているが、今日と昨日と明日をなんと説明すればいいかわからない。それはつまり過去と未来を切り分けることであるが、なんとも言語化が難しい領域だ。ほんとうにウィトゲンシュタインの「意味とは使用」というのが実感できる。日常で使用しながら意味を理解していくしかないのだ。

 楽しそうだったのでディープラーニングの本を買った。「ゼロから作るDeep Learning」というやつで、魚が表紙になっている。読んでみたらやっぱり楽しかった。ディープラーニングのおおまかな理論と実装の例が書かれている。プログラムの作り方を一から丁寧に書いているわけではないので、これを読めばなんでも作れるようになるわけではない。まぁ、そのあたりは調べながらやっていこう。

続きを読む