Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データマイニングと機械学習-SVM
Search
Y. Yamamoto
May 31, 2023
Technology
1
540
データマイニングと機械学習-SVM
1. サポートベクターマシン
2. 非線形SVM
Y. Yamamoto
May 31, 2023
Tweet
Share
More Decks by Y. Yamamoto
See All by Y. Yamamoto
データベース12: 正規化(2/2) - データ従属性に基づく正規化
trycycle
0
500
データベース11: 正規化(1/2) - 望ましくない関係スキーマ
trycycle
0
460
データベース10: 拡張実体関連モデル
trycycle
0
500
データベース09: 実体関連モデル上の一貫性制約
trycycle
0
480
データベース08: 実体関連モデルとは?
trycycle
0
500
データベース14: B+木 & ハッシュ索引
trycycle
0
230
データベース15: ビッグデータ時代のデータベース
trycycle
0
120
データベース06: SQL (3/3) 副問い合わせ
trycycle
0
360
データベース05: SQL(2/3) 結合質問
trycycle
0
460
Other Decks in Technology
See All in Technology
不感対策ソリューション
jtes
0
230
LINEヤフー新卒採用 コーディングテスト解説 実装問題編
lycorp_recruit_jp
1
12k
Tracking down sources of kernel errors with retsnoop
ennael
PRO
0
130
【ログ分析勉強会】EDR ログで内部不正を検出できるのか、Copilot に聞いてみた
hssh2_bin
2
260
オープニング / MIERUNE JCT - Tokyo 2024
mierune
PRO
1
340
入門 バックアップ
ryuichi1208
2
120
GitHub Actions/Docker/Terraform/Renovate で最小限の Monorepo CD パイプラインを作る / Minimalistic Monorepo CD Pipeline with GitHub Actions, Docker, Terraform and Renovate
yuyatakeyama
4
340
ITエンジニアとして知っておいてほしい、電子メールという大きな穴
logica0419
1
290
【shownet.conf_】多様化するネットワーク環境を柔軟に統合するルーティングテクノロジー
shownet
PRO
0
270
MLOpsの「あるある」課題の解決と、そのためのライブラリgokart
mski_iksm
1
150
Create Inquiry via Bedrock / 生成 AI で問い合わせ品質は変わるのか?思いついてぱっと作ったものを供養してみる
kazzpapa3
1
190
AWSへのNIST SP800-171管理策 導入に向けての整備/20240930 Mitsutoshi Matsuo
shift_evolve
0
140
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
5
210
Dealing with People You Can't Stand - Big Design 2015
cassininazir
363
22k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
26
4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
158
15k
What the flash - Photography Introduction
edds
67
11k
Thoughts on Productivity
jonyablonski
67
4.2k
In The Pink: A Labor of Love
frogandcode
139
22k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Testing 201, or: Great Expectations
jmmastey
38
7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Transcript
分類問題2: サポートベクターマシン ⼭本 祐輔 静岡⼤学 情報学部 准教授
[email protected]
第6回 データマイニングと機械学習
2023 2023年5月31日
講義のトピック 機械学習 教師あり学習 教師なし学習 強化学習 ・クラスタリング ・データ圧縮 ・分類 ・回帰 …
… 3 行動情報学科に 特有の応用手法 時系列データ分析 時間経過とともに変化する データに対する分析⼿法 ・K近傍法 ・サポートベクタマシン ・ニューラルネットワーク
K-近傍法(k-NN: k nearest neighbor)のアイデア 4 対象データまでの距離が最も近いK個のデータの ラベルのうち、最も多いラベルに分類する ? K=5:⻘ K=3:緑
K=1:⻘ 多 数 決
K-近傍法のメリット・デメリット 5 メリット • 単純なのに強⼒ • データの背後にある分布を仮定しなくてよい (ノンパラメトリックな⼿法) デメリット •
推論フェーズの計算量が⼤きい(毎回の距離計算) • 次元の呪いの影響を受けやすい
教師あり学習のための機械学習アルゴリズムの分類 6 ロジスティック回帰 ナイーブベイズ サポートベクターマシン K近傍法 ランダムフォレスト & 決定木 ニューラルネットワーク
訓練データをすべて記憶して おき,それら全部を使って 予測を⾏う(推論計算が遅い) 訓練データの背後にあるモデル を抽出し,それを予測時に使う (推論計算は速い) インスタンスベース モデルベース 本⽇学ぶのはコレ
1 一世を風靡した学習アルゴリズム サポートベクターマシン 7
教師あり学習の歴史(⼀部抜粋) ロジスティック回帰 サポートベクターマシン 決定木 パーセプトロン 単純ベイズ分類器 ランダムフォレスト k-近傍法 ベイジアンネットワーク 深層学習
1958年 1957年 1951年 1979年 1985年 1992年 1960年代 2001年 2010年代 8 ⼀世を⾵靡した強⼒なアルゴリズム. 深層学習が台頭した今でも,状況に よっては⽤いられることも.
サポートベクターマシン(SVM) 入力 ・ベクトルデータ ・正則化係数 ! ・カーネル関数 " 学習 by SVM
9 それほど多くないデータでも精度よく推論したい時に有効 ID 血圧 (上) 喫煙 頻度 年齢 心臓 疾患 1 110 5 74 なし 2 160 17 53 あり … … … … … ⼼臓疾患データ 学習済み モデル ML 血圧 … 疾患 124 ? 未知データ 推論 ⼼臓疾患あり 出力 ラベル(基本的には2値)
2次元平⾯上で考える分類問題 •と×のデータ集合が与えられたときに, 未知の2次元データが•か×をどう予測する? Q. X 0 Y ? ▲ ?
▲ 10
2次元平⾯上で考える分類問題 •と×のデータを2分するような直線を見つける A. X 0 Y ? ▲ ? ▲
直線より下側なら「•」 直線より上側なら「×」 ax+by+c=0 11
2次元平⾯上で考える分類問題 •と×のデータを2分するような直線を見つける A. X 0 Y 直線といっても複数考えられる…どれがベストか? A B C
12
機械学習の⾄上命題 13 機械学習 汎化性能の高い 予測モデルの構築 未知データに対する予測性能を⾼める必要あり (訓練データに最適化しすぎても意味がない(過学習))
2次元平⾯上で考える分類問題 X 0 Y ▲ ▲ ▲ ▲ 学習に使用したデータは 真の分布を完全に表現しているとは限らない
▲ ▲ できる限り未知のデータにも対応できる直線にしたい… 14
2次元平⾯上で考える分類問題 X 0 Y A B C 未知のデータがどこに出現するか分からない状況で 未知データが•か×かを予測するベスト直線は? Q.
15
2次元平⾯上で考える分類問題 X 0 Y A 未知のデータがどこに出現するか分からない状況で 未知データが•か×かを予測するベスト直線は? Q. 16 B
2次元平⾯上で考える分類問題 X 0 Y B 未知のデータがどこに出現するか分からない状況で 未知データが•か×かを予測するベスト直線は? Q. 17
2次元平⾯上で考える分類問題 X 0 Y C 未知のデータがどこに出現するか分からない状況で 未知データが•か×かを予測するベスト直線は? Q. 18 B
2次元平⾯上で考える分類問題 X 0 Y 直線に最も近い訓練データから直線までの距離 (マージン)が最大となるような直線がベスト!! A. 19 B
2次元平⾯上で考える分類問題 X 0 Y A 20 直線に最も近い訓練データから直線までの距離 (マージン)が最大となるような直線がベスト!! A.
2次元平⾯上で考える分類問題 X 0 Y C 21 直線に最も近い訓練データから直線までの距離 (マージン)が最大となるような直線がベスト!! A.
サポートベクター (直線に最も近い点) サポートベクターマシンの直感的なアイデア X 0 Y マージンを最大化する超平面を見つける (分類境界とサポートベクターの距離) !(#) =
0 サポートベクター (直線に最も近い点) 22
数学的準備:超平⾯の数式表現(1/2) 23 x y x y z 2次元空間での直線 !" +
$% + & = 0 !" + $% + &) + * = 0 3次元空間での平⾯
数学的準備:超平⾯の数式表現(2/2) 24 x1 2次元空間での直線 +#"# + +$"$ + +% =
0 '! (! + '" (" + ⋯ + '# = 0 N次元空間での超平⾯ x2 ! = ($! , $" ) ? x1 x2 xN ベクトルwとxの内積 w=(w1 , w2 ) ※ 実は wは法線ベクトル ⟹ -& . + +% = 0
数学的準備:2次元空間での点と直線間の垂直距離 25 x1 直線: '! $! + '" $" +
'# = 0 x2 ($! ′, $" ′) + = |'! (! $ + '" (" $ + '# | '! " + '" " ⾼校で習った公式 L
数学的準備:N次元空間での点と超平⾯の間の距離 26 |(!)! " + ⋯ + (#)#′ + ($|
(! % + ⋯ + (# % = |-%#$ + '# | - x1 x2 xN !$ = ($! $ , $" $ , … , $% ′) + = L 直線: ,&! + '# = 0 ベクトルで表現 (- ! = ,&! + '# ) = |!(#)| -
サポートベクターマシンの定式化: 設定 X1 0 Xn N次元空間上の点 ! : " !
= (% " ! , … , %# (!)) 点 ! のラベル値 y(!) = * 1 −1 … 点 . が×の場合 … 点 . が•の場合 27
サポートベクターマシンの定式化: 設定 X1 0 Xn N次元空間上の点 ! : " !
= (% " ! , … , %# (!)) 点 ! のラベル値 y(!) = * 1 −1 … 点 . が×の場合 … 点 . が•の場合 y = −1の点 y = 1の点 28
サポートベクターマシンの定式化 : ⽬標設定(1/2) X1 0 Xn 点 1 について y(')
= 1 の場合,2(4 ' ) ≥ 1 y(') = −1の場合,2 4 ' ≤ −1 目標1: 以下を満たす 2(4) を見つけたい ! # = 0 (& ' = )!'" + +# ) 29
サポートベクターマシンの定式化 : ⽬標設定(2/2) X1 0 Xn 目標2: 2(4) のマージンを最大化させたい !
# = 0 (& ' = )!'" + +# ) ×で - ! に 最も近い点 / •で - ! に 最も近い点 . 0' 0( ⟹ argmax 8 49 + 4: 30
サポートベクターマシンの最適化問題を解く 点 ! について y(") = 1 の場合,%(' " )
≥ 1 目標1: 以下を満たす !(#) を見つけたい 目標2: !(#) のマージンを最大化させたい ⟹ argmax 8 49 + 4: … 式(1) … 式(2) y(") = −1の場合,% ' " ≤ −1 31
サポートベクターマシンの最適化問題を解く 点 ! について y(") = 1 の場合,%(' " )
≥ 1 y(") = −1の場合,% ' " ≤ −1 目標1: 以下を満たす !(#) を見つけたい 目標2: !(#) のマージンを最大化させたい ⟹ argmax 8 49 + 4: … 式(1) … 式(2) ⟹ argmax &, () |!(#(*))| - + |!(# , )| - 点と超平⾯間の距離公式 32
サポートベクターマシンの最適化問題を解く 点 ! について y(") = 1 の場合,%(' " )
≥ 1 y(") = −1の場合,% ' " ≤ −1 目標1: 以下を満たす !(#) を見つけたい 目標2: !(#) のマージンを最大化させたい ⟹ argmax 8 49 + 4: … 式(1) … 式(2) 式(1)より ≥ argmax &, () 1 - + 1 - = argmax &, () 2 - (& ' = )!'" + +# ) ⟹ argmax &, () |!(#(*))| - + |!(# , )| - 33
サポートベクターマシンの最適化問題を解く 点 ! について y(") = 1 の場合,%(' " )
≥ 1 y(") = −1の場合,% ' " ≤ −1 目標1: 以下を満たす !(#) を見つけたい 目標2: !(#) のマージンを最大化させたい ⟹ argmax 8 49 + 4: … 式(1) … 式(2) ≥ argmax & 1 - + 1 - = argmax & 2 - ⟹ argmin &, () - 2 逆数の最⼩化と等価 34
サポートベクターマシンの最適化問題を解く 点 ! について y(") = 1 の場合,%(' " )
≥ 1 y(") = −1の場合,% ' " ≤ −1 目標1: 以下を満たす !(#) を見つけたい 目標2: !(#) のマージンを最大化させたい ⟹ argmax 8 49 + 4: … 式(1) … 式(2) ≥ argmax & 1 - + 1 - = argmax & 2 - ⟹ argmin & - 2 2乗を最⼩化 しても同じ ⟹ argmin & - " 2 35
サポートベクターマシンの最適化問題:問題設定の変形 点 ! について y(") = 1 の場合,%(' " )
≥ 1 y(") = −1の場合,% ' " ≤ −1 目標1: 以下を満たす !(#) を見つけたい 目標2: !(#) のマージンを最大化させたい ⟹ argmax 8 49 + 4: … 式(1) … 式(2) ⟹ argmin ; - $ 2 … 式(3) 最⼩化問題!! SVMの最適化は不等式制約下の最小化問題に帰着される (不等式制約) 36
数理最適化の定⽯ 37 (不)等式制約下での 関数最小化 ラグランジュの未定乗数法
サポートベクターマシンに関する最適化問題の最終形 38 <(=(!) , … , =(#) ) = @
'*! # =(') − 1 2 @ '*! # @ +*! # =(') =(+) B(') B(+) 4 ' , 4(+) ∑ 123 4 "(1)#(1) = 0 および "(3) …, "(5) ≥ 0 の条件下で を最⼤化する " 1 を⾒つける(ただし ; = ∑'*! # =(') B(') 4(')) ラグランジュの未定乗数法 (. = 1, … , 7) ベクトルの内積
サポートベクターマシンの最適化を例で考える(1/4) X1 0 X2 ! # = 0 (& '
= +$ ,$ + +% ,% + +# ) ' $ = (3, 4) ' % = (1,2) ' & = (2, 6) 学習データとして2次元のデータが3つ与えられたとし, SVMを適用して最適な分離境界線を見つけたい 39 (* ! = 1) (* " = 1) (* # = −1)
サポートベクターマシンの最適化を例で考える(2/4) 40 <(=(!) , =(%) , =(-) ) = @
'*! - =(') − 1 2 @ '*! - @ +*! - =(') =(+) B(') B(+) 4 ' , 4(+) ただし , = 8(!)$(!) − 8 " $ " + 8(/)$(/) = 38 ! − 8 " + 28(/) 48 ! − 28 " + 68(/) + =(!) − = % + =(-) = 0 および =(!) , =(%) , =(-) ≥ 0 の条件下で 以下の関数F を最⼤化したい
サポートベクターマシンの最適化を例で考える(3/4) 41 =(!) − = % + =(-) = 0
および =(!) , =(%) , =(-) ≥ 0 の条件下で 以下の関数F を最⼤化したい + = − 25 2 = ! % − 5 2 =(%) % − 20 =(-) % +11=(!) =(%) + 14= % = - − 30= - = ! − = ! + = % − =(-) < = ! , = % , = -
微分などを駆使し,各変数についてFを最⼤化すればよい サポートベクターマシンの最適化を例で考える(4/4) 42 =(!) − = % + =(-) =
0 および =(!) , =(%) , =(-) ≥ 0 の条件下で 以下の関数F を最⼤化したい = − 25 2 = ! % − 5 2 =(%) % − 20 =(-) % +11=(!) =(%) + 14= % = - − 30= - = ! − = ! + = % − =(-) < = ! , = % , = - 9(: ! ) = … : ! " + … :(!) + … 変数1つに着⽬すれば…単なる2次関数!! いわゆる 2次計画問題!
理想世界でのサポートベクターマシン X1 0 Xn 1 , サポートベクター サポートベクター マージンの外側でデータの分布がキレイに分かれる !(#)
= 0 この領域には データはない 43
サポートベクターマシンを使う現実的な状況 X1 0 Xn ノイズ1 ノイズ2 ノイズ3 学習で使うデータにノイズが混入する 44
サポートベクターマシンを使う現実的な状況 X1 0 Xn ノイズ1 ノイズ2 ノイズ3 <! <- <"
学習で使うデータにノイズが混入する ノイズを考慮してサポートベクターマシンを修正したい… 45
サポートベクターマシン with ハードマージン の最適化問題 点 ! について y(") = 1
の場合,% ' " ≥ 1 y(") = −1の場合,% ' " ≤ −1 目標1: 以下を満たす !(#) を見つけたい 目標2: !(#) のマージンを最大化させたい ⟹ argmin ; - $ 2 46
サポートベクターマシン with ソフトマージン の最適化問題 点 ! について y(") = 1
の場合,% ' " ≥ 1 − ," y(") = −1の場合,% ' " ≤ −(1 − ,") 目標1: 以下を満たす !(#) を見つけたい 目標2: !(#) のマージンを最大化させたい ⟹ argmin ; - $ 2 + 8 9 9I# J :9 反対側に⾏っても 認めてあげる (3 ≥ 0) 反対側に⾏った分は ペナルティを与える 47
サポートベクターマシン with ソフトマージン に関する最適化問題の最終形 48 <(=(!) , … , =(#)
) = @ '*! # =(') − 1 2 @ '*! # @ +*! # =(') =(+) B(') B(+) 4 ' , 4(+) ∑ 123 4 "(1)#(1) = 0 および ∀*, "(1), +(1) ≥ 0 の条件下で を最⼤化する " 1 を⾒つける(ただし ; = ∑'*! # =(') B(') 4(') , ラグランジュの未定乗数法 (. = 1, … , 7) ∀., ? = 8 ' + @ ' , @ ' A ' = 0)
Hands-on タイム 以下のURLにアクセスして, サポートベクターマシンを体験してみましょう https://dmml2023.hontolab.org/ 49
2 「トリック」を使う 非線形SVM 50
線形分離不可能な問題 51 X 0 Y どうやっても1つの直線で分離できないデータ分布がある 線 形 分 離
不 可 能
線形分離不可能な問題の解決策 52 X 0 Y 0 X Y Z =
X2+Y2 複数の直線(超平面)を 組み合わせる 高次元化された空間で 分離超平面を見つける
データの⾼次元化の例 53 ! = ($! , $" ) !# =
(1, 2$! , 2$" , 2$! $" , $! ", $" ") : 2次の多項式に写像(変換) ;(.) 線形分離不能なデータも 高次元化すればSVMで分類しやすくなる
⾼次元化対応のサポートベクターマシンの最適化問題(1/2) 点 ! について y(!) = 1 の場合,- .(" !
) ≥ 1 − 0! y(!) = −1の場合,- .(" ! ) ≤ −(1 − 0!) 目標1: 以下を満たす !(#) を見つけたい 目標2: !(#) のマージンを最大化させたい ⟹ argmin ! ( " 2 + + , #$% & -# ⾼次元化関数 をかます X 0 Y 0 X Y Z マージン 最⼤化 ⾼次元空間 に B で写像 54
⾼次元化対応のサポートベクターマシンの最適化問題(2/2) 55 <(=(!) , … , =(#) ) = @
'*! # =(') − 1 2 @ ',+*! # =(') =(+) B(') B(+) K(4 ' )!K(4(+) ) ∑ 123 4 "(1)#(1) = 0 および ∀*, "(1), +(1) ≥ 0 の条件下で を最⼤化する " 1 を⾒つける(ただし ; = ∑'*! # =(') B(') 4(') , ∀., ? = 8 ' + @ ' , @ ' A ' = 0) ⾼次元化された ベクトルの内積
⾼次元空間の内積計算は⼤変 56 . = ("#, "$) ? = (%#, %$)
;L . = 1, 2"#, 2"$, 2"#"$, "# $ , "$ $ ;L(?) = (1, 2%#, 2%$, 2%#%$, %# $ , %$ $ ) : 2次の多項式に写像(変換) ;L(.) 内積計算 ;L . & ;L ? = 1 + 2(! =! + 2(" =" + 2(! (" =! =" + (! "=! " + (" "=" " 2次元ベクトルでも1ペアの内積計算でのかけ算回数が11回に… これではSVMの学習の 計算コストが膨大に…
カーネルトリック 57 . = "#, "$ , ? = (%#,
%$) !! ", $ = 1 + "" ( $ # = 1 + )$ *$ + )# *# # = 1 + 2%" 4" + 2%6 46 + 2%" %6 4" 46 + %" 64" 6 + %6 646 6 = +! " "+! $ かけ算回数 = 2 + 1 回 式展開 が与えられたとき カーネル関数を使えば,明示的に 高次元変換しなくても効率よく内積を計算できる 多項式変換したベクトルの内積と同じに!!
最適化⽅法は線形SVMと全く同じ(記号が変わっただけ) カーネルトリックを使った⾮線形SVMの最適化問題 58 <(=(!) , … , =(#) ) =
@ '*! # =(') − 1 2 @ ',+*! # =(') =(+) B(') B(+) K/(4 ' )!K/(4(+) ) ∑ 123 4 "(1)#(1) = 0 および ∀*, "(1), +(1) ≥ 0 の条件下で を最⼤化する " 1 を⾒つける(ただし ; = ∑'*! # =(') B(') 4(') , ∀., ? = 8 ' + @ ' , @ ' A ' = 0) 多項式カーネルで計算簡略化 = @ '*! # =(') − 1 2 @ ',+*! # =(') =(+) B(') B(+) "/(4 ' , 4(+) )
代表的なカーネル関数 for SVM 59 A(., ?) = & + .&
B ? M A(., ?) = C N 4NO $ $P$ 多項式カーネル 動径基底カーネル ・⼊⼒ベクトルの成分の組合せを 成分とする⾼次元ベクトルを想定 ・⽂書分類タスクでよく⽤いられる (パラメータd=2) ・無限次元空間にベクトルを射影 ・最もよく⽤いられるカーネル. 分布の特徴が未知の時に使う ・ガウスカーネルと呼ばれることも Radial Basis Function 画像出典: https://scikit-learn.org/stable/auto_examples/svm/plot_iris_svc.html
サポートベクターマシンの⻑所・短所 60 • ⾼次元空間でも汎化性能が⾼い • 次元数に対して学習データ数が 少なくても性能を発揮 • 計算量が多い(DNNほどではない) •
データ数に対して次元数がかなり ⼤きいと,過学習が起きる • パラメータが少ない(DNNよりは) ※ DNN = Deep Neural Network
Hands-on タイム 以下のURLにアクセスして, 非線形SVMを体験してみましょう https://dmml2023.hontolab.org/ 61
今後の予定 62
今後の予定 63 回 実施⽇ トピック 1 04/12 ガイダンス 2 04/19
機械学習の概要 & はじめての機械学習 3 04/26 演習:決定⽊ 4 05/10 クラスタリング1:k-means & 階層的クラスタリング 5 05/17 クラスタリング2:密度ベースクラスタリング 6 05/24 分類1:K近傍法 & 教師あり機械学習のお作法 7 05/31 分類2:サポートベクターマシン 8 06/07 分類3:ニューラルネットワーク⼊⾨
数学記号(集合) 64 集合 (太字でない⼤⽂字アルファベット) ) 集合の要素 (太字でない⼩⽂字アルファベット) * , =
-$ , -# , … , -% = ) ) ∈ 0 ∧ 2 ) > 0} 外延表現:要素を並べる書き⽅ 内包表現:要素の条件を指定する書き⽅ (xが実数でかつ f (x)がゼロより⼤きくなるようなxの集合) 集合の書き⽅ 集合の⼤きさ(要素数) |)|
例 65 6 = 0, 1, 2, … 8 =
… , −2, −1, 0, 1, 2, … : = 2n + 1 | n ∈ 6 (⾃然数) (整数) (奇数) = = りんご, みかん, なし |=| = 3
数学記号(ベクトル) 66 ! ベクトル (太字の⼩⽂字) 断りがない限り,縦ベクトル . $ = "#
$ + ⋯ + "Q $ ベクトルの要素の書き⽅ 実数を成分とする m次元ベクトル . = "# ⋮ "Q ∈ GQ = "#, … , "Q & ベクトルの⼤きさ ! と書くことも . B ? = .& ? = ∑ "R%R ベクトルの内積 !, C と書くことも
数学記号(⾏列) 67 ⾏列 (太字の⼤⽂字) ? = )$$ ⋯ )%$ ⋮
)&$ ⋱ ⋯ ⋮ )&% ∈ 0&×% Dの各列(縦ベクトル) を使った書き⽅ 実数を成分とする m⾏ n 列の⾏列 = )() &×% こんな書き⽅も = "$ , … , "% ! ⾏列の 要素の書き⽅
機械学習でよく⾒かける数学的処理(1/3) 68 9 9I# S "9 = "# + "$
+ ⋯ + "S J 9I# S "9 = "#"$ … "S C C)* 2(") 数列の和 数列の積 偏微分 T 4 = (!)! + (%)% + ⋯ + (0)0 例: U U)0 T 4 = (0
機械学習でよく⾒かける数学的処理 (2/3) 69 argmax $∈& 1($) argmin '∈& 1($) max
'∈& 1($) min '∈& 1($) 関数を最⼤化 関数を最⼩化 実数の範囲でパラメータxを 動かし関数f(x)を最⼤化・最⼩化 関数を最⼤化する パラメータ 関数を最⼩化する パラメータ 関数を最適化する 実数を⾒つける
機械学習でよく⾒かける数学的処理 (3/3) 70 sign $ = 5 1: $ >
0 0: $ = 0 −1: $ < 0 符号関数 値の符号に応じて ・正なら1 ・負なら-1 ・ゼロなら0 を返す関数と覚える 画像出典: https://ja.wikipedia.org/wiki/符号関数 (sgn % と書くことも)
機械学習でよく出くわす瞬時に理解すべき数式 71 >.! % = >/ .! >? % =
?/>/ @ * '* (* = -/# Matrix Cookbook: http://www2.imm.dtu.dk/pubdb/edoc/imm3274.pdf A A# # " = A A# #/# = 2# A A# B# = B/ A A# -/# = - A A# # − D " = 2(- − D) A A# ># − E " = 2>/(># − E) > + ? % = >/ + ?/
⾏列サイズの⾒積もり 72 ⾏列A はm⾏ k列(m×k),⾏列B はk⾏ n列(k×n), ⾏列 Wはm⾏ m列(m×m),ベクトルxは
m⾏ 1列(m×1) とする.このとき以下の演算結果のサイズは? Q1. ;(! Q2. !(<! Q3. !(! スカラー スカラー (k×1)の⾏列(k次元ベクトル) (m×k)の⾏列と(k×n)の⾏列の積をとると, (m×n)の⾏列ができあがると覚えておけばよい