AWSコラム

AWSエンジニアのためのブログメディア

AWSの機械学習とは?使い方4つと機械学習をする前に準備すること

2020年11月20日

そもそもAWSとは?

AWSとは、Amazon Web Servicesの略で、Amazonが提供するクラウドコンピューティングサービスのことです。クラウドコンピューティングサービスとは、インターネットを通してソフトウェアやストレージなどのリソースを、クラウド上で利用できるサービスです。

AWSでは、ストレージやデータベース、機械学習や人工知能、データ分析などのさまざまなサービスを利用できます。

AWSの機械学習とは?

AWSの機械学習とは、AWSで機械学習を導入するためのサービスです。機械学習とは、大量にあるデータをコンピューターで分析し、パターンや法則を見つけ出して物事を予測するための技術のことです。

AWSの機械学習には、Amazon SageMakerやAWS Machine Learningなどのサービスがあり、機械学習に便利なさまざまな機能を利用できます。

Amazon SageMaker

Amazon SageMakerは、機械学習を利用するためのフルマネージド型のサービスです。

Amazon SageMakerでは、機械学習モデルの構築からトレーニング、デプロイを迅速にでき、本番環境に送り出すまでの手間とコストを削減できます。

機械学習における統合開発環境からデプロイまでのツールをまとめて提供しているので、Amazon SageMakerだけでも機械学習モデルを開発できます。

AWS Machine Learning

AWS Machine Learningは、アプリケーションに機械学習を実装するためのサービスです。

AWS Machine Learningでは、機械学習の専門知識がなくてもAIを利用したアプリケーションを構築でき、高度なテキスト分析やデータ分析、データ予測などを簡単に実装できます。TensorFlowやPyTorchなどのフレームワークを使用して、柔軟なカスタマイズもできます。

AWSの機械学習であるAmazon SageMakerの使い方4つ

Amazon SageMakerは、簡単に機械学習を構築できるようになるサービスで、Amazon SageMakerの使い方を知ることは大切です。

ここでは、ノートブックインスタンスを作成すること、Jupyter画面上で行うこと、コードの実行をすることなど、Amazon SageMakerの使い方について、4つ紹介していきます。

AWSのAmazon SageMaker1:ノートブックインスタンスを作成する

1つめの使い方は、ノートブックインスタンスを作成することです。

ノートブックインスタンスは、Jupyter Notebook Appを利用したインスタンスで、データの準備や処理、モデルのトレーニングやテストなどを実行できます。

ノートブックインスタンスを作成するには、SageMakerコンソールを開いて、ノートブックインスタンスの作成のページにて設定を入力します。

AWSのAmazon SageMaker2:Jupyter画面上で行うこと

2つめの使い方は、Jupyter画面上で行うことです。

作成したノートブックインスタンスからJupyterを開き、ノートブックを作成します。Jupyterのノートブックには、機械学習に必要なAnacondaとPython3が含まれています。Jupyter画面上では、サンプルデータの処理を実行して、機械学習モデルを取得します。

メモの記述が可能

Amazon SageMakerのJupyter画面上では、メモの記述が可能です。

Amazon SageMakerがAPIを連携させているJupyter Notebookでは、プログラムの実行の他にも、メモを作成できます。メモを作成するためには、Jupyterのメニューの「Cell」から「Cell Type」を「Markdown」に設定して、ノートブックにメモしたい内容を記述します。

AWSのAmazon SageMaker3:コードの実行をする

3つめの使い方は、コードの実行をすることです。

Jupyterでコードやプログラムを作成したら、コードを実行して、機械学習モデルを構築、検証します。Jupyterに記述されているコードを、実行ボタンを押して実行できます。

実行するコードには、データセットのクリーンアップや機械学習モデルのトレーニング、機械学習モデルの検証などのためのプログラムがあります。

完了までにかかる時間

機械学習では主に機械学習モデルのトレーニングに時間がかかり、数日から数週間といった長い期間を要する場合があります。AWSのAmazon SageMakerでは、より短い時間で機械学習モデルをトレーニングし、コード実行の時間を短縮しています。

また、機械学習モデルのトレーニングの状況を視覚化して、現在のデータの処理状況を明確化し、問題が起きても迅速に対処できるようにしています。

AWSのAmazon SageMaker4:ノートブックインスタンスの停止

4つめの使い方は、ノートブックインスタンスの停止です。

Amazon SageMakerのノートブックインスタンスを稼働させ続けると、不要な料金が発生してしまうので、作業が終わったらノートブックインスタンスを停止させる必要があります。

Amazon SageMakerのコンソールから、エンドポイントやモデルを削除して、ノートブックインスタンスからアクションを削除し、ステータスを停止させられます。

AWSの機械学習であるMachine Learningの使い方4つ

Machine Learningは、簡単に機械学習を実装できるようになるツールで、Machine Learningの使い方を知ることは大切です。

ここでは、データソースを作成すること、モデルを構築すること、モデルの評価をすること、予測結果の作成を行うことの、4つのMachine Learningの使い方について紹介していきます。

AWSのMachine Learning1:データソースを作成する

1つめの使い方は、データソースを作成することです。

データソースは、機械学習モデルのトレーニングや評価などに必要で、機械学習モデルを使用してバッチ予測ができるようになります。

Machine Learningのコンソールからデータソースの作成ウィザードを使用すれば、Amazon Redshiftに保存してあるデータからデータソースを作成できます。

AWSのMachine Learning2:モデルを構築する

2つめの使い方は、モデルを構築することです。

正解のデータが含まれているトレーニングデータを使用して、機械学習モデルを構築し、モデルをトレーニングします。

Machine Learningのコンソールでモデルを作成し、予測したい事象に合わせてバイナリ分類やクラス分類などのモデルのタイプを選択して、モデルサイズや正則化などのトレーニングパラメータを指定します。

AWSのMachine Learning3:モデルの評価をする

3つめの使い方は、モデルの評価をすることです。

新しく取得されるデータや将来のデータで、データ予測が可能かどうかを判断するために、モデルがどのくらい正しいかについて評価する必要があります。

データソースにあるデータの中から、70%のデータをトレーニングデータソースとしてトレーニングに使用して、残りの30%のデータを評価データソースとしてモデルの評価に使用します。

学習モデルによって指標が違う

機械学習の学習モデルによって、評価の指標は異なります。

機械学習の学習モデルには、バイナリモデル、複数クラス分類、回帰モデルの3種類あり、それぞれ異なる予測の方法をとるので、予測精度に使用する指標は違います。

例えば、バイナリモデルでは二値分類で正しく予測できた割合を指標にしていますが、回帰モデルでは正しい値と予測された値がどの程度かけ離れているかを指標にしています。

AWSのMachine Learning4:予測結果の作成を行う

4つめの使い方は、予測結果の作成を行うことです。

Machine Learningには、非同期型のバッチベースで予測結果を作成する方法と、同期型のリアルタイムで予測結果を作成する方法があります。どちらの方法でも、AWSコンソールから開けるMachine Learningコンソールにて結果を作成できます。

リアルタイム予測を行う場合

リアルタイム予測は、Machine Learningへのリクエストに対して、すぐにレスポンスを返して結果を表示する予測方法です。

リアルタイム予測は、低レイテンシーな予測により、検索エンジンなどの高速な処理が必要なアプリケーションに利用されます。Machine Learningコンソールから「MLモデル」を選択して、MLモデルレポートのページにある「予測」を選択すると、リアルタイム予測の準備ができます。

バッチ予測を行う場合

バッチ予測は、複数の観測値の予測をまとめて取得する場合に使用されます。

Machine Learningがバッチファイルで処理できるデータソースのサイズは1TBまでなので、大きなデータを処理する場合はデータを複数のバッチに分割する必要があります。

Machine Learningのコンソールから、オブジェクトの下で「新規作成」を選択し、「バッチ予測」を選択後に設定を入力すれば、バッチ予測を生成できます。

AWSの機械学習をする前に準備すること

AWSのサービスで機械学習を導入できますが、AWSの機械学習に関するサービスを利用する前に準備することがいくつかあります。例えば、AWSのサービスを利用するために、AWSのアカウントを作成することや、機械学習で必要なデータの格納場所を用意しておくことなどです。

ここでは、AWSの機械学習を利用する前に、準備しておくことについて紹介していきます。

AWSのアカウントを作成する

AWSのサービスを利用するためには、AWSのアカウントを作成する必要があります。

AWSの機械学習に関するサービスも、AWSのアカウントがないと利用できないので、AWSのアカウントを作成する必要があります。

AWSの公式サイトからアカウントの作成画面を表示して、連絡先や支払情報などを記入し、アカウント認証をして、AWSのサポートプランを選択したら、アカウントの作成が完了します。

データの格納場所を用意する

機械学習では大量のデータが必要になるので、データの格納場所を用意しておく必要があります。

機械学習では、機械学習を利用する目的によって必要なデータ量は異なり、膨大なデータが必要になる場合があるので、データの格納場所を用意する必要があります。

また、機械学習の学習モデルや予測精度の向上、使用するデータの形式などによって、必要な格納場所の容量は変わってきます。

格納場所であるバケットを作成する

AWSのAmazon S3では、データの格納場所であるバケットを作成できます。

Amazon S3は、AWSのクラウドストレージサービスで、オブジェクトを保存するためのストレージをバケットと呼びます。Amazon S3コンソールからバケットを作成し、バケット名とリージョンを記入して、バケットの設定をしたらバケットの作成が完了します。

AWSの機械学習を活用しよう

ここまで、AWSの機械学習のサービスや使い方などについて紹介してきました。AWSの機械学習に関するサービスを利用することで、機械学習の構築や実装が簡単にできるようになります。

アプリケーションに機械学習を導入したいと考えている方は、ぜひAWSの機械学習を活用してみてください。


AWS分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)