2. 前置き K Means 法 凸クラスタリング法 まとめ
自己紹介
名前 森浩太 @KotaMori1
仕事 データ分析・コンサルティング ・マーケティング
専門領域 計量経済学
過去の研究 自殺と報道効果・新聞市場の分析
本日の報告は、私個人の資格で行うものであり、所属する組織
の見解等を代表するものではありません
K Mori ch10 Clustering
3. 前置き K Means 法 凸クラスタリング法 まとめ
モチベーション
クラスタ Cluster
特徴空間上で近接する
データのかたまり
クラスリング Clustering
データの分布状況からク
ラスタを見つける分析
K Mori ch10 Clustering
4. 前置き K Means 法 凸クラスタリング法 まとめ
モチベーション
クラスタ Cluster
特徴空間上で近接する
データのかたまり
クラスリング Clustering
データの分布状況からク
ラスタを見つける分析
1 次元データ
K Mori ch10 Clustering
5. 前置き K Means 法 凸クラスタリング法 まとめ
モチベーション
クラスタ Cluster
特徴空間上で近接する
データのかたまり
クラスリング Clustering
データの分布状況からク
ラスタを見つける分析
1 次元データ
K Mori ch10 Clustering
6. 前置き K Means 法 凸クラスタリング法 まとめ
モチベーション
クラスタ Cluster
特徴空間上で近接する
データのかたまり
クラスリング Clustering
データの分布状況からク
ラスタを見つける分析
1 次元データ
2 次元データ
K Mori ch10 Clustering
7. 前置き K Means 法 凸クラスタリング法 まとめ
モチベーション
クラスタ Cluster
特徴空間上で近接する
データのかたまり
クラスリング Clustering
データの分布状況からク
ラスタを見つける分析
1 次元データ
2 次元データ
K Mori ch10 Clustering
8. 前置き K Means 法 凸クラスタリング法 まとめ
モチベーション
クラスタ Cluster
特徴空間上で近接する
データのかたまり
クラスリング Clustering
データの分布状況からク
ラスタを見つける分析
1 次元データ
2 次元データ
3 次元以上 → 数式で!
K Mori ch10 Clustering
9. 前置き K Means 法 凸クラスタリング法 まとめ
概要
K Mori ch10 Clustering
10. 前置き K Means 法 凸クラスタリング法 まとめ
目次
前置き
K Means 法
凸クラスタリング法
まとめ
K Mori ch10 Clustering
11. 前置き K Means 法 凸クラスタリング法 まとめ
K Means 法
K Means 法
各観測値を、c 個のプロトタイプのいずれかに割り当てる
プロトタイプ数 c は既知とした上で、最適なプロトタイ
プの位置と割り当て方法を推計する
データ {xk}n
k=1. xk ∈ Rd for each k
割り当て {δk}n
k=1. δk ∈ {0, 1}d for each k
δjk =
1 if xk belongs to type j
0 otherwise.
プロトタイプ {pj }c
j=1. pj ∈ Rd for each j
K Mori ch10 Clustering
12. 前置き K Means 法 凸クラスタリング法 まとめ
K Means 法
K Means 法
各観測値を、c 個のプロトタイプのいずれかに割り当てる
プロトタイプ数 c は既知とした上で、最適なプロトタイ
プの位置と割り当て方法を推計する
データ {xk}n
k=1. xk ∈ Rd for each k
割り当て {δk}n
k=1. δk ∈ {0, 1}d for each k
δjk =
1 if xk belongs to type j
0 otherwise.
プロトタイプ {pj }c
j=1. pj ∈ Rd for each j
K Mori ch10 Clustering
13. 前置き K Means 法 凸クラスタリング法 まとめ
K Means 法
K Means 法
各観測値を、c 個のプロトタイプのいずれかに割り当てる
プロトタイプ数 c は既知とした上で、最適なプロトタイ
プの位置と割り当て方法を推計する
データ {xk}n
k=1. xk ∈ Rd for each k
割り当て {δk}n
k=1. δk ∈ {0, 1}d for each k
δjk =
1 if xk belongs to type j
0 otherwise.
プロトタイプ {pj }c
j=1. pj ∈ Rd for each j
K Mori ch10 Clustering
14. 前置き K Means 法 凸クラスタリング法 まとめ
K Means 法
K Means 法
各観測値を、c 個のプロトタイプのいずれかに割り当てる
プロトタイプ数 c は既知とした上で、最適なプロトタイ
プの位置と割り当て方法を推計する
データ {xk}n
k=1. xk ∈ Rd for each k
割り当て {δk}n
k=1. δk ∈ {0, 1}d for each k
δjk =
1 if xk belongs to type j
0 otherwise.
プロトタイプ {pj }c
j=1. pj ∈ Rd for each j
K Mori ch10 Clustering
15. 前置き K Means 法 凸クラスタリング法 まとめ
K Means 法 | 最適化
量子化誤差 割り当てたプロトタイプとデータとの距離
ek ≡ c
j=1 δjk||xk − pj ||2
ここで、|| · || はユークリッドノルム(各要素を自乗
したものの和)。
最適化 量子化誤差の総和を、p, δ について最小化
Min
p,δ
e = Min
p,δ
n
k=1
ek
= Min
p,δ
n
k=1
c
j=1
δjk||xk − pj ||2
K Mori ch10 Clustering
16. 前置き K Means 法 凸クラスタリング法 まとめ
K Means 法 | 一階条件
δk に関する最適化 各 k について、量子化誤差を最小にするタイ
プ j を選択
jk ≡ argmin
j
||xk − pj ||2
(1)
δjk =
1 if j = jk
0 otherwise
(2)
K Mori ch10 Clustering
17. 前置き K Means 法 凸クラスタリング法 まとめ
K Means 法 | 一階条件
pj に関する最適化 各 j に関して、δjk = 1 となる観測値の量子化
誤差の和を最小化する。
j ≡
n
k=1
δjk||xk − pj ||2
これを pj に関して微分してゼロと置く(次項の公式
参照)。
0 =
∂ j
∂pj
= −
n
k=1
2δjk(xk − pj )
これを解いて
pj =
n
k=1 δjkxk
n
k=1 δjk
=
xk ∈ωj
xk
nj
(3)
* (3) は、タイプ内平均となっていることに注意
K Mori ch10 Clustering
18. 前置き K Means 法 凸クラスタリング法 まとめ
補足 | ベクトル微分公式
∂
∂x
||x||2
=
∂
∂x
x x
=
∂
∂x
d
x2
d
=
∂
∂x1
d
x2
d ,
∂
∂x2
d
x2
d , . . . ,
∂
∂xD
d
x2
d
= (2x1, 2x2, . . . , 2xD)
= 2x
K Mori ch10 Clustering
19. 前置き K Means 法 凸クラスタリング法 まとめ
K Means 法 | 逐次的な解法
(1) (2) (3) を連立して解くのは困難なので、逐次的に解く
Step 1 (p1, . . . , pc) を設定
Step 2 δk に関する最適化
jk ≡ argmin
j
||xk − pj ||2
δjk =
1 if j = jk
0 otherwise
Step 3 pj に関する最適化
pj =
n
k=1 δjkxk
n
k=1 δjk
=
xk ∈ωj
xk
nj
Step 4 p j = pj なら終了。そうでなければ、pj ← p j と
して Step2 へもどる。
K Mori ch10 Clustering
20. 前置き K Means 法 凸クラスタリング法 まとめ
K Means 法 | 逐次的な解法
1. 必ず収束する
解法の構造上、ステップを追うごとに目的関数は非増加
目的関数は下に有界
2. 初期値に依存し、大域最適が得られるとは限らない
K Mori ch10 Clustering
21. 前置き K Means 法 凸クラスタリング法 まとめ
K Means 法と混合正規分布
K Means 法 混合正規分布
jk = argminj ||xk − pj ||2
ハードな割り当て(タイプを 1 つだけ
選ぶ)
P(ωj |xk) =
πj ·p(xk |ωj )
c
i=1 πi ·p(xk |ωi )
ソフトな割り当て(各タイプに確率が
割り振られる)
pj =
xk ∈ωj
xk
nj
タイプ内平均
µj =
n
k=1 P(ωj |xk )xk
n
k=1 P(ωj |xk )
タイプごとの加重平均
K Mori ch10 Clustering
22. 前置き K Means 法 凸クラスタリング法 まとめ
K Means 法と混合正規分布
K Means 法 混合正規分布
jk = argminj ||xk − pj ||2
ハードな割り当て(タイプを 1 つだけ
選ぶ)
P(ωj |xk) =
πj ·p(xk |ωj )
c
i=1 πi ·p(xk |ωi )
ソフトな割り当て(各タイプに確率が
割り振られる)
pj =
xk ∈ωj
xk
nj
タイプ内平均
µj =
n
k=1 P(ωj |xk )xk
n
k=1 P(ωj |xk )
タイプごとの加重平均
混合正規分布において Σ = σ2Id , σ → 0 とすると、割り当てが
ハードになっていく
K Mori ch10 Clustering
34. 前置き K Means 法 凸クラスタリング法 まとめ
凸クラスタリング法
凸クラスタリング法
混合正規分布をベースとする
すべての観測値をプロトタイプとして(i.e. c = n)、クラ
スタ i の中心を µi = xi と定める
Σi = σ2Id として、σ は既知として与える。そのため、分
布パラメータの更新がない
各観測値をクラスタへソフトに(確率的に)割り当てる
推計の結果、一部のクラスタだけが「生き残る」。つまりク
ラスタの数が結果として得られる
データが十分大きく密であれば、観測値中にクラスタの中心
と近いものが存在するので、µi = xi の仮定が正当化される
K Mori ch10 Clustering
35. 前置き K Means 法 凸クラスタリング法 まとめ
凸クラスタリング法 | 目的関数
対数尤度関数
J(π) ≡
n
k=1
log
n
i=1
πi fik
fik ≡ p(xk|µi , σ) = (2πσ2
)−d/2
exp −
1
2σ2
||xk − xi ||2
fik は定数! 目的関数は π のみに依存する
最適化問題
Max
π
J(π)
subject to:
n
i=1
πi = 1
0 ≤ π ≤ 1
K Mori ch10 Clustering
36. 前置き K Means 法 凸クラスタリング法 まとめ
凸クラスタリング法 | 一階条件
ラグランジュ関数
L(π) ≡
n
k=1
log
n
i=1
πi fik + λ(1 −
n
i=1
πi )
πj に関する一階条件
n
k=1 fjk
n
i=1 πi fik
= λ (4)
両辺に πj をかけてから、j ついて合計
n
k=1
n
j=1 πj fjk
n
i=1 πi fik
= λ
n
j=1
πj
n
k=1
1 = λ
n = λ
K Mori ch10 Clustering
37. 前置き K Means 法 凸クラスタリング法 まとめ
凸クラスタリング法 | 逐次解法
(4) に代入し、の両辺に πj をかけて整理すると、一階条件が得ら
れる。
πj = n−1
n
k=1 πj · fjk
n
i=1 πi · fik
解析的には解けないが、逐次方法により解くことができる
Step 1 π の初期値を与える
Step 2 π を更新する
πj = n−1
n
k=1 πj · fjk
n
i=1 πi · fik
Step 3 J(π) の増分が閾値よりも少なければ終了する。
そうでなければ Step 2 へ戻る
K Mori ch10 Clustering
38. 前置き K Means 法 凸クラスタリング法 まとめ
凸計画 | 凸関数 | 凸集合
凸計画 | Convex Programming
定義 凸関数を凸集合上で最小化する問題を凸計画と呼ぶ
性質 凸計画では、任意の局所最適解は大域最適解でもある
凸関数 | Convex Function
任意の α ∈ [0, 1] について
f (αx1 + (1 − α)x2) ≤ αf (x1) + (1 − α)f (x2)
となる関数を凸関数と呼ぶ
凸集合 | Convex Set
集合の任意の要素 x1, x2 と任意の α ∈ [0, 1] について、αx1 +
(1 − α)x2 もその集合の要素となるような集合を凸集合と呼ぶ
K Mori ch10 Clustering
39. 前置き K Means 法 凸クラスタリング法 まとめ
凸計画 | 凸関数 | 凸集合
凸関数 非凸関数
凸集合 非凸集合
K Mori ch10 Clustering
40. 前置き K Means 法 凸クラスタリング法 まとめ
凸クラスタリングは凸計画
凸クラスタリングは凸計画であり、したがって任意の局所最適
解は大域最適解になる
Max
π
J(π) =
n
k=1
log
n
i=1
πi fik
subject to:
n
i=1
πi = 1
0 ≤ π ≤ 1
証明のステップ
1. Max J(π) は、Min − J(π) としてもよい
2. −J(·) は凸関数
3. 実行可能集合は凸集合
K Mori ch10 Clustering