Amazon Web Services ブログ

機械学習帳が SageMaker Studio Lab からすぐに学べるようになりました

東京工業大学の講義で使用されている「機械学習帳」をご存じでしょうか? 教材を紹介する Tweet には数千の Like がつき大変反響があったため、目にした方も多いと思います。一方で、実際に機械学習帳で学んだ方はまだ少ないのではないでしょうか。本ブログは機械学習を学びたい方のために、無料で使える Amazon SageMaker Studio Lab で機械学習帳を学ぶ方法を紹介します。学ぶ際の補助教材として筆者が作成した「機械学習帳の学習ノート」も併せて紹介します。機械学習帳の著者である岡崎直観先生にご協力頂き、簡単に Studio Lab で学べるようになったので、ぜひ学習に活用頂ければと思います。

機械学習帳とは

機械学習帳は東京工業大学の機械学習の講義で使用されている教材です。岡崎直観先生が作成され、GitHub 上で CC BY-NC-ND 4.0 のライセンスで公開されています。ライセンスに基づき、個人での勉強はもちろん、学校など教育機関で機械学習の授業を行うのにも利用できます。機械学習の基礎的なトピックを平易な言葉、丁寧な数式展開で説明しています。Python による実装も紹介されているため、基礎的な理論を手を動かし学びたい時に適しています。教師あり学習として線形回帰からニューラルネットワーク、教師なし学習としてクラスタリング・主成分分析を扱っています。

機械学習帳のトップページ機械学習帳のトップページ

機械学習帳の特徴

世の中に機械学習が学べる教材はたくさんあります。その中でも、機械学習帳は学びやすい特徴が 3 つあります。

  1. オープンソースである点
  2. 理論と実装を併せて学習できる点
  3. 初学者にとって理解が難しい点に補足がされている点

機械学習帳は GitHub 上でオープンソースとして公開されており、どなたでも無料で学ぶことができます。オープンソースであることで、開発コミュニティにより改善・メンテナンスがされています。私自身、何度か Pull Request を送りマージしていただいています。

理論、狭義には数式だけでなく Python を使い実装する方法も解説されています。講義資料中に Python を使用した実装が紹介されているのはもちろん、確認問題も用意されています。確認問題は学んだ内容をもとに実装する必要があり、ライブラリの便利な関数を使っておしまいとはいきません。確認問題を通じて理解した理論の内容を実装面から確認できます。

機械学習帳の確認問題

確認問題の例

初学者にとって理解が難しい点に補足がされているのは機械学習帳の大きな特徴です。例えば、序盤の重回帰では表記法の定義の中でベクトルや行列、積の演算方法について補足があります。ベクトルや行列について理解があやふやな時に参照し知識を補完できます。

2.重回帰 2.2 表記法の定義の解説

2.重回帰 2.2 表記法の定義より

私が特に感動したのはサポートベクトルマシンの解説です。本ブログではサポートベクトルマシンの詳細なアルゴリズムは解説しませんが、サポートベクトルマシンではデータと境界線の距離を計算する必要があります。そのためには皆さんが高校で学んだであろう、数Bの知識が必要です。私が読んできた機械学習の書籍で高校数学の解説があることはまずないですが、機械学習帳では丁寧にも補足がありました。射影ベクトルの長さは数Bで扱うトピックです。

サポートベクトルマシンでの射影ベクトルの解説

9. サポートベクトルマシン 9.1.1 マージン最大化より

機械学習の前提となる数学の知識に自信がない方、実際にコードを書かないと理解がはかどらない方、まずはお金を掛けず学習したい方にとって、機械学習帳は素晴らしい教材といえます。

機械学習帳をAmazon SageMaker Studio Labで学ぶ方法

Amazon SageMaker Studio Lab はメールアドレスのみ、無料でデータサイエンスを学ぶための環境が利用できるサービスです。利用にあたってAWSアカウントはいらないため、クレジットカードを登録する必要がありません。「データサイエンスの学びを支援する Amazon SageMaker Studio Lab をグラレコで解説」ではイラスト付きでStudio Labの特徴を解説しています。

機械学習帳がStudio Labで学びやすい理由は3点です。

  1. 「 Open Studio Lab 」のボタンをクリックするだけで Studio Lab での学習を開始できる。
  2. 学習用の環境、学習の途中経過を永続ストレージに保存できる。
  3. 学習の補助教材である「機械学習帳の学習ノート」が公開されている。

Studio Lab は機械学習帳をすぐに開始できる環境の一つです。機械学習帳のトップページにある「 Open Studio Lab 」のボタンを押すだけで、機械学習帳で使用されている Jupyter Notebook を Studio Lab の中に取り込み動かすことができます。

機械学習帳トップページより

機械学習帳トップページより

Studio Lab は永続ストレージを持っているのが大きな特徴です。機械学習帳を動作させるための Python 環境が保存できるため、学習をはじめようと思った時に毎回 pip install からセットアップしている間に集中力が失われた・・・ということが起こりません。もちろん、Jupyter Notebook の実行結果や個人的に書き込んだメモなどもすべて永続ストレージに格納されます。セッションが一度切れても、保存された環境をすぐに立ち上げる、保存したメモを参照することができます。

素晴らしい教材である機械学習帳を学びやすくするために「機械学習帳の学習ノート」を公開しています。この GitHub リポジトリでは、機械学習帳の各章を解説したスライドや確認問題の実装例を紹介しています。

機械学習帳の学習ノート: Day1 より

機械学習帳の学習ノート: Day1 より

機械学習帳の学習ノート: Day3 より

機械学習帳の学習ノート: Day3 より

機械学習帳の学習ノートは筆者が実際に機械学習帳を毎日読み進める中で作成したものです。40 日間で読了するよう構成されています。もちろん、時間をかけられる方は毎日 2 日分行うなどして進められても Ok です。

では、Studio Lab で実際に学習を開始してみましょう!

1.Studio Labにログインする

ログインページから、 Studio Lab にログインします。Studio Lab のアカウントは Request Account から作成できます。

ログインページ

2.ランタイムを実行する

Start runtime ボタンをクリックし、実行環境を立ち上げましょう。CPU と GPU 両方つかえますが、機械学習帳は CPU で十分です。 CPU の方が 12 時間とセッション時間が長いので、集中力を失わずに済みます。

ランタイムの起動

3. 機械学習帳にアクセスする

Studio Lab とは別のブラウザのタブから、機械学習帳を開いてください。紫色の Open Studio Lab ボタンをクリックします。

Open in Studio Lab

4. 機械学習帳の教材を Studio Lab にコピーする

Copy to project ボタンをクリックし、教材ファイルを Studio Lab にコピーします。

Copy to Project

今回はすべてのファイルをコピーします。

Clone Entire Repo

Clone Git Repository

機械学習帳のリポジトリには環境の定義ファイル ( environment.yml ) が含まれるので、これを利用して環境をつくるか確認が行われます。OKをクリックします。

build Conda Environment

自動的にターミナルが立ち上がり、コマンドが実行されます。mlnote という機械学習帳を動かすための環境が作成されます。下図のようにコマンドが終了したら完了です。少し時間がかかりますが、一度作れば永続ストレージに保管されるため今後は作成する必要がありません。

create conda environment

5. 学習を始める

ファイルのコピー、環境の構築が終了したので学習を始めます。機械学習帳の章と GitHub のフォルダの関係は下記のようになっています。学習したい章にあったフォルダを開き、順番に Jupyter Notebook を開いてください。

Jupyter Notebook を実行する時は、実行環境として作成した mlnote を選択するのを忘れないようにしましょう。( なお、 mlnote の環境を作成してから Jupyter Notebook で選択できるようになるまでには少し時間がかかります)。

カーネルの選択

一度開いた Notebook は、次に起動したときも開いたままになっています。ちょっと休憩する時などでも安心ですね。同じ手順で 機械学習帳の学習ノート もStudio Labで開くことができます。学習の理解や確認問題を解く際に参考にしていただければと思います。

おわりに

AWSでは機械学習の学びから活用までを支援しています。学びの支援の一例として、機械学習帳をStudio Labで学習する方法をご紹介しました。Studio Labで学べる教材に興味がある方は、Studio Lab Community のページをご参照ください。岡崎先生が作成されたPythonの教材であるPython早見帳を学ぶ方法は以前 「Python 早見帳が SageMaker Studio Lab からすぐに学べるようになりました」でも紹介させていただきました。今後も機械学習の学びに役立つ教材を学びやすくしていきます。

学びから活用へのステップアップを支援をするため「 AWS Black Belt ML Enablement Series 」をYouTubeで公開しています。この動画ではプロダクトで機械学習を活用するためのプロジェクトの進め方を解説しています。「機械学習モデル開発プロジェクトの進め方 」や「 機械学習の価値を計算する」は特に重要なプロセスを解説しており、シリーズの中でも特に再生、Goodボタンを頂いています。本番環境に機械学習モデルを配置する時は本格的な機械学習モデルの開発環境である SageMaker が適しています。Studio Lab は SageMaker への移行手順を用意しており、 Studio Lab のドキュメントで手順を解説しています。SageMakerの使い方がわからない際は、ML Enablement SeriesのDark Partの動画シリーズでわかりやすく(かつ面白く!?)解説しているのでぜひご覧いただければと思います。AWS に直接ご相談されたい方は AWS 技術相談窓口も活用頂ければと思います。

本記事が機械学習を学び、活用したい方のお役に立てば幸いです!

著者について

久保 隆宏 (Takahiro Kubo) : 機械学習領域の Developer Relations Engineer です。機械学習を学び活用する際に AWS が最適なプラットフォームとなるよう、研究者や開発者の方からフィードバックを収集し、サービスの改善に活かす活動をしています。個人的には金融領域での機械学習の活用、特に非財務情報を自然言語処理で解析する方法に関心があります。過去に、データセットの公開やプロダクトの開発に携わった経験があります。