Amazon SageMaker の機械学習について調べてみた – ClassmethodサーバーレスAdvent Calendar 2017 #serverless #adventcalendar #reinvent

2017.12.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、田中孝明です。

このエントリは Serverless Advent Calendar 2017 9日目の記事です。

re:Invent 2017 の発表内容と 記事 に押しつぶされそうになりそうな毎日ですが、その中で気になった新サービス Amazon SageMaker について調べてみました。

Amazon SageMaker

Amazon SageMaker では、機械学習モデルの構築とトレーニングの準備がより簡単になるように、トレーニングデータにすばやく接続し、アプリケーションに最適なアルゴリズムとフレームワークを選択して、最適化するために必要なツールがすべて揃っています。Amazon SageMaker には、Amazon S3 に保存されているトレーニングデータを簡単に分析し可視化できる、ホスト型の Jupyter Notebook が含まれます。S3 のデータに直接接続するか、AWS Glue により Amazon RDS、Amazon DynamoDB、Amazon Redshift からデータを S3 に移動して、それらのデータを Notebook で分析できます。

僕が以前deep learningの学習モデルを作成しようとした時、

  • 学習させたい画像を用意
  • CIFAR-10のサンプルを参考にコードを作成
  • deep learning 用のAMIからEC2を起動
  • 学習プログラムの実行

EC2を起動を起動したりなど、様々な手順をおこなっていました。

これが一体どれくらい変化するのでしょうか。
実際に試してみたいと思います。

学習モデルの作成

AWSのManagment Consoleにログインし、「Amazon SageMaker」を検索します。
学習モデルの作成は「Dashboard」の「Overview」に沿って行います。

notebookの作成

notebook が利用可能な機械学習計算用のインスタンスを作成します、

deep learning で利用される共通ライブラリ様々なアルゴリズムをデモするためのサンプルが提供されています。

statusが「InService」になると、notebookで編集することが可能となります。

各種ライブラリのサンプルが提供されていますので、コードの中身を確認することもできます。

jobの作成

Image classificationで読み込みたい画像類を適当なS3に配置しておきます。

実際に学習を行う、Jobを作成します。
IAM roleはS3の参照権限を持っているものが必要です。
Algorithmは行いたい学習に合わせたものを選択します。
今回は画像解析の学習モデルを作成したいので、「Image classification」を選択しました。

学習時に必要なパラメータに関しても、GUIで入力することが可能です。

学習時に入力する画像の配置場所を入力します。
先ほど画像を配置したS3のパスを入力しました。

学習モデルの配置場所のS3のパスを入力します。

「Create training job」をクリックすると、jobが作成され、学習が始まります。

まとめ

学習のためのサンプルコードを作成したり、ライブラリ(Keras等)の挙動を調べたりと、機械学習に対して興味はあっても中々手が出しづらいところがありましたが、GUIで操作できたり、サンプルを見ることが可能なため、「この時はこのAlgorithmを使うんだ」等の学習のとっかかりにもなる、素晴らしいサービスではないでしょうか。
次回では学習データを揃えて、学習モデルの作成までやってみたいと思います。

参照先