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

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

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

慶應義塾大学 機械学習基礎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 / 真値には ハットをつけない 