見出し画像

Amazon SageMaker Canvas でカスタムモデルを作成してみる

今回は、コード不要な機械学習サービス Amazon SageMaker Canvas を使って機械学習モデルの作成を試してみました。


Amazon SageMaker Canvas とは

Amazon SageMaker Canvas は、機械学習の専門知識やコード知識を必要とせず、目的に合わせたモデルの作成が行える Amazon SageMaker のサービスの一つです。
Canvas は GUI で操作可能であり、データの読み込み、モデルの作成、トレーニングの実行といったオペレーションをノーコードで行うことができるため、誰でも簡単に機会学習を行うことが可能となっています。

Canvas の特徴

Canvas は、大きく 2 つのサービスに分かれています。

1. すぐに使用できるモデルを使用して予測を生成する
すぐに使用できるモデルを使用して、ユースケースに合わせた予測の生成が行えます。
ユースケースには、感情分析、画像内の物体の検出、画像内のテキストの検出、エンティティの抽出、言語の検出などが用意おり、
それぞれのモデルは、Amazon Rekognition、Amazon Textract、Amazon Comprehend などの AWS の AI サービスが利用されています。

  • Amazon Rekognition:画像認識とビデオ分析が行える機械学習サービス

  • Amazon Textract:ドキュメントからテキスト、手書き文字、データを自動的に抽出する機械学習サービス

  • Amazon Comprehend:テキスト分析から感情の判定やキーフレーズの検出が行える自然言語処理サービス

2. カスタムモデルを作成して予測を生成する
独自のデータを使用して、予測分析、画像解析、テキスト分析が行えるカスタムモデルの作成を行い、作成したカスタムモデルを使用して予測の生成が行えます。
カスタムモデルは、Amazon SageMaker Studio を使って共有することも可能です。

他の Amazon SagaMaker サービスとの比較

Amazon SageMaker には、Canvas と同様に、機械学習をサポートしてくれるサービスが多数存在します。
以下は、一部のサービスについてまとめたものになります。

様々な機能を持ったサービスが存在しますが、Canvas は機械学習やコーディング経験のない方に向けた最も扱いやすいサービスとなっており、
全ての作業をノーコードで行える独自の環境を使用して、機械学習のワークフローを直感的な操作で行うことができます。

今回は、この Canvas を使って独自のデータからカスタムモデルの作成を行い、機能の検証してみたいと思います。

なお、本ブログではセットアップに関する説明は割愛いたしますので、詳細を知りたい方は Canvas の使用を開始するをご参照ください。

利用方法

Amazon SageMaker ドメインより、[起動] のプルダウンから [Canvas] をクリックしていただき、アプリケーションを起動します。

起動後ログインしていただくと、「Ready-to-use models」画面が表示され、「すぐに使用できるモデル」 の一覧を確認できます。

今回 「すぐに使用できるモデル」 の説明は省略させていただきますが、以下のようなモデルが用意されております。

  • 画像内のテキスト検出

  • 画像内の物体検出

  • 画像

  • 感情分析

  • エンティティの抽出

  • 言語検出

  • 個人情報の検出

  • ドキュメントクエリ

  • 経費分析

  • 身分証明書の分析

  • ドキュメント分析

利用したいモデルを選択すると、予測を生成する画面が表示されます。

カスタムモデルの作成

カスタムモデルの作成は、「My models」から行います。
右上の[+ New models]をクリックすると、モデル名と解決する問題の種類を聞かれます。

今回はキノコのデータを使用して、食用キノコか毒キノコかを予測分析するカスタムモデルを作成したいと思います。
使用するデータは、Kaggle からダウンロードした「Mushroom Classification」の csv データを使います。
Kaggle は、世界最大のデータサイエンスコミュニティであり、様々なツールやリソースを提供しています。

問題の種類は、「予測分析」「画像解析」「テキスト分析」の 3 つが用意されているので、目的に合わせて選択していきます。
今回は、予測分析になりますので [Predictive analysis] を選択して [Create] をクリックします。

ここからは、以下の 4 つのプロセスを行っていきます。

  • Select:データセットの選択

  • Build:モデルの構築

  • Analyze:モデルの分析

  • Predict:予測の生成

データセットの選択

データセットには、すでにサンプルのデータセットがいくつか用意されています。
独自のデータセットを使用する場合は、[+ Create dataset] からデータセットの作成を行います。

今回は、事前に Amazon S3 にアップロードしておいた Kaggle のデータを、Canvas にインポートします。
Canvas では、ローカルマシンからのデータアップロードや、Amazon S3 からのデータインポートなどが可能となっています。

インポートするデータを選択し、[Create dataset] をクリックしてデータセットを作成します。
作成したデータセットを選択し、[Select dataset] をクリックして次に進みます。

なお今回使用するデータは1つになりますが、[Join data] から複数データの結合も可能となっています。

モデルの構築

次に、モデルの構築を行います。

ここではデータセットから、予測のターゲットとなる列とモデルのタイプを選択していきます。
予測したい列は、「class」を指定して e = 食用キノコ / p = 毒キノコ で判別してもらいます。
モデルタイプは、食用キノコか毒キノコかの 2 択になるので、[2 category prediction] を選択します。

Canvas では、モデルを構築する前に、[Preview model] からモデルの精度を確認することができます。

今回は 99.886%と高い精度で予測が行えているので、このままモデルの構築を行っていきます。

モデルの構築には、[Quick build] と [Standard build] のどちらかを選択できます。
[Quick build] であれば約 2~20 分ほどで構築が完了します。
一方 [Standard build] では 2~4 時間ほど構築に時間が掛かるものの、[Quick build] に比べ高い精度のモデルが構築できます。

今回は、[Quick build] を選択しましたが、5 分ほどでモデルの構築が完了しました。

モデルの分析

次の画面では、構築したモデルのパフォーマンスを分析できるようになっています。

Canvas では、データセットの 80%のデータでモデルのトレーニングを行い、20%のデータでモデルの検証を行います。

[Overview] では、列の影響度が表示され、予測を行う際に各列がどの程度の影響を持っているか確認できます。

「odor(匂い)」「Stalk-shape(茎形)」「bruises(あざ)」などが重要な要素だとわかります。

[Scoring] では、予測を視覚化し予測がどの程度正確であったかを確認できます。

モデルが行った全ての予測を示しており、予測されたカテゴリから実際のカテゴリに分岐しています。

予測を生成

最後に、構築したカスタムモデルを使用して、予測の生成を行っていきます。

複数のデータの予測は、インポートしたテスト用のデータから行い、
単一データの予測は、コンソール上で入力したデータから予測を生成することができます。

  • バッチ予測

  • 単一予測

それぞれデータに対して、e = 食用キノコ / p = 毒キノコ かを予測してくれています。
以上で、カスタムモデルの作成は完了です。
作成したカスタムモデルは「My models」からいつでも使用が可能となっています。

カスタムモデルの共有
[Standard build] で作成したカスタムモデルであれば共有して、Amazon SageMaker Studio 内で利用することもできます。
詳しくはデータサイエンティストと協力するを、ご参照ください。

独自モデルの取り込み
外部で作成した独自のモデルを、Canvas に取り込むことも可能です。
取り込んだモデルを使用して、Canvas 上で予測を生成することができます。
詳しくは独自のモデルを SageMaker Canvas に持ち込むを、ご参照ください。

自動化機能
Canvas では、データセットの更新やモデルから予測を定期的に生成する自動化機能も用意されており、
自動化されたワークフローを設定することで、手動でのデータセット更新や予測に費やす時間を短縮することも可能となっています。

まとめ

以上、いかがでしたでしょうか?

実際に使用してみた感想として、操作も分かりやすくコードを一切使用しないので、機械学習の知識やコード知識のない方であっても、安心して機械学習を始められるサービスだと感じました。

  • コードを使用せず、直感的な操作だけで機械学習を行える

  • 独自のデータを使用して、一からカスタムモデルの作成が可能

  • カスタムモデルの作成を通じて、機械学習のワークフローを理解できる

また Canvas は、他の Amazon SageMaker サービスと連携することでより強力なツールになると思います。

全体的に、シンプルな機能にまとめられていて、容易にモデルの作成が行えるサービスですが、
高度なデータ変換やモデルの微調整は行えず、作成できるカスタムモデルの種類も限られています。

そこで Canvas で作成したカスタムモデルを、Amazon SageMaker Studio に共有することで以下のようなことが可能になります。

  • Amazon SageMaker Data Wrangler を使って、高度なデータ変換を行う

  • Amazon SageMaker Autopilot を使って、モデルの改善と検証を行う

  • Amazon SageMaker JumpStart を使って、モデルの微調整を行う

一方、Amazon SageMaker Studio のデータやモデルを Canvas に共有することも可能となっていますので、

  • Amazon SageMaker Data Wrangler で準備したデータが、どれくらいの精度が出せそうか試す

  • Amazon SageMaker Autopilot で作成したモデルの、予測を生成する

  • Amazon SageMaker JumpStart でカスタマイズしたモデルの、予測を生成する

といったように、ノーコードならでは使いやすさを利用した様々な活用方法も考えられます。

現時点では共有できるモデルが表形式のみとなりますが、目的のモデルに応じて上手く Amazon SageMaker のサービスを使い分けていきたいと思います。

この記事が気に入ったらサポートをしてみませんか?