以下に Colab
の特徴を列挙します
- クラウド上の計算機資源
- 無料
- ブラウザ上で実行可能な Jupyter ノートブック環境
- TPU, GPU の実行環境も提供
Colab
はクラウド上の計算機資源。従って手元の PC に保存されているデータを直接利用できない。
同様に計算結果を保存するためには別の保存場所,クラウドドライブや PC などに転送する必要が生ずる。
クラウド上で無料で利用可能な実行環境ですから,以下のような長所があります。
- 面倒なインストール作業が不要
- したがって 複雑なライブラリの依存関係に悩む必要がない
- ブラウザ上で実行可能 そのために直感的な操作感が偉える
一方短所としては以下の点が挙げられます。
- 自身のデータを用いる場合にはアップロード/ダウンロードの作業が発生する
- 逆に言えば何もしなければ,どこにも保存されない
- Google の都合で勝手にライブラリがアップデートされる。そのため以前動作したプログラムがバージョンの不一致を起こす場合がある
- 一定時間何もしないと切断される
- 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 つについて言及します。
上記 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。まとめると次のことが言えるでしょう。
- 人気は TensorFlow が圧倒的だが
- 手軽に試すには簡単な keras が好まれ
- 研究ベースでは PyTorch が選好される
Colaboratory 事始め#
- Google Colaboratory は jupyeter notebook をご存知であれば,ほぼ使い方は同じです。
- notebook は セル と呼ばれる単位から成り立っています。
- セルは コード,テキスト,画像で構成されます。
- クラウドベースの実行系ですので,インストールの手間は不要です。
- Google Doc に保存可能で Google Drvie 経由シェアできます
- テキストはマークダウン形式で書きます
- ブラウザを立ち上げて https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja にアクセスしてください。
-
Google Colaboratory のチュートリアルビデオ も参照してください
Colab
のスタートページへ "https://colab.research.google.com/notebooks/welcome.ipynb"- 著名なユーチューバー Siraj さん, "クラウドを使ってニューラルネットワークを訓練する方法 "How to Train Your Models in the Cloud"
- Colab FAQ の日本語(拙)訳
-
https://stackoverflow.com とはプログラムに関する Q and A を投稿,知識共有のためのサイトです。 ↩
-
keras の作者であるフランソワ・ショレ (François Chollet) も Google 所属です。フランソワは日本留学経験者です。ツィッターアカウントは @chollet ↩
-
筆者の主観です。ですがこの言質に対する反論は聞いたことが有りません。 ↩