夏の暑さがやっと例年並みになってきて、早朝の作業が行えるようになった。これからはアサガオの水やりのごとく、pythonの学習をやろうと思う。当面の目標はディープラーニングをつかってなんか面白いものをつくって、aidemy noteのコンテストに応募することである。とりあえずやったことのまとめを書く。
とりあえず環境というものを構築した。PCは古いmacbookを使っている。入門書に倣って、python3とanacondaというのをダウンロードした。ターミナルと呼ばれる黒いアイコンに文字をひかりあれ、と打つとそのようになった。よかった。単純な文法の勉強などはaidemyの「python入門」という無料講座を利用した。いろいろ書いてあったし、ブラウザさえあればコードがかけるので楽しかった。
そのあといろいろあって手がとれなかったが、今日になってようやく勉強を進めた。魚の本(ディープラーニングの赤い本)のp65にある3層ニューラルネットワークの実装をやってみた。その通りに書き写して実行したがエラーが出た。原因はいろいろあった。numpyという多次元配列をインポートしてなかった。networkの綴りがところどころで"netwrok"になってた。sigmoid関数を定義していなかった。identity_function関数を定義していなかった。それらをやってみるとちゃんとプログラムは動いた。
ターミナルにこのように表示された。
[0.31682708 0.69627909]
ちょっと意味がわからなかった。なにこれ。この数字が出たら世界がどう変わるのだろうか。知らない。知らないなりに少しずつ勉強していくしかない。
そもそも3層ニューラルネットワークとはなんなのか。ニューラルネットワークというのはいつかの記事で説明したが、人間の神経回路を模した情報のネットワークのことだ。丸と矢印で構成されていて、丸は数値を演算し、矢印が運ぶ役割を持っている。3層というのは、数値の演算が3回行われるということだろう。
それぞれの層にはたくさんの丸がいるが、それらは一回の行列計算でいい感じに計算することができる。たとえば一層目の計算は以下のようになる(p61の式(3.9)参照)
さらにこの計算結果をシグモイド関数に入れる。
上つきもじは「何層目の行列ですよ」ということを示している。
ここで得られた出力Zを次の行列Aに使う。
こうやっていい感じに計算するらしい。この計算で本当に人工知能が生まれてくるのだろうか。脳のデータはこうしてやりとりされるのだろうか。やっぱり意味がわからん。
本日はここまで。
- 作者: 大重美幸
- 出版社/メーカー: ソーテック社
- 発売日: 2017/05/23
- メディア: Kindle版
- この商品を含むブログを見る
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
- 作者: 斎藤康毅
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/09/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (18件) を見る