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

慶應義塾大学 機械学習基礎03 基礎的概念

慶應義塾大学 機械学習基礎03 基礎的概念

More Decks by Semantic Machine Intelligence Lab., Keio Univ.

Other Decks in Technology

Transcript

  1. 本講義の到達目標と今回の授業の狙い - - 2 本講義の到達目標 ▪ DNNの基礎理論と実装の関係を理解する ▪ 種々のDNNをコーディングできる 今回の授業の狙い

    ▪ 関連分野の歴史 ▪ 具体例を用いた基礎的概念の習得 ▪ 出席確認: K-LMS上の機械学習基礎のMainページへアクセス
  2. 分野の関係(再) - - 4 ▪ 線形代数 ▪ 微分積分学 ▪ 確率論

    ▪ その他の理論 深層ニューラルネット (Deep Neural Network; DNN) 人工知能(AI)分野 機械学習 ニューラルネット それ以外のアプローチ(ルールベース等)
  3. 簡単な歴史② 1800年頃 ガウスやルジャンドルらが最小二乗法を発明 「なぜ4乗や6乗でなく2乗なのか」をガウス分布で説明 1958年 パーセプトロン発表 [Rosenblatt 1958] 第1次AIブーム 1960年代後半

    冬の時代(パーセプトロンで解けない問題が示された) 1986年 誤差逆伝播法 [Rumelhart+ 1986] ※実際には60年代から存在 1989年頃 普遍近似定理 [Cybenko 1989] 十分なノード数があれば3層のニューラルネットで任意の連続関数 を近似可能 1990年代後半 冬の時代(応用へのつながりが弱かった)
  4. ニューラルネットの低迷 2003年に発表された論文 [Simard+ 2003] のイントロ 「1990年代前半まではニューラルネットは広く研究されていたが、最近 5年間、見向きされなくなった。 2000年には、Neural Information Processing

    System(NIPS)のオーガナイザが、論文タイトルに 「ニューラルネットワーク」という語を含む場合、採択率と負の相関が あることを指摘した。」
  5. 簡単な歴史③ 2006年 Hintonらが深層学習を提唱 [Hinton+ 2006] 学術会議等で徐々に浸透するものの、広まりは緩やか 「3層ニューラルネットで十分では?」と思われていた 2012年 深層ニューラルネットが画像認識コンペILSVRCにおいて優勝し注 目される(ImageNetデータセット)

    第3次AIブーム 一般応用が爆発的に増加 2022年 Text-to-imageや大規模言語モデル等の生成AIが一般に普及 2024年 Hopfield, Hintonがノーベル物理学賞受賞 Hassabisらがノーベル化学賞受賞(蛋白質構造解析へのAI応用)
  6. 甘利俊一先生と福島邦彦先生 - - 10 甘利俊一先生 ▪ 多層パーセプトロンの 確率的勾配降下法 [Amari 1967]

    ▪ Rumelhartら [Rumelhart+ 1986] が 誤差逆伝播法(backpropagation) として再発見 福島邦彦先生 ▪ ネオコグニトロン [福島 1979] ▪ LeCunら [LeCun+ 1989] による 畳み込みニューラルネットワーク (convolutional neural network, CNN)の発想の元 https://dbnst.nii.ac.jp/upload/images/research/498/pro /e71b520310ea4230ee0028e3058e9a5d/fig0825std.png
  7. 深層学習研究におけるキーパーソン - - 11 ノーベル物理学賞 (2024) Geoffrey Hinton @ Toronto

    Univ. 誤差逆伝播法,ボルツマンマシン, 指導学生であるAlex Krizhevsky, Ilya Sutskever (OpenAI創業者)と AlexNetを提案 Yann LeCun @ New York Univ. & Meta CNN,誤差逆伝播法の改善, NN研究の様々な基礎概念の提案 等 Yoshua Bengio @ Univ. of Montreal 系列データの確率モデリング, Neural Machine Translation, 敵対的生成ネットワーク 等
  8. 機械学習のサブ分野 - - 16 教師あり学習(supervised learning) ▪ 入力ベクトル と目標ベクトル のペア

    を用いて学習 教師なし学習(unsupervised learning) ▪ 入力ベクトル を用いて学習 強化学習(reinforcement learning) ▪ 状態 において、エージェントの行動 によって得られる報酬 を用いて学習 機械学習 教師あり 学習 教師なし 学習 強化学習 ※この分け方は分野全体を カバーしたものではなく、 複合した問題設定もある
  9. 教師あり学習の代表的タスク: 回帰・分類 - - 17 回帰(regression) ▪ が量的変数の場合 例:気温から来場者数を予測 ▪

    線形回帰(右図)/ ニューラルネットワーク 等 分類(classification) ▪ が質的変数の場合 例:与えられた画像が猫・犬・鳥のどれかを判断する ▪ ロジスティック回帰(右図)/ ソフトマックス回帰 / ニューラルネットワーク 等 ▪ 分類にも関わらず「〜回帰」と呼ばれることに注意! =0 =1 数や量の大小を表す 種類や有無を表す
  10. 教師なし学習の代表的タスク: クラスタリング・次元削減 - - 18 クラスタリング(clustering) ▪ 入力 を 個の集合に分ける

    ▪ k平均法(k-means clustering)/ 階層クラスタリング(hierarchical clustering)等 次元削減(dimensionality reduction) ▪ 高次元の入力 を低次元のデータ に次元削減 ▪ 主成分分析(principal component analysis; PCA)/ t-SNE / 自己符号化器(autoencoder)等 =2 ラベルなしデータ ニューラルネットワーク の学習後の内部表現解析 等でよく用いられる https://www.deeplearningitalia.com/wp- content/uploads/2017/10/SNE-MNIST-1.png : 28×28次元 : 2次元
  11. 強化学習 - - 19 ▪ 状態 において、エージェントの行動 によって得られる報酬 を用いて学習 ▪

    応用例:ボードゲーム、ロボットの 単純な行動 ▪ Q学習 / REINFORCE / Deep Q-network等 ▪ 動的計画法、最適制御理論、能動学習との 関係が深い -20 -1 -1 -1 +10 状態 :左上マス 行動 :右へ進む 報酬 :-20
  12. 例題:教室のCO2濃度を予測したい 線形回帰 - - 21 風速とCO2濃度の記録 ※数値は適当です ▪ 「風が強ければ濃度が下がる」 と考えたので線形モデルを使う

    (↑強引) パラメータ ▪ :予測値(prediction) ▪ :真値(ground truth) ID 風速 濃度 1 2.0 685 2 1.2 790 3 1.8 733 … … … 1000 1.6 743 1001 1.8 740 1002 2.6 677 データ ←目標変数 と同義
  13. 例題:教室のCO2濃度を予測したい 最小二乗法 - - 22 CO2濃度を予測したい ↓ が の良い近似になるように、 パラメータを設定したい

    ▪ 「風が強ければ濃度が下がる」 と考えたので線形モデルを使う (↑強引) パラメータ ▪ :予測値(prediction) ▪ :真値(ground truth) 絶対値でも良いが最小二乗法(least squares method)を習った ←目標変数 と同義
  14. 例題:教室のCO2濃度を予測したい 訓練集合とテスト集合 - - 23 CO2濃度を予測したい ↓ が の良い近似になるように、 パラメータを設定したい

    新規サンプルについて予測したい ID 風速 濃度 1 2.0 685 2 1.2 790 3 1.8 733 … … … 1000 1.6 743 1001 1.8 740 1002 2.6 677 パラメータ推定 に使うサンプル 集合 新規サンプルと みなす(=濃度は 知らなかったもの とする) 絶対値でも良いが最小二乗法(least squares method)を習った
  15. 例題:教室のCO2濃度を予測したい 学習とは - - 24 ▪ 訓練集合(training set) ▪ から写像

    を求める =訓練(training)または学習 (learning) ▪ テスト集合(test set) を用いて真値と予測値の誤差を 評価 新規サンプルについて予測したい ID 風速 濃度 1 2.0 685 2 1.2 790 3 1.8 733 … … … 1000 1.6 743 1001 1.8 740 1002 2.6 677 パラメータ推定 に使うサンプル 集合 新規サンプルと みなす(=濃度は 知らなかったもの とする) 1個分を訓練サンプルと呼ぶ
  16. 例題:教室のCO2濃度を予測したい 損失関数 - - 25 ▪ 訓練集合(training set) ▪ から写像

    を求める =訓練(training)または学習 (learning) ▪ テスト集合(test set) を用いて真値と予測値の誤差を 評価 損失関数(loss function) or 誤差関数(error function) or コスト関数(cost function) or 目的関数(objective function) と呼ばれる 1個分を訓練サンプルと呼ぶ
  17. 例題:教室のCO2濃度を予測したい パラメータの最適化 - - 28 ▪ 正規方程式(normal equation) →最適値 が求まるので、新しい

    から を予測可能 最適値には (スター)をつける 新規の風速情報から CO2濃度が予測可能になった (実際はもっと複雑)
  18. 例題:教室のCO2濃度を予測したい テスト集合を用いた性能評価 - - 29 ▪ 得られた の良さを知る には、テストセット誤差を評価 ▪

    平均二乗平方根誤差(root- mean-square error; RMSE) 他の尺度:平均二乗誤差等 複数の機械学習手法を 性能比較できる ID 風速 濃度 1 2.0 685 2 1.2 790 3 1.8 733 … … … 1000 1.6 743 1001 1.8 740 1002 2.6 677 パラメータ推定 に使うサンプル 集合 学習に使わなかった ことで、性能評価に 使えるようになった
  19. 単純なモデルの学習からDNNの学習へ - - 30 ▪ ここまで紹介した話 ▪ 単純なモデル ▪ データが少ない

    →解析的に損失関数を最小化可能 例 ※以下の多項式曲線フィッティング問題では、損失関数を 最小化する係数 は解析的に求まる
  20. 単純なモデルの学習からDNNの学習へ - - 31 ▪ ここまで紹介した話 ▪ 単純なモデル ▪ データが少ない

    →解析的に損失関数を最小化可能 ▪ 深層学習の実応用 ▪ 複雑なモデル ▪ データが多い →解析的な損失関数最小化が困難 →反復的に損失関数を最小化 今回簡単に紹介し、今後の講義で 深堀りする 例 ※以下の多項式曲線フィッティング問題では、損失関数を 最小化する係数 は解析的に求まる
  21. 勾配降下法の数式表現: 線形ユニットの場合 - - 34 1. 初期値を設定 2. 現在の を用いて勾配の値を計算し、

    を更新 3. 2を繰り返す 学習率:一度の更新幅を小さくする(例:0.02) 例: 理工学基礎実験「ニューラルネットワーク」で 実際に手計算してもらいます
  22. バッチ学習とミニバッチ学習 - - 35 ▪ バッチ学習(batch learning) ▪ 1回の更新に訓練集合全部を 使用

    ▪ 訓練集合 ▪ ミニバッチ学習 (mini-batch learning) ▪ 1回の更新に訓練集合の一部 (ミニバッチ )を使用 2.0 685 1.2 790 1.8 733 … … … … … … … … 1.6 743 → 1回目の更新 → 2回目の更新 → K回目の更新 …
  23. ミニバッチ確率的勾配降下法(ミニバッチSGD) minibatch stochastic gradient descent - - 36 ①パラメータに初期値 を設定:ランダムや固定値等

    ※口語では「SGD」が「ミニバッチSGD」を 指すことが多いので注意。本来は、ミニバッ チが1サンプルのみのときを「SGD」と呼ぶ。
  24. ミニバッチ確率的勾配降下法(ミニバッチSGD) minibatch stochastic gradient descent - - 37 ①パラメータに初期値 を設定:ランダムや固定値等

    ②ランダムに訓練集合の一部を選 び、平均の損失の勾配を計算 ※口語では「SGD」が「ミニバッチSGD」を 指すことが多いので注意。本来は、ミニバッ チが1サンプルのみのときを「SGD」と呼ぶ。 右肩のカッコつき の数字は更新回数 を表す
  25. ③パラメータを更新 (二乗誤差の場合) ミニバッチ確率的勾配降下法(ミニバッチSGD) minibatch stochastic gradient descent - - 38

    ②ランダムに訓練集合の一部を選 び、平均の損失の勾配を計算 学習率(learning rate) 右肩のカッコつき の数字は更新回数 を表す
  26. 本講義全体の参考図書 - - 40 ▪ ★機械学習スタートアップシリーズ これならわかる深層学習入門 瀧雅人著 講談 社(本講義では、異なる表記を用いることがあるので注意)

    ▪ ★Dive into Deep Learning (https://d2l.ai/) ▪ 深層学習 改訂第2版 (機械学習プロフェッショナルシリーズ) 岡谷貴之著 講談社 ▪ ディープラーニングを支える技術 岡野原大輔著 技術評論社 ▪ 画像認識 (機械学習プロフェッショナルシリーズ) 原田達也著 講談社 ▪ 深層学習による自然言語処理 (機械学習プロフェッショナルシリーズ) 坪井祐太、 海野裕也、鈴木潤 著、講談社 ▪ 東京大学工学教程 情報工学 機械学習 中川 裕志著、東京大学工学教程編纂委員会 編 丸善出版 ▪ パターン認識と機械学習 上・下 C.M. ビショップ著 丸善出版
  27. 参考文献 - - 41 1. 金谷 健一, これなら分かる最適化数学―基礎原理から計算手法まで, 共立出版, 2005.

    2. Abdulle, A., & Wanner, G. (2002). 200 years of least squares method. Elemente der Mathematik, 57(2), 45-60. 3. Rosenblatt, Frank. "The perceptron: a probabilistic model for information storage and organization in the brain." Psychological review 65.6 (1958): 386. 4. Rumelhart, David E., Geoffrey E. Hinton, and Ronald J. Williams. "Learning representations by back-propagating errors." nature 323.6088 (1986): 533-536. 5. Cybenko, George. "Approximation by superpositions of a sigmoidal function." Mathematics of control, signals and systems 2.4 (1989): 303-314. 6. Hinton, Geoffrey E., Simon Osindero, and Yee-Whye Teh. "A fast learning algorithm for deep belief nets." Neural computation 18.7 (2006): 1527-1554.
  28. 【復習】テンソル: スカラー、ベクトル、行列等を一般化した概念 - - 43 ▪ 0階のテンソル(スカラー)、1階のテンソル(ベクトル)、2階のテ ンソル(行列)、3階のテンソル(3次元配列)、… ▪ プログラミング言語における多次元配列と同じ概念

    ▪ X[i, j, k]: (i, j, k)番目の要素にアクセス ▪ 例1:28x28のグレースケール画像 ▪ shape = (28, 28) ▪ 例2:例1を8枚集めて作ったミニバッチ ▪ shape = (8, 28, 28) ※3階のテンソル ▪ X[0, 0, 0]で最初のサンプルの(0, 0)要素にアクセス
  29. 実習 - - 44 実習の目的 ▪ コーディングと基礎理論の関係を学ぶ 実習課題の場所 ▪ K-LMSから辿る

    実習に関する質問 ▪ ChatGPTに説明させる ▪ 教科書で調べる・検索・周囲と相談(私語禁止ではありません) ▪ 上記で解消しなければ挙手
  30. ミニバッチの作成方法の例 - - 46 濃度 (今) 風速 (今) 濃度 (未来)

    5 2.0 4 7 1.2 5 10 1.6 11 … … … 10 1.8 10 9 2.6 10 8 1.8 6 ※これ以外の作成方法でも良い
  31. ミニバッチの作成方法の例 - - 47 濃度 (今) 風速 (今) 濃度 (未来)

    8 1.8 6 10 1.8 10 7 1.2 5 … … … 5 2.0 4 10 1.6 11 9 2.6 10 シャッフル ※これ以外の作成方法でも良い
  32. ミニバッチの作成方法の例 - - 48 濃度 (今) 風速 (今) 濃度 (未来)

    8 1.8 6 10 1.8 10 7 1.2 5 … … … 5 2.0 4 10 1.6 11 9 2.6 10 → 1回目の更新 → 2回目の更新 → K回目の更新 ※これ以外の作成方法でも良い … エポック (epoch) エポック毎に再シャッフル 訓練誤差 1 2 3 エポック …
  33. ミニバッチの作成方法の例 - - 49 濃度 (今) 風速 (今) 濃度 (未来)

    9 2.6 10 5 2.0 4 10 1.8 10 … … … 8 1.8 6 7 1.2 5 10 1.6 11 → 1回目の更新 → 2回目の更新 → K回目の更新 ※これ以外の作成方法でも良い … エポック (epoch) エポック毎に再シャッフル 訓練誤差 1 2 3 エポック …
  34. ミニバッチの作成方法の例 - - 50 濃度 (今) 風速 (今) 濃度 (未来)

    10 1.6 11 5 2.0 4 8 1.8 6 … … … 7 1.2 5 10 1.8 10 9 2.6 10 → 1回目の更新 → 2回目の更新 → K回目の更新 ※これ以外の作成方法でも良い … エポック (epoch) エポック毎に再シャッフル エポック 訓練誤差 1 2 3 …
  35. Typical metrics for regression - - 51 ▪ Mean squared

    error ▪ Root mean squared error ▪ Mean absolute error ▪ Predicted value is with hat /予 測値にはハットをつける  ▪ Target is without hat / 真値には ハットをつけない 