動かしてみないことにはわからない
前編では、ディープラーニングの理論について説明するとともに、この分野がGoogleやFacebook等の先進IT企業がこぞって注力しようとしている今まさに熱い分野だということについて触れました。ディープラーニングが画期的な機械学習方法だということを強調して書いたつもりではありますが、いくら文章を読んでも、自分で手を動かさない限りその威力はなかなか実感しにくいかと思います。また、ただ手を動かして体験するとはいってもディープラーニングを自分で一からやるには高度な技術力を必要とするため、ごく一部の専門家でない限り、敷居が高いと思われるかもしれません。
筆者が学生の頃、機械学習はまだ手が届きにくく、機械学習を用いた研究を行うにも気の遠くなるような分量のスクリプトを書き、そしてパラメータチューニングに昼夜を問わず明け暮れる、そんな時代でした。このようにディープラーニングはごく限られた高度な技術者だけのものなのでしょうか?そんなことはありません。オープンソースが浸透した今の時代を生きる私たちは、大変幸運なことにディープラーニングの威力を手軽に(しかも無料で!)体験することができます。これを利用しない手はありません。
後編では、ディープラーニングのオープンソースソフトウェアの実装を用いてディープラーニングを実際に動かしてみることを目標にしています。(今回はディープラーニングを動かすことを目標としているので、パラメータチューニングについての議論はあまり行いません。)また、ただ単に動かして正解率を漫然と眺めるだけでは、筆者は面白くないと考えています。正解率の値で一喜一憂するだけではなく、分類の失敗例/成功例を実際に目で見て、どのようなケースだと分類がうまくいく/失敗するかを考察していきたいと思います。さあ、それでは始めましょう。
ディープラーニングのソフトウェア実装
ディープラーニングのソフトウェアパッケージへの実装でフリーなものとして、Javaで開発された分析エンジンプラットフォームのH2O、PythonのPylearn2 (Theano) やRのdeepnetパッケージ などが公開されています。本記事では、Webインターフェース上からプログラミング作業を伴わず操作でき、また、データの整形や可視化に優れたRから手軽に扱える点などから、H2Oを用いた分析手順を概説します。
下準備および注意事項
本記事の手順ではR-3.1.1 (64ビットWindows版)とH2O(2.8.1.1)を用いました。なお、H2Oの起動にあたって、JRE(Java Runtime Environment)が必要になりますので、お使いのPCにJavaがインストールされていない方は、Javaの[ダウンロードサイト](https://java.com/ja/download/)からJavaインストーラをダウンロードし、exeファイルを実行することでJavaがインストールされます。
また、Rのほかにデータ処理のためPython 2.7.7(Anaconda 2.0.1 64ビット版)を使用しています。お使いのPCにPythonがインストールされていない方は、Pythonをインストールして頂く必要があります。新たにインストールされる場合、Pythonの数値計算ライブラリNumpy を使用する関係で、Continuum Analytics社より配布されているPythonディストリビューション、Anacondaが便利です。Continuum Analytics社のAnaconda[ダウンロードサイト](http://continuum.io/downloads)よりインストーラをダウンロードし、exeファイルを実行することでAnacondaがインストールされます。
なお、本記事の手順で用いたRコマンドは、最初からすべて続けて実行することを想定しております。休憩をとるなどして一旦Rのコンソールを閉じてしまった場合などは、本手順の最初に戻って再度最初からコマンドを入力するようにしてください。