Sebastian Raschka氏とVahid Mirjalili氏による書籍『Python Machine Learning - Second Edition』 は、Pythonを用いた幅広い機械学習応用に対するチュートリアルだ。SciPy、NumPy、scikit-learn、Matplotlib、pandasといった人気のあるライブラリを用いて、機械学習を実践的に紹介する。
初版からの主な改訂部分は、ニューラルネットワークの実践に関する章だ。ニューラルネットワークとそのTensorFlowによる実装について解説する部分が5つの章になっている。内容の追加に加えて、初版にあった多くの概念も洗練されている。今度の改訂版は、はるかに大きく、深く、しかも実用的になっている。
本書のコードをすべて含んだGithubリポジトリも用意されている。コードはJupyter Notebookに入っており、コード、説明、コードを説明するための図が並んで表示される。これは各手法に関する優れた概要になっているが、特定の概念に関するコードを見つけたい場合、読者はNotebookを検索する必要があるだろう。
機械学習の世界へ新たに加わる人たちは、本書の最初の3章を読むと良いだろう。最初の章では、機械学習の主要なサブ領域の概要を説明し、各種問題に対してどの手法を使うべきかを提示している。この章の欠点は、すべての手法が本書に登場しているわけではないことだ。アプリケーションでの強化学習に関心のあるユーザーは、本書からそれほど恩恵を得られないだろう。2章では、パターン分類について、非常にやさしく紹介している。アルゴリズムはNumpyライブラリにある関数を使って実装されており、読者は基本的な分類器の仕組みにふれることができる。
3章では、分類器についてscikit-learnを使って説明している。この章は長く、サポートベクトルマシン、決定木、k近傍法を構築するために使用できる関数の概要について説明している。開発者は4章を読むことで、入出力データを扱い、前処理を行い、有益な特徴量を選択し、分類器に適用する、学習パイプラインをセットアップできるだろう。
本書は、端から端まで読むようには作られていない。読者は関心のある章を選んで、読み進めることができる。自分のモデルをデプロイしたい開発者は、9章を読むと良いだろう。9章では、8章で作成した感情分析モデルをWebアプリケーションにデプロイする方法を説明している。この章で私が気に入っているのは、ユーザーが自分のPCで実行できるようになったところで説明をやめずに、PythonAnywhereを使ってパブリックサーバーにデプロイする方法についても説明しているところだ。
約600ページのうち最後の200ページは、完全にニューラルネットワークのために書かれている。12章では、NumPyライブラリを用いた多層パーセプトロンの実装方法について説明している。12章以降、より難しいニューラルネットワークにはTensorFlowが使われている。ユーザーは、独自のニューラルネットワークを構築するのに必要な、様々な深い知識を学び、それら獲得した知識を適用して、深層畳み込みニューラルネットワークを用いた画像分類を行う。
最後の章では、再帰型ニューラルネットワークを用いたシーケンシャルデータのモデリングについて紹介している。この章の最後で、ユーザーは2つの大きな「最終」プロジェクトを構築する。ひとつは、IMDbの映画レビューデータセットにおける感情分析の実に焦点を当てている。ここで私が気に入っているのは、読者が8章を読んでいれば、同じ問題を解決する複数の手法を比較できることだ。もうひとつのプロジェクトは、テキストを生成する再帰型ニューラルネットワークの実装に焦点を当てている。
まとめ
この改訂版は、初心者にも、すでに機械学習を使っているエンジニアにも、多くの洞察を与えるだろう。概念は多数のグラフを使って明確に説明されており、それらの背景は数学的に説明されている。幅広い機械学習の概念について、本書は、理論、コード、数学的背景をバランスよく説明している。また、GitリポジトリのJupyter Notebookを追加することで、自分で入力しなくても、本書にあるコードを動かして調べてみることができる。
Rate this Article
- Editor Review
- Chief Editor Action