開発環境の問題

 

 

 VMware上のUbuntuで、先日読み終えたPythonによるスクレイピング機械学習のサンプルコードを実行しているときMemoryErrorが何度か発生しました。メモリが不足しているとおもい設定で8Gまで上げたけどまたエラー。たなみにThinkpadT420sにインストールしたUbuntu(メモリ8G)だと発生しません。

 「Pythonによるスクレイピング機械学習」の付録には、Docker上に実行構築する解説があります。Dockerに切り替えたら正常に動作するのかなと思ったけど、Widows10Home民の私の場合、Docker=VirtualBoxなので、あまりいい結果が期待できない。そもそも著者はMacOS上で全て実行していると思われる(公式HPで配られているソースファイル一式にDS_Storeファイルが混ざっている)。週末ダメ元でDockerに切り替えてみるかなぁ。

Pythonによるスクレイピング&機械学習 開発テクニック 読了

 

この本を読了しました。感想の要点はこんな感じ。 

良いところ

  • ネットの記事にありがちな退屈なnumpyの操作からは始まらないところ
  • よくあるmnistの手書き文字をつかったサンプルだけじゃなく、様々な機械学習のサンプルが載っているところ
  • 出版して間もないので情報が比較的あたらしいところ

悪いところ

  • 機械学習ニューラルネットワークの仕組みは全く理解できないところ(あーなんかうごいたで終わる。)
  • 6章の牛丼解析で大量な手作業を必要するのでスキップしたこと
  • TensorFlowの開発スピードが速いためか、サンプルコードにDeprecatedなコードがある

おすすめの読書方法

  • とにかく写経

 

 自分は写経メインで1週目を終えました。内容は、機械学習の仕組みとかロジックとかには、ほとんど突っ込まず、動くサンプルがいっぱい載っている本でした。最初の方のスクレイピングあたりは、やっていることはたいして難しくないので理解を深めることができたのですが、TesorFlowをつかったニューラルネットワークあたりから説明が非常に荒くなります。線形代数やらで行列データをいろいろと手を加えているはずなのですが、そのあたりの説明は一切ありません。とにかく写経して動かしてみて、「こんなことができるのかぁ」を楽しむことに特化した本だと思います。とくに夏目漱石のデータを機械学習にかけ、「日本語の文章っぽいなにか」を生み出すプログラムには惹かれるものがありました。のちのち自分で自力でつくりたいですね。

 残念だったのが6章の牛丼解析。手作業で画像を分類しましょうとあって、さすがに本をなぞってやるような内容じゃないなと感じました。あと7章の最後、正解率を100%にするためプログラムを改良していくのですが、なぜか自分の場合は手を加えると成果率が13%に。typoなのか環境の違いの問題なのかわかりませんが、なんとも悲しい終わり方になりました。

 

TensorFlowで学ぶディープラーニング入門 ~畳み込みニューラルネットワーク徹底解説~

TensorFlowで学ぶディープラーニング入門 ~畳み込みニューラルネットワーク徹底解説~

 

 とはいえ、やっぱり仕組みを理解したいので、次はこの本をよむ予定です。 立ち読みした感じですが、とうぜん数式が出てきますが簡潔に説明されていて、初心者の私にも理解できそうな感じです。同時に定番のCourseraのMachineLearningもすすめていこう。

 

github.com

 あとは、のちのち自分で機械学習するときに必要になるであろうデータを集めるプログラムを暇を見つけては作っています。ニュースサイトからトップニュースを抜き出すプログラムをたくさん作ろうと思ったのですが、昨今のニュースはYahooに集約されているので、YahooニュースのRSSを元にニュース原稿を抜き出すプログラムになりそうです。どんなAPIに仕上げるか、まだ検討中なのでReadmeはまだ空っぽです。まじめに公開するならpep8も学ばないといけませんね。