機械学習の入門におすすめのAmazon SageMakerとKerasについて

はじめに

機械学習の勉強をこれからしたいと考えている方に、本記事ではその入門としてAmazon SageMakerというAWSサービスとKerasというディープラーニング ライブラリについて紹介します。

Amazon SageMaker とは

Amazon SageMaker は、機械学習モデルを素早く構築し、トレーニングおよびデプロイできるようにするフルマネージド型サービスです。Amazon SageMaker を利用すると、1つのツールセットで機械学習用に使用できる全コンポーネントが提供され、モデルを本番環境へ送り出すまでの時間を短縮し、手間と費用を大幅に抑えることができます。以下では、Amazon SageMaker の主な機能について紹介します。

Amazon SageMaker Studio

Amazon SageMaker Studioは、ウェブベースの機械学習用の統合開発環境(IDE)です。IDEでは、機械学習モデルの構築や、トレーニング、デバッグ、モニタリングが同じアプリケーションで行うことができます。

Amazon SageMaker Studioには、次の機能が統合されています。

  • Amazon SageMaker Studio Notebooks - コンピューティングインスタンスとファイルストレージを事前にセットアップする必要がなく、すぐに起動できる共同編集ノートブックです。Amazon SageMaker Studio Notebooks では、永続的なストレージが提供されており、ノートブックが実行されているインスタンスがシャットダウンされた場合でも、ノートブックの表示と共有ができます。また、Amazon SageMaker Studio Notebooksから、分散トレーニングや、バッチ変換、ホスティング、実験管理といった機能や、Amazon S3、Amazon EMR、AWS Lake Formation のデータセットなどの他のAWSサービスへアクセスできます。
  • Amazon SageMaker Experiments- 機械学習実験を整理、追跡、比較および評価できる機能です。Amazon SageMaker Experiments では、すべての入力や、パラメータ、構成、反復した結果をトライアルとして自動的に追跡しています。
  • Amazon SageMaker Autopilot- 機械学習プロセスを自動化する機能です。これにより、機械学習の経験がないユーザーでも、分類(二項分類と複数クラス分類)モデルと回帰モデルを素早く構築できます。ユーザーは、表形式のデータセットを提供し、予測対象の列を選択するだけです。
  • Amazon SageMaker Debugger- Amazon SageMaker Debuggerでは、デバッグデータとデータの潜在的な異常に関するビジュアルインジケーターを分析するためのビジュアル インターフェースが提供されています。また、パラメータ値の過大といった、一般的なエラーを自動検知して、ユーザーに警告や修復のアドバイスを生成することができます。
  • Amazon SageMaker Model Monitor- 本番環境のモデルと監視を行うツールです。予測要求を継続的に監視して分析し、データの外れ値やデータドリフトなどの一般的な問題を検出できます。

Amazon SageMaker Processing

データの前処理や後処理、モデル評価などのワークロードをAmazon SageMaker上で簡単に実行できる機能です。この機能によって導入されるPython SDKは、データセット変換で人気のある scikit-learn向けのAmazon SageMakerの組み込みコンテナを使用します。

また、独自コンテナを利用できるため、Amazon ECS および Amazon EKSなどのAWSコンテナサービスやオンプレミスなどでのコードの実行が可能です。

Amazon SageMaker Neo

Amazon SageMaker Neoを利用すると、機械学習モデルを一度トレーニングすると、クラウドやエッジ内の任意の場所で実行できます。各プラットフォームに固有のハードウェアとソフトウェアの構成に合わせたモデルの調整をはじめとする、作業が不要となります。

Kerasとは

Kerasは、Pythonで書かれたオープンソースのディープラーニング ライブラリです。Kerasを利用すると、ディープラーニングのベースとなる数学的理論の部分を開発することなく、簡単なソースコードで実装できます。Kerasは、次のような場面で最適です。

  • 容易に素早くプロトタイプを作成したい
  • 画像認識に適した畳み込みニューラルネットワーク(CNN)や、時系列の情報に適した再帰型ニューラルネットワーク(RNN)のいずれか、もしくはそれらを組み合わせたものを利用したい
  • CPUとGPU上でシームレスな動作を望んでいる

Kerasの利点を以下に示します。

  • ユーザーフレンドリー - Kerasには、一般的なユースケースに合わせて最適化された、シンプルで一貫したインターフェースがあります。ユーザーのエラーに対して、明確で実用的なフィードバックが提供されます。
  • モジュールの接続による構成が可能 - Kerasモデルは、用意された構成要素を接続するだけで、ほとんど制約なく作成できます。
  • 拡張性- カスタムの構成要素を作成して、新しいアイデアを研究に活かせます。新しいレイヤーや指標、損失関数を作成し、最先端のモデルを開発できます。

Amazon SageMakerでのKerasの利用について

Amazon SageMakerでのKerasの利用方法は2つあります。

  1. スクリプトモードに対応したAmazon SageMaker Estimatorを利用して、Amazon SageMaker上でKerasのコードを実行する
  2. TensorFlowのtf.kerasを利用する

もし、これから機械学習の勉強を兼ねて、TensorFlowの分類問題に関するチュートリアルに取り組むことを考えている方には、後者によるKerasの利用をおすすめします。

まとめ

本記事では、Amazon SageMakerとKerasについて紹介しました。機械学習を勉強する上で最初のハードルは、環境構築です。特に、多くのディープラーニングアプリケーションでは、大量の計算を必要とするため、ローカルではGPUを搭載したPCなどがないと膨大な計算時間を要する可能性があります。

Amazon SageMakerをはじめとするクラウドコンピューティングサービスでは、強力なコンピューティングにアクセスできるため、このハードルをクリアできます。また、Amazon SageMakerがサポートする多様な機能のおかげで、データセットやモデル、パラメータ等の可視化や分析がしやすいという点で機械学習の勉強にも向いています。一方で、Kerasは層を積み重ねていくだけで簡単に実装できるため、ディープラーニングを学習するための入門に向いているライブラリです。Kerasでディープラーニングのイメージを概ね掴み、本格的な学習をしたい方は、TensorFlowなどを利用してみてはいかがでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です