読んだ本のレビュー データサイエンス編
この記事は?
自分が読んだ本を時系列に並べて、独断と偏見で簡単にレビューしていきます。 データサイエンス(機械学習)のスキルが身につくと謳っている本が量産されている中、どの本を読むべきか読まないべきか、という判断の一助になるよう願っています。
この記事は新しい本を読むたびに随時更新していくつもりです。 なお各レビューには以下の点について述べています。
- 読んだときの事前知識 ... 評価は事前知識によって大きくバイアスがかかると思うので
- 良い点
- 悪い点
- おすすめしない人 ... これに該当しない方は購入して損はないと思います。
またサンプルコードがある場合はリポジトリを載せています。
気にする方がいらっしゃるようなので、言っておくと、本記事にアフィリエイトリンクはないです
レビュー
パターン認識と機械学習 上
- 当時の事前知識
- データサイエンスが流行っていることを知らずに入った研究室で、機械学習のきの字も知らない状態で読まされた一冊
- 良い点悪い点
- 語れるほど理解していない
- 今見直すと、網羅的にいろいろなことが書いてあり、数式がちゃんとしているのが良い。(が理解できない点もまだ多い。)
- おすすめしない人
部分的にしか読んでないですがHMMとか使うなら下巻がおすすめです。
Pythonではじめる機械学習
Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎
posted with amazlet at 19.03.20
- 当時の事前知識
- 良い点
- 悪い点
- 数式的な理解は全く得られない。
- NMFの説明が分かりづらい。基底や線形結合の概念を用いれば簡単に説明できるのに数式を回避するあまりかえってわけわからん説明になっているように感じた。
- P47ページ「訓練データのサンプルよりも特徴量の数の方が多い場合には、どのようなyも線形回帰できるので、線形モデルは強力なのだ。(意訳)」の文章がミスリーディングを誘う。訓練データのサンプルより特徴量の数のほうが多い場合、考えなしに線形回帰を行えば間違いなく過学習する。
- おすすめしない人
サンプルコードのリポジトリ
ゼロから作るDeepLearning
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
posted with amazlet at 19.03.20
- 当時の事前知識
- ニューラルネットがどのような計算の組み合わせで成り立っているのかは知っていた。
- 具体的に計算してみたことはなかった。
- 良い点
- 高校生でもわかるようにかいてある。
- 図による説明が丁寧。
- これのおかげで期末試験にて手動でBackPropagationさせる問題が解けた
- 悪い点
- ここまでかと丁寧に説明しているのに、ところどころ不親切(P148とか)
- 本当に本当の基礎だけしか扱っていない
- おすすめしない人
- ニューラルネットにすでに詳しい人
- DeepLearningを使えるようになりたい人(読むと仕組みはわかるが使えるようにはならない)
- ある程度の事前知識があれば、この本の内容(CNN以外)は後述するゼロから作るDeepLearning2でまかなえますのでそちらをおすすめします。
サンプルコードのリポジトリ
scikit-learnとTensorFlowによる実践機械学習
scikit-learnとTensorFlowによる実践機械学習
posted with amazlet at 19.03.20
- 当時の事前知識
- ゼロから作るDeepLearningを読んでいた
- 深層学習ライブラリを扱ったことはない
- scikit-learnはいろいろな手法を回したり、処理のパイプラインを作ったりできる程度
- 良い点
- 悪い点
- おすすめしない人
- 実践力が欲しい人(Kaggleをやったほうが良いと思われる。)
サンプルコードのリポジトリ
直感DeepLearning
直感 Deep Learning ―Python×Kerasでアイデアを形にするレシピ
posted with amazlet at 19.03.20
- 当時の事前知識
- ニューラルネットの基礎知識はある。(ゼロから作るDeepLearningの内容程度)
- TensorFlowの本を読んで、サンプルコードを動かしたことがある。
- 良い点
- 俺たちは直感でDeepLearningをしている!!!!タイトルに偽りなし。
- 簡単にDeepLearningを行うことができる。簡単すぎて頭悪くなる。
- 悪い点
- RNNのseq2seqの構造が変。
- Kerasで細かいことをしようとしたときにどうすればいいのか書いてない点。(自分で損失関数を定義しようとしたり層を定義しようとしたりができない。)
- おすすめしない人
- すでに何らかのDeepLearningフレームワークに慣れている人
サンプルコードのリポジトリ
詳解ディープラーニング TensorFlow・Kerasによる時系列データ処理
詳解 ディープラーニング ~TensorFlow・Kerasによる時系列データ処理~
posted with amazlet at 19.03.20
- 当時の事前知識
- ゼロDeepを読んだ程度の知識。
- RNNの操作の流れは知っていた。
- 良い点
- 数式をちゃんと用いている
- 当時にしては珍しくAttentionについて述べられていた。
- 悪い点
- 数式の解釈等があまり書いていくてスラスラ読めない。図が少ないのも原因か。
- 読んだときにはコードが古くて動かなかった。
- おすすめしない人
- 全員(コードの書き方がもうかなり古いため)
Pythonデータサイエンスハンドブック
Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習
posted with amazlet at 19.03.20
- 当時の事前知識
- numpy ... ぜんぜんできない
- pandas ... csvを読み込んで任意の列や行が抜き出せるぐらい
- Matplotlib ... 見よう見まねで使っていたぐらい
- scikit-learn ... いろいろな手法を回したことがある程度
- 良い点
- 悪い点
- 機械学習の章は不親切。初心者にはわかりにくく、ある程度わかっている人は読む必要がない、と感じた。
リポジトリというか無料公開の英語版
Matplotlib&Seaborn実装ハンドブック
Matplotlib&Seaborn実装ハンドブック (Pythonライブラリ定番セレクション)
posted with amazlet at 19.03.20
- 当時の事前知識
- 図を重ねたり、軸を調節したりはできる。
- 色を細かく調節したり、グラフを何個も表示してレイアウトをいじるのは調べないとできない。
- 良い点
- APIが細かく書いてある。
- 悪い点
- ただのAPIリファレンスの日本語訳
- おすすめしない人
- 英語でAPIリファレンスが読める人
退屈なことはPythonにやらせよう
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
posted with amazlet at 19.03.20
- 当時の事前知識
- 良い点
- 悪い点
- ファイルを操作する章でなぜpathlibを使わない
- おすすめしない人
- データサイエンスをする人は読まなくていい
これも英語版は案の定無料公開
ゼロから作るDeepLearning2
ゼロから作るDeep Learning ❷ ―自然言語処理編
posted with amazlet at 19.03.20
- 当時の事前知識
- KerasでRNNを扱ったことがあった。
- Attentionの概要を知っていた。
- The Illustrated Transformerをすでに読んでいた。
- 良い点
- 悪い点
- おすすめしない人
- 自然言語処理のテクニックを網羅的にさらいたい人
- 1と同様、ライブラリによる実践的なことがしたい人。
サンプルコードのリポジトリ
今読んでる本
読み終わったらレビューに追加します。
現場で使える!PyTorch開発入門
現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY)
posted with amazlet at 19.03.20
Cython Cとの融合によるPythonの高速化
Cython ―Cとの融合によるPythonの高速化
posted with amazlet at 19.03.20