3ステップでゼロから機械学習を始める(Anaconda+Keras)

  • 0
    いいね
  • 0
    コメント

    この文書の概要

    Windows10マシンでTensorflowバックエンドのKerasを使った機械学習を行えるように環境をととのえる方法が書いてあります。

    プログラミング初心者がさらなる初心者に書いたような内容です。(と保険をかけておく)

    Kerasって?

    説明は公式ドキュメント( https://keras.io/ja/ )に委ねます。

    Kerasは、Pythonで書かれた、TensorFlowまたはTheano上で実行可能な高水準のニューラルネットワークライブラリです。
    次のような深層学習ライブラリが必要な場合は、Kerasを使用します:
    ・簡単で早くプロトタイプ作成が可能 (全体的なモジュール性、ミニマリズム、および拡張性による)
    ・CNNとRNNの両方、およびこれらの2つの組み合わせをサポート
    ・任意の接続方式 (複数入力および複数出力の学習を含む) をサポート
    ・CPUとGPUでシームレスな実行

    こんな感じでとにかく簡単にニューラルネットワークを記述し機械学習ができるので初心者にお勧めです。

    sample
    #モデルの構築
    model = Sequential()
    model.add(Dense(64, input_dim=20, init='uniform'))
    model.add(Activation('tanh'))
    model.add(Dropout(0.5))
    model.add(Dense(64, init='uniform'))
    model.add(Activation('tanh'))
    model.add(Dropout(0.5))
    model.add(Dense(10, init='uniform'))
    model.add(Activation('softmax'))
    
    #最適化アルゴリズムのハイパーパラメータを設定
    sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
    #モデルのコンパイル
    model.compile(loss='categorical_crossentropy',optimizer=sgd,metrics=['accuracy'])
    
    #学習
    model.fit(X_train, y_train,nb_epoch=20,batch_size=16)
    #学習済みモデルのテスト
    score = model.evaluate(X_test, y_test, batch_size=16)
    

    この例は、全結合層3層からなる10クラス分類のニューラルネットワークです。

    手順

    Anacondaをインストール
    Condaで仮想環境を作る
    仮想環境にKerasをインストールする
    実はこの3ステップだけでニューラルネットワークを用いた機械学習が簡単にできてしまうのです|д゚)

    ①および②については
    データサイエンティストを目指す人のpython環境構築 2016
    http://qiita.com/y__sama/items/5b62d31cb7e6ed50f02c )に詳しく記述してあるので、以下は要約・補足という意味での覚え書きと考えてください。

    ①Anacondaをインストールする

    AnacondaとはPythonのディストリビューションの一つで、Python本体と主要ライブラリを全部入りで一発インストールできるほか、ライブラリの管理(インストール・アップデート・アンインストール)、仮想環境の管理を行うことができます。

    Anacondaのインストール

    Anacondaのインストール方法は公式サイト( https://www.continuum.io/ )からインストーラーをDLしてきて実行するだけ。面倒な設定は一切ナシ!
    試しにWindowsのコマンドプロンプトを開いてPythonを実行してみます。
    image
    たったこれだけの手間でWindows10上でPythonが動き、しかもnumpyが使える!

    ライブラリの確認とインストールおよびアンインストール

    既に入っているライブラリは以下のコマンドで確認することができます。

    conda list

    image

    こんな感じ。
    インストールとアンインストールは以下のコマンドで。

    conda install ライブラリ名
    conda uninstall ライブラリ名

    インストールの際にパッケージが見つからない場合はAnacondaCloud( https://anaconda.org/ )でライブラリ名で検索すると見つかる場合が多いです。それでもだめならpipでインストールしてください。

    pip install ライブラリ名

    ②Condaで仮想環境を作る

    僕は「なんか調子悪くなったら全部消して作り直せる」っていうメリット()があるので仮想環境上で作業してます。
    ほかにpython2系と3系を使い分けできるのもメリットかな?

    以下のコマンドを実行することで、指定した「環境名」で指定した「ライブラリ」が含まれた環境が出来上がります。なお、ライブラリに「anaconda」と書けばまるっとメジャーなライブラリが入って便利です。

    conda create -n 環境名 python=バージョン ライブラリ1 ライブラリ2

    つくったあとは以下のコマンドで仮想環境に入れます。

    activate 環境名

    あとはココでスクリプト(ソースコード)を実行するなり、好きに作業をしてください。もちろん、ライブラリは仮想環境上にインストールしないと動きません。

    ③仮想環境にKerasをインストールする

    TESTという名前の仮想環境を作る。

    conda create -n TEST python=3.5 anaconda

    その仮想環境に入る。

    activate TEST

    Tensorflowをpipでインストールする(condaでは上手く行かなかった)
    ※GPU(グラフィックボード)搭載の良いPCを持ってる人は手順④まで飛ばしてください

    pip install tensorflow

    Kerasをpipでインストールする(同上)

    pip install keras

    なんと、これだけであなたも機械学習ができちゃいます!
    あとは好きなテキストエディタ(僕はAtomを使いました)でKerasをimportしたスクリプト(ソースコード)を書いて、仮想環境上で実行するだけ。

    python test.py

    Kerasでのニューラルネットワークの記述や学習の方法は公式ドキュメント( 日本語:https://keras.io/ja/ )を参照しながらサンプル( https://github.com/fchollet/keras/tree/master/examples )を読めばなんとなくわかってくる程度には簡単なので割愛で。
    それでは楽しい機械学習ライフを。

    おまけ

    ④仮想環境にGPU版Kerasをインストールする

    GPUを使って機械学習をするとCPUでの機械学習に比べてかなりの高速化が狙えます。原理は知らない。

    pip install tensorflow-gpu
    pip install keras

    でGPU版のインストールができます。これで

    python
    >>import keras

    を試して、エラーが出なければおっけー。エラーが出たらCUDA Toolkitをインストールしてみてください。それでもだめなら知らない。