データ分析プロジェクトで考えておきたいポイント ① ツール選定の指針

はじめに

データ分析プロジェクトを進めていくうえでまず考えたいことを整理します。
ビジネスドメインのメンバーにも伝わるよう、できるだけ技術用語は使わないよう留意しました。

やっぱり銀の弾丸はない

最初から身もふたもないですが、やっぱり銀の弾丸(=これをやれば万事解決する)はありません。
AI モデルはあくまで「ツール」であり、「目的」を設定して価値を見出すのは「ユーザー」です。
とはいえある程度は指針が欲しいので、まずはここを抑えるべきというポイントを2点あげます。

ツール選定の指針

AI 関連ツールはざっくりと以下3種に大別できます。

  • 特化アプリケーション組み込み型
    • 特定の目的のために開発されたAIを搭載したアプリケーション
    • デファクトスタンダードになっているアプリは除く
      • 利用者が段違いに多くどんどん平準化/最適化されていく
      • ex. Office365、Google Workspace
  • API 連携型
    • いわゆる「マネージドAI」と呼ばれるクラウド型のサービス
    • API で連携してモデルの結果を取得
    • 従量課金型が多い
    • 自社で管理しているアプリケーションがある場合、すぐに組み込み可能
  • 自社開発
    • データ分析基盤を利用し自社でモデルを開発
    • プラットフォームによっては従量課金型
    • 各社基盤を用意していて、データ回りのサービスとの連携に優れる

それぞれのツールにメリット/デメリットがあります。
要件定義の重要性はどのツールを利用しても変わりません

AIツール種別 モデル
実装難易度
アーキテクチャ設計
/システム導入難易度
ナレッジの蓄積 汎用性
(ex.モデルを別のシステムから利用)
拡張性
(ex. 外部システムと連携)
#1 特化アプリケーション組み込み型 - - ベンダーに依存 ベンダーに依存
#2 API 連携型 (マネージドAI利用) - ★★ ★★ ★★★ 周辺アーキテクチャの拡張性次第
#3 自社開発 (データ分析基盤利用) ★★★ ★★★ ★★★ ★★ 実装者の能力とアーキテクチャの拡張性次第

個人的に重要視している点は以下の通りです。

  • ナレッジ蓄積
    • 変化への対応可否に直結
    • 人材育成にも直結
    • 中長期的な組織活性には不可欠
  • 拡張性
    • 拡張性や汎用性が自社の要件に沿うか = クラウド上の基盤を強くお勧め (別記事で解説します)
    • 将来的に自社の優先度高い要件がベンダーのそれに合致するとは限らないことは留意
  • 開発コスト/運用コスト

技術難易度が非常に高い課題かつ業界で確立された手法がある場合は、#1 特化アプリケーション組み込み型の課題解決がいいと思いますが、個人的には、

  • #2 API 連携型と #3 自社開発 の併用
    • モデルの開発工数次第でスイッチ
    • 便利な API はどんどん使う
  • 過度にパートナーやベンダーに依存しない
    • 足りないところだけうまく補う
    • 補った分はうまく自社に取り入れる (うまく盗む)

が最もバランスが良いと考えてます。

データ分析のパターン

データ分析のパターンで分類します。
大枠ではこちらも 3 つです。

テーマ 主な利用主体 仮定は必須? 技術難易度 備考
#1 省人化 営利企業 ★★★ プロセスの改善が進むことでコストの低下が見込めるようなケース
・ex.発注業務の一部を代替可能な AIモデル
・ex.有人で検知していた異常を一定の精度で検出するAIモデル
業務設計や組織的な課題が関係してくる
#2 付加価値向上 営利企業 ★★★ ・ユーザーへの付加価値が向上することで売上向上が見込めるようなケース
・LVT(生涯顧客価値)など手法が確立されている分野も多い
#3 データマイニング 研究開発 × ★★★★★ ・集めたデータから何らかの傾向を発見する=データマイニング
・アカデミックな研究やそもそも仮説設定ができないケースが該当
・「データがあれば何かできそう」もこれに該当
目的が不明瞭なまま進行した場合、実証検証が失敗することが多い

ビジネスの場で成功している実証検証のほぼ 100% が #1 省人化 もしくは #2 付加価値向上 に該当します。
具体的な経営課題の解消をテーマに掲げる以上は、目的の明確化が必須です。
そのうえで仮設立案と検証のサイクルを回し、データ分析の結果をビジネス成果にに紐づけていきます。

注意しなくてはいけないのは、精度指標の類はモデルの状態を表すものであるという点です。
実際にモデルが活用される業務フローを踏まえたうえで、プロジェクト全体を評価する指標は別途設ける必要があります。
よってプロジェクトを進める前に以下をしっかり検討すべきでしょう。

  • 自社で取り組もうとしている課題は 1-3 どれに該当するのか?
  • 1 or 2 であれば AI モデルは自社の業務のどの部分に組み込まれるか?
  • 3 であれば仮説を立てて、1-2 の課題に昇華できないか?
  • モデルが業務に組み込まれた結果、業務プロセスはどのように変化するか?
  • モデルの出力結果は、何らかの形で既存 KPI と紐づけ可能か?

まとめ

私もそうですが、データ分析やAIのプロジェクトはどうしても手法に焦点が当たりがちです。
折に触れてこれらの点は見直すようにしたいところです。


これだけは知っておきたい!ビジネス層のためのデータ分析超入門 ③ 二項分類のユースケース

はじめに

エンジニア歴1年目の私が、機械学習について調べたことをまとめていきたいと思います。

今回は、以前記述した「これだけは知っておきたい!ビジネス層のためのデータ分析超入門 ② 評価指標」を踏まえたユースケースについて確認していきます。

分類問題で重要なのは、望まれる状況がどのような状態で望まない状況がどのようなものであるかをとらえることです。

どの評価指標を最適化するべきかのひとつの考え方として偽陽性・偽陰性に分類されたクラスの影響度合いを考えるというものがあります。これによって再現率/適合率のどちらを最適化すべきかの判断ができます。

「どの場合にどの指標をみるのか」がざっくり把握できれば幸いです!

ゴール

今回は以下のユースケースについて考えていきたいと思います。

ユースケース一覧

  1. 緊急のドキュメント探索
  2. 画像プライバシー保護システム
  3. スパムフィルタ
  4. キーワードによるフォト検索

1. 緊急のドキュメント探索

緊急性の高いドキュメントを他よりも優先するシステムを構築したいとします。
ケースとしては、ファイルフォルダーに蓄積されているドキュメントの仕分けなどで、NDAのような重要書類と過去に行われた定例会議の議事録のような緊急性の低い書類の探索とします。

  • 偽陽性(FP)
    緊急でないドキュメントを緊急であるドキュメントとして分類されること。
  • 偽陰性(FN)
    緊急であるドキュメントを緊急でないドキュメントとして分類されること。

無題のプレゼンテーション (25).png

このようなケースでは、偽陽性(FP)であれば誤って分類されたものは緊急でないと判断して、無視して良いのですが、偽陰性だと重大な問題を見落とすケースにつながってしまう恐れがあります。

そのため、「再現率」を最適化する方が好ましいです。
(取りこぼしなく緊急なドキュメントを緊急なドキュメントと判断するモデル)

2. 画像プライバシー保護システム

登録された画像内の機密情報(クレジットカードの番号など)を検出し、それをぼかすシステムを構築するとします。

  • 偽陽性(FP)
    ぼかす必要のないものをぼかしてしまう。(画像内のなんらかの数字など)
  • 偽陰性(FN)
    クレジットカード番号がぼかされずに残ってしまう。

無題のプレゼンテーション (22).png

このようなケースでは、偽陽性の場合は気になるところはありますがシステム上の弊害はありません。しかし、偽陰性であると、個人情報が盗まれてしまう恐れがあり重大な問題につながってしまいます。

そのため、「再現率」を最適化する方が好ましいと言うことができます。
(取りこぼしなく機密情報をぼかすようにするモデル)

3. スパムフィルタ

スパムメッセージとそうでないものをフィルタリングし、スパムメールを受信フォルダから削除するシステムを構築するとします。

  • 偽陽性(FP)
    スパムでないメールが誤ってスパム認定され、受信フォルダから削除される。
  • 偽陰性(FN)
    スパムメールがフィルタリングされずに受信フォルダに残る。

無題のプレゼンテーション (24).png

今回のケースでは、これまでのケースの反対になります。
偽陽性の場合、正常なメールがスパムメールと認定され削除されてしまうと、もし削除されてしまったメールが重要であった場合に問題が発生してしまう可能性があります。しかし、偽陰性の場合、多少の不快感は残るものの、ビジネス上の損失には直結しません。

そのため、「適合率」を最適化するのが好ましいです。
(スパムをスパムと正しく認定する割合を高くするモデル)

4.キーワードによるフォト検索

特定のキーワードに対応する最適なストックフォトを見つけるシステムを構築するとします。
例えば、「犬の画像」と検索した際に表示された画像に実際に犬が含まれていれば正常に分類されていると判断します。

偽陽性(FP)
キーワードと無関係な画像(車の画像など)が表示されている。

偽陰性(FN)
画像内に犬が写っているが、検索結果に表示されなかった画像が存在する。

無題のプレゼンテーション (27).png

偽陽性については、検索キーワードと関連しない画像が表示されているため好ましい状態ではありません。偽陰性については、キーワードと関連する画像が表示されているため、取りこぼしの画像があったとしても検索システムとしては問題にはなりません。

そのため、「適合率」を最適化する方が好ましいです。
(実施される画像検出が正しく行われるモデル)

さいごに

簡単ではありますが、データ分析評価指標でのユースケースについて解説しました。

ぜひ、参考になれば幸いです。


Databricks、使ってみよう①

はじめに

Databricksとは、Databricks 社が開発した 統合データ分析プラットフォームです。
Databricksを利用することで、高度な解析ソリューションの構築とデプロイができます。

概要

ポータル画面で、スピーディ・手軽にAI・データ分析で必要となるさまざまな要素…

  • 分析データをコンピュータに取り込む
  • 取り込んだデータの分析
  • 分析したデータの可視化

などが含まれたデータ分析のトータル環境をクラウド上で構築できます。

データレイクと分析環境を AWS 上に構築することができるため、コンピューティングリソースやストレージも AWS 上で管理できます。

構成図
MicrosoftTeams-image.png

AWS で実装する場合は、
Databricks アプリケーションとユーザー側の AWS リソースを連携させ、リソースとして EC2 を利用する形になります。

Databricksの特徴・導入するメリット

1.オープンソースをベースとした分析プラットフォーム

  • 高速分散処理に特化しているApache Spark
  • 複数のデータベースを管理できるDELTA LAKE
  • 取り込んだデータを可視化するredash など

上記の図のように、Databricks を構成しているサービス群はほとんどがオープンソースとして公開されているサービスです。
Notebookでコードを書き、Notebookで指定できる言語は、Python Scala SQL R の4つになっています。

2.データ分析環境を一元化できる・シンプルなサービス

会社・組織の中で部門ごとにそれぞれのサービスやツールを利用していることが多く、データ分析業務の統一管理ができていないというケースが見られます。

Databricks では、図のように、分析データ収集・蓄積から加工処理、AIモデル管理・運用まで一括で管理できるため、組織間での連携不足の解消や、管理工数の削減につなげられるメリットがあります。

また、Databricks を構成している各サービス群はシンプルな構成になっています。
シームレスに連携できるため使いやすいです。
image.png

3.コラボレーション向上

Databricks の機能の中で、コラボレーション向上ができる仕組みとして提供されているのが
コーディング画面のCollaborative Notebook(コラボレーティブ ノートブック)となっています。

Collaborative Notebook(コラボレーティブ ノートブック)画面
image.png

Collaborative Notebook は、Jupyter Notebook ライクなインターフェースとなっています。

従来の Notebook では、担当者ごとにバラバラで処理を行っていたので、総合的に管理をすることが難しいというデメリットがありましたが、Collaborative Notebook では会社・組織間でのコーディング作業の共有が可能になっています。

他にも、誰がどの処理を行ったのか?という履歴が残るような仕組みがあるため、エラーの履歴を辿るといったことができるようになっています。

また、クリックするだけで以下のように分析結果が簡単に可視化できるのも非常に便利な点だと思います。

databricks notebook gif.gif

事例紹介

Shell社

業界:エネルギー(石油大手)
解決したいこと:ビックデータ活用を活用するため、データ分析基盤を構築したい
問題解決のために行ったこと:データの取り込み、ETL処理、データ分析、機械学習

導入事例:Shell - Databricks

https://databricks.com

Starbucks社

業界:小売・消費財(コーヒーチェーン)
解決したいこと: 需要予測の策定、パーソナライゼーション、製品イノベーション
問題解決のために行ったこと:機械学習、データの取り込み、ETL

導入事例:Starbucks - Databricks

https://databricks.com

おわりに

Databricks の概要と、特徴・導入するメリットについてまとめてみました。
Databricks のメリットについて分かったので勉強になりました!


【AWSで始める異常検知】Part3. 異常検知に便利なAWS製品

はじめに

前回の記事 では、Amazon SageMaker を使って異常検知のサンプルアーキテクチャをご紹介しました。
AWSにはSageMakerの他にも異常検知に便利なサービスがあるので、本記事にて代表的なものをいくつかご紹介いたします。

Amazon Monitron

Amazon Monitron は、機械学習を使用して産業機械の異常な動作を検出し、予知保全によってダウンタイムを低減することを可能にすることができます。
産業機械にMonitronセンサーを取り付け 振動や熱を計測し、そのデータをクラウド上に転送して機械学習によって異常な動作を検知します。

※2021/05/10時点で米国、英国、およびEUのみでデバイス購入可能、利用できるリージョンは米国東部 (バージニア北部) および欧州 (アイルランド)のみです。

Amazon Monitron - アマゾン ウェブ サービス

https://aws.amazon.com

Amazon Monitron に含まれるもの

  • 振動と温度のデータを取得する Amazon Monitron センサー
  • AWS にデータを安全に転送する Amazon Monitron ゲートウェイ
  • 機械学習を使用して機械の異常パターンのデータを分析する Amazon Monitron サービス
  • およびデバイスをセットアップし、機械の潜在的な障害を追跡するためのコンパニオンモバイルアプリ

スクリーンショット 2021-05-07 15.50.31.png

Amazon Lookout for Equipment

Amazon Lookout for Equipment は、機器のセンサーで得られたデータを自動で分析して、機器の異常検知や予知保全を実現します。
リアルタイムでセンサーデータを分析して、機械障害につながる可能性のある早期警告の兆候を正確に特定します。

Amazon Lookout for Equipment - アマゾン ウェブ サービス

https://aws.amazon.com

スクリーンショット 2021-05-07 17.46.08.png

Amazon Lookout for Vision

Amazon Lookout for Vision は、コンピュータービジョン を使用して視覚表現の欠陥や異常を発見する機械学習サービスです。
正常な製品と欠陥のある製品を示す画像をアップロードしてタグ付けをすることで、欠陥を検出するモデルを自動で作成することができます。

 Amazon Lookout for Vision (コンピュータービジョンを使用して視覚表現の欠陥や異常を発見) | AWS

https://aws.amazon.com

スクリーンショット 2021-05-07 17.19.11.png

AWS IoT

AWS IoT を使用すれば、機器の状態、正常性、性能を継続的にモニタリングおよび推測して、問題をリアルタイムで検知できます。

引用元:https://aws.amazon.com/jp/iot/solutions/industrial-iot/?c=i&sec=uc1

スクリーンショット 2021-05-07 17.53.25.png

AWS IoT Analytics

AWS IoT Analytics に事前に定義されているテンプレートを使用して、強力な予知保全モデルを簡単に構築し、フリートに適用できます。
例えば、AWS IoT Analytics を使用して、接続された貨物車で冷暖房装置が故障するタイミングを予測できるため、適切な補修を行って輸送上の損傷を防ぐことができます。

引用元:https://aws.amazon.com/jp/iot-analytics/?c=i&sec=srv

AWS IoT Events

AWS IoT Events は、複数の IoT センサーやアプリケーションのデータを継続的に監視し、AWS IoT Core や AWS IoT Analytics といった他のサービスと統合してイベントの早期検出と固有の分析を可能にします。

引用元:https://aws.amazon.com/jp/iot-events/?c=i&sec=srv

AWS IoT Core

AWS IoT Core を使用すれば、IoT デバイスを AWS クラウドに接続できます。

引用元:https://aws.amazon.com/jp/iot-core/

AWS Lambda、Amazon Kinesis、Amazon S3、Amazon SageMaker、などといった Amazon のサービスを簡単に使用して、接続されたデバイスで生成されたデータを収集、処理、分析し、そのデータに基づいてアクションを起こす IoT アプリケーションを構築できます。

まとめ

このように、AWSには異常検知をする上でたくさんのサービスが用意されています。
やりたいことに合わせて使うサービスを検討することができるのも、AWSなどのクラウドサービスを使うメリットだと思いました。


【AWSで始める異常検知】Part2. Amazon SageMakerで設備故障の検知

はじめに

AWS ソリューションライブラリーにて提供されている 機械学習を利用した予知保全 の実装をやってみます。
用意されているAWS CloudFormation テンプレートを使用するので簡単にデプロイできます。

Amazon SageMakerとは

Amazon SageMaker は、機械学習モデルを短期間で簡単に構築、トレーニング、デプロイできるようにするフルマネージド型サービスです。
あらゆる作業を効率化する機能が提供されているため、人手をかけずに異常検知をやりたいときに最適なサービスです。

本記事のゴール

機械学習モデルとターボファンの劣化シミュレーションデータのサンプルデータセットをデプロイして、潜在的な設備故障を認識するようにモデルをトレーニングするというサンプルアーキテクチャを紹介します。

アーキテクチャ図は以下の通りです。

image.png

このアーキテクチャでは、サンプルデータセットを使って、
設備故障の評価対象としてRUL(残存耐用期間)を計算し、予測値と観測値を比較して異常検知します。
トレーニングデータとテストデータは、S3バケットに格納します。
これをAWS Lambda などを使って1日に1回スケジュール実行します。

実装手順

手順は大まかに以下の4つです。

  1. スタックを起動する
  2. ML モデルをトレーニング
  3. CloudWatch Events ルールを有効にする
  4. Lambda 関数がデータを処理していることを確認する

1. スタックを起動する

機械学習を利用した予知保全 から CloudFormationテンプレートをダウンロードします。

テンプレートに含まれているもの:
Amazon CloudWatch Events ルール
AWS Lambda 関数
Amazon SageMaker ノートブックインスタンス
Amazon S3 バケット

image.png

AWS CloudFormationに移動 → 「スタックの作成」を選択します。

image.png

ダウンロードしたテンプレートをアップロード → 「次へ」を選択します。

image.png

スタックの名前を入力します。

image.png

S3バケットの名前を入力 → SageMaker ノートブックインスタンスをデプロイす
る VPC Id、Subnet Id を選択 → 「次へ」で次に進みます。

image.png

オプションの設定はスキップします。
「次へ」を選択します。

image.png

設定を見直します。
テンプレートが AWS IAM リソースを作成することを確認するチェックボックスをオンにして → 「スタックの作成」を選択します。

image.png

CREATE_COMPLETE のステータスが表示されたら、デプロイが完了したということです。
5分ほどかかりました。

image.png

2. Amazon SageMaker でノートブックを実行する

Amazon SageMaker では、任意の深層学習フレームワークを使用してカスタム深層学習モデルをトレーニングできます。
このソリューションでは、カスタムの Stack LSTM ニューラルネットワークを活用して、時系列データから履歴パターンを学習します。

Amazon SageMaker コンソールに移動 → 「SageMaker Studio」を選択します。

image.png

「ノートブックインスタンス」 → 「PredictiveMaintenceNotebookInstance」を選択します。

image.png

「Jupyterを開く」を選択します。

image.png

sagamaker_predictive_maintenance.ipynb のノートブックを開きます。

image.png

全てのセルを実行します。

image.png

3. CloudWatch Events ルールを有効にする

1日に1回実行するように設定されてます
Amazon SageMaker バッチ変換ジョブを作成する AWS Lambda 関数をトリガーするように設定されており、AWS SageMaker バッチ変換ジョブはトレーニング済みモデルを使用してデータのサンプルから残存耐用年数を予測します。

AWS Lambda コンソールに移動 → 「関数」 → 「predivtive-maintenance-batch-transformer」を選択します。

image.png

「EventBridge(CloudWatch Events)」を選択します。

image.png

predictive-maintenance-ScheduledRule-を選択します。

image.png

「有効にする」を選択し、を有効にします。

image.png

「有効にする」を選択します。

image.png

4. Lambda 関数がデータを処理していることを確認する

[モニタリング] を選択し、[Invocations] グラフにアクティビティが表示されているこを確認します。

image.png

テスト結果はS3バケットに格納されます。
画像のように、RUL(残存耐用年数)の列が追加されていることが確認できます。

image.png

さいごに

今回は、Amazon SageMakerを使って異常検知のアーキテクチャ実装を試してみました。
AWS CloudFormation テンプレートを使用することで、モデルのトレーニングからノートブックのスケジュール実行の設定まで数分で出来ました。
今回はサンプルデータを使用していますが、任意のデータセットを使用するようにソリューションを変更できることもできるようなので、次回はトライしてみたいです。

参考

機械学習を利用した予知保全 | 実装 | AWS ソリューション

https://aws.amazon.com


【AWSで始める異常検知】Part1. 異常検知の始め方

異常検知とは何か

他の大多数のデータとは振る舞いが異なるデータを検出する技術で、
クレジットカードの不正使用検知や機械故障の検知等の分野で用いられています。

異常検知の代表的な手法

以下のような手法がよく用いられています。

  • ホテリング理論
  • k近傍法
  • 局所外れ値因子法(LOF法)

異常検知の活用事例

製品の品質チェック
画像認識の技術を用いて、今まで目視で完成品をチェックしていたものを自動化します。

設備や機器に対する異常検知
センサーから取得したデータを用いて、異常データを検出するようにモデルを構築し、トラブルを早期に発見します。

クレジットカードの不正使用検知
不正利用のパターンをデータ化し、24時間365日カード利用を監視します。
不正利用の事例と類似した場合は、カード利用を停止したり カード名義人へ連絡が入ったりなどの対応が行われます。

異常検知にAIを活用するメリット

  • 人の目や長年の経験がないと分からなかった故障などの判断をAIに置き換えることができる
  • 人間では感じられない違いを画像やデータによって補完することが可能
  • トライ&エラーの繰り返しで検知精度を向上

まとめ

本記事では、異常検知とは何で、どんな分野で使われているのかについて紹介しました。
異常検知の技術を用いた業務の自動化は、人員の削減や生産性の向上にもつながるため様々な分野で取り入れられています。
次回は実際にAWSのサービスを使って、簡単に異常検知を試してみます。

次の記事:【AWSで始める異常検知】Part2. SageMakerで設備故障の検知


AWS Redshift 活用術 ① RedshiftML 紹介

はじめに

SQLで機械学習モデルが作成できるAWSのサービス、RedshiftMLについてご紹介します。
この記事ではRedshiftMLの概要・どのようにして動いているのか?を紹介し、
AWS Redshift 活用術 ②では実際に触ってみた工程を紹介したいと思います。

概要・メリット

RedshiftMLとは、SQLから機械学習モデルを構築・利用・運用できるサービスです。

従来のAWS上の機械学習

これまで、データベースに格納してあるデータを用いて機械学習を行うには…

  1. 学習データをS3バケットにエクスポート
  2. Sagemakerノートブックインスタンスでモデルをトレーニング、予測をします
  3. 予測されたデータをデータベースにインポート

の手順が必要になり、機械学習を行う過程でSagemakerの扱いやプログラミング言語(PythonやR)のスキルが必要でした。

RedshiftMLでの機械学習

  1. RedshiftからSQLをたたく
  2. Amazon Sagemaker が実行され、起動・モデルが生成される
  3. 作成したモデルがS3バケットに保存される

RedshiftMLを使用すると、PythonなどのスキルがなくてもSQLコマンドだけで機械学習モデルが作成できるようになります。

Python、Rなどのプログラミング言語やSagemakerがよく分からないけど、SQLは知っているよ、という層も機械学習モデルが構築できるのが一番のメリットではないかと思います。

また、Amazon SageMaker Autopilot が裏で動いているので、

  • 分類・回帰モデルを自動的に生成
  • 特徴量エンジニアリング・モデルのチューニング
  • XGBoost、線形学習器、深層学習アルゴリズムをサポート

なども行ってくれます。

【RedshiftML構成図】
image.png

さいごに

RedshiftMLの登場で、PythonやRはあまり詳しく知らないけど、SQLに精通しているデータベース開発者の方々が機械学習処理の構築に参入しやすくなったといえます。
AWS Redshift 活用術 ②では実際に触ってみた工程を紹介しているので、もしよかったらそちらも見てみてください。

参考URL

AWS公式ドキュメント:

Terms and concepts for Amazon Redshift ML - Amazon Redshift

https://docs.aws.amazon.com


【AWS OCRサービス】Amazon Rekognition Videoでメタデータ検出してみた

はじめに

今回は、Amazon Rekognition Videoについて概要と、何ができるのか、どんな時に使えるのかを調査しました。
Amazon Rekognition Videoについて概要を知りたい方、どんなデータが検出できるのかを紹介していこうと思います。

Amazon Rekognition Video 概要

Amazon Rekognition Videoとは、AWSの提供する機械学習を利用したビデオ分析サービスです。
Rekognition Videoを利用することで、動画中の数千のオブジェクトや顔、コンテンツを正確に検知し、追跡し、認識し、抽出し、節度を検出することができます。

※こちらの記事にて、デモの利用手順をご確認いただけます。
https://qiita.com/JJ33/items/848aaac7bc68a15c56af

Amazon Rekognition Video 3つの主な機能

1.チーム:動画に登場する人物を識別、追跡
2.有名人:登場人物が有名人か判定
3.オブジェクトとアクティビティ:動画内にある人、モノ、シチュエーションまでを解析

検出できるメタ情報

  • 物体(車両やペットなど)
  • シーン(都市やビーチ、結婚式など)
  • アクティビティ(小包の配達やダンスなど)
  • 有名人(有名人の名前と一意のID)
  • テキスト(英語テキストのみ)
  • 動作(ろうそくを吹く、火を消すなど)
  • 不適切なコンテンツ(ヌード、暴力、武器など)

各検索結果や検出にはタイムスタンプが付いているため、詳細なビデオ検索向けのインデックスをすぐに作成できるほか、さらなる分析のために興味のある箇所にすばやく移動することもできます。
また、対象がフレーム内のどの位置で検出されたのかを境界ボックスの座標で教えてくれます。

デモを試した結果

https://www.youtube.com/watch?v=L91yri_Vmbs
こちらの動画を借りてデモを使ってみました。
結果を一部掲載します。
(今回CelebritiesやModeration Labelsは検出されなかったためLabelsとPersonsのみ)

ケース1 ジェット機の前で写真を撮るシーン

image.png
■Labels(Confidence 80以上のみ表示)
image.png
ジーンズやヘリコプターも認識できているようです!

■Persons
image.png
4人の人物を検知しています。

ケース2 女の子がドーナツを持っているシーン

image.png

■Labels
image.png
こちらのシーンではホットドッグを検出しています。
正確にはドーナツなのですが、食べ物の種類まで認識しているのはすごいですよね!

■Persons
image.png
先程のシーンと同じ女の子だとわかっているようです!

ケース3 ソファーで写真を撮るシーン

image.png

■Labels
image.png
室内で、シェルフなどの家具があることを認識しています。

■Persons
image.png
シーン1と同じ人物が2人いるとわかっているようです。

ケース4 家に荷物を運ぶシーン

image.png

■Labels
image.png
宅配をしているシーンであることも認識しています!これはすごい!

何に活用できそうか考えてみた

  • 不適切なシーンのカット、または警告表示
  • 検索機能を充実させる(タグ付けや顔検索)
  • 顔認証受付(施設の混雑防止や万引き防止につながる)
  • 人物トラッキングで犯人を捕まえる、行方不明者を捜す
  • 動画を投稿前に節度を検出し、不適切なシーンの公開を防ぐ
  • 検出できたメタデータを自動で組み合わせてハイライト動画の作成
  • 撮った動画を、カテゴリーや人物別で勝手にフォルダに分けるアプリ
  • SNS等で動画メディアを投稿する際、顔検索によって友達を自動でタグ付け
  • 小売業の分析(買い物客の行動、平均年齢層、性別分布、人々が表す感情を分析)
  • コンテンツ流動型広告(見ているコンテンツに見合う広告を選ぶ、良いタイミングで挟むなど)

さいごに

デモを試した結果、十分な精度で色々なメタ情報が得られました。(他の動画では自撮りをしているシーンやラーメンを作っているシーンも認識しました!)
アイデア次第で、顔認証受付やハイライト動画の作成など、様々な用途で活躍できそうだと思いました。
ぜひ、Amazon Rekognition Videoを使ってみてください!


これだけは知っておきたい!ビジネス層のためのデータ分析超入門 ② 評価指標

はじめに

エンジニア歴1年目の私が、機械学習について調べたことをまとめていきたいと思います。

今回は、私が分からないなりにも「これだけは覚えておきたい!!」と感じた、データ分析を始める上で欠かせない評価指標についてまとめてみました。

私の理解を深めるためにも、今回はシンプルな(※)二項分類を例に解説していきます。

二項分類...属性によって、2つに分類すること(英語か日本語、大文字か小文字など)

ゴール

今回は以下の評価指標ざっくり解説していきます。

解説用語

  1. TP,TN,FP,FNと混同行列
  2. 適合率と再現率
  3. ROC曲線とAUC

1.TP,TN,FP,FNと混同行列

TP,TN,FP,FNとは、二値分類の種類
混同行列とは、二値分類の結果を可視化したもの

TP,TN,FP,FNは、以下の4つになります。(例として車の画像を判別する例で示します)

  • 真陽性(True Positive)
    例)車の画像(Positive)を正しく(True)車の画像である(Positive)と判別した
  • 真陰性(True Negative)
    例)車以外の画像(Negative)を正しく(True)車以外の画像である(Negative)と判別した
  • 偽陽性(False Positive)
    例)車以外の画像(Negative)を間違えて(False)車の画像である(Positive)と判別した
  • 偽陰性(False Negative)
    例)車の画像(Positive)を間違えて(False)車以外の画像である(Negative)と判別した

これらの情報を一つにまとめ、正解・不正解を整理した表を混同行列(confusion matrix)といいます。

ちなみに上記の例を混同行列で表すと以下になります。

正しくは車 正しくは車ではない
予測が車 無題のプレゼンテーション (8).png 無題のプレゼンテーション (7).png
予測が車ではない 無題のプレゼンテーション (9).png 無題のプレゼンテーション (10).png

2.適合率と再現率

適合率とは、出力した結果の内、本当に見つけたいデータの割合はどの程度あるかの指標
再現率とは、網羅性を測る指標

例を出して説明していきます。

車と電車の写真データ群の中から、車の写真を選び出す検索システムAと検索システムBがあるとします。

結果は図のようになりました。

無題のプレゼンテーション (11).png

システムAでは検索でヒットしたのが60件。車以外の電車などの写真をヒットさせる誤りはなんと0でした。しかし、車の写真の取りこぼしが70件発生してしまったようです。

システムBでは検索でヒットしたのが250件。Aとは反対に電車の写真をヒットさせる誤りが90件発生してしまいました。しかし、車の写真の取りこぼしはありませんでした。

この場合、どちらの検索システムのほうが優秀でしょうか??

それは、検索の目的によって異なります。

上記のケースですと、

システムAは、出力した結果の内、本当に見つけたいデータ(車の写真)の割合が高かったので、「適合率が高い」と言え

反対にシステムBは、正解の検索ヒット数が高い(網羅性が高かった)ので、「再現性が高い」と言えます。

3. ROC曲線とAUC

データ分析の中でも、白黒はっきりしない曖昧な結果が出てくることがあると思います。
そんな時に使用する評価指標が、「ROC曲線とAUC」です。

この評価指標は、医療現場における検査や診断薬の性能などで多く使われるものになりますので、医療での検査を例に解説していきます。

下記は、ウイルスに感染しているかをAIが判断するモデルとします。
笑顔の人は健康な状態、目がバッテンで明らか体調の悪そうな人が病気の状態です。
アイコンの下の数字は陽性率を示します。

陽性率が低い人の中にも体調が悪そうな方がいますね。

このウイルスの感染の有無を2項分類したときに、「病気」とAIが判断する確率を陽性率とすると「真陽性率=AIが陽性と判断した中で本当に病気を患っている人の割合」、「偽陽性率=本当に陰性の人をAIが陽性と判断した割合」と定義できます。

無題のプレゼンテーション (12).png

では、陽性率が0.7以上の人を陽性とします。

無題のプレゼンテーション (13).png

このように赤枠で表示することができます。

ROC曲線とは、真陽性率(TP)を縦軸に、偽陽性率(FP)を横軸にした2次元のグラフのこと

この例であるならば、「AIが陽性と判断した中で本当に病気がある人の割合」が縦軸になり、「本当に陰性の人をAIが陽性と判断した割合」が横軸になり、偽陽性率は1/6、真陽性率は1/3となるわけです。

ROC曲線を実際に作成すると以下になります。

2021-05-06_15h45_57.png

曲線中にできた面積(図中の灰色の部分)がAUCになります。

AUCとは、ROC曲線を作成した時に、グラフの曲線より下の部分の面積をAUC(Area Under the Curve)のこと

AUCは0から1までの値をとり、値が1に近いほど優れた精度で分類ができていると言えます。

さいごに

簡単ではありますが、データ分析に関する評価指標について解説しました。

ぜひ、参考になれば幸いです。


これだけは知っておきたい!ビジネス層のためのデータ分析超入門 ① 基礎用語

はじめに

エンジニア歴1年目の私が、機械学習について調べたことをまとめていきたいと思います。

今回は、私が分からないなりにも「これだけは覚えておきたい!!」と感じた、データ分析の超入門用語を7つピックアップしました。

ゴール

今回は以下の解説用語をざっくり解説していきます。

解説用語

  1. 特徴量
  2. 説明変数と目的変数
  3. データ探索
  4. 可視化
  5. 特徴量エンジニアリング
  6. 学習と推論

1. 特徴量

特徴量とは、対象となるデータの特徴を数値化したもの

犬を例に説明していきます。

私たち人間は犬を見ると、大きさや顔の特徴、毛並み等から「チワワ」とか「日本の犬」等を判別することができます。

ですが、コンピュータの世界ではそうはいかず、大きさや顔の特徴などを明確に数値化して始めて「犬種」を判断することが可能になります。
これらの大きさや顔の特徴などを数値化したものが「特徴量」に当たります。

無題のプレゼンテーション.png

特徴量の選択は、機械学習を行うさいには最も大事なデータの質や量が求められます。つまり、良質な機械学習を行いたい場合は良質なデータの質と量が大きく影響してくると言っても過言ではありません。

ちなみに、特徴量のデータの数のことを「次元」と言います。私たちが、犬の種類を判別するときに複数の情報から判断するように、機械学習でも複数のデータをコンピュータに学習させ判断させます。

大きさや毛並みの色を特徴量にする場合は2次元、そこに顔の特徴などを加える場合は3次元といった感じですね。

2. 説明変数と目的変数

説明変数とは、予測のポイントとなるデータのこと。特徴量に当たる。
目的変数とは、予測対象の過去のデータのこと

セールスを例に説明していきます。

Aという会社でペンを販売しているとします。
セールスでは売上を管理する際に、「今期はお客様にどれだけ売れるか?」の予測がつくと便利ですよね。

この予測を行うためには、コンピューターに「過去どれくらい売上が立っているか」を学習させる必要がありますので、「過去の売り上げ」が目的変数になります。

そして、この予測の根拠となるデータ(セールスマンの人数、景気、アポイントの数、等)を学習させることによって予測の精度を上げることができます。この「根拠のデータ」にあたるのが、説明変数(特徴量)になります。

無題のプレゼンテーション (3).png

3.データ探索(EDA)

データ探索(EDA)とは、分析初期のフェーズで「データを理解するため」に行う作業のこと

データ探索を行う目的としては、まずはデータに触れてみて、データを可視化したり、データのパターンを探したりすることで、「データを見てからモデルを修正する」必要性があるからです。

少しわかりずらいですね。
図で説明しましょう。

Aさんが売上予測モデルを作ってほしいと依頼されました。
しかし、Aさんは売上のデータは扱ったことがありません。

そこで、まずは営業部から売上のデータを集めて、簡単にグラフを作ってみることにしました!

無題のプレゼンテーション (5).png

するとどうでしょう。構想段階では分からなかった「異常値や欠損値」が発見され、またデータの「トレンド・パターン」を発見することが出来ました。

この実際のデータを集めて、図や表に表してみるという行動が「探索的データ解析」に当たります。

探索的データ解析の成果によってその後の作業効率が変わるため、非常に重要な作業になります。

4.可視化

可視化とは、データを見える形で整理すること

身近な例だと、エクセルで管理している売上データや在庫の数などを表や図に変換することなどが挙げられますね。

例えば、売り上げの数字がエクセルに羅列されているとします。
ぱっと見たときに、数字が大量に並んでいるだけでは「何がどう変わっているか」って分かりづらいと思います。特に大事な意思決定の場では、数字だけ並べられても判断までに時間がかかってしまいます。さらに、そこにデータ量が1000行とかあったらどうでしょう、、、。ぞっとしますよね。

そんなときに必要になるのが可視化です。

無題のプレゼンテーション (4).png

可視化は以下のようなメリットがあります。

・属人的なスキルへの依存解消
・クイックな意思決定

5.特徴量エンジニアリング

特徴量エンジニアリングとは、人為的にAIの予測精度を上げるために用いる技術のこと

データ分析ではあるあるにはなりますが、せっかくデータ分析のモデルを作成したのに、予測精度がいまいちだと利用価値がなくなってしまうことが多々あります。

上記の要因の一つとして、集めた生のデータには不良値や欠損値などが含まれている場合や、そのまま扱えない文字データ・画像データがある場合があり、より利用価値の高いモデルを作るために、人がデータを加工する必要があります。

そのデータを表形式にまとめてパターン認識できるように変換する技術を特徴量エンジニアリングと呼んでいます。

【代表的な特徴量エンジニアリング】

Label encoding

例えば、好きな色…青なら3、白なら1 といった感じで、好きな色を言語ではなく数値に変換する技術です。

2021-04-30_19h00_50.png

Count Encoding

例えば、好きな色を集計したデータが1000件あるとして、その中から
好きな色…青は300件、白は200件…と、そのまま集計した好きな色のデータ件数を数値に変換する技術です。

無題のプレゼンテーション (6).png

まだまだ他にもデータ分析のモデルの予測精度を上げるための特徴量エンジニアリングはたくさんありますが、
長くなるので割愛します。

6.学習と推論

そもそも、機械学習とは、大量の学習データをコンピュータに読み込ませ、そのデータを分析することで分類や識別のルールを作ろうというプログラムのことを指しています。

機械学習をするためのプロセスは、学習 と 推論 の2つに分けられます。

学習とは、大量の学習データの統計的分布から、特徴の組み合せパターンを作り出すプロセス

例えば、学習データである「イチゴ」「レモン」「スイカ」の画像から、コンピュータがそれぞれの画像から見つけた典型的な特徴の組み合わせパターン(=推論モデル)を作ります。

推論とは、分類や識別をしたいデータを、学習で生成しておいた推論モデルに当てはめて、その結果を導くプロセスで

例えば、未知の画像から、画像の特徴を抽出し、「イチゴ」「レモン」「スイカ」を識別する推論モデルに抽出した特徴を照合します。

そして、イチゴの特徴の組み合わせパターンから作られた推論モデルが最も抽出した特徴に近いと判断すれば、「イチゴ」という推論をコンピュータが出力してくれます。

MicrosoftTeams-image (2).png

さいごに

簡単ではありますが、データ分析に関する基礎用語について解説しました。
一つ一つをじっくり説明すると長くなってしまいますので、色々割愛させていただきましたが、調べていく中でデータ分析の奥深さと難しさを改めて感じました。

ぜひ、参考になれば幸いです。