構築しよう!機械学習に最適な環境を
前回は、機械学習について学んだ知識を試してみるにあたって、データをどうやって入手し、学んだ成果をどうやって図るのかについて、考えてみました。
今回は、入手したデータを実際に処理するための、開発環境について、自分なりに学んだことを、アップしていきたいと思います。
結論から言うと、Python+Google Colaboratory(Google Colab)を使ってみたいと、思います。
目次
得意の言語?いやいや、そこはあの言語で
あなたには、得意なプログラミング言語が、ありますか?Javaでしょうか。.NET(C#)でしょうか。「TIOBE Index」*1によると、この何年かずーっと1位な言語は、Javaです。もしかしたらあなたは、機械学習を始めるにあたって、こんな風に考えたことは、ないでしょうか?
プログラミング言語なんて所詮どれも同じ、とりあえず得意な言語で、仕組みから理解しよう
と。とても真面目なアプローチですが、これは大いに危険な可能性があります。あなたが学生時代から数学を学んでおり、高度な数式をプログラミング言語のアルゴリズムに落とし込めるほど数学・プログラミングに長けているならば、これは良いアプローチかもしれません。しかし、そうでないならば、難しすぎて挫折する可能性が、あります。まぁ、
全部私のことなんですが
例えて言えば、車を運転するにあたって、まずは車の仕組みから理解して、車の組み立てからやってみようとしているようなもの。初心者がいきなりやるには、だいぶハードルが高すぎます。一般人は、大体の車の概要を理解して、後は実際に運転できれば十分でしょう。同様に、機械学習も、大まかに仕組みを理解して、後はやってみる方が、挫折せずに身につけれるのではないかと、個人的な結論に至りました。
ここで、組み立て済みの車にあたるのが、ライブラリになります。一般人は、組み立て済みの車を運転できれば、自分で組み立てれる必要がないように、機械学習も、まずはライブラリを使いこなせれば、初級者としては、それで十分なのではないでしょうか。つまり、自分の得意な言語ではなく、ライブラリが充実している言語を選ぶことが、機械学習を身に着けるための第一歩だと、思いました。
機械学習のライブラリが充実している言語というと・・・そう、Pythonですね。月並みですが、やはりそういう結論に至りました。
一時期は、Javaで自力で機械学習のアルゴリズムを組むのに挫折して、Watson StudioやNeural Network Consoleのような、ノンプログラミング系のものにしようかと思いましたが・・・これはこれで、簡単にそれなりの精度は出るものの、その後どうすればいいのか、路頭に迷ってしまいました。
ライブラリを使ってプログラミングするのが、ほどほどに簡単で、工夫も出来てスキルが向上している感も持て、バランスが取れているのかな、なんて思いました。
IDEは一択。に見えて・・・
Pythonで機械学習をするならば、やっぱりAnnacondaとJupyter Notebookです。Java屋さんに分かるように表現すると(?)、Annacondaはmavenがもっと便利になったもの(つまり、ライブラリ管理ツール)で、Jupyter Notebookは、EclipseがWebになったもの「のようなもの」(つまり、IDE)と言えば、当たらずとも遠からずな感じでしょうか・・・
基本的には、Annacondaをダウンロードしてインストールして、Annaconda経由で、機械学習に必要なライブラリやJupyter Notebookをインストールすれば、学習環境は出来ます。書籍やネットにも手順はたくさん書いてあるので、特に問題はありません。ありませんが・・・
機械学習には、それなりのマシンパワーが、必要になります。昨今、「ネットが見れればまぁ十分」と、ご自宅のPCには、そこまでハイスペックのものを用意していない人も、多いのではないでしょうか。あるいは、会社PCだと、会社特有のプロキシ設定にひっかかって、やっぱり環境の構築に色々と面倒だったりも、するかもしれません。
そこで、本ブログで試してみたいのが、Google Colaboratory略して、Google Colab。クラウド版のJupyter Notebookになります。クラウド版のJupyter Notebookというと、AWSやAzure、Watson Studioなど、各社主要クラウドベンダーも出していますが・・・無料で、しかもGPUまで使えるというのは、今のところ、Google Colabだけではないでしょうか。90分ルール*2や12時間ルール*3など、注意すべき制限はいくつかあるみたいですが、それを差し引いても魅力的なツールです。なんだったら、
iPad Proで機械学習を行う
なんてシャレオツなことも、出来てしまいます。ということで早速、セットアップしてみました。
Google Colabをセットアップしよう!
Googleアカウントの作成
まずは、Googleアカウントを作成する必要があります。以下のURLから、Googleアカウントを作成しましょう。・・・とはいえ、今のご時世、大半の人がgmail使ってると思いますし、既に持っている人が多いのではと、思いますが。
accounts.google.com
Google ドライブへアクセス
基本的に、Google Colabは、Google ドライブから使うみたいです。以下のURLからGoogle ドライブにアクセスし、「Google ドライブへアクセス」というボタンを押しましょう。
www.google.com
Google Colabを追加
Google ドライブにアクセスしたら、新規ボタンをクリックします。
すると、以下のようなポップアップメニューが表示されるので、その他⇒アプリを追加を、クリックします。
続いて、以下のような画面がポップアップされるので、Colabを検索し、「+ 接続」ボタンをクリックします。
追加が完了したら、以下の画面が表示されるので、OKボタン及び×ボタンを押して、画面を閉じます。
これで、Google Colabを使う準備が、出来ました。
ノートブックの追加
試しに、ノートブックを追加してみたいと、思います。図2~図3の手順で、新規⇒その他を選択すると、今度はその中に「Colabolatory」というものがあると思うので、それをクリックします。
すると、ノートブックが開きます。
Jupyter Notebookっぽくはありますが、若干アレンジされていることが分かるかと思います。試しになんか実行してみると・・・
実行できました。とてもセットアップが簡単だと、思いませんか?
ノートブックが追加された場所の確認
既にご想像されているかもしれませんが、Google ドライブの「マイドライブ」上で新規追加したため・・・
マイドライブ直下に、新しいノートブックが、追加されています。追加直後なのでUntitledとなっていますが、通常のJupyterと同じように、名前を変更することが出来ます。標準でメニューが日本語になっているのは、嬉しいですね!
・・・というわけで、Google Colabは基本、Google ドライブをファイルシステムとして、使用します。なので、無料ではありますが・・・Google ドライブの容量には、要注意です。
次回予告:Google ColabのちょっとしたTIPS
ちょっと長くなってきたので、今回はここらへんで一旦、終了にしようと思います。前述したとおり、Google Colabは、ローカルのディレクトリではなく、Google ドライブを使用することを前提としています。ですので、ファイルの読み書きで、通常のJupyterとはちょっとした違いが、あります。次回は、実際の機械学習に入る前に、一旦以下当たりの「Google Colabの癖」について、整理してみたいと思います。
- 追加のライブラリの導入方法
- ファイルの読み書き
- コード補完のやり方*4
- GPUの使い方
- キーボードショートカット
- とりあえず、Jupyterでよく使っていた、セルの追加・削除、セルの種類の変換あたり。
最後まで読んでいただいて、ありがとうございました。