$30 off During Our Annual Pro Sale. View Details »

【1/3】GMOペパボ機械学習研修2022 資料

watasan
August 19, 2022

【1/3】GMOペパボ機械学習研修2022 資料

GMOペパボの新卒エンジニア向けに実施した機械学習研修全3日間のうち1日目の資料です。

機械学習(主に教師あり学習)の導入として、初学者向けの解説をしています。

2日目の資料(「再帰化」と機械学習について)
https://speakerdeck.com/ae14watanabe/3-gmopepaboji-jie-xue-xi-yan-xiu-2022-zi-liao

3日目の資料(機械学習とサービスの連携事例紹介)
https://speakerdeck.com/ae14watanabe/gmopepaboji-jie-xue-xi-yan-xiu-2022-zi-liao-3ri-mu-quan-3ri-jian

3日間の資料のpdf版は以下にも置いています。
https://github.com/pepabo/training/tree/master/data-and-machine-learning/2022/machine_learning

watasan

August 19, 2022
Tweet

More Decks by watasan

Other Decks in Programming

Transcript

  1. 機械学習研修 Day1 (研修全体ガイダンス・機械学習イントロ・ハンズオン) 渡辺 龍二 / ペパボ研究所 ペパボエンジニア研修2022 2022.08.02 1

  2. 2 1. 研修ガイダンス (5 min) 2. 機械学習イントロダクション(20 min) 3. Let’s

    ハンズオン!(140 min) 4. 学んだことを各自まとめる(10 min) Day1 アジェンダ
  3. 3 ガイダンス|研修の目的 機械学習研修の目的はこれだ! サービス価値の向上のために「再帰化」を実現する上で、 実装手段として機械学習を検討できるようになる。 • 目的の背景:ペパボのエンジニアとして機械学習を学ぶ動機は、          機械学習を「再帰化」の実現アプローチとして利用することにある •

    サービス価値の向上において「再帰化」は重要な考え方[栗林2022] • 「再帰化 ≠ 機械学習の利用」であることを理解して 再帰化を実現するために機械学習の利用するか否かを判断できることを目指す [栗林2022] GMOペパボが考えるこれからのサービス開発(p.10より引用) https://speakerdeck.com/kentaro/toward-the-next-service-development-era?slide=10
  4. 4 ガイダンス|カリキュラム 研修目的を達成するために以下のカリキュラムを設定しています サービス価値の向上のために「再帰化」を実現する上で、 実装手段として機械学習を検討できるようになる。 研修の目的 ゴール 実施内容 Day1 機械学習とは何か、

    自分の言葉で説明できる - 機械学習イントロダクション(座学) - Machine Learning Crash Course (ハンズオン) Day2 再帰化を実現するために、 機械学習をどう活用できるか イメージできる - Machine Learning Crash Course (ハンズオン) - 再帰化と機械学習(座学) Day3 サービスの実課題を 機械学習で解決する 一連の流れの例を挙げられる - Machine Learning Crash Course (ハンズオン) - 機械学習のサービス連携事例紹介(座学)
  5. 5 機械学習イントロダクション

  6. 6 1. 研修ガイダンス 2. 機械学習イントロダクション(20 min) a. ざっくりとした「機械学習とは何か」 b. 予測タスクからイメージする機械学習

    c. 機械学習で取り組むタスクいろいろ 3. Let’s ハンズオン!(140 min) 4. 学んだことを各自まとめる(10 min) Day1 アジェンダ
  7. 7 a. ざっくりとした「機械学習とは何か」 アルゴリズムによって データに内在する規則や構造を抽出することで タスクを解くための技術や方法論のこと 機械学習とは…

  8. アルゴリズムによって データに内在する規則や構造を抽出することで タスクを解くための技術や方法論のこと 8 a. ざっくりとした「機械学習とは何か」 「機械学習」というネーミングのニュアンスは以下のような感じです ② コンピュータで実行可能な手続きを適用し…「機械」(コンピュータ)が実行する ①

    先にデータがあり ③有用な規則や構造を得る…なんか人間の「学習」っぽい ④何らかのタスクを解く ※ 「機械」が「学習」する、というのはあくまでメタファー
  9. 9 何か解きたいタスクがあるとして、機械学習では以下の手順を踏む アルゴリズムでタスクを解くために、 人間によるデータの用意やタスクの落とし込みが必要となる a. ざっくりとした「機械学習とは何か」 1. データを用意する 2. アルゴリズムが解ける形に

    タスクを落とし込む 3. アルゴリズムで タスクを解く ↑人間がやる (自動化はできるがどういうデータを 収集するかは人間が決める) ↑人間がやる ↑コンピュータがやる (アルゴリズムをプログラムとして 実装しコンピュータ上で実行する) ※意外と人間がやることは多いです(機械学習に全部お任せ!ではない)
  10. 10 何か解きたいタスクがあるとして… これから「予測タスク」を題材に、以下の流れの具体例を見ていきます! b. 予測タスクからイメージする機械学習|以降の話の流れ 1. 予測に役立つ データを用意する 2. アルゴリズムが解ける形に

    予測タスクを落とし込む 3. アルゴリズムが 予測タスクを解く ↑人間がやる (自動化はできるがどういうデータを 収集するかは人間が決める) ↑人間がやる ↑コンピュータがやる (アルゴリズムをプログラムとして 実装し、コンピュータ上で実行する) ※意外と人間がやることは多いです(機械学習に全部お任せ!ではない)
  11. 11 b. 予測タスクからイメージする機械学習|想定するタスク • 想定:あなたは新しく開店するアイスクリーム屋の店長です • 願望:毎日の在庫管理を過不足なく行いたい • 着想: •

    「気温が高いとアイスクリームの売れ行きが上がる」という関係がありそう • 気温からアイスへの支出額の予想ができたら、在庫管理に有用なのでは? その日の気温からアイスクリームへの支出額を予測したい、というタスクを想定する
  12. 12 • 気温をx, 支出額をyとし y=f(x)という関係があるとする 気温と支出額の間に関数の関係があると仮定し、関数を得て支出額を予測する • このfを獲得できれば、任意のxに対してyを予測できる • よって、予測タスク≒関数獲得タスクと言える

    ※この場合は1次関数f(x)=ax+b  として表現している b. 予測タスクからイメージする機械学習|想定するタスク
  13. 13 機械学習では、データにうまく当てはまるような関数を獲得することを考える あらゆる関数の中で データにうまく当てはまる関数を アルゴリズムによって獲得する! 機械学習の定義の「データに内在する規則を抽出」に相当 過去に観測された 気温-支出額のデータがある 図の参照元: [岡崎2022]

    機械学習帳 - 1.単回帰 https://chokkan.github.io/mlnote/regression/01sra.html b. 予測タスクからイメージする機械学習|想定するタスク
  14. 14 「データに当てはまる関数」を得るために、まずはデータの用意から行う b. 予測タスクからイメージする機械学習 1. 予測に役立つ データを用意する 2. アルゴリズムが解ける形に 予測タスクを落とし込む

    3. アルゴリズムが 予測タスクを解く
  15. 15 b. 予測タスクからイメージする機械学習|機械学習による予測の手順 データを用意する • 今回の具体例におけるデータ:             と表記 • 一般に、どんなデータを使うかは人間が決定し、計算機で収集・蓄積する とする とする

    i番目の気温・支出額を と表記 図の参照元: [岡崎2022] 機械学習帳 - 1.単回帰 https://chokkan.github.io/mlnote/regression/01sra.html
  16. 16 次は、アルゴリズムが解ける形に予測タスクを落とし込んでいく b. 予測タスクからイメージする機械学習|次のステップ 1. 予測に役立つ データを用意する 2. アルゴリズムが解ける形に 予測タスクを落とし込む

    3. アルゴリズムが 予測タスクを解く
  17. 17 b. 予測タスクからイメージする機械学習|アルゴリズムで解けるように予測タスクを落とし込む① 関数をより具体的に数式で表現する(モデル化) • このモデルにおいてタスク「予測=関数獲得」は「パラメータw,bを求める」になる ◦ 推定対象を具体的に定式化することで、アルゴリズムで解きやすくなる 関数は傾きw, 切片bの

    一次関数であると仮定し それぞれフリーパラメータとする 横軸x • 気温xと消費額yの関係(モデル)を以下のように定義する(この手順をモデル化と呼ぶ) 縦 軸 y w, bを変化させると 関数が変化する 図の参照元: [岡崎2022] 機械学習帳 - 1.単回帰 https://chokkan.github.io/mlnote/regression/01sra.html
  18. 18 b. 予測タスクからイメージする機械学習|アルゴリズムで解けるように予測タスクを落とし込む② データに対するパラメータの評価指標(損失関数)を定義する • やりたいこと:アルゴリズムが良いパラメータを見つけるために パラメータによって定まる関数がデータをどれだけ当てはまっているかを定量的に評価したい • やり方:データと関数の予測値のズレ               (残差)を元に以下の関数を定義する

    ズレ(残差)の図示 2乗を取って 正の値にして 総和を取る w, bの変化に伴い ズレも変動するため w, bの関数となる このような関数を 損失関数 (loss function)と呼ぶ
  19. 19 準備ができたので、アルゴリズムにタスクを解いてもらう b. 予測タスクからイメージする機械学習|次のステップ 1. 予測に役立つ データを用意する 2. アルゴリズムが解ける形に 予測タスクを落とし込む

    3. アルゴリズムが 予測タスクを解く
  20. 20 b. 予測タスクからイメージする機械学習|アルゴリズムで予測タスクを解く 評価指標(損失関数)を最適化するパラメータをアルゴリズムによって求める • 定義した損失関数F(w,b|D)が最小となるようなパラメータを求める ◦ いわゆる「数理最適化問題(厳密には連続最適化問題)」であり、アルゴリズムで解ける • どんなアルゴリズムを用いるかは人間が決める

    ◦ 関数の性質や与えられる制約によってある程度は絞られる ◦ 機械学習では勾配法が用いられることが多い ただし 詳しくはハンズオンで学びます 最終的な推定値を ^付きで表現
  21. 21 b. 予測タスクからイメージする機械学習|予測の実行手順のバリエーション 各手順において複数の選択肢があるため、良い予測のためには試行錯誤が必要 手順 データに対するパラメータのあああ 評価指標 (損失関数) を定義する データを用意する

    モデル化 アルゴリズムで最適化する 検討事項の例 考えられる選択肢の例 • 気温に加えて湿度も考慮するああああああああ  (入力xをベクトルとする)など • 2次以上の多項式 • 複数の周波数を持つ正弦波と余弦波の線形和 • ニューラルネットワーク            など • 残差の二乗ではなく絶対値を使う • 二乗誤差の総和+正則化項とする など • 様々な勾配法のアルゴリズムああああああああ e.g. 共役勾配法, Adam, Momentum など どの最適化アルゴリズムを用いるか? どのような損失関数にするか? どのようなモデルにするか? 予測に効きそうな他の入力xは?
  22. 22 c. 機械学習で取り組むタスクいろいろ その他のタスク • 強化学習 • 協調フィルタリング、異常検出などなどなど… 機械学習で解くタスクはさまざまある(関数獲得ばかりではない) 出力yの取る値

    連続値 離散値 データ中に 教師yが あるか? ある 回帰 (Regression) 分類 (Classification) ない 次元削減 (Dimensionality Reduction) クラスタリング (Clustering) どちらも予測=関数獲得タスク まとめて「教師あり学習」と呼ぶ (前述のアイスクリームの例は回帰)
  23. 23 1. 研修ガイダンス 2. 機械学習イントロダクション(20 min) a. ざっくりとした「機械学習とは何か」 b. 予測タスクからイメージする機械学習

    c. 機械学習で取り組むタスクいろいろ 3. Let’s ハンズオン!(140 min) 4. 学んだことを各自まとめる(10 min) Day1 アジェンダ
  24. 24 • Machine Learning Crash Course • Software Engineerが 機械学習の理論・実装を

    学ぶためのハンズオン • 今日進めて欲しい単元 • ML concepts - Introduction to ML (3 min) • Framing (15 min) • Descending into ML (20 min) • Reducing loss (60 min) • First steps with tf (65 min) • 進められるところまで! 手を動かしながら機械学習を学んでいきましょう! Let’s ハンズオン
  25. 25 • ハンズオン資料は英語です • 動画は飛ばしてください! ※”Introduction to ML” は除く •

    休憩を適宜取ってください • 早く終わった場合はどんどん先に進んで大丈夫です! • Day1ゴール「機械学習とは何か、自分の言葉で説明できる」が達成できるようにがんばりましょう! 進める上での注意点 Let’s ハンズオン
  26. 26 1. 研修ガイダンス 2. 機械学習イントロダクション(20 min) a. ざっくりとした「機械学習とは何か」 b. 予測タスクからイメージする機械学習

    c. 機械学習で取り組むタスクいろいろ 3. Let’s ハンズオン!(140 min) 4. 学んだことを各自まとめる(10 min) Day1 アジェンダ
  27. 27 • 以下のことをまとめてみてください〜! • 学んだこと • 感じたこと • 考えたこと •

    「機械学習を自分の言葉で説明」にトライしてみてください! 学んだことをまとめる時間 クロージング