「Python入門」に続き、「微分の基礎」、「線形代数の基礎」…ソフトウエアのチュートリアルとしては異例の章構成だろう。

 AI(人工知能)技術スタートアップのPreferred Networksは2019年4月10日、深層学習(ディープラーニング)の初心者向けのオンライン学習資料「ディープラーニング入門:Chainer チュートリアル」を公開した。

Chainerチュートリアルのトップページ
(出所:Preferred Networks)
[画像のクリックで拡大表示]

 この教材ではPFNが開発する深層学習フレームワーク「Chainer」の使い方だけでなく、深層学習を含めた機械学習の基本的な概念や、機械学習と親和性が高いプログラミング言語「Python」の活用法を学べる。誰でも無償で利用でき、大学の授業や企業研修、商用セミナーなどにも使える。

 「Pythonから線形代数、微分まで『なぜ学ぶのか』をしっかり解説し、学習のモチベーションを失わないような章構成を考えた」。教材開発を主導する齋藤俊太リサーチャーはこう語る。PFNの西川徹社長などが参加する戦略チームが開発方針を決めた上で、社内エンジニア10数人が執筆した。

Preferred Networksの齋藤俊太リサーチャー
かつて深層学習フレームワークの選択肢がCaffeやTheanoしか無かった頃、大学を出たばかりの齋藤氏は理想とするフレームワークの自作に取り組んでいたが、PFNが2015年6月にChainerを発表。その設計思想に感銘を受けて即座にコントリビュータとして名乗りを上げ、そのままPFNの社員になった
[画像のクリックで拡大表示]

 教材開発のプロジェクトが始まったのは2018年秋。重要なミッションの1つが「Chainerのユーザー数を拡大させること」だったという。

 ただ、既に「PyTorch」「TensorFlow」といった他のフレームワークを使っている現役の技術者に、Chainerに切り替えてもらうのは難しい。そこで、これまでどのフレームワークにも触れたことが無い初学者にリーチすることで、Chainerの利用者層を広めようと考えた。

 想定する対象は大学1~2年の初学者。大学の講義資料としてそのまま使える内容を目指す。高校で理系を選択していることが前提だが、文系でも数学の素養があれば読みこなせるようにする。

 教材開発を始めるにあたってPFNが特にこだわったのが章構成だ。「深層学習を含む機械学習をゼロから習得するため、初学者は何を、どの順序で学べばいいか、考え抜いた」(齋藤氏)という。

最初に「Python入門」から入る理由

 6章から成るStep1で「はじめに」に続いて最初に学ぶのが「Python入門」だ。

Step1「準備編」の章構成
(出所:Preferred Networks)
[画像のクリックで拡大表示]

 プログラミング言語としてPythonを選択したのは、Chainer自体がPythonを採用している他、行列演算を含む数学関数ライブラリ「NumPy」、機械学習ライブラリ「scikit-learn」などの充実したライブラリを備えるためだ。

 Pythonはプログラミングを知らない初学者が最初に学ぶ言語としても適しているという。最大の理由はコードの読みやすさだ。Pythonはコーディング規約(PEP8)に準拠している限り、コードの記述に個人差が表れにくい。「深層学習の研究成果がarXiv.org(論文速報サイト)などを通じて研究者間で即座に共有できている背景には、Pythonの可読性の高さも貢献している」(齋藤氏)。

 Pythonの開発環境には、米グーグル(Google)のクラウド型Jupyter Notebook環環「Colaboratory」を使う。

 Jupyter NotebookはPythonや関連ライブラリを含めたデータ分析環境を用意するオープンソースソフトウエア(OSS)だ。グーグルのColaboratoryはクラウド上に構築したJupyter Notebook環境をブラウザー経由で使えるサービスで、初学者がつまずきがちなCUDAやGPUドライバーのインストール作業を省ける利点がある。

行列を学んでいない大学生に深層学習を習得させる

 Python入門の後は「機械学習に使われる数学」を概観した上で、「微分の基礎」「線形代数の基礎」「確率・統計の基礎」と続く。

 現在の高校生は理系選択であっても行列を学んでいない。だが深層学習の演算は言わば行列演算の塊であり、アルゴリズムを理解する上でも行列の知識は必須だ。とは言え、そのために行列を含む線形代数全てを学ぶのは効率が悪い。

 そこで斎藤氏は、深層学習に最低限必要な行列の知識を習得できるよう教材を工夫した。スカラーから始めてベクトル、行列、テンソルの概念を解説。その一方で、行列の固有値や固有ベクトルなど、Chainerを使って深層学習を始めるのに必ずしも必要ではない概念の学習は省いた。

 この他「微分の基礎」を通じ、機械学習を学ぶ上で必須となる「目的関数の最小化」の概念を学ぶ他、深層学習の根幹を成すアルゴリズムであるバックプロパゲーション(誤差逆伝播法)で使う偏微分を習得する。「確率・統計の基礎」では確率・統計と機械学習の関係を理解する、という構成だ。

コンテンツの随所に「なぜ学ぶ必要があるか」を挿入し、学習へのモチベーションを高める
(出所:Preferred Networks)
[画像のクリックで拡大表示]

この先は有料会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら