K-means has two steps: updating centroids given assignments, and updating assignments given centroids. We note that the latter is more expensive while the former is a simple averaging. Hence, we update the centroids after each iteration and update the assignments once every t iterations.
์ถ์ฒ) Compact3D: Smaller and Faster Gaussian Splatting with Vector Quantization
๋ ผ๋ฌธ์ ์ฝ๋ค๊ฐ ์ ๊ทธ๋ ์ง? ์ดํด๊ฐ ์ ์๋๋ ๋ถ๋ถ์ด ์์ด์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.
K-means Clustering์์ centroid update์ assignment update๊ฐ ๋ฌด์์ ์๋ฏธํ๋๊ฐ?
์ผ๋จ K-means Clustering์ ๋ํด์ ์ ๋ฆฌํด๋ณด์.
K-means Clustering
๊ฐ์ฅ ๊ฐ๋จํ๋ฉด์๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํด๋ฌ์คํฐ๋ง ๊ธฐ๋ฒ์ผ๋ก, ์ฌ์ฉ์๊ฐ ์ง์ ํด์ค K๊ฐ์ ํด๋ฌ์คํฐ๋ก ๋๋๋ ๋ฐฉ๋ฒ์ผ๋ก ๋์ํ๋ค.
- K๊ฐ์ ํด๋ฌ์คํฐ ์ค์ฌ์ (centroid)์ ๋๋คํ๊ฒ ์ ํ
- ๊ฐ ๋ฐ์ดํฐ ํฌ์ธํธ๋ค์ ๊ฐ์ฅ ๊ฐ๊น์ด ํด๋ฌ์คํฐ ์ค์ฌ์ ์ ํ ๋น
- ํ ๋น๋ ๋ฐ์ดํฐ ํฌ์ธํธ๋ค์ ํ๊ท ๊ฐ์ ๊ณ์ฐํ์ฌ ์๋ก์ด ํด๋ฌ์คํฐ ์ค์ฌ์ ์ ์ ๋ฐ์ดํธ
- 2-3๋จ๊ณ๋ฅผ ๋ฐ๋ณต. ํด๋ฌ์คํฐ ํ ๋น์ด ๋ณํ์ง ์๊ฑฐ๋, ๋ฏธ๋ฆฌ ์ ํ ๋ฐ๋ณต ํ์์ ๋๋ฌํ๋ฉด ์๊ณ ๋ฆฌ์ฆ์ด ์ข ๋ฃ
ํด๋ฌ์คํฐ์ centroid๋ฅผ updateํ๋ ๊ณผ์ ๊ณผ
ํ ๋น๋ ํด๋น ํฌ์ธํธ๋ค์ ์๋ฏธํ๋ assignment๋ฅผ updateํ๋ ๊ณผ์ ์ 2-3๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ๋ฉด์ ์งํ๋๋ค.
๊ฐ ๋จ๊ณ์ ๋ํด ์์ธํ ์ค๋ช ํด๋ณด์.
Centroid Update
๊ฐ ํด๋ฌ์คํฐ์ ์ํ ๋ฐ์ดํฐ ํฌ์ธํธ๋ค์ ํ๊ท ์ ๊ณ์ฐํ์ฌ ์๋ก์ด centroid๋ฅผ ์ฐพ๋ ๊ณผ์
์ด ๊ณผ์ ์ ์ฌ์ค ํด๋ฌ์คํฐ์ ์ํ๋ ๋ฐ์ดํฐ ํฌ์ธํธ๋ค์ ์ขํ๋ฅผ ํ๊ท ๋ด๋ ๊ณผ์ ์ด๊ธฐ ๋๋ฌธ์ ๋น๊ต์ ๊ฐ๋จํ๋ค.
๋ฐ์ดํฐ ํฌ์ธํธ๋ค์ ๊ฐ์๋ฅผ $N$์ด๋ผ๊ณ ํ๋ค๋ฉด, ์๊ฐ ๋ณต์ก๋๋ $O(N)$์ด๊ธฐ ๋๋ฌธ์ด๋ค.
Assignment Update
๊ฐ ๋ฐ์ดํฐ ํฌ์ธํธ๋ค์ ๊ฐ์ฅ ๊ฐ๊น์ด centroid์ ํ ๋นํ๋ ๊ณผ์
์ด๋ ๋ชจ๋ ๋ฐ์ดํฐ ํฌ์ธํธ๋ค์ ๋ํด ๋ชจ๋ centroid๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๊ณ ,
๊ฐ์ฅ ๊ฐ๊น์ด centroid๋ฅผ ์ฐพ๋ ๊ณผ์ ์ ํฌํจํ๋ฏ๋ก ๊ณ์ฐ ๋น์ฉ์ด ๋งค์ฐ ๋๋ค.
๋ฐ์ดํฐ ํฌ์ธํธ๋ค์ ๊ฐ์๋ฅผ $N$, centroid์ ๊ฐ์๋ฅผ $K$๋ผ๊ณ ํ๋ค๋ฉด
์ด๋๋ ๊ฐ ๋ฐ์ดํฐ ํฌ์ธํธ๋ค์ ๋ํด K๊ฐ์ ์ค์ฌ์ ๊น์ง ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํด์ผ ํ๋ฏ๋ก $O(N*K)$์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
์ฆ, 3DGS ๋ชจ๋ธ์ ๊ฐ์ฐ์์์ ๊ฐ์์ธ $N$์ด ์๋ฐฑ๋ง๊ฐ์ด๊ธฐ ๋๋ฌธ์ Assignment Update๊ฐ ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ Centroid Update๋ ๋งค iter๋ง๋ค ํ๋๋ผ๋, Assignment Update๋ ํน์ iter๋ง ์ํํ๋๋ก ์ค๊ณํ์๋ค.
์ฌ๊ธฐ์ ๊ทธ๋ฐ ์๋ฌธ์ ๊ฐ์ง ์ ์๋ค.
๋งค iteration๋ง๋ค ์๋ฒฝํ K-means Clustering์ด ์ํ๋๋๊ฑด ์๋ ๊ฒ ๊ฐ๋ค์? ์ ํํ๋ค!
Assignment Update๋ฅผ ์ํํ์ง ์๊ณ Centroid Update๋ง ์ํํ๋ iteration์์๋ ์ต์ ํ๋ ๊ฒฐ๊ณผ๋ ์๋ ๊ฒ์ด๋ค.
์ด๋ ๊ณ์ฐ ๋น์ฉ์ ์ค์ด๊ธฐ ์ํ ํํ์ ์ผ๋ก, Clutering ์ ํ๋์ ๊ณ์ฐ ๋น์ฉ๊ฐ์ ๊ท ํ์ ๋ง์ถ๋๋ฐ ์ค์ํ ์ญํ ์ ํ๋ค.
์ฐธ๊ณ ๋ธ๋ก๊ทธ
[๊ธฐ๊ณํ์ต] k-means ํด๋ฌ์คํฐ๋ง - ์ต์ ์ k๊ฐ ํ์
K-means ์๊ณ ๋ฆฌ์ฆ K-means ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ฅ ๊ฐ๋จํ๋ฉด์๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํด๋ฌ์คํฐ๋ง ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์ ๋๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ์ดํฐ๋ฅผ K๊ฐ์ ํด๋ฌ์คํฐ๋ก ๋๋๋ ๋ฐฉ๋ฒ์ผ๋ก ๋์ํฉ๋๋ค. K-means ์๊ณ ๋ฆฌ
gsbang.tistory.com
https://yoonschallenge.tistory.com/559
๋ชจ๋๋ฅผ ์ํ ๋จธ์ ๋ฌ๋ ๊ณผ์ 2 - k means ์งํ, ๊ณ์ฐ
[๊ณผ์ ๋ด์ฉ]2์ฐจ์ ํน์ง ๊ณต๊ฐ ์์์ ๋ค์๊ณผ ๊ฐ์ด 6๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ก์ ๋,(–1, 1), (0, 0.5), (1, 1), (–1, –0.5), (0, –1), (1, –0.5)์ด ๋ฐ์ดํฐ๋ค์ K-means ํด๋ฌ์คํฐ๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ
yoonschallenge.tistory.com