機械学習 & ディープラーニング入門(作業環境準備編)[Lesson 1]

機械学習 & ディープラーニング入門(作業環境準備編)[Lesson 1]

ディープラーニングを始めるための、作業環境の特長と使い分け指針

2018年12月7日

機械学習やディープラーニングの作業環境にはどのようなものがあるのか。「PyCharm」「Visual Studio Code」「Jupyter Notebook」という3つの主要な作業環境の概要と特徴を説明し、その使い分け指針を示す。

一色政彦 デジタルアドバンテージ 一色 政彦

はじめに

【これを学ぼう】作業環境の準備

マナブ:目が点 Pythonでディープラーニングのプログラムを作るには、どこから始めればいいの?

藍:優しく教える まずは作業環境を整えようね。さまざまな作業環境があるんだけど、初心者の間は、タダで誰でも簡単に使えるGoogle Colaboratoryがお勧めだよ。本連載ではその基本的な使い方を説明するね。

読者対象

  • 初めてディープラーニングや機械学習を学び始めるが、プログラミングも初めて学ぶ方

学習内容

 本格的に実務でディープラーニングの作業を始めるとマシンパワーが必要となるケースが増えてくるが、学習初期の段階では、そこまで大がかりな作業環境を準備する必要はないだろう。そこで本連載では、無償でかつオンラインで簡単に利用できるJupyter Notebook環境を使用する。これを使えば、macOSWindowsLinux、どのOS環境でも、Webブラウザー(お薦めはChrome)さえあれば、すぐ簡単にディープラーニングの学習を始められるので安心してほしい。

 実際に作業環境を作り始める前に、今回は、いったいどのような作業環境があるのか、そもそもJupyter Notebookを使うと何が良いのか、など作業環境の概要と選択指針について簡単に触れておこう。

機械学習/ディープラーニングの作業環境

 『機械学習 & ディープラーニング入門(コンピューター概論編)』(後日公開予定)でも説明したように、機械学習/ディープラーニングでのプログラミング言語としてはPythonを使うのが一般的だ。そのPythonで、ディープラーニングのモデルを作成し、学習を実施するための作業環境はいくつかある。代表的な作業環境は以下のとおりだ。

  • PyCharm Pythonの統合開発環境(IDE)
  • Visual Studio Code Pythonを含むさまざまな開発機能を追加できるコードエディター
  • Jupyter Notebook ノート風にテキストとコードが書け、コードを個別に実行して、その実行結果を記録できるツール

 選択指針としてそれぞれの特長を示しておこう。

PyCharm

図1 作業環境:PyCharm

 PyCharmの特長は、クロスプラットフォーム対応でmacOS/Windows/Linuxにインストールでき、機械学習に必要な機能が初めからそろっていることだ。開発支援機能も豊富で、開発時のトラブルも比較的少ない。実務で開発生産性を優先する場合は、一番お勧めできる。

 PyCharmには、有償のProfessional Edition、無償のCommunity Edition、教育用のEducational Editionという3つのエディションが用意されている。Professional版とCommunity版の違いは、主に機能である。Community版だけでも十分に機械学習が実施できる。使ってみて、他の機能が必要になればProfessional版に移行すればよいだろう。

Visual Studio Code

図2 作業環境:Visual Studio Code

 Visual Studio Codeの特長は、非常にシンプルで軽いことだ。開発支援機能も必要に応じて「拡張機能」という形で追加できる。

 コードを管理して編集するという観点では、PyCharmよりも使い勝手がよい。しかしシンプルで軽いことのトレードオフとして、開発環境の設定が手動になることが多いので、設定が面倒でトラブルになりやすく、特に開発の初期段階では開発生産性がPyCharmよりも高くないといえるだろう。筆者の場合、プログラミングはPyCharmで行い、コードの閲覧や簡易な編集はVisual Studio Codeで行っている。

Jupyter Notebook

図3 作業環境:Jupyter Notebook

 Jupyter Notebookは、この3つの中で特にデータサイエンティスト(=ディープラーニングや機械学習を含めたデータ分析全般を行う人)に好まれているツールだ。

 Lesson 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 前述のとおり。『Playgroundで学ぶディープラーニング入門(座標点データ編)』(後日公開予定)などで使用する
  • 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)を使用する。

図4 オンライン作業環境:Google Colaboratory

 ただし、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月時点の情報で、将来、変更される可能性はある。「コードの自動補完」と「メソッドシグネチャのヘルプ」の内容はLesson 3で説明する)。

  • 完全に無料
  • Python 2.7Python 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ノートブックの準備方法を説明する。

  • このエントリーをはてなブックマークに追加
機械学習 & ディープラーニング入門(作業環境準備編)[Lesson 1]
1. 【現在、表示中】≫ ディープラーニングを始めるための、作業環境の特長と使い分け指針

機械学習やディープラーニングの作業環境にはどのようなものがあるのか。「PyCharm」「Visual Studio Code」「Jupyter Notebook」という3つの主要な作業環境の概要と特徴を説明し、その使い分け指針を示す。

2018年12月7日(金)
機械学習 & ディープラーニング入門(作業環境準備編)[Lesson 1]
2. Google Colaboratory(Jupyter Notebook)の準備と、ノートブックの作成

機械学習やディープラーニングの作業環境の中でも初心者には「Jupyter Notebook」がお勧めだ。そのオンライン版「Google Colaboratory」の準備方法と、そのノートブックファイルの作り方などのファイル操作方法を説明する。

2018年12月10日(月)
機械学習 & ディープラーニング入門(作業環境準備編)[Lesson 1]
3. Google Colaboratory(Jupyter Notebookのオンライン版)の使い方

機械学習やディープラーニングの作業環境の中でも初心者には「Jupyter Notebook」がお勧めだ。そのオンライン版「Google Colaboratory」の画面構成や基本的な使い方、お薦めのショートカットキー、オートコンプリートとヘルプドキュメントの表示機能などを説明する。

2018年12月11日(火)
機械学習 & ディープラーニング入門(作業環境準備編)[Lesson 1]
4. 「ディープラーニング作業環境の概要とGoogle Colaboratory(Jupyter Notebookのオンライン版)の使い方」まとめ

機械学習やディープラーニングの作業環境と使い分け指針、Jupyter Notebookのオンライン版「Google Colaboratory」の概要や使い方を箇条書きでまとめる。

2018年12月11日(火)
Deep Insider の SNS :