Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20170422 数学カフェ Part1

10,555 views

Published on

https://connpass.com/event/54301/

Published in: Technology
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

20170422 数学カフェ Part1

  1. 1. 数学カフェ 「確率・統計・機械学習」 (Part1) 2017年4⽉22⽇数学カフェ Yahoo! Japan コワーキングスペース LODGE 株式会社Preferred Networks ⼤野健太 oono@preferred.jp
  2. 2. ⼤野健太 • twitter: @delta2323_ • 経歴 • 数学専攻(修⼠) → 2012.4 PFI → 2014.10 PFN • 担当 • バイオプロジェクト • Chainerコアチーム • インターン・採⽤チーム 2
  3. 3. • 2014年3⽉設⽴ • 本社:東京 アメリカ⼦会社:カリフォルニア州サンマテオ • 社員数:約70名(8割以上はエンジニア・リサーチャー) • 事業内容:深層学習の産業、特に産業⽤ロボット・交通・バイオ ヘルスケアへの応⽤ 3 夏季インターン(5/7締切) フルタイム募集中!
  4. 4. 4
  5. 5. ニューラルネット愛護協会 5 http://bit.ly/dl-spcn ※エイプリルフールネタです
  6. 6. アジェンダ • 導⼊ • 機械学習の理論 • 深層学習 6
  7. 7. ⼈⼯知能? • ロボット?アンドロイド? • 鉄腕アトム・初⾳ミク・Pepper etc. … • ⽂章を理解する・話し⾔葉を理解する・写真から顔を⾒つける・ ゲームの次の⼿を決める・経営をする・⼈間とチャットする・⾞ を⾃動運転する・複雑な問題を解く etc. … • 機械が⼈間のように認識・判断・⾏動するための技術? • 今⽇はあまり⼈⼯知能の話はしません • ⼈⼯知能を実現するかもしれないと期待されている機械学習・深層学習 技術についてお話しします photo: flickr
  8. 8. なぜ機械学習が必要か? 例:⼈物写真から年齢を判定する • 何を基準に分類する? • ⾝⻑が⾼かったら⼤⼈? ー> そうとも限らない • ⽩髪だったら⾼齢? ー> そうとも限らない • 顔?服装?体格? • 判断に必要な情報をどうやって抽出する? • ⼈物の写っている位置・スケール・姿勢はバラバラ • 顔・髪・肩が写っている場所をどうやって⾒つける? • ⼈間がルールを列挙するのは実質的に不可能 8http://how-old.net
  9. 9. 機械学習によるアプローチ • 年齢情報のついた画像を機械に⼤量に与えて、それぞれの年代に 特徴的な傾向・パターンを機械⾃⾝に発⾒させる • ⼈間は機械にどの部分を注⽬すべきかを明⽰的には与えない 9 photo: flicker
  10. 10. 機械学習を⽤いた画像分類 10 ILSVRC2012 Supervison Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). Imagenet classification with deep convolutional neural networks. In Advances in neural information processing systems (pp. 1097-1105).
  11. 11. 画像認識精度 11 http://www.image-net.org/challenges/LSVRC/
  12. 12. 機械学習・深層学習の応⽤先 画像 ⾳声 動画 ⾃然⾔語 センサー ゲノム 化合物 パケット 分類 回帰 異常検知 ⽣成 モデル クラスタ リング パターン 認識 推薦 強化学習 ⼈物検出 シーン 認識 ゲームAI ⾳声認識 動作認識 ⾔語認識 ⾏動解析 画像⽣成 対話 広告配信 ⾃動運転 医療診断 セキュ リティ ロボット マーケ ティング 翻訳
  13. 13. ドローンの運転制御 13 https://www.youtube.com/watch?v=yFCCanSxOE4
  14. 14. アジェンダ • 導⼊ • 機械学習の理論 • 定式化 • 最適化 • 汎化性能 • 深層学習 14
  15. 15. 参考スライド 15http://www.slideshare.net/irrrrr/2015-46395273 同僚の楠本さんが情報オリンピック春合宿で⾏った講義
  16. 16. Toy example • ⾚丸と⿊丸うまく分類したい • 1点 = 1データ • データの情報:x, y座標、⾊ 16 ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● →y → x ● ● : +1 : -1 直線で完全に分類できる 放物線ならば完全に分類できる
  17. 17. Toy example どう直線を引いても分類できない ↓ 分類間違いが少なくなるように 最適な直線を選ぶ 17 ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 考えないといけない問題 • どういう分類曲線を引いても良いことにするか? – 直線に限定する、2次曲線も含めるetc. • 分類間違いをどうやって測るか?「最適」とは何か? • 許される曲線の中で最適なものをどうやって⾒つけるか?
  18. 18. 機械学習のレシピ • ⼊⼒:訓練データ D = {(x1, y1), (x2, y2), …, (xN, yN)}, xi ∈ X = Rd, yi ∈ Y = R • 出⼒:予測モデル 未知のデータ x から y を予測するアルゴリズム • 設計者の⽤意するもの 仮説集合 Θ、損失関数 L(x, y; θ) 18 今⽇は頻度論的な⽴場での教師あり学習につ いて説明します
  19. 19. 機械学習のレシピ1:仮説集合 Θ 各 θ∈Θ に、x から y を予測する「予測モデル」を対応させる 設計者が決めること • Θ をどういう集合にするか? • 各 θ にどういう予測モデルを対応させるか? • 予測モデルが決定的か確率的か? • 決定的:x から y が⼀意的に決まる、つまり関数 f θ: X → Y • 確率的:決まらない、例えば確率分布 pθ(x, y) や pθ(y | x) 19
  20. 20. 記号について 今⽇の講演では f (x, y; θ) と f θ (x, y) p (x, y; θ) と pθ (x, y) は同じ関数を表しています 20
  21. 21. 仮説集合の例 例1:直線全体(決定的) { l (x1, x2, y) = 1 [y > ax1 + bx2 + c] | (a, b, c) ∈ Θ = R3} 例2:指数型分布族(確率的) { p (y = 1 | x; θ) = exp (C (x) + θ・F(x) – ψ (θ)) | θ ∈ Θ = Rd} C, F : Rd → Rn, ψ: 分配関数 例3:ニューラルネット(確率的)→詳しく { p (y = 1 | x; θ) = sigmoid (µ (x; θ)) | θ ∈ Θ ⊂ Rd } y ∈ {±1} µ は θ をパラメータとする決定的な関数(NNとか) 21 1[…]:…が真なら1、そうでないなら-1 sigmoid(s) = 1/(1 + exp(-s)) :シグモイド関数
  22. 22. ニューラルネットで確率を表現する yが連続値の場合 y = NN (x; θ) + ε ε ~ N(ε | 0, I) 22 NNx ε _ + _ y p(y | x; θ) = N (y - NN(x; θ) | 0, I)
  23. 23. ニューラルネットで確率を表現する yが連続値の場合 µ, σ = NN (x; θ) ε ~ N (ε | 0, 1) y = µ + σ ε 23 NNx µ σ Gauss y ε p (y | x; θ) = N (y | µ, σ)
  24. 24. ニューラルネットで確率を表現する yが2値の場合 z = NN(x; θ) p(y=1 | x; θ) = sigmoid(z) 24 NNx z sig moid p sigmoid(s) = 1/(1 + exp(-s)) :シグモイド関数
  25. 25. ニューラルネットで確率を表現する yがK個のカテゴリ値の場合 z = NN(x; θ) ∈ RK P = softmax(z) p (y=k | x; θ) = Pk for k = 1, …, K 25 NNx z soft max y softmax(z) = (p1, . . . , pK) pi = exp(zi) PK i=1 exp(zi)
  26. 26. 機械学習のレシピ2:損失関数 L(x, y; θ) 予測モデルの「精度」を測る関数 • L の関数形は設計者次第だが、通常 x に対する予測結果が望ましい 結果 y に近いほどL (x, y, θ) が⼩さくなるように定義する 26
  27. 27. 損失関数の例 例1:Toy example L(x, y; (a, b, c)) = 1[y^(x) ≠ y], y^(x) = 1[ax1 + bx2 + c > 0] 例2:2乗誤差 L(x, y; θ) = (f (x; θ) – y)2 例3:負の対数尤度(Negative Log Likelihood, NLL) L(x, y; θ) = - log p(y | x; θ) 27 ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● →x2 → x1
  28. 28. 2乗誤差 =ガウスノイズ + 最尤推定 次のようなモデルを考える • 仮説集合:{ fθ : X → Y | θ ∈ Θ}(決定的な関数) • 損失関数:L(x, y; θ) = (fθ (x) - y)2(⼆乗誤差) これは、次のモデルと同等 • 仮説集合:{gθ | gθ = fθ(x) + ε, θ ∈ Θ, ε = N(0, 1)}(確率的) • 損失関数:L(x, y; θ) = - log p(y | gθ(x))(負の対数尤度) 28
  29. 29. 訓練誤差最⼩化 • 最適化に利⽤できるLの情報は問題設定によって異なる argminθ ∑i L(xi, yi; θ) θ:パラメータ x:⼊⼒ベクトル y:正解ラベル L:損失関数 29 クエリ 使える情報 ブラックボックス最適化 (x, y) L(x, y) ニューラルネット (x, y) L(x, y), ∇θ L(x, y) argminθ f (θ):f (θ)を最⼩にするθ ↑あとで 訓練誤差 E^ (θ)という
  30. 30. この定式化に乗らない例 Generative Adversarial Network (GAN) [Goodfellow+14] ⽣成器 Gと識別器 Dからなる ⽣成器は本物のデータと⾒分けがつかない偽データを⽣成するのが⽬標 識別器は本物のデータと偽データを区別するのが⽬標 2プレーヤーのmin maxゲームとして定式化される 30 Gen xgenz Dis prob x minφ maxθ Ex~D [log Dθ (x)] + Ez~N(0, I) [log (1 – Dθ (Gφ (z)))] Goodfellow, Ian, et al. "Generative adversarial nets." Advances in neural information processing systems. 2014.
  31. 31. GANの⽣成結果 • 正確にはGANの改良版であるWasserstein GAN (WGAN) [Arjovsky+17]の結果 • Wasserstein GANの論⽂では関数空間の位相について議論し ていて、数学の⼈にも⾯⽩いと思う 31Arjovsky, Martin, Soumith Chintala, and Léon Bottou. "Wasserstein gan." arXiv preprint arXiv:1701.07875 (2017).
  32. 32. アジェンダ • 導⼊ • 機械学習の理論 • 定式化 • 最適化 • 汎化性能 • 深層学習 32
  33. 33. ⼀番楽な⽅法:解析解が求まる ∇θ E^(θ) = 0 が(θ に関する⽅程式として)解析的に計算できる ならば、最⼩解を直接計算すれば良い 例:線形モデル + 2乗誤差 + L2 正則化 33 E^(θ) = 1/N ∑i L(xi, yi; θ) → E^(θ) の最⼩解は、θ = (XTX + λ)-1XT Y • x∈ Rd, y∈R, Θ = Rd • L(x, y; θ) = 1/2 (y – θTx)2 + λ/2 ||θ||2 2
  34. 34. 数値最適化 34 argminθ ∑i L(xi, yi; θ) • ⼀般には解析的には解けないので数値最適化アルゴリズムを利 ⽤して、最適解に近い解を探索する • L や Θ の形によって、様々な最適化の⼿法が提案されており、 理論的な保証や⼯学的な⼯夫がある
  35. 35. 勾配降下法 (Gradient Descent, GD) 35 initialize θ until some criterion is satisfied: θ ← θ - η ∇θ E^(θ) output θ η:学習率 E^(θ) = 1/N ∑i L(xi, yi; θ) 関数の傾きが最も急な ⽅向に少しだけ動く θt+1 E^ -∇θE^(θ) θt
  36. 36. 凸関数 f : Rd →Rが凸関数であるとは任意のa, b∈Rd, t∈[0, 1]に対して、 f (ta + (1-t) b) ≦ t f (a) + (1-t) f (b) が成り⽴つこと 36
  37. 37. GDの収束の理論保証(凸関数の場合) 勾配法による最適化で最適解への収束や、そのスピードを評価できる • 仮説空間がユークリッド空間のコンパクト集合 • 損失関数が凸関数でリプシッツ性を持つ 37 厳密に⾔うとparameter averaging した出⼒について証明している
  38. 38. Gradient Descentの問題点 • 計算量が重い • 各訓練データに対して勾配を計算するので、計算量はO(訓練データ) • Saddle pointやlocal minimumにはまる(後半で詳しく) 38
  39. 39. Stochastic Gradient Descent (SGD) 39 until some criterion is satisfied: get data (x, y) randomly θ ← θ – η N ∇θ L(x, y; θ) output θ until some criterion is satisfied: θ ← θ - η Σi∇θ L(xi, yi; θ) output θ GD SGD
  40. 40. SGDの収束保証(凸関数) 40 ここが期待値に 変わっただけ
  41. 41. 凸関数の場合 strongly convexを仮定すると、GDによる最適化で、より早い global minimumへの収束を証明できる 41 ※この定理で証明されているSGDのアルゴリズムでは、学 習率ηは⼀定ではなく、イテレーションごとにηt=O(1/t) と変えている
  42. 42. アジェンダ • 導⼊ • 機械学習の理論 • 定式化 • 最適化 • 汎化性能 • 深層学習 42
  43. 43. 素朴な疑問 こういう分類器を作れば分類精度 100% !! → あまり良くない 複雑な分類曲線を引ける = 仮説集合 Θ が「⼤きい」 = 候補となる予測モデルが多い 43 ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ●
  44. 44. 過学習 (Overfitting) • 機械学習を適⽤したいタスクでは、今⼿元にあるデータだけではな く、未知のデータに対する予測能⼒(汎化能⼒, generalization) を持つようにしたい • 複雑な仮説集合では、真のデータ分布だけではなく、データとは無 関係なノイズもモデリングし、汎化能⼒が得られない 44 https://research.preferred.jp/2010/12/subgradient-optimization-3/
  45. 45. 過学習 45 q データ分布 サンプリング (xi, yi) ~ q i.i.d D ={(xi, yi)i=1,…,n} 推定 (訓練誤差最⼩解) pθ^ 訓練データ 学習モデル データが真のデータ分布 q からi.i.d.で サンプリングされていると仮定する qとpθ^の乖離が著しい と汎化能⼒が得られない
  46. 46. 適切な仮説集合の⼤きさ 46 Under fitting 仮説集合が⼩さすぎると すでにある訓練データを正しく予測できない Over fitting 仮説集合が⼤きすぎると、訓練データを予測できるが、 未知のデータの予測が悪くなる(かもしれない)
  47. 47. 正則化 予測モデルが持つモデルに適当な制約をかけることにより、過 学習を防ぐテクニック 47 E^ (θ) = 1/N ∑i L(xi, yi; θ) + λ ||θ||2 2 例:L2正則化 訓練誤差にパラメータのノルムに関するペナルティを加えて、モ デルのパラメータが⼤きくならないように制約をつける 正則化はとても重要なテクニックで理論的な研究も 沢⼭あるのですが、今⽇はあまりお話できません…
  48. 48. アジェンダ • 導⼊ • 機械学習の理論 • 深層学習 48
  49. 49. 深層学習(ディープラーニング) • 機械学習の⼀種 • 予測器(先ほどの L)として、⼊⼒データに対して、単純かつ 微分可能な変換を何回も適⽤するモデルを利⽤する 49 http://www.wsdm-conference.org/2016/slides/WSDM2016-Jeff-Dean.pdf
  50. 50. 深層学習の基本計算 • 下層の⼊⼒ x を重み付きで⾜しあわせ、活性化関数 h をかけて出 ⼒ 50 x1 x2 x3 +1 a w1 w2 w3 w4 h a = h(x1w1+x2w2+x3w3+w4) = h(wtx) hの例 ReLU: h(x) = max(0, x) θ = (w1, w2, w3, w4)
  51. 51. Multi Layer Perceptron (MLP) この計算を何層にも重ねる 51 x1 x2 x3 x4 y 0.3 -0.2 0.4 重み 結合ユニット アーキテクチャ (ユニット数や層数を指定して、重みは指定しない)
  52. 52. 深いネットワーク 52http://image-net.org/challenges/talks/ilsvrc2015_deep_residual_learning_kaiminghe.pdf
  53. 53. 深層学習モデルのパラメータ数 53 Dean, Jeffrey, et al. "Large scale distributed deep networks." Advances in neural information processing systems. 2012. Adam Coates, et al. ICML'13 Proceedings of the 30th International Conference on International Conference on Machine Learning - Volume 28Pages III-1337-III-1345 Shazeer, Noam, et al. "Outrageously large neural networks: The sparsely-gated mixture-of-experts layer." arXiv preprint arXiv:1701.06538 (2017). [Dean+12] 1.7 billion [Adam+13] 11 billion [Shazeer+17] 137 billion
  54. 54. 学習アルゴリズム(SGD) ニューラルネットは誤差逆伝播により勾配を効率的に計算できる 54 initialize θ until convergence: get data (x, y) θ ← θ - η ∇θ L(x, y; θ) η:学習率 ← この更新式にはバリエーション がある(あとで)
  55. 55. Neural Network as a Computational Graph • 多くのフレームワークでは、NNは計算グラフとして実現される • データノードと計算ノードからなる2部グラフのDAGとして表現す るのが計算グラフの最も簡単な表現⽅法 55 y = x1 * x2 z = y - x3 x1 mul suby x3 z x2 データノード 計算ノード
  56. 56. 順伝播(forward propagation) 56 y = x1 * x2 x1 mul suby x3 z x2 z = y - x3
  57. 57. 連鎖律(Chain Rule) 57 活性の伝播⽅向 エラーの伝播⽅向 x f y x f y → 勾配は活性と逆向きに伝播する Forward Propagation 損失をLとすると、連鎖律より
  58. 58. 誤差逆伝播(Backpropagation) 58 y = x1 * x2 * ga is a derivative of z w.r.t. a i.e. ga =∇a z x1 mul suby x3 z x2 z = y - x3 gx1 = gy * x2 gx2 = gy * x1 gz = 1 gy = gz gx3 = -gz gzgy gx3 gx1 gx2
  59. 59. まとめ • 機械学習では、ルールでは記述できないようなデータの傾向・ 法則を捉えることで、未知データに対する予測を⾏える事を⽬ 指します • 頻度論でのアプローチでの教師あり分類問題は、そのためには 仮説集合と損失関数から訓練誤差を定義し、それを最適化する という⾵に定式化できます • 深層学習では、単純で微分可能な変換を何回も繰り返すモデル を使います。 59
  60. 60. 後半の内容の予告 60
  61. 61. 残念なお知らせ: 深層学習のモデルが作る損失関数は⾮凸 ⼼配事1 「勾配法はsaddle pointにはまってしまうのでは!?」 ⼼配事2 「勾配法ではlocal minimumにしかたどりつけないのでは!?」 • Q. 深層学習のモデルが作る損失関数はどのような形をしているか? • Q. その損失関数の最適化するのに適したアルゴリズムは何か? 61
  62. 62. 深層学習の汎化性能 深層学習のモデルはとてつもない数のパラメータ数を持つにも 関わらず、過学習せずに学習できる(こともある) 深層学習モデルの汎化性能を理論的に説明できないか? 62

×