2017年8月に読んだ本を振り返る
突然の小池龍之介ブームの月。
ブッダにならう 苦しまない練習から心に残ったフレーズ。
ですから、まず他人に何かを言う前に、自分がそういうことをするのをやめて、確信や説得力を持って言える自分になる必要があります。 一番良いのは、まず自分を整えてから、他人を諭すことです。 二番目に良いのは、自分が実践できていない事柄に関しては何も言わないことです。一般的には何か言った方が良いと思われがちですけれども、あえて沈黙してみる。 そして三番目に、最も賢明でないのは、自分が実践できないことを人に諭すこと。 (第2章 不機嫌な心を静める - 自己を整える) ー 98ページ
耳が痛い。
過去と未来という脳内データ処理に飲み込まれずに、今、目の前のことに集中し直しましたら、明日の心配など消えてなくなってしまう、ということなのです。 (第2章 不機嫌な心を静める - この瞬間を生きる) ー 154ページ
今を生きるってことかな。
石膏像ドットコムさんのインタビュー公開
昨日と今日でカラーミーショップを利用してネットショップ運営をされている石膏像ドットコムさんのインタビューをよむよむカラメルで公開。
久しぶりに自分も取材に同行させてもらって一緒に話を伺ったり実際に石膏像が出来上がっていく様子を見ることが出来たのだけれども、とても興味深かったし石膏という素材自体がとてもおもしろい性質をもっているのだなと一応理系の自分としては興味を持ちながら作業を拝見していた。
お話を聞いていくなかでネットショップで解決できた問題がいくつかあることも教えていただけて*1、更にその部分の解決をお手伝いしやすい環境を整えるためにはどうすればよいのだろうかと取材の帰り道に考えたり。もっといろいろとできることがあると思うので。
*1:数字的なお話も混ざっていたので詳細は割愛
散歩, 古墳に関する本
散歩してコーヒー飲んで自宅に帰って料理して一日が終わるという夏休み何回目だろうかと思うパターンをなぞった。
図書館で 古墳とはなにか 認知考古学からみる古代 (角川選書) という本を見つけたので借りてみた。会社で不定期で開催されている「古墳ランチ」に参加して以来、少しずつ調べていたのだけれども想像以上に奥が深い。
- 作者: 松木 武彦
- 出版社/メーカー: KADOKAWA/角川学芸出版
- 発売日: 2011/07/25
- メディア: 単行本
- クリック: 31回
- この商品を含むブログ (3件) を見る
立ちそばガール!, 近所でビール
立ちそばガール! そば このファストで奥深い世界 読了。チェーンからそうでないお店まで書名通り立ちそばのお店が紹介されている本なのだけれども、麺やつゆについての描写が細かくてすぐにでも食べに行きたくなった。
- 作者: イトウエルマ
- 出版社/メーカー: 講談社
- 発売日: 2014/05/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
同僚(若者)と一緒にビールを呑みに最寄り駅近くの居酒屋さんへ。 いろいろ話せてとても楽しかった。別にアルコールがともわずともどういった形であれ、考えていることとかをシェアする場所作っていくの大事だなと思ったので夏休み明けから進めていこうと思った。
synapticを使ってXORをニューラルネットワークで再現する
ニューラルネットワーク自作入門を読んでいてサンプルはPythonで書かれているのだけれども、Nodeで書けないかなと思って調べてみたらsynapticというnpmがあったので本で読んだことを踏まえつつXOR(排他的論理和)を再現してみることにした。
XORを再現するために入力層2段, 隠れ層3段, 出力層1段でニューラルネットワークを構成してみる。
var synaptic = require('synaptic'); var Layer = synaptic.Layer, Network = synaptic.Network, Trainer = synaptic.Trainer; function Perceptron(input, hidden, output) { // create the layers var inputLayer = new Layer(input); var hiddenLayer = new Layer(hidden); var outputLayer = new Layer(output); // connect the layers inputLayer.project(hiddenLayer); hiddenLayer.project(outputLayer); // set the layers this.set({ input: inputLayer, hidden: [hiddenLayer], output: outputLayer }); } Perceptron.prototype = new Network(); Perceptron.prototype.constructor = Perceptron; var myPerceptron = new Perceptron(2,3,1); var myTrainer = new Trainer(myPerceptron); var learning = [ {input:[0,0], output:[0]}, {input:[1,0], output:[1]}, {input:[0,1], output:[1]}, {input:[1,1], output:[0]} ]; var parameters = { iterations: 2000, shuffle: true, cost: Trainer.cost.MSE }; var results = myTrainer.train(learning, parameters); console.log(`Error rate = ${results.error}`); // calculate console.log(`xor(0,0) = ${myPerceptron.activate([0,0])}`); console.log(`xor(1,0) = ${myPerceptron.activate([1,0])}`); console.log(`xor(0,1) = ${myPerceptron.activate([0,1])}`); console.log(`xor(0,0) = ${myPerceptron.activate([1,1])}`);
上を実行すると以下の様にXORを再現できている。(2入力の双方に同値が入れば0に近くなり、異値が入れば1に近くなっている)
$ node xor.js Error rate = 0.004983333135247337 xor(0,0) = 0.051013797211575035 xor(1,0) = 0.932949883533232 xor(0,1) = 0.9341209212942756 xor(0,0) = 0.08390604881521503
上のプログラム中では学習回数を2000回にしてあるけれども各回数で試行に対しての誤り率をプロットすると以下の様な感じになった。1000回超えると収束していっているのがわかる。
学生時代に簡単にニューラルネットワークについて眺めるくらいはしていたり、今回買った本を読んで原理についてはわかったつもりなのだけれども実際に自分で試してみると学習された様子がわかって面白い。何一つXORのロジックを書いてないのにXOR回路が再現できている。
参考図書
- 作者: Tariq Rashid,新納浩幸
- 出版社/メーカー: マイナビ出版
- 発売日: 2017/04/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る