Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[HeatWavejpMeetup#09] HeatWave AutoML で利用できる機械学...

[HeatWavejpMeetup#09] HeatWave AutoML で利用できる機械学習の概要とレコメンデーションの紹介 [高橋 宣幸 氏, 笠原 佳多 氏(スマートスタイル)]

HeatWavejp Meetup #09 「誰でもできる機械学習と生成AIを試してみよう! HeatWave AutoMLとGenAIのお話。」(2024/8/28 開催)の講演資料です。

【講演内容】
MySQL HeatWave の呼称がHeatWave に変更になった件について

 ≪アジェンダ≫
 1.機械学習とは?
 2.HeatWave AutoMLの機能紹介
 3.アヤメの分類をもとにしたAutoMLの実行
 4.HeatWave AutoML機能を利用したレコメンデーション紹介

【発表者】
株式会社スマートスタイル
データベース&クラウド事業部 技術本部 DB部
高橋 宣幸 氏, 笠原 佳多 氏

【イベント情報】
HeatWavejp Meetup #09
https://heatwavejp.connpass.com/event/327359/

More Decks by HeatWavejp(MySQL HeatWave Japan User Group)

Other Decks in Technology

Transcript

  1. Copyright © 2024 HeatWavejp All Rights Reserved. HeatWavejp Meetup #09

    HeatWave AutoML で 利用できる機械学習の概要と レコメンデーションの紹介 2024年08月28日(水) 株式会社スマートスタイル 技術本部 データベース部 高橋 宣幸(たかはし のぶゆき) 笠原 佳多(かさはら けいた)
  2. Copyright © 2024 HeatWavejp All Rights Reserved. アジェンダ 1. 機械学習とは?

    2. HeatWave AutoMLの機能紹介 3. アヤメの分類をもとにしたAutoMLの実行 4. HeatWave AutoML機能を利用したレコメンデーション紹介
  3. Copyright © 2024 HeatWavejp All Rights Reserved. 機械学習とは? ◆データを分析する方法の1つ ➢データから、「機械」(コンピューター)が自動で「学習」し、データ

    の背景にあるルールやパターンを発見する方法 • 学習した成果に基づいて「予測・判断」することも近年では重 要視されるようになってきている • 参考情報:機械学習
  4. Copyright © 2024 HeatWavejp All Rights Reserved. 機械学習とは? ◆機械学習は3種類存在する 1.

    強化学習 繰り返し試行錯誤のやりとりを重ねることによってタスクを実行できるようにする手法 2. 教師なし学習 学習データに正解を与えない状態で学習させる手法 3. 教師あり学習 学習データに正解を与えた状態で学習させる手法 HeatWave AutoMLでは 教師あり学習をサポート!
  5. Copyright © 2024 HeatWavejp All Rights Reserved. 機械学習とは? ◆例) 教師あり学習で犬の種類を学習させる

    1. 犬の種類の正解が付いた特徴をコンピューターに学習させる 2. 柴犬の画像を提示し、その画像が柴犬と予測できるか確認する Q.この画像は何? A.柴犬だと思います 毛が短く、茶色くて、尻尾が 短い中型犬… おそらく柴犬であろう ゴールデンレトリバー 大型 毛が長い 金色 柴犬 中型 毛が短い 茶色 尻尾が長い 尻尾が短い チワワ 小型 毛が短い 白色 尻尾が短い
  6. Copyright © 2024 HeatWavejp All Rights Reserved. アジェンダ 1. 機械学習とは?

    2. HeatWave AutoMLの機能紹介 3. アヤメの分類をもとにしたAutoMLの実行 4. HeatWave AutoML機能を利用したレコメンデーション紹介
  7. Copyright © 2024 HeatWavejp All Rights Reserved. HeatWave AutoML の機能紹介

    ◆機械学習を簡単に利用できる機能=AutoML • HeatWave AutoMLで事前に用意されているルーチン(SQL)を実行す るだけで、機械学習モデルの作成や予測などを自動で行える • 「教師あり学習」に対応 ➢正解のデータを学習させることで、パターンの識別や予測を実行でき る
  8. Copyright © 2024 HeatWavejp All Rights Reserved. HeatWave AutoML の機能紹介

    ◆HeatWave AutoML機能を利用するメリット • すでに格納されているデータをもとにSQLで簡単に機械学習が可能 ➢一般的に機械学習はPythonを利用するが、SQLを利用できるため、 学習コストが少ない ➢新たにデータの収集やDBからデータを取り出して加工することが不要 • HeatWaveを利用していれば追加費用なしで利用可能 • 他社製品と比べて高速なトレーニングを行える ➢HeatWave AutoMLはAmazon Redshift ML より平均25倍高速
  9. Copyright © 2024 HeatWavejp All Rights Reserved. HeatWave AutoMLの機能紹介 ◆想定されるAutoML機能の利用ケース

    • 分類モデル:カテゴリの異なる複数のデータを見分ける • 電子メールがスパムかどうかの判別 • 類似したユーザーの特定 • 回帰モデル:連続する入力値に対する次の値を予測する • フライト遅延の予測 • 降雨予報
  10. Copyright © 2024 HeatWavejp All Rights Reserved. HeatWave AutoML の機能紹介

    ◆図) HeatWave AutoML機能実行の一般的な流れ
  11. Copyright © 2024 HeatWavejp All Rights Reserved. アジェンダ 1. 機械学習とは?

    2. HeatWave AutoMLの機能紹介 3. アヤメの分類をもとにしたAutoMLの実行 4. HeatWave AutoML機能を利用したレコメンデーション紹介
  12. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆本項の内容 •

    HeatWave AutoML WORKSHOPの「アヤメの分類」の ワークショップを検証環境で実行 • 日本オラクル社の⽣駒様がGithub上で公開しているワークショップ • 検証環境で実行したワークショップの内容をもとに HeatWave AutoMLの機能の実行例を紹介
  13. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆アヤメの分類について •

    事前に用意したアヤメ(Iris)のがく片と花びらのデータを用いて、 アヤメの品種(クラスラベル)がどれかを予測する • 予測に用いるアヤメの特徴 sepal length:がく片の長さ (cm) sepal width:がく片の幅 (cm) petal length:花びらの長さ (cm) petal width:花びらの幅 (cm) • 予測するアヤメの品種(クラスラベル) 予測①:Iris Versicolour(ブルーフラッグ) 予測②:Iris Setosa(ヒオウギアヤメ) 予測③:Iris Virginica(バージニカ) がく片(sepal): 蕾の段階で花を包み 保護する部分 花びら(petal): 葉のような部分
  14. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆ここから実施することの流れ 1.

    HeatWaveインスタンスの作成 2. HeatWaveインスタンスへの接続 3. データの作成 4. トレーニング(ML_TRAIN) 5. モデルのロード(ML_MODEL_LOAD) 6. 推論(ML_PREDICT_*) 7. 説明の⽣成(ML_EXPLAIN_*) 8. モデルの検証(ML_SCORE)
  15. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆1. HeatWaveインスタンスの作成

    1. 画面右上のハンバーガーメニュを展開し、 データベース>HeatWave>DBシステムを押下
  16. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆1. HeatWaveインスタンスの作成

    3. 「DBシステムの作成」画面で設定し、作成を実施 「開発またはテスト」 を選択 「スタンドアロン」 を選択
  17. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆1. HeatWaveインスタンスの作成

    3. 「DBシステムの作成」画面で設定し、作成を実施 事前に作成したVCNを設定
  18. Copyright © 2024 HeatWavejp All Rights Reserved. サンプルをもとにしたAutoMLの実行 ◆1. HeatWaveインスタンスの作成

    3. 「DBシステムの作成」画面で設定し、作成を実施 すべてデフォルトでOK
  19. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆1. HeatWaveインスタンスの作成

    3. 「DBシステムの作成」画面で設定し、作成を実施 MySQLのバージョンは 「8.4.2 – LTS」で作成 「Hide advanced options」を 押下すると詳細な設定が可能 設定が完了したら 「作成」を押下
  20. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆2. HeatWaveインスタンスへの接続

    • 踏み台のCompute InstanceからHeatWaveインスタンスへ接続 1. OCIのCompute InstanceにてOracle Linux環境を作成 2. 作成したCompute InstanceにTeraTerm等でSSH接続 3. Compute InstanceにMySQL Shellをインストール 4. MySQL Shellを利用してHeatWaveインスタンスへ接続 mysqlsh -u admin -p -h <ホスト名> -P3306 –sql ➢上記の詳細な手順はOCIチュートリアルの以下を参照 その3 - インスタンスを作成する その9 - クラウドでMySQL Databaseを使う - 4. MySQLクライアント、 MySQL Shellのインストール
  21. Copyright © 2024 HeatWavejp All Rights Reserved. 例) テーブルデータのイメージ テーブル名:iris_train

    データ量 :120行 ◆3. データの作成 • iris-ml-data.txt内のSQLを実行 • 今回は意図した推測を行ってほしいので、 Iris-sentosaのpetal lengthとwidthの値を SQL実行前に変更(右の画像赤枠) • テーブルは以下列で構成 • 推測で利用する特徴のデータが格納された列 sepal length:がく片の長さ (cm) sepal width:がく片の幅 (cm) petal length:花びらの長さ (cm) petal width:花びらの幅 (cm) • 推測するアヤメの品種が格納された列 class:アヤメの品種 アヤメの分類をもとにしたAutoMLの実行 sepal length sepal width petal length petal width class 4.0 2.0 3.3 1.0Iris-setosa 4.5 2.1 4.4 1.4Iris-setosa 4.2 2.2 3.9 1.4Iris-setosa 4.9 3.1 1.5 0.1Iris-versicolor 5.7 3.8 1.7 0.3Iris-versicolor 4.4 3.2 1.3 0.2Iris-versicolor 6.4 2.8 5.6 2.2Iris-virginica 4.9 2.5 4.5 1.7Iris-virginica 6.9 3.1 5.1 2.3Iris-virginica
  22. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆4. トレーニング(ML_TRAIN)

    • 用意したデータをもとにトレーニング済みモデルを作成し、そのモデ ルをカタログに保存するコマンド • CALL sys.ML_TRAIN ('table_name', 'target_column_name', [options], model_handle); • 実行例(モデル@iris_model01を作成)
  23. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆5. モデルのロード(ML_MODEL_LOAD)

    • モデルカタログからモデルをロードするコマンド CALL sys.ML_MODEL_LOAD(model_handle, user); • 実行例(カタログから@iris_model01をロード)
  24. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆6. 推論(ML_PREDICT_*)

    • 行およびテーブルのデータに対し、どのような結果が求められるかの 予測を行う • 行データに対する予測:ML_PREDICT_ROW • テーブルデータに対する予測:ML_PREDICT_TABLE • 今回は1行のデータに対する予測であるためML_PREDICT_ROWを利用 SELECT sys.ML_PREDICT_ROW(JSON_OBJECT("column_name", value, "column_name", value, ...),model_handle, options);
  25. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆6. 推論(ML_PREDICT_*)

    • 以下数値からAutoMLがどの品種のアヤメかを推測を実施 がく片の長さ:4.4cm がく片の幅 :2.5cm 花びらの長さ:3.0cm 花びらの幅 :1.0cm • AutoMLはヒオウギアヤメ(Iris Setosa)と回答すると予想 • ヒオウギアヤメは一般的にがく片の長さは4~4.5cm、幅2~2.5cm • ヒオウギアヤメの花びらの幅と長さが記載された情報はないものの、写 真を見る限り長さ3cm程度、幅1cm程度に見受けられた • 参考: ヒオウギアヤメ
  26. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆6. 推論(ML_PREDICT_*)

    • 実行結果 指定した値からアヤメの種類はヒオ ウギアヤメ(Iris-setosa)と推測 ⇒AutoMLの答えは想定と同じ結果 となった
  27. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆7. 説明の⽣成(ML_EXPLAIN_*)

    • データからどのようにして推測したかの説明を⽣成 • 行データからの推測の説明:ML_EXPLAIN_ROW • テーブルデータからの推測の説明:ML_EXPLAIN_TABLE • 今回は先に実行したML_PREDICT_ROWで推測した内容の説明を確認する ため、行データの推測の説明を求めるコマンドを実行 SELECT sys.ML_EXPLAIN_ROW(JSON_OBJECT("column_name", value, "column_name", value, ...)', model_handle, options); • コマンド実行で特徴値の重要度が-1 から 1 までの値として表示される • 0 または 0 に近い値の場合、推論に影響を与えないことを示す • -1 は推論の参考にならない、かつ現実的にあり得ないことを示す • 1 または1に近い値の場合、推論に影響を与えたことを示す • 今回はがく片の値が影響したという説明が出ると予想
  28. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆7. 説明の⽣成(ML_EXPLAIN_*)

    • 実行結果 Notesに「がく片の長さが ヒオウギアヤメの予測に 最も大きな影響を与えた」と表示 ⇒予想通りがく片が影響を 与えたという説明が表示された • この赤枠の数値が 特徴値の重要度を示す • 花びらの幅(petal width)が 0.58 • がく片の長さ(sepal length)が 0.99 「がく片」の長さの 特徴値が1に近いため
  29. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆8. モデルの検証(ML_SCORE)

    • モデルの評価を得点として出力するコマンド CALL sys.ML_SCORE(table_name, target_column_name, model_handle, metric, score, [options]); • balanced_accuracyスコアリングメトリックを利用して得点を出す • balanced_accuracyはデータの偏りがなく、 バランスの取れた正解率の評価を行うメトリック • 参考:balanced_accuracy_score • コマンド出力される評価の値は、0に近いと悪い評価、 1に近いと良い評価
  30. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆8. モデルの検証(ML_SCORE)

    • 実行例(@iris_model01の検証を実施) • 結果は0.666… であり、@iris_model01の評価は高くもなく、 低くもないことがわかる
  31. Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆AutoML実行結果の考察 •

    品種の推測結果とその過程は予想通り • トレーニングで利用したテーブル” iris_train”のデータは120行とデータ量 は多くはないものの、ヒオウギアヤメと判断できる「がく片」のデータが 十分学習されていたものと考えられる • ML_SCOREの評価は微妙 • 各品種で偏りのない数値を格納できれば、評価は上がるものと考えられる • 推論の後に評価を実施したが、推論の前に評価を実施し、トレーニングを し直してモデルの評価を高めれば、より精度の高い推論が行えると考えら れる
  32. Copyright © 2024 HeatWavejp All Rights Reserved. アジェンダ 1. 機械学習とは?

    2. HeatWave AutoMLの機能紹介 3. アヤメの分類をもとにしたAutoMLの実行 4. HeatWave AutoML機能を利用したレコメンデーション紹介
  33. Copyright © 2024 HeatWavejp All Rights Reserved. そもそも・・・レコメンドって? レコメンドには「おすすめ」、「推薦」という意味があります。 例)洋服屋さんに入り、店員さんが声をかけてきた場合

    お客さんの「服装」、「雰囲気」、 「身長」や「お財布の事情」を推測・聞き出して、 店員さんはぴったりの洋服を推薦します。 それが「レコメンド」です。
  34. Copyright © 2024 HeatWavejp All Rights Reserved. では・・・レコメンデーションとは? 「レコメンデーション」 =

    顧客にお勧めの情報を提供する「サービス」 HeatWave AutoMLでは・・・ 「協調フィルタリング」 という手法を用いて、 「レコメンデーション」ができます!
  35. Copyright © 2024 HeatWavejp All Rights Reserved. ざっくり言うと「協調フィルタリング」は・・・ ①ユーザベース型:好みが似ている「人」からオススメする! ②アイテムベース型:関連度が高い「物」をオススメする!

    HeatWave AutoMLでは、「どちらも採用!?」 Bさんには 「納豆」をオススメしよう! ごはんのお供に 「味噌汁」はいかがでしょうか! (過去データ) (現在) 評価高を優先
  36. Copyright © 2024 HeatWavejp All Rights Reserved. 映画レコメンデーションアプリの構築 「映画データセット」をDLして、 HeatWave

    AutoMLで機械学習! ローコード開発プラットフォーム であるOracle APEXを利用 (詳細はこちら)
  37. Copyright © 2024 HeatWavejp All Rights Reserved. 映画データセットの内容 user_id:ユーザID item_id:映画ID

    rating:映画の評価値 (「1」 ~ 「5」の5段階) 「data0」テーブルに 10万件分の映画評価データを格納 評価値が高い = オススメ
  38. Copyright © 2024 HeatWavejp All Rights Reserved. 1ユーザ分の「推論」=オススメ作成 ③ 1ユーザに対して、まだ見ていない映画の「推論」を作成(ML_PREDICT_TABLE)

    ※「movies.user_20_xr」テーブルの作成方法はこちらを参照 「user_id=20」 が まだ見ていない映画のリスト情報 「推論」の結果=オススメ3選
  39. Copyright © 2024 HeatWavejp All Rights Reserved. 所感 ◆映画レコメンデーションアプリの考察 •

    DBに登録されているデータを使って、簡単に機械学習が行える • 機械学習にかかる時間が思っていたよりも短い • Oracle APEXを利用して、全くコーディングせず画面が作成できた • UPDATE文を利用して画像ファイルパスを登録したが、 数が多いと間違える可能性もあるので、この点は今後に期待