ディープラーニングを始めるための、作業環境の特長と使い分け指針:Google Colaboratory入門
機械学習やディープラーニングの作業環境にはどのようなものがあるのか。「PyCharm」「Visual Studio Code」「Jupyter Notebook」という3つの主要な作業環境の概要と特徴を説明し、その使い分け指針を示す。
ご注意:本記事は、@IT/Deep Insider編集部(デジタルアドバンテージ社)が「deepinsider.jp」というサイトから、内容を改変することなく、そのまま「@IT」へと転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
はじめに
【これを学ぼう】作業環境の準備
Pythonでディープラーニングのプログラムを作るには、どこから始めればいいの?
まずは作業環境を整えようね。さまざまな作業環境があるんだけど、初心者の間は、タダで誰でも簡単に使えるGoogle Colaboratoryがお勧めだよ。本連載ではその基本的な使い方を説明するね。
読者対象
- 初めてディープラーニングや機械学習を学び始めるが、プログラミングも初めて学ぶ方
学習内容
本格的に実務でディープラーニングの作業を始めるとマシンパワーが必要となるケースが増えてくるが、学習初期の段階では、そこまで大がかりな作業環境を準備する必要はないだろう。そこで本連載では、無償でかつオンラインで簡単に利用できるJupyter Notebook環境を使用する。これを使えば、macOS/Windows/Linux、どのOS環境でも、Webブラウザー(お薦めはChrome)さえあれば、すぐ簡単にディープラーニングの学習を始められるので安心してほしい。
実際に作業環境を作り始める前に、今回は、いったいどのような作業環境があるのか、そもそもJupyter Notebookを使うと何が良いのか、など作業環境の概要と選択指針について簡単に触れておこう。
機械学習/ディープラーニングの作業環境
『機械学習&ディープラーニング入門(コンピューター概論編)』でも説明したように、機械学習/ディープラーニングでのプログラミング言語としてはPythonを使うのが一般的だ。そのPythonで、ディープラーニングのモデルを作成し、学習を実施するための作業環境はいくつかある。代表的な作業環境は以下のとおりだ。
- PyCharm: Pythonの統合開発環境(IDE)
- Visual Studio Code: Pythonを含むさまざまな開発機能を追加できるコードエディター
- Jupyter Notebook: ノート風にテキストとコードが書け、コードを個別に実行して、その実行結果を記録できるツール
選択指針としてそれぞれの特長を示しておこう。
PyCharm
PyCharmの特長は、クロスプラットフォーム対応でmacOS/Windows/Linuxにインストールでき、機械学習に必要な機能が初めからそろっていることだ。開発支援機能も豊富で、開発時のトラブルも比較的少ない。実務で開発生産性を優先する場合は、一番お勧めできる。
PyCharmには、有償のProfessional Edition、無償のCommunity Edition、教育用のEducational Editionという3つのエディションが用意されている。Professional版とCommunity版の違いは、主に機能である。Community版だけでも十分に機械学習が実施できる。使ってみて、他の機能が必要になればProfessional版に移行すればよいだろう。
Visual Studio Code
Visual Studio Codeの特長は、非常にシンプルで軽いことだ。開発支援機能も必要に応じて「拡張機能」という形で追加できる。
コードを管理して編集するという観点では、PyCharmよりも使い勝手がよい。しかしシンプルで軽いことのトレードオフとして、開発環境の設定が手動になることが多いので、設定が面倒でトラブルになりやすく、特に開発の初期段階では開発生産性がPyCharmよりも高くないといえるだろう。筆者の場合、プログラミングはPyCharmで行い、コードの閲覧や簡易な編集はVisual Studio Codeで行っている。
Jupyter Notebook
Jupyter Notebookは、この3つの中で特にデータサイエンティスト(=ディープラーニングや機械学習を含めたデータ分析全般を行う人)に好まれているツールだ。
第3回で具体的に見ていくが、ブロック単位でコードを書いて実行でき*1、またグラフなどの描画をノートブック上に保存できる。見出しや説明などのテキストも記載してノート風に仕上げられるのも、データサイエンスを行ううえで便利な点だ。
*1 ブロック単位で書いたコードを1つずつ対話的(=インタラクティブ)に実行できる環境はインタラクティブシェルとも呼ばれ、「コードの入力(=Read)」→「コードの評価・実行(=Eval)」→「実行結果の出力(=Print)」が1サイクルとして繰り返される(=Loop)ので、頭文字を取って「REPL」とも呼ばれる。Pythonには標準で、IPython(Interactive Python)もしくはIPython REPLと呼ばれるインタラクティブシェルが付属しており、Jupyter Notebookでも内部でIPythonが活用されている。
1つ1つ確認しながら進められるし、コードを間違っていても修正と再実行が簡単なので、教育や初心者にとってはベストツールである。ということで、本連載を含めて初心者・入門者向けの内容では、Jupyter Notebook環境の使用を推奨する。
Project Jupyterとは?
Project Jupyterは、「インタラクティブなデータサイエンス」と「各種プログラミング言語での科学計算」をサポートするために、2014年のPython Projectで誕生した、非営利のオープンソースプロジェクトである。このプロジェクトでは、主に下記のソフトウェアを提供している。
- Jupyter Notebook: 前述のとおり。『初めてのニューラルネットワーク&ディープラーニング実装(TensorFlow 2+Keras(tf.keras)入門)』などで使用する
- JupyterHub: グループユーザーでJupyter Notebookを使えるようにする環境
- JupyterLab: Jupyter Notebookの次世代バージョン
これらのプロジェクト内容を総称してJupyter(もしくはJupyter universe)と呼んでいる。ちなみに、Jupyterという名称は、データサイエンスに強いプログラミング言語の「Julia」+「Python」+「R」に由来するといわれている。読み(ジュピター)は「Jupiter(木星)」と同じなので、環境を「universe(宇宙)」と表現しているのだろう(※ちなみにPythonを強調して「ジュパイター」と読んでも間違いではない)。
無償で使えるJupyter Notebookオンライン環境
Jupyter Notebookはローカル環境にインストールして使えるが、もっと手軽に使える無償のオンライン環境も多数存在する。検索するとたくさん出てくるが、代表的なものは以下のとおり。
どれを使ってもよいのだが、本稿では、この中で最も有名だと思われる「Google Colaboratory」(通称:Google Colab、図4)を使用する。
ただし、Google Colabは、Jupyter Notebookを独自に拡張している部分が少しあるので(例えば、後述するGoogleドライブ*2対応など)、Jupyter Notebookと完全に同じアプリケーション機能ではないことに留意してほしい。
*2 Googleドライブは、写真やドキュメント、表計算データなどのファイルを作成/編集/保存/管理するためのクラウドストレージである。
独自に拡張したGoogle ColabのColaboratoryノートブックファイルは、Jupyter Notebookと同じ「.ipynb」という拡張子を付けた名前で保存する。Colaboratoryノートブックには、Google Colab独自のメタデータ(付随情報)が含まれているものの、通常のJupyter Notebookファイル(.ipynbファイル)のファイルフォーマットに従ったものなので、他のJupyter Notebook作業環境との互換性は維持されており、ノートブックファイルの違いは基本的に気にする必要はない。
Google Colabの主な特長は、以下のとおりである(※2018年12月時点の情報で、将来、変更される可能性はある。「コードの自動補完」と「メソッドシグネチャのヘルプ」の内容は第3回で説明する)。
- 完全に無料
- Python 2.7とPython 3.6の両バージョンに対応
- GPUが無償で使える(通常はオフ。手動でオンにできる)
- ColaboratoryノートブックはGoogleドライブに保存される
- (Googleドライブのドキュメントと同様に)変更履歴が保存される
- (Googleドライブのドキュメントと同様に)共同編集ができる
- ColaboratoryノートブックはURLで他の人と共有できる
- 通常のJupyter Notebookファイル(.ipynbファイル)もそのまま開ける
- Jupyter Notebookファイル(.ipynb)形式やPythonファイル(.py)形式で出力できる
- 通常のJupyter Notebookと同様に、コードの自動補完やメソッドシグネチャのヘルプを表示できる
- WebブラウザーのChrome(推奨)とFirefoxで完全に動作するよう検証済み
特にGPUが無料で使えるのは驚きだが、無制限というわけではない。長時間(筆者の体感では30分以上)にわたり計算を実行していると、その計算は途中で停止される場合がある。また、メモリも使い放題というわけではなく、何十GBも使っているとエラーになった。
つづく
以上、機械学習/ディープラーニングの主要な作業環境について紹介し、作業環境の1つである「Jupyter Notebook」のオンライン版「Google Colab」の利用を推奨した。次回はGoogle ColabとそのColaboratoryノートブックの準備方法を説明する。
Copyright© Digital Advantage Corp. All Rights Reserved.