Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

機械学習イントロダクション (GMOペパボ機械学習研修2023座学) / Introducti...

機械学習イントロダクション (GMOペパボ機械学習研修2023座学) / Introduction of machine learning in training 2023

GMOペパボの新卒エンジニア向け機械学習研修2023における座学の資料です。
研修内では機械学習の基本的な知識をハンズオン(Google Machine Learning Crash Course)を通して学びました。その導入として「機械学習ってこういうもの」というイメージを持ってもらうための座学のスライドがこちらです。

参考: Google Machine Learning Crash Course https://developers.google.com/machine-learning/crash-course

研修では、この他にも大規模言語モデルの初学者向けの座学など、さまざまなコンテンツを実施しました。詳細は以下のブログをご覧ください。

https://rand.pepabo.com/article/2023/06/15/ml-training-report-2023/

watasan

June 15, 2023
Tweet

More Decks by watasan

Other Decks in Technology

Transcript

  1. 2 • 研修の目的:「サービスへの機械学習導入に向けて、機械学習の基本と2023年現在の 汎用的なモデル(大規模言語モデル)の知識を身につけること」 • 目的にある「機械学習の基本の知識を身につける」ために、機械学習のハンズオンをこれから行う。 • ハンズオン: Machine Learning

    Crash Course https://developers.google.com/machine-learning/crash-course • ハンズオンの前に、「機械学習ってどんなものか」というざっくりとしたイメージを持ってもらうための 解説をここから行っていきます! この座学は「機械学習の基本的な知識」をこれから学ぶためのイントロダクション この座学の位置付け
  2. 6 「機械学習」という言葉が指すものは広く、これ!という定義は意外と難しい。 1. ざっくりとした「機械学習とは何か」 [杉山2013] イラストで学ぶ機械学習 [須山2017] ベイズ推論による機械学習入門 [神嶌2019] 変わりゆく機械学習と変わらない機械学習

    https://www.jstage.jst.go.jp/article/butsuri/74/1/74_5/_pdf/-char/ja [持橋・大羽2019] ガウス過程と機械学習入門 機械学習とは、コンピュータにヒトのような学習能力を獲得させるための技術の総称 定義1[杉山2013] 機械学習とは、データに潜む規則や構造を抽出することにより、未知の現象に対する予想や それに基づく判断を行うための計算技術の総称 コンピュータの動作をすべて人手で作り上げたプログラムによって決定する代わりに、 問題に合わせて選んだ手法と、データを例示として与えることにより、 利用者が望む動作を引きだそうとする試みである 「機械学習」の「機械」とは、入力xに対して決まった出力yを返してくれる人工的なシステムのことをさします。 つまり関数関係y=f(x)のことです。(中略) 「学習」とは、経験データにもとづいてf(x)を適切に構築したり変更することをさします。 定義2[須山2017] 定義3[神嶌2019] 定義4[持橋・大羽2019] • いろんな研究者がさまざまな定義をしている(それだけ、「機械学習」という言葉が指すものが広い)
  3. 7 この研修では「関数」にフォーカスして定義してみる 1. ざっくりとした「機械学習とは何か」 [杉山2013] イラストで学ぶ機械学習 [須山2017] ベイズ推論による機械学習入門 [神嶌2019] 変わりゆく機械学習と変わらない機械学習

    https://www.jstage.jst.go.jp/article/butsuri/74/1/74_5/_pdf/-char/ja [持橋・大羽2019] ガウス過程と機械学習入門 機械学習とは、コンピュータにヒトのような学習能力を獲得させるための技術の総称 定義1[杉山2013] 機械学習とは、データに潜む規則や構造を抽出することにより、未知の現象に対する予想や それに基づく判断を行うための計算技術の総称 コンピュータの動作をすべて人手で作り上げたプログラムによって決定する代わりに、 問題に合わせて選んだ手法と、データを例示として与えることにより、 利用者が望む動作を引きだそうとする試みである 「機械学習」の「機械」とは、入力xに対して決まった出力yを返してくれる人工的なシステムのことをさします。 つまり関数関係y=f(x)のことです。(中略) 「学習」とは、経験データにもとづいてf(x)を適切に構築したり変更することをさします。 定義2[須山2017] 定義3[神嶌2019] 定義4[持橋・大羽2019] • いろんな研究者がさまざまな定義をしている(それだけ、「機械学習」という言葉が指すものが広い)
  4. 8 • 入力を x、出力を yとすると、xに対してyを対応づける fを関数と呼ぶことにする。 • ここから関数を、数式もしくはコード(あとたまに図)で表現する ここでの「関数」とは(機械学習を定義する準備) 1.

    ざっくりとした「機械学習とは何か」 関数 f 入力 x 出力 y def function(x: float): y = 3*x+2 return y コードによる 関数の表現 数式による 関数の表現 関数が表す入出力の対応関係を具体的に定めることを、 「関数を設計する」とここでは呼ぶ。 図による 関数の表現
  5. 9 本研修においては機械学習≒「データから自動的に関数を設計する技術」と考える 1. ざっくりとした「機械学習とは何か」 関数 f 入力 x 出力 y

    def function(x:float): return y xを用いて yを定める処理の記述 通常のプログラミングによる 関数の設計 関数の入出力関係を 人間(プログラマ)が 全て書き下す (人間が書いたようにしか 動かない) 機械学習による関数の設計 データからアルゴリズムに よって自動的に決定する[丸山2021] (人間が書き下さなくても 自動的に挙動が決まる) [丸山2021] Software 2.0とその社会的課題 https://tech.preferred.jp/ja/blog/software2_0/ ※機械学習に含まれるタスクの一部には関数を獲得しないものもあるので、あくまで今回の研修においての定義です。
  6. 10 「データから自動的に関数を設計する」とはどういうことか、 アイスクリームの売れ行きの予測の事例から見ていきましょう。 2. 仮想的な事例を通してイメージする機械学習 🍨 🍦 I❤ice cream 在庫管理を支援するシステ

    ムを作ろう! アイスクリーム屋を 開店するぞ! 在庫管理を楽にしたい! 新しく開くアイスクリーム屋の店長 店長を助けたい あなた(エンジニア) その日にどれぐらい売れ るかが予測できたら在 庫管理に役立ちそう 暑かったら売れそうだし寒 かったら売れなさそうだか ら気温から予測できそう! 気温 xを入れたら 売れ行き yを予測する 関数 fを設計しなきゃ〜!
  7. 13 ステップ1: データを用意する 2. 仮想的な事例を通してイメージする機械学習 • 今回の具体例におけるデータ:              と表記 ◦ 新しく開店するので、過去の売り上げデータはない。 ◦

    代わりに、気象庁と総務省統計局が公開しているその日の最高気温と各家庭のアイスクリームへの 支出額をそれぞれx,yとして利用し、その日の気温から売れ行きの傾向を把握できるようにする とする とする i番目の気温・支出額を と表記 参照元:機械学習帳 - 1.単回帰
  8. 14 2. 仮想的な事例を通してイメージする機械学習 ステップ2: 関数をフリーパラメータ入りの数式で表現する • このように定義すると、「関数を求める」=「パラメータw,bを求める」になる ◦ 推定対象を具体的に定式化することで、機械的に解きやすくする 関数は傾きw,

    切片bの 一次関数であると仮定し それぞれフリーパラメータとする 気温 x • 気温xと消費額yの間の関数f(モデル)を以下のように定義する(この手順をモデル化と呼ぶ) 支 出 y w, bを変化させると 関数が変化する
  9. 16 2. 仮想的な事例を通してイメージする機械学習 ステップ4: 評価指標(損失関数)を最適化するパラメータをアルゴリズムで求める • 定義した損失関数F(w,b|D)が最小となるようなパラメータを求める ◦ いわゆる「数理最適化問題(厳密には連続最適化問題)」であり、アルゴリズムで解ける •

    どんなアルゴリズムを用いるかは人手で決める ◦ 関数の性質や与えられる制約によってある程度は絞られる ◦ 機械学習では勾配法が用いられることが多い ただし 詳しくはハンズオンで学びます 最終的な推定値を ^付きで表現
  10. 17 各手順において複数の選択肢があり、良い予測のためには試行錯誤が必要となる。 2. 仮想的な事例を通してイメージする機械学習 手順 3. データに対するパラメータの 評価指標 (損失関数) を定義する

    1. データを用意する 2. モデル化 4. アルゴリズムで最適化する 検討事項の例 考えられる選択肢の例 • 気 温 に 加 えて 湿 度 も 考 慮 する (入力xをベクトルとする)  など • 2次以上の多項式 • 複数の周波数の正弦波と余弦波の線形和 • ニューラルネットワーク   など • 残差の二乗ではなく絶対値を使う • 二乗誤差の総和+正則化項とする など • 様 々な 勾 配 法 のアルゴリズム e.g. 共役勾配法, Adam, Momentum など どの最適化アルゴリズムを用いるか? どのような損失関数にするか? どのようなモデルにするか? 予測に効きそうな他の入力xは?
  11. 出力yの取る値 連続値(numericalな値) 離散値 入力xに対する 出力yが データとして 与えられるか? Yes 回帰 (Regression)

    分類 (Classification) No 次元削減 (Dimensionality Reduction) クラスタリング (Clustering) 19 そのほかにも、強化学習、協調フィルタリング、推薦、異常検出、データ生成(生成モデリング)など… 機械学習で解くタスクは様々ある(予測する関数の獲得だけが目的ではない)。 3. 機械学習のタスク色々 どちらも関数獲得タスク まとめて「教師あり学習」と呼ぶ (売上予測の例は回帰) 先ほどのアイスクリームの例はこれ
  12. 20 • Machine Learning Crash Course • 今日のうちに進めて欲しい単元 • Introduction

    to ML (3 min) • Framing (15 min) • Descending into ML (20 min) • Reducing loss (60 min) • First steps with tf (65 min) • Generalization (15 min) • Training and test sets (25 min) • Validation set (35 min) ここからは手を動かしながら機械学習を学んでいきましょう! Let’s ハンズオン
  13. 21 • ハンズオン資料は英語です • 自動翻訳はあてにならないことがあるので単語集を活用してください • はぁ?どゆこと?となったらすぐに分報で or オフラインで聞いてください! •

    取り組みの記録として各自の分報にぜひアウトプットしてください! • 動画は飛ばしてください! ※”Introduction to ML” は除く • 休憩を適宜取ってください • 早く終わった場合はどんどん先に進んで大丈夫です! • 目標「機械学習とは何か、自分の言葉で説明できる」が達成できるようにがんばりましょう! 進める上での注意点 Let’s ハンズオン