絶品ゆどうふのタレ

ふと気づいたことを綴るだけのメモ

AWS Summit 2015 - Day2 - 今日から始められる、機械学習!Amazon Machine Learningのご紹介

  • AWS 今井さん

機械学習の例

  • スパムメール判定

    • 二値判定、二項分類
    • 教師データ
    • 別の方法でSpam判定ずみのデータを元に学習
    • それを元に判定
  • 商品カテゴリの判定

    • マルチクラス分類
    • この商品はどのカテゴリのものか?
  • 明日の売上の予測

    • 回帰分析
    • 過去のデータ群を教師データとする
    • それを元にモデルの線を引き、明日の条件に最も合う条件で予測する
  • スマートのアプリケーションを作るには

    • 機械学習に強くて
    • R / Python場合によってはHadoop / Sparkに明るい
    • 特定分野のビジネス経験が必要
  • これは大変

  • なので、Amazon Machine Learning

Amazon Machine Learning

  • Amazonアルゴリズムを提供
  • パッケージサービスとして提供
    • ワークフローが予め提供されている
    • MLは教師あり学習に対応している
  • スケーラビリティ

  • 取り扱えるモデルとアルゴリズム

    • 二項分類
      • ロジスティック回帰
    • 多クラス分類
    • 回帰分析
      • 線形回帰
  • 予測手法

    • バッチ予測
      • S3にあるデータをまとめて予測を実施
    • リアルタイム予測
      • データを一件ずつAPIを使って投げて予測

AMLの使い方

  • 教師用・評価用データを準備
    • S3 / Redshift / RDS for MySQLをデータソースとして利用可能
    • CSV形式のデータ
  • 教師データからモデルを作成
  • モデルの品質評価
    • 評価用のデータを流してテスト
    • 7割の教師データを使って学習、3割を使って品質評価をする(自動で分けてくれる)
    • Scoreの許容度をどこにするかをグラフィカルに設定できる!
    • 制度に満足できない場合は、教師データを精査して繰り返す
  • 実際の予測に使う

料金

  • 分析、トレーニング、評価
  • バッチ予測
    • $0.10/1000
  • リアルタイム予測

    • $0.10/1000
    • +モデル10MBあたり$0.001/h
  • リージョンはus-east-1のみ

    • どのS3リージョ運のデータでも大丈夫

利用例

  • 広告の不正クリック検出

    • 教師データ: 実際のクリックログ
    • 問題の分類: 二項分類
    • 出力: ログごとに不正かどうかチェック
  • 広告のリダイレクタの中でAPIを叩けば、その場で不正かどうかの判定が可能

  • デモグラ推定

    • 教師データ: でもグラがわかっているユーザーの行動ログ
    • 問題の分類: 多クラス分類
    • 出力: ユーザーを行動ログからデモグラ判定
  • デモグラに基づいたレコメンデーション

    • 教師データ:購入履歴にデモグラをマッピングされたもの
    • 問題の分類: 多クラス分類
    • 出力: ユーザーのデモグラを入力し、F1なので商品カテゴリこれがいい、みたいな出力
  • 写真からの判定

    • この後デモ

アーキテクチャへの組み込み

  • S3からデータを出し、MLにかけてまたS3へ
  • Redshiftをデータソースとして扱い、S3へ
  • リアルタイム予測
  • DynamoDB StreamsやLambdaを使って MLにかける

AML説明まとめ

  • 機械学習の導入が用意になり、すぐにでもデータ分析が始められる

AMLデモ

  • 榎並さん

  • 顔写真から特定の人物判定

    • 顔写真をグレースケールにしたビットマップ
      • 各ピクセルの明度を数値化して、大きな配列にする
    • 二項分類
  • 構成

    • OpenCVで顔部分を検出
    • 写真をグレースケールに
  • トレーニングデータについて

    • 前処理の部分は自分で用意する必要はある

流れ

  • トレーニングデータCSVをS3にアップロード
  • AMLのコンソールからCSVを指定
    • CSVの最後の部分が二項分類の値だよね(binaryだよね)というのを予測してくれる
  • 自動で学習と品質評価をしてくれる
    • アップロードデータの3割を自動で評価データにしてくれる
  • 出た結果を元に、許容度を設定
  • ML real time の設定をすると、リアルタイム予測ができるようになる

  • APIで正しい写真を渡すと、正解フラグとスコアが帰ってくる

    • 間違った写真でも同様

まとめ

  • 機械学習のプロフェッショナル用のサービス、という趣よりも、詳しくないデベロッパーでもすぐ始められるサービス