cocolog:90343301
Python を使った人工知能の本を2冊読んだ。例を試さず流し読んだだけだが、技術にどういうものがあるかを知るのが目的だったのでそれで良い。自動運転に関するアイデアがあって読んだのだが、それは強化学習の方策勾配法に近いものだと知る。 (JRF 7566)
JRF 2018年12月 3日 (月)
私はいわゆる「引きニート」で、それで社会に・「生産」に貢献するとすれば、産業用ロボットなどの頭脳のプログラムをフリーで書けたらカッコイイ…とかいう妄想を抱きがち。
JRF2018/12/38883
産業ロボットの手を動かしたりするには、アナログで操作を教えたりする必要があるんだろうな…と考えた。最も簡単でいて簡単すぎず、アナログで一軸でできることってなんだろう…と考えて、自動車のハンドルを回すのとかそうだな…と思い致った。そして近ごろ、自動運転車がとりあげられていた理由にガテンがいった。
JRF2018/12/31351
私がやるのは、おもちゃの車(Toy Car)でいい。簡単に、他の車の衝突とか考えず、道をガイドにそって曲がったり、もしかすると信号にしたがったりする…程度のものでいい。コースとそれの辿り方、辿っているときのスピードを与えると、ハンドルとブレーキとアクセルの使い方を自動的に学習するもの…が作りたいな…と思うようになった。
JRF2018/12/31593
OpenAI Gym ではロボットアームの Gym もあるようだが、それは難しそう。自分で Gym を作れそう、(グラフ理論とか応用できて)作っておもしろそうなのは、おもちゃの自動車のシミュレーションかな…とも思った。
JRF2018/12/38624
学習は、ほとんどニューラルネットだけでやってみよう。それなら『ゼロから作る Deep Learning』の範囲の知識でできそうだけど、いちおう他の技術はどうなってるか、特に、自動運転で使ったりすると言われる強化学習について知りたいな…と読んだのが、今回の二冊になる。
JRF2018/12/32629
……。
……。
『scikit-learnとTensorFlowによる実践機械学習』(Aurelien Geron 著, 下田 倫大 監訳, 長尾 高弘 訳, O'Reilly Japan, 2018年)
https://www.amazon.co.jp/dp/4873118344
https://7net.omni7.jp/detail/1106878455
JRF2018/12/37009
この本は『ゼロから作る Deep Learning』よりも判型が大きい上に分厚く、大変読みごたえがある。Amazon 評で訳の品質がどうたらいう意見があるが、やや誤字が多いのが気になる人は気になるかもしれない。でも、書いてることは大変、参考になる。
JRF2018/12/37481
サポートベクターマシン(SVM)のカーネルトリックというものの説明をここまでわかった気にさせてくれたのははじめてだ。TensorFlow の並列処理についてもある程度説明されているのがすばらしい。scikit-learn や TensorFlow というよく名前が聞くが、今いち何をやるんだろう…と訝[いぶか]しんでいたものについて、しっかりした知見が得られたのは大きな収穫だった。
JRF2018/12/31594
ほとんど流し読みで、例も試さなかったが、技術を知るのが目的だったので、その辺りの期待が裏切られなかったのは大きい。
JRF2018/12/33689
何より大きな収穫は、ニューラルネットワークを使った強化学習の方策勾配法(PG, Policy Gradient)を知ったことだろう。Deep Learning の Backpropagation では微分を使うが、私は上で書いた「おもちゃの自動車」の枠組でそれを応用することについて考えていたのだが、そのアイデアは、すでに実現されているというのをここで知った。これを読む前は「おもちゃの自動車」のプログラムは、『ゼロから作る~』の枠組の利用を考えていたが、TensorFlow を使ってできればそのほうがカッコイイな…と思った。
JRF2018/12/35820
あと、ハッシュが似ているのが元のデータが似ていることになるという、セマンティックハッシング(p.438)は興味深いと思った。この点、はてな社の技術者とか読んでるんだろうな…とか想像した。
JRF2018/12/35175
『ゼロから作る~』を読んでいたので、Deep Learning とか LSTM の話とかはよくわかったが、そうでない人はやや苦しいかもしれない…と思った。Attention の話はこの本にはほとんどないが、ReLU よりも性能がいい leaky ReLU や ELU は『ゼロから作る~』には載っていなかったので、両方買う意味は確実にある。
JRF2018/12/37744
実は、下の『直感 Deep Learning』のほうを先に買っていたのだが、少し読んで、『ゼロから作る〜』で習った技術をモジュール化して細かいことなんて難しそうなのにどうやっているんだろうと、TensorFlow のことを知りたくなって急いでこちらを買い先に読んだのだった。読んで TensorFlow には AI 以外の他にもいろいろ応用できそうな柔軟性があるのがわかった。買って良かった。
JRF2018/12/31063
……。
……。
『直感 Deep Learning - Python×Kerasでアイデアを形にするレシピ』(Antonio Gulli & Sujit Pal 著, 大串 正矢 & 久保 隆宏 & 中山 光樹 訳, O'Reilly Japan, 2018年)
https://www.amazon.co.jp/dp/4873118263
https://7net.omni7.jp/detail/1106910671
JRF2018/12/32662
Amazon 評で評価が高かったので、『ゼロから作る〜』の次のステップアップのために購入したが、正直、今の私にはあまり合わなかった。「これ一冊あれば大丈夫」と書いている人もいたが、私はこれまで三冊読んできたからやっとわかるという感じだったので、それは盛り過ぎだと思った。GAN や強化学習について書いてあるのがウリだとは思うのだが、その記述があまり良くない。
JRF2018/12/38275
原理の説明はほとんどなく、Keras というライブラリの使い方が示されるのがメインで、原理は論文で読んでくれというスタンス。論文への参照がしっかりしていることを褒める評もあったが、私は情報関連の簡素な英語論文ではわからないと思って、ググればいろいろある時代に、こういう本を手にとっているので、私はそこはあまり評価できない感じ。
JRF2018/12/36998
また、(pandas とか functional API とか)第7章ではじめてかのように説明されることが前の章で出てきたりして整理されてないなという印象も持った。訳された本だが、訳す前は図がカラーだったのかな? カラーでないがゆえにわかりにくい感じが、はしばしであった。
JRF2018/12/34778
さらに、ライブラリの使い方といっても、コーパスから拾ってきて整理する処理をくどくど何度も別の形で載せておきながら、GAN (敵対的生成ネットワーク, Generative Adversarial Network) は generator と discriminator の train の仕方を載せてないとかあって、ほんと原理を説明しないな…という印象。ただ、それは、ネットから ch04/dcgan.py でダウンロードでき、GAN についてはググればいろいろ説明はあるので、何とかなるけれど…。
JRF2018/12/32204
第7章、スタイルの「コピー」、style transfer は難し過ぎてよくわからなかった。この点、私の理解力が基本的に足りないのも示唆されると思う。絵 - オブジェクト + スタイルをするのに、オブジェクトをマイナスするか、スタイルをプラスするのに Deep Dream の考え方を使うということなのかな…と思うが、ソースを読んでもそんな感じがしない。よく考えれば、gradient をイメージに足すのってシェイプが違うじゃん…とかそこからして理解できてない。loss の計算がなぜそれだとうまくいくのか、それが勾配にどう影響するのかとか全々わからなかった。
JRF2018/12/30150
第8章の強化学習の内容、この説明で初見でわかる人がいたら天才じゃないかと思う。上の『scikit-learn 〜』を読んでいなかったら、どうやって未来の Q 値が知れるのかとか疑問に思ったことだろう。ただ、例がボールキャッチで、何画面かを同時に扱うというのは『scikit-learn 〜』では説明だけだったのが、ちゃんと例があるというのはありがたかった。
JRF2018/12/37098
ちょっと酷評しすぎたかな…。良かった点ももちろんある。例えば、第7章の質問と解答を学習して質問に答えれるように目指す Memory Network の例は、入力を何度も別の方法で使うなど他とは違った複雑さがあるのだが、そんなことやっていいんだ…というのは層を積み上げるだけのことが多かった他の本ではなかなかわからないことだった。
JRF2018/12/38673
Keras を使おうとする人にはひょっとすると辞書的に意味があるのかもしれない。例えば、強化学習では今だと Keras-RL があるといったように、いろいろ流動的なので、ググったほうが早いのかもしれないが、一度は動いたであろう簡潔なソースが公開され自由に読むことができるのは大きな利点だとは思った。
JRF2018/12/37278
……。
……。
基本、わかってない私がやろうとしていることなので、Toy Car の学習は失敗するのが目に見えてる。よしんば成功したとしたら、それは他の人がすでにやっていて、簡単すぎるか、他に良い方法があって無意味などという理由から、私には情報が届いてないだけのこととなるのだろう。
JRF2018/12/33688
しかし、やる気になっているのだから、やってみたい。今しばらくは他の読書等をする予定だが、そうしながらアイデアを煮詰めて、年末か年明けぐらいには実験にとりかかりたい。
JRF2018/12/30494
修正 「絵 - オブジェクト + スタイルをするのに、オブジェクトをマイナスするか」→「(絵 - スタイル) + (スタイル絵 - オブジェクト) をするのに、オブジェクトをプラスするか」。
JRF2018/12/33219
トラックバック
他サイトなどからこの記事に自薦された関連記事(トラックバック)の一覧です。
Python で機械学習をする練習をしている。その最初の「成果」として「競争的な学習」の実験をして、その結果をブログ記事にしてみた。 続きを読む
受信: 2019-03-18 03:30:55 (JST)
『ゼロから作る Deep Learning』のシリーズの 1巻を [cocolog:87181973] で、2巻を [cocolog:90214777] で読んだ。2巻を読んだあと特にアイデアが浮かばないと述べたが、その後しばらくして、「自動運転」がらみのアイデアを実験してみたい…と思うようになった。
JRF2018/12/31738