カジュアル勉強会 @仙台
Excelで機械学習入門 第2回
株式会社 エクテック
取締役 兼データサイエンティスト
第10回までの流れ
1回~3回 4回~10回
AI周辺の
基本知識
最適化の基本
推論の基本
重回帰分析
機械学習
サポートベクタマシン
ナイーブベイズ
ニューラルネットワーク
RNN/BPTT
強化学習/Q学習
前段
勉強会に参加する以上...
『なにか』を
持って帰って欲しい
『すべて』は難しいけれど
気になった、興味をもった
キーワードでも良いので
⼿元に持って帰って
いただけると幸いです
環境について
(Surroundings)
Excel 2013, 2016
Google Spreadsheets
本日のアジェンダ
1. 最適化計算の基本となる勾配降下法
2. ラグランジュの緩和法と双対問題
3. モンテカルロ法の基本
最適化計算の基本となる勾配降下法
前回の話で...
これら誤差の2乗の総和を最⼩化する
平⽅誤差の総和を最⼩化する
パラメータを持つモデルが最適である
『最⼩化するパラメータを持つ
モデルが最適である』
少し、脱線します
そもそも、
パラメータを最適化する⽬的
ニューラルネットワーク
『シナプスの結合によりネットワークを形成した
⼈⼯ニューロン(ノード)が、学習によって
シナプスの結合強度を変化させ、
問題解決能⼒を持つようなモデル全般を指す。
狭義には誤差逆伝播法を⽤いた多層パーセプトロンを
指す場合もある。⼀般的なニューラルネットワークでの
⼈⼯ニューロンは⽣体のニューロンの動作を極めて
簡易化したものを利⽤する。』
(Wikipediaより)
⼈の脳を模した、
数理学に基づいた機械的な処理
『⼈の脳を模し』た
これら⼀つ⼀つが、ニューロン(ノード)
f(w11, w21, w31)= b1w11 + b2w21 + b3w31
δf
δw11
= 0
δf
δw21
= 0
δf
δw31
= 0
簡略化して描いてますが
こういった層が多層化され、
ニューロンは数万、数⼗万単位で
膨⼤な⽅程式を解く必要がある
『最⼩化するパラメータを持つ
モデルが最適である』
最⼩化するパラメータを探すのに
有名な⼿法の⼀つに
勾配降下法
(最急降下法)
勾配 = 微分
δf(x,y)
δx
= 0,
δf(x,y)
δy
= 0
2変数以上 = 偏微分
2変数について
ここが最小の部分
⼀般に、偏微分⽅程式は
容易には解けません
(厳密解を求めることが難しい)
何回も計算して、最⼩となる値を探す
いずれ最⼩のところに⾏き着く
これらを公式化してみます
x+Δx
y+Δy
x
y
zz+Δz
Δz = f(x+Δx, y+Δy) - f(x, y)
変化 Δzは
Δz = f(x+Δx, y+Δy) - f(x, y)
変化 Δzは
f(x+Δx, y+Δy) = f(x, y) +
δf(x,y)
δy
Δy
δf(x,y)
δx
Δx +
※近似の公式
Δz =
δf(x,y)
δx
Δx +
δf(x,y)
δy
Δy
これを内積の形で表現すると
δf(x,y)
δx
,
δf(x,y)
δy
Δx
Δy
Δz =
関数f(x,y)の点(x,y)における
勾配(gradient) といいます
(勾配ベクトル)
δf(x,y)
δx
,
δf(x,y)
δy
Δx
Δy
Δz =
勾配降下法の基本式
η (イータ, eta)は
ステップサイズ, ステップ幅と呼ばれます
δf(x,y)
δx
,
δf(x,y)
δy
(Δx, Δy) = - η
(ただし, ηは正の定数)
マイナスη
これが意味するのは
正反対の⽅向が最短で下れる
δf(x,y)
δx
,
δf(x,y)
δy
(Δx, Δy)
x
z f0(x0, y0)
y
f1(x1, y1)f2(x2, y2)
f3(x3, y3)
x
z f0(x0, y0)
y
f1(x1, y1)f2(x2, y2)
f3(x3, y3)
繰り返し計算していく
3変数以上について
δf
δx1
,
δf
δxn
(Δx1, Δx2, …, Δxn)
= - η (
δf
δx2
, … , )
δf
δx1
,
δf
δxn
(Δx1, Δx2, …, Δxn)
= - η (
δf
δx2
, … , )
関数fの点(x1, x2, … , xn)における 勾配
ηと勾配降下法の注意点
ηが⼤きすぎると
ηが⼩さすぎると
明確な、確実な⽅法はない
地道に
試⾏錯誤で⾒つけ出す
ラグランジュの緩和法と双対問題
かなり簡素化して書きますが
本来は、奥深い単元です
(時間の都合上、掘り下げません)
基本は、勾配降下法と同じ
ただし、条件式が追加されます
不等式の条件が付けられたとき
最⼤値と最⼩値を求める問題
代表的な⼿法の⼀つに
ラグランジュ緩和法
x, yは次の不等式を満たすとき
- x - y + 2 ≦ 0, x - y + 2 ≦ 0
下記の関数を最⼩化する x, y を考える
1
2
(x + y )
2 2
1
2
(x + y ) + λ(-x-y+2) + μ(x-y+2)
2 2
≦
1
2
(x + y )
2 2
0以上の任意の定数 λ, μを⽤意すれば
と置くことができる
λ, μを最⼩化することで
先ほどの不等式を含むややこしい問題を
『緩和』することができる
ここからさらに
最⼩となる m(λ, μ) を⽤意
1
2
(x + y ) + λ(-x-y+2) + μ(x-y+2)
2 2
m(λ, μ) ≦
なおかつ m(λ, μ)が
『最⼤』となる値 m0 を⽤意すると
m(λ, μ) ≦ m0 ≦
1
2
(x + y ) + λ(-x-y+2) + μ(x-y+2)
2 2
≦
1
2
(x + y )
2 2
この λ, μ が得られれば
『x + y を最⼩化するx, yの値』
が得られる
2 2
最⼩値を求める問題から
最⼤値を求める問題へ
ラグランジュ双体
ここから実際に解いてみます
チョット計算を頑張りましょう
ラグランジュ緩和法の左辺 =
1
2
{x - (λ - μ)} +
2 1
2
{y - (λ + μ)}
2
1
2
{(λ - μ) + (λ +μ) } + 2(λ + μ)-
2 2
=
1
2
{x - (λ - μ)} +
2 1
2
{y - (λ + μ)}
2
+ 2(λ + μ) - (λ + μ )
2 2
よって、x,y が
x = λ - μ, y = λ + μ のとき
最⼩値となる
よって、x,y が
x = λ - μ, y = λ + μ のとき
最⼩値となり、元々の不等式
- x - y + 2 ≦ 0, x - y + 2 ≦ 0
に代⼊して整理すると
λ ≧ 1, μ ≧ 1
⼀⽅、最⼩値 m(λ, μ)は
m(λ, μ) = 2(λ + μ) - (λ + μ )
= 2 - (λ - 1) + (μ - 1)
2 2
2 2
λ ≧ 1, μ ≧ 1 と合わせて 最⼤値m0 は
m0 = 2 (λ = 1, μ = 1)
このとき、x, y は x=0, y=2
そして、x + y の最⼩値は 2
2 2
モンテカルロ法の基本
広く⼀般に、乱数を⽤いて
数値計算を⾏う⽅法
機械学習のほとんどの分野で
初期値としての乱数を、
モンテカルロ法で与えている
Excelで実践
Google Spreadsheetで実践
第2回は、
以上となります
ご不明点・ご質問・ご相談は
Slackで無償でお答えいたします
EoF

Casual learning machine learning with_excel_no2