以下に Colab の特徴を列挙します

  1. クラウド上の計算機資源
  2. 無料
  3. ブラウザ上で実行可能な Jupyter ノートブック環境
  4. TPU, GPU の実行環境も提供


Colab はクラウド上の計算機資源。従って手元の PC に保存されているデータを直接利用できない。 同様に計算結果を保存するためには別の保存場所,クラウドドライブや PC などに転送する必要が生ずる。

クラウド上で無料で利用可能な実行環境ですから,以下のような長所があります。

  1. 面倒なインストール作業が不要
  2. したがって 複雑なライブラリの依存関係に悩む必要がない
  3. ブラウザ上で実行可能 そのために直感的な操作感が偉える

一方短所としては以下の点が挙げられます。

  1. 自身のデータを用いる場合にはアップロード/ダウンロードの作業が発生する
  2. 逆に言えば何もしなければ,どこにも保存されない
  3. Google の都合で勝手にライブラリがアップデートされる。そのため以前動作したプログラムがバージョンの不一致を起こす場合がある
  4. 一定時間何もしないと切断される
  5. Google Chrome での実行が推奨される。Google 社製だけに排他的な側面があります

本特別企画では長所が短所を凌駕すると判断し Colab を用いることにいたします。


本実習では,コンピュータ言語パイソン ( python) のブラウザ上での実行環境 ジュピターノートブック (jupyter notebook) を用います。 Jupyter notebook はそれぞれの PC 上で実行する環境です。 この実行環境をクラウド上で実行する環境を Colab と呼びます。

Python はコンピュータ言語の一つです。本実習ではコンピュータ言語 python の書式や使い方については深入りしません。Stackoverflow における言語トレンド も見てください1

Python を採用する理由は業界標準 (de facto standard) であることです。ディープラーニングを実装するアルゴリズムは python で書かれるようになりました。python はコンピュータ言語の一つですから,他のコンピュータ言語と遜色は有りません。他のコンピュータ言語との大きな相違は,共有可能なプログラム ---ライブラリやフレームワークと言ったりする--- が揃っていることです。新しいアルゴリズムを発表する場合,既存のライブラリを用いて構築することで誤りも減ります。また使ってもらえる可能性も高まります (Python 上の標準的なライブラリの利用 の項も参考にしてください)。

逆に言えば,python を覚えただけではディープラーニング技術に精通したことになりません。 python で動作する業界標準とみなされているフレームワーク,ライブラリ,プログラムを知っている必要があります。

ディープラーニングに特化した python で動作するディープラーニング用のライブラリ 3 つについて言及します。

  1. Keras
  2. PyTorch
  3. TensorFlow

上記 3 つ以外にも多くのライブラリ,フレームワークがあります。詳細は

  • フレームワークのトレンド
    この図はプログラムのソースコード共有サイト GitHub で,ディープラーニングの実装を扱うフレームワークの代表的なものを取り上げ,それらの星の数を横軸の時間の関数としてプロットしたものです。図から TensorFlow が他を圧倒していることが分かります。 TensorFlow 以外の星の数が,TensorFlow の数によって分かりにくいので,TensorFlow を除いて 同じグラフを描いたものが下のリンクです。

  • その拡大図
    これによれば,keras の数が多いことが分かります。図ではピンクの線です。Keras に加えて,keras を 追いかけるように上昇している "山吹色" の曲線が見て取れます。この山吹色が PyTorch です。

上 2 図から TensorFlow, Keras, PyTorch の順に "星の数" が多いすなわち人気が高いことが分かります。

Keras は TensorFlow を扱いやすいようにするためのライブラリです。従って Keras では裏 "バックエンド" で TensorFlow が動作している場合が多いです。多くのユーザの要望を取り入れて大きく高機能となった TensorFlow を覚えるよりも,とりかかり易い手軽な keras を使った方が初学者には敷居が低くて良いと思われます。 TensorFlow 側でも keras の学習容易性という特徴を重視して TensorFlow に keras を取り込んでいます2

一方,PyTorch は TensorFlow と Keras の 2 つのフレームワークとは独立のフレームワークです。 コーネル大学の論文のリポジトリサイト "arXiv" などで発表される論文では PyTorch が支配的です3。まとめると次のことが言えるでしょう。

  1. 人気は TensorFlow が圧倒的だが
  2. 手軽に試すには簡単な keras が好まれ
  3. 研究ベースでは PyTorch が選好される

Colaboratory 事始め#


  1. https://stackoverflow.com とはプログラムに関する Q and A を投稿,知識共有のためのサイトです。 

  2. keras の作者であるフランソワ・ショレ (François Chollet) も Google 所属です。フランソワは日本留学経験者です。ツィッターアカウントは @chollet 

  3. 筆者の主観です。ですがこの言質に対する反論は聞いたことが有りません。