【Nyantech ハンズオンシリーズ】機械学習を使って写真に写っている猫を見分けてみよう!

〜後編:Amazon SageMaker を使った機械学習モデルの作成

2020-04-30
デベロッパーのためのクラウド活用方法

Author : 大渕 麻莉

この連載記事のその他の記事はこちら

 はじめに

こんにちは、機械学習ソリューションアーキテクトの大渕です。

本シリーズの前編、中編の記事で、Amazon SageMaker Ground Truth というサービスを使って、写真に写っているのがタマとミケのどちらなのかをラベリングし、その結果を使って Amazon Rekognition Custom Labels で猫を見分ける機械学習モデルを作成する方法をご紹介しました。みなさまの猫さんをうまく見分けることはできましたでしょうか ?

最終回となる今回は、前編でラベリングした結果を教師データとして、今度は Amazon SageMaker というサービスを使って、「うちの猫を見分ける機械学習モデル」を作る方法をハンズオン形式でご紹介したいと思います。教師データを作る際にみなさま自身の猫さんの画像を使っていただくと、みなさま専用の猫分類モデルをお作りいただけます。

ひきつづき今回も、こちらのタマとミケを見分けることを目標にします。写真には、どちらか一方の猫しか写っていないという想定にします。

img_ml_cat_01

機械学習で猫の写真を分類するモデルを作る場合、以下のような 3 ステップで行います。前編では、『ステップ 1:画像を準備する』と『ステップ 2:画像にラベルをつける』の部分をご紹介し、中編では『ステップ 3:モデルを学習させる』のAmazon Rekognition を使う方法をご紹介しました。今回は機械学習プロジェクトのためのマネージドサービスである Amazon SageMaker を使う方法をご紹介します。

 Amazon SageMaker とは

Amazon SageMaker は、すべての開発者やデータサイエンティストが機械学習モデルをすばやく構築、学習、デプロイできるようにするフルマネージドサービスです。Amazon SageMaker は機械学習の各プロセスの大変な部分を開発者の代わりに行うため、開発者は機械学習モデル開発のコアな部分に注力することができます。Amazon SageMaker をもっと知りたい方は、こちらの記事がおすすめです。

前回は Amazon Rekognition Custom Labels を使って、プログラムを一切書かずに猫を見分ける機械学習モデルを作りました。Amazon SageMaker を使うと、機械学習モデル開発をより柔軟な環境で行うことができます。たとえば、モデルの学習や推論に使用するインスタンスタイプやインスタンスの数を指定したり、使用するアルゴリズムを自由に選んだりすることが可能です。Amazon SageMaker では、Tensorflow や PyTorch などの一般的なフレームワークでモデルを開発することもできますが、今回は簡単に機械学習を使うために Amazon SageMaker に用意されている画像分類の「ビルトインアルゴリズム」を使って猫を見分けてみます。Amazon SageMaker には画像分類以外にも以下のようなビルトインアルゴリズムがあります。

 Amazon SageMaker で猫を見分けるモデルを作る

それでは、前編で Amazon SageMaker Ground Truth で作成した教師データを使ってモデルを作っていきましょう。

Amazon SageMaker のコンソールにアクセス

Chrome か Firefox で AWS マネジメントコンソールにアクセスして、サービス検索窓に sage を入力すると、Amazon SageMaker が候補に出てくるのでクリックします。

img_sagemaker_cat_202005_01
img_sagemaker_cat_202005_01

クリックすると拡大します

Amazon SageMaker のコンソールが表示されたら、リージョンをバージニア北部(N. Virginia)にします。これは、Amazon SageMaker Ground Truth で作成したラベリング結果の output.manifest ファイルや、学習に使用する画像が保存されている S3 バケットと同じリージョンにするということです。前編でバージニア北部を使用したので、今回もバージニア北部を使用します。

ノートブックインスタンスの作成

Amazon SageMaker では、機械学習モデル開発環境として「ノートブックインスタンス」を使用することができます。左側のメニューから「ノートブックインスタンス」をクリックします。

img_sagemaker_cat_202005_02
img_sagemaker_cat_202005_02

クリックすると拡大します

「ノートブックインスタンスの作成」をクリックします。 

img_sagemaker_cat_202005_03
img_sagemaker_cat_202005_03

クリックすると拡大します

ノートブックインスタンスの設定をしていきます。
まずはノートブックインスタンス名を記入します。今回は「cat-handson」としました。

img_sagemaker_cat_202005_04
img_sagemaker_cat_202005_04

クリックすると拡大します

アクセス許可と暗号化のセクションの IAM ロールでは、「新しいロールの作成」を選択します。

img_sagemaker_cat_202005_05
img_sagemaker_cat_202005_05

クリックすると拡大します

IAM ロールを作成する画面では、「任意の S3 バケット」を選択して、「ロールの作成」をクリックします。

img_sagemaker_cat_202005_06
img_sagemaker_cat_202005_06

クリックすると拡大します

以上の設定が終わったら、「ノートブックインスタンスの作成」をクリックします。ステータスが InService になるまで数分待ちます。こちらの図のように InService になったら、アクションの 「Jupyter を開く」 をクリックします。(「JupyterLab を開く」ではありません)

img_sagemaker_cat_202005_07
img_sagemaker_cat_202005_07

クリックすると拡大します

Jupyter ノートブックのダウンロード

こちらの図のような Jupyter 環境がブラウザの新しいタブで開いたら、右上にある 「New」 をクリックし、出てきたメニューの一番下にある 「Terminal」 を選択します。
img_sagemaker_cat_202005_08
img_sagemaker_cat_202005_08

クリックすると拡大します

すると、ブラウザの新しいタブでこのようなターミナルが開きます。

img_sagemaker_cat_202005_16
img_sagemaker_cat_202005_16

クリックすると拡大します

ここで、以下のコマンドを実行して、Jupyter ノートブックをダウンロードします。

cd SageMaker; wget https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/sample/cat-classifier.5b5ecba5286592a7a427fb69221644a3b9aa01fd.zip -O cat-flassifier.zip; unzip cat-flassifier.zip

こちらのようなログが表示されていれば、ノートブックのダウンロードは成功です。ターミナルのタブを閉じて、Jupyter のファイルブラウザのタブに戻りましょう。

img_sagemaker_cat_202005_17
img_sagemaker_cat_202005_17

クリックすると拡大します

こちらの図のように、先ほど空っぽだったところに「cat-classifier.ipynb」が追加されました。「cat-classifier.ipynb」をクリックしてノートブックを開きます。ファイルがない場合、一つ前の手順に戻り、ターミナルをもう一度開き、コマンドを実行してノートブックをダウンロードしてください。

img_sagemaker_cat_202005_09
img_sagemaker_cat_202005_09

クリックすると拡大します

Jupyter ノートブックの実行

この図のようなノートブックが開きます。いくつかみなさまの環境に合わせて変更が必要ですが、こちらを上から順番に実行していくと、猫を見分ける機械学習モデルを作ることができます。

img_sagemaker_cat_202005_10
img_sagemaker_cat_202005_10

クリックすると拡大します

<注意>

img_sagemaker_cat_202005_11
img_sagemaker_cat_202005_11

クリックすると拡大します

img_sagemaker_cat_202005_12
img_sagemaker_cat_202005_12

クリックすると拡大します

img_sagemaker_cat_202005_13
img_sagemaker_cat_202005_13

クリックすると拡大します

 リソースの削除

使用したリソースの中には、削除しない限り課金が続くものがあります。料金をゼロにするためには、以下のリソースの削除を行います。
Amazon SageMaker の推論用エンドポイントの削除
 
Amazon SageMaker コンソールの左側のメニューから「エンドポイント」をクリックし、削除したいエンドポイントを選択します。上にある「アクション」から「削除」を選択するとエンドポイントを削除することができます。
img_sagemaker_cat_202005_14
img_sagemaker_cat_202005_14

クリックすると拡大します

img_sagemaker_cat_202005_15
img_sagemaker_cat_202005_15

クリックすると拡大します

 さいごに

この連載記事のその他の記事はこちら

photo_ohbuchi

筆者紹介

大渕 麻莉

アマゾン ウェブ サービス ジャパン株式会社 機械学習ソリューションアーキテクト。
組込みソフトウェア開発から画像処理アルゴリズム開発を経てクラウドに到達し、2019
年にアマゾン ウェブ サービス ジャパン株式会社に入社。主に製造業のお客様の機械学習導入・運用の技術サポートを担当。
脳内 CPU の半分が猫のことで占められており、視界に入るすべての生き物がうちの猫に見えるという日々を過ごしている。

AWS のベストプラクティスを毎月無料でお試しいただけます

さらに最新記事・デベロッパー向けイベントを検索

下記の項目で絞り込む
絞り込みを解除 ≫
フィルタ
フィルタ
1

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する