Skip to main content More Related Content
PDF
PDF
PPTX
PDF
PDF
PPTX
深層学習の数理:カーネル法, スパース推定との接点 PDF
PDF
What's hot
PPTX
【論文紹介】How Powerful are Graph Neural Networks? PDF
PDF
PDF
PPTX
PDF
PDF
PDF
PDF
Neural networks for Graph Data NeurIPS2018読み会@PFN PPTX
PDF
相関と因果について考える:統計的因果推論、その(不)可能性の中心 PPTX
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布 PDF
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv... PDF
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由 PDF
PPTX
データサイエンス概論第一=2-1 データ間の距離と類似度 PDF
はじめてのパターン認識 第8章 サポートベクトルマシン PDF
PDF
トピックモデルの評価指標 Perplexity とは何なのか? PDF
Viewers also liked
PDF
PDF
PDF
パターン認識 第12章 正則化とパス追跡アルゴリズム PDF
PPTX
PDF
PDF
最近傍探索と直積量子化(Nearest neighbor search and Product Quantization) PDF
K-means hashing (CVPR'13) とハッシング周り PDF
異常検知と変化検知 9章 部分空間法による変化点検知 PDF
はじめてのパターン認識 第5章 k最近傍法(k_nn法) PDF
PDF
PPTX
PDF
Synthesijer fpgax 20150201 PDF
FPGA+Synthesijerでヴォコーダを作ってみた PPTX
PDF
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6 PDF
PDF
PPTX
ウェーブレット変換の基礎と応用事例:連続ウェーブレット変換を中心に Similar to パターン認識第9章 学習ベクトル量子化
PDF
PDF
PDF
Casual learning machine learning with_excel_no4 PDF
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会) PDF
【Zansa】第12回勉強会 -PRMLからベイズの世界へ PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PPTX
PPTX
PDF
PPTX
PPTX
PPT
Model seminar shibata_100710 PDF
パターン認識第9章 学習ベクトル量子化
- 1.
- 2.
- 3.
量子化とは
量子化(Quantization)
ある連続量を、データ量削減のために、最も近い不連続値(代表ベクト
ル、セントロイド)に置き換える(近似、情報圧縮)すること。(精度は落
ちます。)
画像圧縮に用いられたりするようです。
3
- 4.
学習ベクトルの量子化のイメージ 1
入力データを代表ベクトルによって分割近似するという点で
はk-meansと目的を同じくする。
入力データに近い代表ベクトルによって判別を行う点ではk-
近傍法と関連がある。
何はともあれ、代表ベクトルをいかに配置するかが鍵
代表ベクトルによる
入力データとラベル
入力空間の分割
4
- 5.
- 6.
学習ベクトルの量子化の学習プロセス
代表データの初期値の決定プロセス
1. 学習データをk-近傍法によって判別
2. 判別の誤りのないデータからランダムで選ぶ
学習プロセス
1. 時刻tにおいて1つのデータ(テスト点)を選択
2. 代表ベクトルの更新
時刻tで選ばれたデータ (x(t),y(t))
x:特徴量、y:ラベル
時刻tにおける代表データ 𝑚1 (t)
代表データのラベル 𝑙 𝑖 (t), i=1,2,…k
6
- 7.
学習アルゴリズム
学習アルゴリズムとしては以下のものがある
1. LVQ1
2. LVQ2.1
3. LVQ3
4. OLVQ1(Optimized-learning rate LVQ1)
7
- 8.
LVQ1 -1
テスト点(x(t),y(t))が入力される
テスト点から最も近い代表ベクトルを c とする
c = 𝑎𝑟𝑔𝑚𝑖𝑛 𝑖 𝑥 − 𝑚 𝑖
このとき
y(t)= 𝑙 𝑐 (t) → 𝑚 𝑐 (t+1) = 𝑚 𝑐 (t) + α(t)(x(t)- 𝑚 𝑐 (t))
y(t)≠ 𝑙 𝑐 (t) → 𝑚 𝑐 (t+1) = 𝑚 𝑐 (t)-α(t)(x(t)- 𝑚 𝑐 (t))
ただし、 0 < α(t) < 1
i≠c → 𝑚 𝑖 (t+1) = 𝑚 𝑖 (t)
8
- 9.
LVQ1 -2
y(t)= 𝑙 𝑐 (t) → 𝑚 𝑖 (t)をx(t)に近づける
y(t)≠ 𝑙 𝑐 (t) → 𝑚 𝑖 (t)をx(t)から遠ざける
9
- 10.
LVQ2.1 -1
LVQ1は1つの代表ベクトルしか更新しなかったが、2つの代表
ベクトルに対して更新を行うアルゴリズムがLVQ2.1
更新の対象
ラベルが違うがテスト点から最も近い代表ベクトル 𝑚 𝑖 (t)
ラベルが同じでテスト点から最も近い代表ベクトル 𝑚 𝑗 (t)
10
- 11.
LVQ2.1 -2
1−𝑤 𝑑𝑖 𝑑 𝑗
s = とし、min( , ) > s なら、以下の更新を行う
1+𝑤 𝑑 𝑗 𝑑𝑖
𝑚 𝑖 (t+1) = 𝑚 𝑖 (t)-α(t)(x(t)- 𝑚 𝑖 (t)) → 遠ざける
𝑚 𝑗 (t+1) = 𝑚 𝑗 (t) + α(t)(x(t)- 𝑚 𝑗 (t)) → 近づける
𝑑𝑗 1−𝑤
左図の場合、 >s= となる
𝑑𝑗 𝑑𝑖 1+𝑤
𝑑𝑖
𝑑𝑖 𝑑𝑗
𝑚𝑗 𝑚𝑖 min( , )≦1であり、 𝑑 𝑗 と𝑑 𝑗 が近
𝑑𝑗 𝑑𝑖
いほど、更新が行われやすくなる。
11
- 12.
LVQ3
LVQ1とLVQ2.1を融合したようなもの
テスト点から近い2つ代表ベクトルを順に𝑚 𝑖 (t), 𝑚 𝑗 (t)とし、以
下のどちらかの条件を満たした場合に更新を行う。
1. li (t) , lj (t)がともにy(t)と同じ
𝑚ℎ (t+1)= 𝑚ℎ (t)+εα(t)(x(t)-𝑚ℎ (t)) ,h=i,j →近づける
2. li (t)≠y(t), lj (t)=y(t)、かつLVQ2.1と同じ条件(テスト点が窓
に入る)の場合
𝑚 𝑖 (t+1) = 𝑚 𝑖 (t)-α(t)(x(t)- 𝑚 𝑖 (t)) → 遠ざける
𝑚 𝑗 (t+1) = 𝑚 𝑗 (t) + α(t)(x(t)- 𝑚 𝑗 (t)) → 近づける
12
- 13.
OLVQ1 -1
LVQ1における α(t) の最適化 → 学習の収束特性の改善
y(t)とli (t)との関係を示す変数を導入する
+1, i=c かつ y(t) = li (t)
𝑠i (t) = -1, i=c かつ y(t) ≠ li (t)
0, i ≠ c
y(t)= 𝑙 𝑐 (t) → 𝑚 𝑐 (t+1) = 𝑚 𝑐 (t) + α(t)(x(t)- 𝑚 𝑐 (t))
y(t)≠ 𝑙 𝑐 (t) → 𝑚 𝑐 (t+1) = 𝑚 𝑐 (t)-α(t)(x(t)- 𝑚 𝑐 (t))
i ≠ c → 𝑚 𝑖 (t+1) = 𝑚 𝑖 (t)
⇔ mi (t+1) = mi (t) + 𝑠i (t)αi (t)(x(t)- 𝑚 𝑖 (t))
13
- 14.
OLVQ1 -2
mi (t+1)= mi (t) + 𝑠i (t)αi (t)(x(t)- 𝑚 𝑖 (t))
= (1-𝑠i (t)αi (t)) 𝑚 𝑖 (t) + 𝑠i (t)αi (t)x(t)
さらに展開していくと、
mi (t+1) = (1-𝑠i (t)αi (t))(1-𝑠 𝑖 (t-1)αi (t-1))𝑚 𝑖 (t)
+ (1-𝑠i (t)αi (t))𝑠 𝑖 (t-1)αi (t-1)x(t-1)
+ 𝑠i (t)αi (t) x(t)
𝑠i (t)𝑠i (t-1)=0のとき、 x(t-1) と x(t) の係数の絶対値が等し
いとし、さらに、 𝑠i =1, 0< α <1 を考慮すると、最終的に
αi(𝑡−1)
αi (𝑡) =
1+si (𝑡)αi (𝑡−1)
14
- 15.
問題点
1. 初期値依存
2. 学習データによる学習の順番にも結果が依存する
15
- 16.
学習ベクトル -入力データ inR
library(class) ; library(mlbench)
dim <- 2 # 入力空間の次元 ; n <- 300 # 学習データ数
smpl <- mlbench.corners(n, d=dim, sd=0.25)
x <- smpl$x ; y <- smpl$classes
size <- 8 # 代表ベクトルの数 ; k <- 1 # 初期化
cd <- lvqinit(x,y, size=size, k=k) ; cd3 <- lvq3(x,y,cd)
# 学習前後の判別境界
gsize <- 100 # グリッドのサイズ
x1 <- seq(min(x[,1]), max(x[,1]), length=gsize)
x2 <- seq(min(x[,2]), max(x[,2]), length=gsize)
xtest <- as.matrix(expand.grid(x1,x2))
yest <- lvqtest(cd, xtest)
yest3 <- lvqtest(cd3, xtest)
cntr <- matrix(match(yest, levels(factor(yest))), gsize, gsize)
cntr3 <- matrix(match(yest3, levels(factor(yest3))), gsize, gsize)
plot(x, col=y, pch=20+as.numeric(y), xlab="x1", ylab="x2",
main="Initial Codebook")
# 代表ベクトル
points(cd3$x, col=cd3$cl, bg=cd$cl,
pch=20+as.numeric(cd$cl),cex=2)
16
- 17.
学習ベクトル -学習前と学習後
# 学習前の境界を表示 # 学習後
for(i in 1:max(cntr)) contour(x1, x2, cntr==i, plot(x, col=y, pch=20+as.numeric(y), xlab="x1",
levels=0.5, lwd=2, lty=1, drawlabels=F, add=TRUE) ylab="x2", main="LVQ3")
points(cd3$x, col=cd3$cl, bg=cd$cl,
pch=20+as.numeric(cd$cl),cex=2)
for(i in
1:max(cntr3))contour(x1,x2,cntr==i,levels=0.5,l
17 wd=2,lty=1, drawlabels=F, add=TRUE)