SlideShare a Scribd company logo
機械学習
1.線形回帰モデル
✦学習種類:教師あり学習,タスク:予測
✦そもそも回帰とは?→ある入力から出力を予測
✦特に、入力を説明変数(ベクトル),出力を目的変数(スカラー)と呼ぶ
✦線形とは?→直線(y=ax+b):予測したyにはハット(^)をつける
✦ここで、wはパラメータと呼び、未知の値→これを求めるのが目的
✦どうやって求める?→最小二乗法で求める!!
✦x,yは固定値なのでwを変えるしかない
̂
y = wT
x + w0 =
m
∑
j=1
wmxm + w0
MSE =
1
n
n
∑
i=1
( ̂
y − y)
2
→ ̂
w = arg min MSE ̂
w = (XT
X)−1
XT
y
1.線形回帰モデル
✦特徴
✦外れ値の影響を受けやすい
✦訓練データ少ないと学習不足、多いと過学習が起きやすい
✦説明変数間(x1,x2など)に相関があると、良い推定ができないことがある
2.非線形回帰モデル
✦学習種類:教師あり学習,タスク:予測
✦線形構造では表現できないモデルに対して、行う
✦ここで、f()を基底関数と呼ぶ
✦基底関数の種類
✦多項式関数
✦ガウス型基底関数
✦スプライン関数/Bスプライン関数
✦未学習underfittingと過学習overfitting
✦未学習→表現力の高いモデルを使用する
✦過学習→学習データの数を増やす、不要な基底関数を削除、正則化法を利用
yi = f(xi) + ϵi → yi = w0 +
m
∑
j=1
wjϕj(xi) + ϵi
2.非線形回帰モデル
✦正則化法:正則化項(罰則項)をモデルに課す
✦正則化項の種類
✦無いと最小二乗推定量と一致
✦L1ノルム→ラッソ(Lasso)回帰:各重みの絶対値の総和
✦目的:いくつかのパラメータを0に推定
✦L2ノルム→リッジ(Ridge)回帰
✦目的:パラメータを0に近づける:各重みの二乗和
✦汎化性能:
3.ロジスティック回帰モデル
✦学習種類:教師あり学習,タスク:分類
✦分類の簡単なイメージ:m次元のベクトルから0or1を出力する
✦ロジスティック回帰は線形結合をシグモイド関数に入力する
✦出力はy=1となる確率
✦シグモイド関数:出力値は0∼1,aが大きいと0付近での勾配が大きくなる
✦ロジスティック回帰モデルのパラメータの求め方→尤度関数L(w)を最大に
✦
f(x) =
1
1 + exp(−ax)
f′(x) = af(x)(1 − f(x))
E(w) = − log L(w) = −
∑
(yi log pi + (1 − yi)log(1 − pi))
4.主成分分析
✦学習種類:教師なし学習,タスク:次元削減
✦多変量データを少数個の指標に圧縮→分散の大きい軸を新しい軸として捉え
る
✦新しい軸を主成分という
✦寄与率:第k主成分の分散の全分散に対する割合(全体に対する持つ情報量の
割合)
✦主成分分析の計算法
✦分散共分散行列を求める
✦分散共分散行列に対して、固有値,固有ベクトルを求める→ノルムは1になる
ことに注意
✦各主成分は直交する
✦主成分分析は元の次元に戻すことができる→再構成と呼び,そのときの誤差
を再構成誤差と呼ぶ(元が直線にプロットされているなら再構成誤差は0%)
5.アルゴリズム
✦学習種類:教師なし学習,タスク:クラスタリンク
✦k近傍:最近傍のデータをk個取ってきて,それらが最も多く所属するクラスに識別
→kの値が変われば,結果も変わる
• kが大きいほど,決定境界(クラスを識別する線)は滑らかになる
✦k-平均法(k-means):k個のクラスタに分類する
✦手順
• 各クラスタの中心の初期値を設定する(ここはユーザに依存する)
• 各データ点に対して,各クラスタ中心との距離を計算し,最も距離が近いクラスタ
を割り当てる
• 各クラスタの中心を計算
• 上記を繰り返し,中心を(収束するまで)更新
✦最初の中心を変えるとクラスタリングの結果も変わる→k-means++という手法もある
• 初期値が離れている→うまくクラスタリングできる
• 初期値が近い→うまくクラスタリングができない
6.サポートベクターマシン
✦学習種類:教師あり学習,タスク:分類
✦主な目的:2クラス分類→SVMでは,正負で判断する
• 正負の境目を分類境界(その関数を決定関数)と呼び,境界線から最も近
いデータまでの最短距離をマージンと呼ぶ→特にこのデータをサポートベ
クトルと呼ぶ
• SVMでは,このマージンを最大化する
✦ハードマージンとソフトマージン
• ハードマージン:マージン内にデータを含むことを許容しない
• 訓練データに関しては,完璧に分類できるが過学習の恐れあり
• ソフトマージン:マージン内にデータを許容する(誤分類を含む)
• 正則化係数Cを持つ→C= ならハードマージンと一致,C=0なら誤分類は
多くなるが過学習は防げる
6.サポートベクターマシン
✦SVMは線形分類が基本→非線形のデータ群に対してはどうするか?
✦カーネルを用いて,非線形へ拡張する
✦主なカーネル
• 多項式カーネル
• ガウスカーネル
• シグモイドカーネル
• RBFカーネル
• 2つのデータの距離が近いとカーネルの値は1に近くなる
• 2つのデータの距離が遠いとカーネルの値は0に近くなる
• 正規化線形カーネル
[xT
i xj + c]d
<latexit sha1_base64="A2oF+SUDQDwAb37wdOtLqTkInHg=">AAACm3ichVHLSsNAFD3G97vqRhChWBRBKLcqKK6KbkRc+KoKtS1JnNbRNAlJWqzFH/AHFFwpuBB/wZ0bf8BFP0FcKrhx4W0aES3WGyZz5tx77pzharYhXY+o0qQ0t7S2tXd0dnX39Pb1hwYGt12r4OgioVuG5exqqisMaYqEJz1D7NqOUPOaIXa0o6VqfqcoHFda5pZXskUqr+ZMmZW66jGVTh5nZHrrOHM4pafS+5lQhKLkR7gexAIQQRBrVugee9iHBR0F5CFgwmNsQIXLXxIxEGzmUigz5zCSfl7gFF2sLXCV4AqV2SP+5/iUDFiTz9Werq/W+RaDl8PKMMbpiW7plR7pjp7p489eZb9H1UuJd62mFXam/2x48/1fVZ53DwffqoaePWQx73uV7N32meor9Jq+eHL+urmwMV6eoGt6Yf9XVKEHfoFZfNNv1sXGZQM/X04czmZ5nfKoYr8HUw+2p6OxmSitz0bii8HQOjCCMUzyZOYQxzLWkOCbHFzgCtfKqLKkrCirtVKlKdAM4UcoiU+YOZf8</latexit>
exp( || xi xj||2
)
<latexit sha1_base64="iU6otIUqZQqOd8PApfrIdsFlN+E=">AAACqnicSyrIySwuMTC4ycjEzMLKxs7BycXNw8vHLyAoFFacX1qUnBqanJ+TXxSRlFicmpOZlxpaklmSkxpRUJSamJuUkxqelO0Mkg8vSy0qzszPCympLEiNzU1Mz8tMy0xOLAEKxQtIx6RWFGjoxqQn5uYm1tToVsRnAnFWTU2ckWa8gLKBngEYKGAyDKEMZQYoCMgX2MMQw5DCkM+QzFDKkMuQypDHUAJk5zAkMhQDYTSDIYMBQwFQLJahGihWBGRlguVTGWoZuIB6S4GqUoEqEoGi2UAyHciLhormAfkgM4vBupOBtuQAcRFQpwKDqsFVg5UGnw1OGKw2eGnwB6dZ1WAzQG6pBNJJEL2pBfH8XRLB3wnqygXSJQwZCF143VzCkMZgAXZrJtDtBWARkC+SIfrLqqZ/DrYKUq1WM1hk8Bro/oUGNw0OA32QV/YleWlgatBsPO6BuaQIKJsGxLXAqDJEjxhMRpiRnqGxnkGgibKDEzTSOBikGZQYNIAxY87gwODBEMAQCrSpkWE5wwaGjUw6TEFMkUzREKVMjFA9wgwogCkFAH6knVU=</latexit>
tanh(bxT
i xj + c)
<latexit sha1_base64="nEqy2b70xwATjWRm3pVhGD5FTMI=">AAACoXicSyrIySwuMTC4ycjEzMLKxs7BycXNw8vHLyAoFFacX1qUnBqanJ+TXxSRlFicmpOZlxpaklmSkxpRUJSamJuUkxqelO0Mkg8vSy0qzszPCympLEiNzU1Mz8tMy0xOLAEKxQsIxZQk5mVoJFXEZ8aFVMRnaSdrxgsoG+gZgIECJsMQylBmgIKAfIE9DDEMKQz5DMkMpQy5DKkMeQwlQHYOQyJDMRBGMxgyGDAUAMViGaqBYkVAViZYPpWhloELqLcUqCoVqCIRKJoNJNOBvGioaB6QDzKzGKw7GWhLDhAXAXUqMKgaXDVYafDZ4ITBaoOXBn9wmlUNNgPklkognQTRm1oQz98lEfydoK5cIF3CkIHQhdfNJQxpDBZgt2YC3V4AFgH5Ihmiv6xq+udgqyDVajWDRQavge5faHDT4DDQB3llX5KXBqYGzcbjHphLioCyaUBcC4wqQ/SIwWSEGekZGusZBJooOzhBI42DQZpBiUEDGDPmDA4MHgwBDKFAmyoY5jEsZ1jBpMzkyRTAFARRysQI1SPMgAKYogGG8ZmV</latexit>
exp(
||xi xj||2
2 2
)
<latexit sha1_base64="aGz8M0DKwreqU3IzVDah+1qGFf0=">AAACtXichVE9T9tQFD1xgQJtIdAFqUvUKIgORDehEogJlYWRBBIikdSyzXN44C/ZThTq5A+g7h2YQOpQdevabCz8gQ78BMRIpS4deuMYVYBKr/X8zjv3nvvO09U9SwYh0WVKeTIyOvZ0fGLy2fMXU9Ppmdlq4LZ8Q1QM13L9mq4FwpKOqIQytETN84Vm65bY0Q/XB/mdtvAD6Trb4ZEnGrbWdKQpDS1kSk3P10XHW1ism75mRN1uR5WLHfWg231f7EXFeiCbtsbwjZrOUp7iyDwEhQRkkcSmm+6jjj24MNCCDQEHIWMLGgL+dlEAwWOugYg5n5GM8wI9TLK2xVWCKzRmD/nf5NNuwjp8HvQMYrXBt1i8fFZmkKMf9IVu6IK+0hX9/mevKO4x8HLEuz7UCk+dPp7b+vVflc17iP2/qkc9hzCxEnuV7N2LmcErjKG+/eHTzdZqORfN0xlds/9TuqRzfoHT/ml8LonyySN+bp34nDV59XhUhfuDeQiqxXxhKU+lt9m1d8nQxvEKr7HAk1nGGjawiQrf9BHf8B19ZVlpKHuKOSxVUonmJe6E4v4BgRGiTg==</latexit>
xT
i xj
||xi||||xj||
<latexit sha1_base64="k3OuMKG/3lsXFpePSlqDUJ6QA3g=">AAACr3ichVE9T9tQFD2YftC0NIEuSF2iRiCm6Lqt1IoJwcJIQr4kPoztvsBLHNuynQiws3bgDzAwtVKHClaYurHwBzrwE6qOVGJh4NoxQoCg13q+5517z3vn6RquJf2A6GxIGX7y9NnzkReZl69GX2dzY+M13+l6pqiajuV4DUP3hSVtUQ1kYImG6wm9Y1iibrTn43q9JzxfOnYl2HbFakffsGVTmnrAlJbLrzQ93Qy3NLlW2dJa/TCKGEdRPs6tKOpruQIVKYn8faCmoIA0Fp3cL6zgCxyY6KIDARsBYws6fP6WoYLgMreKkDmPkUzqAn1kWNvlLsEdOrNt/m/wbjllbd7HZ/qJ2uRbLF4eK/OYpN/0k87plA7oD10+eFaYnBF72eZsDLTC1bK7E0sX/1V1OAfYvFE96jlAE58Tr5K9uwkTv8Ic6Hs7e+dLM+XJcIq+01/2/43O6IRfYPf+mT9Korz/iJ9rJx5Xm7ziUal3B3Mf1N4X1Q9FKn0szM6lQxvBW7zDNE/mE2axgEVU+aavOMQRjhVVqStryvqgVRlKNW9wKxR5BZu7oUI=</latexit>
実装演習結果
(一部抜粋)
1.線形回帰モデル
✦skl_regression.ipynbの実行
✦1変数の場合の予測
✦[20]で予測結果を出力
• 入力が1の場合,-25.5685118
• 入力が0の場合,-34.67062078
1.線形回帰モデル
✦2変数の場合の予測
✦[32]でパラメータ推定
✦[33]で予測値を出力
• CRIM=0.2, RM=7のとき,
29.43977562を出力
1.線形回帰モデル
✦モデルの検証
✦MSEとR^2誤差のそれぞれを出力
• 一番下のボックス
• どちらも,testデータに対しても
誤差が小さくなっていることが確
認できる
2.非線形回帰モデル
✦skl_nonlinear regression.ipynbの
実行
✦[5]でデータ生成
✦[6]で線形回帰モデルで学習
• 精度が低いことが確認できる
2.非線形回帰モデル
✦[7]:カーネルリッジ回帰
✦[8]:Ridge回帰
2.非線形回帰モデル
✦[10]:Lasso回帰
3.ロジスティック回帰モデル
✦skl_logistic_regression.ipynbの実行
• 1変数(チケット価格)から分類(生死)を推定
4.主成分分析
✦skl_pca.ipynbの実行
✦30次元のデータを2次元に圧縮
✦散布図は圧縮後のプロット図
5.アルゴリズム
✦skl_kmeans.ipynbの実行
6.サポートベクターマシン
✦np_pca.ipynbの実行
✦[3]で訓練データをプロット
6.サポートベクターマシン
✦[4]で学習を実行
6.サポートベクターマシン
✦[5][6]でテストデータに対して予測を実行
✦[7]で予測結果を出力
• 実線:境界線
• 波線:マージン
• 波線上の点:サポートベクトル

More Related Content

What's hot

今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
Shinya Shimizu
 

What's hot (12)

Crfと素性テンプレート
Crfと素性テンプレートCrfと素性テンプレート
Crfと素性テンプレート
 
AtCoder Regular Contest 046
AtCoder Regular Contest 046AtCoder Regular Contest 046
AtCoder Regular Contest 046
 
第4回MachineLearningのための数学塾資料(浅川)
第4回MachineLearningのための数学塾資料(浅川)第4回MachineLearningのための数学塾資料(浅川)
第4回MachineLearningのための数学塾資料(浅川)
 
kaetsu.js #01
kaetsu.js #01kaetsu.js #01
kaetsu.js #01
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
 
Machine Learning Seminar (1)
Machine Learning Seminar (1)Machine Learning Seminar (1)
Machine Learning Seminar (1)
 
HTML5 Canvas で学ぶアフィン変換
HTML5 Canvas で学ぶアフィン変換HTML5 Canvas で学ぶアフィン変換
HTML5 Canvas で学ぶアフィン変換
 
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
 
2016年度秋学期 応用数学(解析) 第11回 振動と微分方程式 (2016. 12. 8)
2016年度秋学期 応用数学(解析) 第11回 振動と微分方程式 (2016. 12. 8)2016年度秋学期 応用数学(解析) 第11回 振動と微分方程式 (2016. 12. 8)
2016年度秋学期 応用数学(解析) 第11回 振動と微分方程式 (2016. 12. 8)
 
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
 
回帰
回帰回帰
回帰
 
2013年度春学期 画像情報処理 第14回「CTスキャナ ― 投影からの画像の再構成/ 逆投影法による再構成」
2013年度春学期 画像情報処理 第14回「CTスキャナ ― 投影からの画像の再構成/ 逆投影法による再構成」2013年度春学期 画像情報処理 第14回「CTスキャナ ― 投影からの画像の再構成/ 逆投影法による再構成」
2013年度春学期 画像情報処理 第14回「CTスキャナ ― 投影からの画像の再構成/ 逆投影法による再構成」
 

Recently uploaded

ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
miyp
 

Recently uploaded (8)

Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
 
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
 
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
 
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
 

02 機械学習