目次
はじめに
お疲れさまです、寺井です。
ヤバい……。今年が終わる……………
12月って本当にあっという間に過ぎていきますね……😇
間もなくクリスマスです!!ということは…?
サンタが来るぞ~~~!!!🎅🎄✨️
⋮
⋮
⋮
でもやってきたのが本当にサンタクロースなのか、そうでないかを判別するのって結構難しいですよね??
というわけで、画像からサンタか否かを判別するモデルを作成してみることにします!!!💪
準備
トレーニング・テストデータの準備
「Kaggle」という機械学習を学ぶ人のためのプラットフォームがありまして、世界中のユーザーが提供する無料のデータセットをダウンロードしたりできます。
Kaggle: Your Machine Learning and Data Science Community
今回はここから、『IS THAT SANTA? (Image Classification)』という、データセットを使わせていただきます。
中には、トレーニング用・テスト用のサンタクロースの画像とサンタクロースではない画像が大量に用意されています。
サンタクロースデータセット『IS THAT SANTA? (Image Classification)』のリンク
このデータを、事前に「S3」にアップロードしておきます。
フォルダ構造はこんな感じです。
is_that_santa
├── test
│ ├── santa
│ └── not-a-santa
└── train
├── santa
└── not-a-santa
SageMaker Canvasの準備
公式ドキュメントや、去年の今頃に書いた私のブログを参考にしていただき「SageMaker Canvas」を起動できる状態にしておきます。
参考:[アドカレ2023]「Amazon SageMaker Canvas」を使って「Amazon Bedrock」から使える基盤モデルを複数並べて俳句を作らせてみた - DENET 技術ブログ
参考:Amazon SageMaker Canvas の使用を開始する - Amazon SageMaker
やってみる
SageMaker Canvasの起動
「SageMaker Canvas」のページから、[Canvasを開く]
データセットの作成
画面左メニューにある[Datasets]から[Import data]→[Image]
準備の際にアップロードした「S3」を選択して、データセットを作成
(元データのままだと枚数が非常に多いので、検証のため若干枚数を減らしたりしてます)
is_that_santa
├── test
│ ├── santa
│ └── not-a-santa
└── train ←データセットとして指定したフォルダパスはココ
├── santa
└── not-a-santa
「train」配下を学習させることで、あとから「test」配下の画像を使って、モデルのテストができます。
※注意:「S3」のキーに、使用できない文字列(半角スペースとか?)が入ってるとエラーで登録できないので注意が必要です。🙅
(ダウンロードしたものそのまま使ったらコケました…😔)
✕:is that santa
◯:is_that_santa
モデルの作成:Select(データセットの作成)
先ほど作成したデータセットを選択し、[Create a model]からモデルを作成
今回は画像の分類を行うので、[Image Analysis]を選択して作成
フォルダ構造のお陰でラベル分けされている状態になっています。
助かる~~~~~
モデルの作成:Build(モデルのビルド)
データに特に問題もなかったので、そのまま[Quick Build]へ
モデルの作成:Analyze(精度の可視化)
ビルドが完了すると、モデルのスコア(どれだけ正しく判別できるか)が見られるページに遷移します。
The model predicts the correct labels 85% of the time.
→今回のモデルは約85%の正確さを誇っているようです。この短時間でそれだけの精度が出せるならエエ感じな気がしますね
[Heatmap]を有効化すると、モデルがラベルを区別するために使用した領域が見えたりします。面白い
[Scoring]のタブからモデルの正確さなど様々な指標を見ることができ、[Advanced metrics]からは更に詳細なスコアが見られます。
『これは “混同行列”…ッッ!読める………読めるぞ…!!!!』
最近AWS認定の「AI Practitioner(AIF)」の勉強をしているお陰で、若干読み取ることができます。
ありがとうAIF……🙏
今回のケース “サンタか否か” を踏まえて、簡単に説明しておきます。
[青い領域](モデルの予測が正解しているケース)
・True Positive (TP)・・・サンタと予測して、実際にサンタだった
・True Negative (TN)・・・サンタではないと予測して、実際にサンタではなかった
[赤い領域](モデルの予測が不正解だったケース)
・False Positive (FP)・・・サンタと予測して、実際にはサンタではなかった
・False Negative (FN)・・・サンタではないと予測して、実際はサンタだった
今回は、サンタをサンタではないと予測してしまうこと(FN)が0だったようで、このお陰でサンタを取り逃がすことが無さそうです!
やったね!🤜🎅🤛
モデルの作成:Predict(実際に予測させる)
[Predict]へ進み、実際にテストデータ等を用いて、モデルに予測させてみます。
データセットを作成したときと同じように、「S3」から予測させるデータを選択します。
全くサンタではない画像を与えたところ、こちらも無事 サンタではない と判断できていました。
ちょっとサンタっぽい場合は、若干サンタな気がしてるモデルちゃん可愛い。
感想・まとめ
さすが「SageMaker Canvas」!!
画像分類の機械学習モデルを、ノーコードで簡単に作成できちゃいました!!!
クリスマスまでにこのモデルを作成しておいて、サンタを判別できるようにしておきましょう✊️
では皆さん良いクリスマスを~~~🎄
好きなこと:音楽、猫、お酒、ゲーム、効率化
経歴:テレビ業界AD → 通信回線販売代理店 → IT関連職業訓練 → 株式会社ディーネット