IT + X

ITと何かのコラボレーションは時代を変えるかも

Hands-On Machine Learning with Scikit-Learn Keras & TensorFlow Ed.2(イントロ)

Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems

Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems

機械学習の教科書的テキストとして評判のHands-On MLの第2版(英語版)が出たので早速買って読んでみました。 構成としては基本的に第一版と同じようですが、TensorFlowなどのライブラリバージョンアップに伴って内容がアップデートされているようです。 日本でも第一版は翻訳されていますが、翻訳がまずいのかイマイチ評判はよくないようです。

実は第一版はかなり前に読んだのですが、あまり理解できないところが多かったので第2版に改訂されたのを期にもう一度再読してみようと思います。
読んだ内容は何回かに分けてまとめていきたいと思います。

まず、本の内容は全体的にこのような構成になっています。

機械学習の基本知識

ニューラルネットディープラーニング

全体的に前半が非ニューラルネットアルゴリズムについてに書かれていて、後半はニューラルネット/ディープラーニングという構成になっています。
ちょっと読んだ感じでは、今回の改訂で変更、追記されたのは主に後半部分ではないかと思います。

サンプルプログラムはこちらのURLからダウンロードできます。
Jupyter Notebook形式になってますので、実行結果を確認しながらコードを読むことができます。
ハンズオンと本のタイトルにもあるように、実際にコードを動かすことを基本とする内容なので、ぜひとも自分のPCに実行環境を作って動かしながら読み進めてください。

では、まず初回ですので実行環境を作る説明をします。
私の実行環境はMacですが、他のプラットフォームでもそんなに違わないと思います。
まず、Pythonをインストールする必要がありますが、おすすめはAnacondaというパッケージシステムを使うことです。

www.anaconda.com

AnacondaはPythonだけでなく、いろんなライブラリを簡単にインストールできるディストリビューションです。
機械学習関連のライブラリが充実していて、アップデートもコマンドで簡単にできます。
上のURLからPython3のバージョン(2019年11月現在Pythonのバージョンは3.7)のインストールイメージをダウンロードしてください。
ダウンロードファイルは、インストールプログラムになっているので実行してインストールします。
ターミナルを開いて、Pythonがインストールされていることを確認します。

% python -V
Python 3.7.3

前にダウンロードしたサンプルファイル(handson-ml2/)内にrequirements.txtというファイルがあります。
これは、サンプルコードを動かすために必要なPythonライブラリの情報が書かれています。
requirements.txt

...
##### Core scientific packages
jupyter==1.0.0
matplotlib==3.1.1
numpy==1.17.2
pandas==0.25.1
scipy==1.3.1
....

以下のコマンドでrequirements.txtに書いてあるライブラリを一気にインストールできます。

% conda install --yes --file requirements.txt

ただ、requirements.txtはpipというコマンドの形式なのでcondaでインストールするとパッケージが見つからないと言われることがあります。
その時はpipコマンドで個別にインストールします。

% pip install [ライブラリ名]

サンプルコードはJupyterノートブックという形式になっています。
これはブラウザ上でPythonを動かせる環境で、実行結果がブラウザ上に表示されるので試すのにとてもいいです。

handson-ml2ディレクトリ内でJupyter Notebookを起動します。

%  jupyter notebook

ブラウザでhttp://localhost:8888にアクセスすると以下のページが表示されます。

f:id:anthony-g:20191126140054p:plain
Jupyter Notebook

次回からいよいよ内容について書いていきたいと思います。