๋ถ๋ฅ์ ํ๊ท ๋ถ์์ ์ํ ๋ํ์ ์ธ ๋จธ์ ๋ฌ๋ ๊ธฐ๋ฒ์ธ SVM์ ๋ํ ์ ๋ฆฌ
SVM ๊ฐ์
- SVM(Support Vector Machine)์ ์ ํต์ ์ธ ์ด์ง ๋ถ๋ฅ๋ฅผ ์ํ ๊ธฐ๋ฒ ์ค ํ๋๋ก, N ์ฐจ์ ๊ณต๊ฐ์ N-1 ์ฐจ์์ผ๋ก ๋๋ ์ ์๋ ์ดํ๋ฉด(hyper plane)์ ์ฐพ๋ ๋ถ๋ฅ ๊ธฐ๋ฒ.
- ์ดํ๋ฉด์ ์ด๋ค N์ฐจ์ ๊ณต๊ฐ์์ ํ ์ฐจ์ ๋ฎ์ N-1์ฐจ์์ subspace์ ์๋ฏธํ๋ฉฐ ์๋ฅผ ๋ค์ด, 2์ฐจ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๊ฒฝ์ฐ 2์ฐจ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฅํ ์ ์๋ 1์ฐจ์ ์ ์ผ๋ก ์ดํ๋ฉด์ด ๊ฒฐ์ ๋๋ค.
- ๋ ํด๋์ค(๋ฐ์ดํฐ) ์ฌ์ด์ ์กด์ฌํ๋ย โ์ฌ๋ฐฑ(margin)์ ์ต๋ํโ ํ๋ ค๋ ๋ชฉ์ ์ผ๋ก ์ค๊ณ๋จ.
- ๋น์ ํ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ์ปค๋ ํธ๋ฆญ(Kernel Trick)์ ํ์ฉํ์ฌ ๊ณ ์ฐจ์ ๊ณต๊ฐ์ผ๋ก ๋ณํํ์ฌ ๋ถ๋ฅํจ.
SVM์ Decision Rule
๊ฒฐ์ ์ดํ๋ฉด(Decision Hyperplane)
- ๋ฒ์ ๋ฒกํฐ์ ์์์ ์ค์๋ฅผ ์ด์ฉํ๋ฉด n์ฐจ์ ๊ณต๊ฐ์์์ ์ดํ๋ฉด(hyperplane)์ ์์๋ผ ์ ์๋ค.
- SVM์ ๊ฒฐ์ ๊ท์น(Decision Rule) ์ ํ์ต๋ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์๋ก์ด ๋ฐ์ดํฐ ํฌ์ธํธ ๊ฐ ์ด๋ค ํด๋์ค๋ก ๋ถ๋ฅ๋๋์ง๋ฅผ ๊ฒฐ์ ํ๋ ๊ท์น.
- SVM์ ๋ชฉํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ์ ๊ตฌ๋ถํ๋ ๊ฒฐ์ ์ดํ๋ฉด(Decision Hyperplane) ์ ์ฐพ๋ ๊ฒ์ผ๋ก 2์ฐจ์ ๋ฐ์ดํฐ๋ฅผ ์๋ก ๋ค์ด, ์ง์ ์ ๋ฐฉ์ ์์ ์๋์ ๊ฐ๋ค.
- ์ด๋, ๋ ์ดํ๋ฉด์ ๋ฒ์ ๋ฒกํฐ(normal vector) ์ด๊ณ ๋ ๋ฐ์ด์ด์ค(bias)๋ฅผ ์๋ฏธํจ.
- ๋ฐ๋ผ์, ์ดํ๋ฉด ์ง์ ์ ๊ธฐ์ค์ผ๋ก ๋ฒ์ ๋ฒกํฐ ์ ์์์ ๋ฐ์ดํฐ ์ ๋ํด ์ ๊ฐ์ด ํน์ ์์๋ณด๋ค ํฐ์ง ์์์ง๋ฅผ ํ์ธํ์ฌ ํด๋์ค๋ฅผ ๋ถ๋ฅํ ์ ์๋ค.
Margin
- ์ต๋ํํ๋ ค๋ m argin์ ์ ์ํ๊ธฐ ์ ์ ๋จผ์ ์์๋ก 2๊ฐ์ ํํํ ์ง์ ์ ์ ์ํด์ผ ํ๋ค.
- ์ดํ๋ฉด์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ํ(support vector)์ ์ด์ฉํ์ฌ ์ดํ๋ฉด์ ํํํ๊ณ ์์์ ๋งํผ ๋์ผํ๊ฒ ๋จ์ด์ง ๋ ์ง์ ์ ์๋ ์กฐ๊ฑด์ ๋ง์กฑํด์ผ ํ๋ค.
- ๋ ์์์ + ํด๋์ค์ ๋ฐ์ดํฐ, ๋ ์์์ - ํด๋์ค์ ๋ฐ์ดํฐ
- ์ ์์ ์ ๊ทํํ์ฌ ๋จ์ํ๊ฒ ๋ง๋ค๋ฉด ์๋์ ๊ฐ๋ค.
- + ํด๋์ค๋ฅผ +1๋ก, -ํด๋์ค๋ฅผ -1๋ก ๋์ด ํด๋์ค๋ฅผ ๋ํ๋ด๋ ๋ฅผ ํํํ๋ฉด ์๋์ ๊ฐ๋ค.
- ๋ฅผ ์ด์ฉํด ๋ ํํํ ์ง์ ์กฐ๊ฑด์ ํ๋์ ์์ผ๋ก ๋ง๋ค๋ฉด ์๋์ ๊ฐ๋ค. ์ ์ฝ์์ด๋ผ ํ ์ ์๋ค.
- ์ด๋ ๋ ํํํ ์ง์ (์ดํ๋ฉด) ์์ ์๋ ๋ชจ๋ ์ ๋ค์ Support Vector๋ผ ํ๋ค.
- ๋ง์ง์ +์ดํ๋ฉด๊ณผ -์ดํ๋ฉด ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ์๋ฏธํจ. ์ ๊ทธ๋ฆผ์์ ์ง์ ๊ณผ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ์๋ฏธํ๋ฉฐ ๋ง์ง์ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ํ ์ ์๋ค.
- ์ํฌํธ ๋ฒกํฐ ์ ๋ ๊ฐ ํํ์ดํ๋ฉด์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ฐ์ดํฐ ํฌ์ธํธ์ด๋ฉฐ, ๊ฐ๊ฐ ๋ค์์ ๋ง์กฑํ๋ค.
- ์ ๊ณผ ํ๋ฉด ์ฌ์ด์ ๊ฑฐ๋ฆฌ ๊ณต์์ ์ด์ฉํ์ฌ ๊ฒฐ์ ์ดํ๋ฉด๊ณผ ์ํฌํธ ๋ฒกํฐ ์ ๊ฐ๊ฐ์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ฉด ์๋์ ๊ฐ๋ค.
- ๋ฐ๋ผ์, ๋ง์ง(Margin)์ ๋ ์ํฌํธ ๋ฒกํฐ ์ฌ์ด์ ๊ฑฐ๋ฆฌ ์ด๋ฏ๋ก, ์๋์ ๊ฐ๋ค.
Optimization
Linear SVM ์ ์
- SVM์ ๋ชฉ์ ์ ๋ง์ง์ ์ต๋ํํ๋ ๊ฒฝ๊ณ๋ฉด์ ์ฐพ๋ ๊ฒ.
- ์ํ์ ๊ณ์ฐ์ ์ฉ์ดํจ์ ์ํด ๋ง์ง์ ์ ๋ฐ์ ์ ๊ณฑํ ๊ฒ์ ์ญ์๋ฅผ ์ทจํ ๋ค ๊ทธ ์ ๋ฐ์ ์ต์ํํ๋ ๋ฌธ์ ๋ก ๋ฐ๊ฟ ์ ์๋ค.(์ด ์ ๊ณฑ๊ทผ์ ํฌํจํ๊ณ ์๊ธฐ ๋๋ฌธ์ ํ๊ธฐ ์ด๋ ต๋ค)
- ์ ์์ด SVM ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ชฉ์ ์(Objective) ์ด๋ฉฐ, ๋ง์กฑํด์ผํ๋ ์ ์ฝ์(Constraint) ์ ์๋์ ๊ฐ๋ค.
- ์์์ ์ ์๋ ๋ชฉ์ ์๊ณผ ์ ์ฝ์์ด ์ ํ ๋ถ๋ฆฌ๋ฅผ ์ํ Hard Margin SVM ์ต์ ํ ๋ฐฉ๋ฒ์ด๋ฉฐ ๋ชจ๋ ๋ฐ์ดํฐ ํฌ์ธํธ๊ฐ ๊ฒฐ์ ์ดํ๋ฉด์ผ๋ก๋ถํฐ ์ผ์ ๊ฑฐ๋ฆฌ ์ด์ ๋จ์ด์ ธ ์์ด์ผ ํ๋ฏ๋ก, ์์ ํ ์ ํ ๋ถ๋ฆฌ๊ฐ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ ์ ์ฉ๋๋ค.
- Soft Margin SVM์ ์ค์ ๋ฐ์ดํฐ๋ ์๋ฒฝํ๊ฒ ์ ํ ๋ถ๋ฆฌ๊ฐ ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฏ๋ก, ํ์ฉ ์ค์ฐจ๋ฅผ ์ถ๊ฐํ์ฌ ์ต์ ์ ์ดํ๋ฉด์ ๊ตฌํ๋๋ก ์ค๊ณ๋์๋ค.(์๋ฒฝํ ์ ํ ๋ถ๋ฆฌ๊ฐ ๋ถ๊ฐ๋ฅํ ๋ ์ค๋ฅ๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ)
๋ผ๊ทธ๋์ฃผ ํจ์(Lagrangian) ์ ์
- ์ ์ฝ ์กฐ๊ฑด์ ํฌํจํ ์ต์ ํ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ๋ผ๊ทธ๋์ฃผ ์น์๋ฒ(Lagrange Multipliers) ์ ์ฌ์ฉํจ.
- ์ ์ฝ ์กฐ๊ฑด์ ๋ผ๊ทธ๋์ฃผ ์น์ ๋ฅผ ์ฌ์ฉํ์ฌ ๋ผ๊ทธ๋์ฃผ ํจ์๋ฅผ ์๋์ ๊ฐ์ด ๊ตฌ์ฑํ ์ ์๋ค.
- ์ฌ๊ธฐ์, ์ ์์ ์๋๋ฅผ ๋ง์กฑํจ.
- ๋ชฉ์ ํจ์์ ์ ์ฝ ์กฐ๊ฑด์ด ํฌํจ๋์์
- ๋ ๋ผ๊ทธ๋์ฃผ ์น์ (๊ฐ ๋ฐ์ดํฐ ํฌ์ธํธ์ ๋ํด ํ๋์ฉ ์กด์ฌ)
- (KTT* ์กฐ๊ฑด์ ์ํด)
KTT(Karush-Kuhn-Tucker) ์กฐ๊ฑด์ ์ ์ฝ์ด ์๋ ์ต์ ํ ๋ฌธ์ ์ ํด๊ฐ ๋๊ธฐ ์ํ ํ์ ์กฐ๊ฑด์ด๋ฉฐ, ์๋ ์กฐ๊ฑด์ ํฌํจ ํ๋ค.
- ๋ชจ๋ ๋ณ์์ ๋ํ ๋ฏธ๋ถ๊ฐ์ 0์ด๋ค.
- ๋ชจ๋ ๋ผ๊ทธ๋์ฃผ ์น์๊ฐ๊ณผ ์ ์ฝ ์กฐ๊ฑด ๋ถ๋ฑ์์ ๊ณฑ์ 0์ด๋ค.
- ๋ผ๊ทธ๋์ฃผ ์น์๊ฐ์ ์์๊ฐ ์๋๋ค.
- ๋ชฉ์ ํจ์ ๋ฅผ ์ ์ ๋ํด ํธ๋ฏธ๋ถํ์ฌ 0์ผ๋ก ์ค์ ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.(๊ฐ ํธ๋ฏธ๋ถ 0์ด ๋๋ ์ง์ ์์ ์ต์๊ฐ์ ๊ฐ์ง๋ฏ๋ก)
- ์ฆ, ๋ ์ผ๋ถ ๋ฐ์ดํฐ ์ํ(์ํฌํธ ๋ฒกํฐ)๋ค์ ์ ํ ํฉ์ผ๋ก ๋ํ ๋ผ ์ ์๋ค.
- ์ํฌํธ ๋ฒกํฐ๋ ์ธ ๋ฐ์ดํฐ ํฌ์ธํธ๊ฐ ๋๋ค. ๊ฒฝ๊ณ์ ์ ์กด์ฌํ๋ ์ํย โ๋ฅผ ์ ์ธํ๊ณ ๋ชจ๋ ์ํ์์์ย ย ๊ฐ์ 0์ด ๋๋ค.
- ๋ฐ๋ผ์, ๊ฐ๋ง ์๊ฒ๋๋ฉด ๋ฅผ ๊ตฌํ ์ ์๋ค.
๋์ผ ๋ฌธ์ (Dual Problem) ์ ๋ ๋ฐ ํด๊ฒฐ
- ๋ผ๊ทธ๋์ฃผ ํจ์์(1)์ ์ ์ ํธ๋ฏธ๋ถ ์ (2), (3)์ ๋์ ํ์ฌ ์ ๋ฆฌํ๋ฉด, ๋ผ๊ทธ๋์ฃผ ํจ์ ์์ ๋ณํํ ๋ชฉ์ ํจ์์ dual problem(์๋ ํ์)์ ์ ๋ํ ์ ์๋ค.
- ์๋์ ๊ฐ์ด ์ ๋ํ ์ต์ ๋ฌธ์ ๋ก ์ ๋ฆฌ๋๋ค.
- ์ ์ต๋ํ
- ์ ๋ฌธ์ ๋ฅผ ํ์ด ๋ฅผ ๊ตฌํ ์ ์๊ณ , ๋ฅผ ์ (2)์ธ \mathbf w = \sum\limits_{i=1}^{n}\alpha_i y_i \mathbf x_i \tag{2} ์ ๋์ ํ์ฌ ๋ฅผ ๊ตฌํ ์ ์๊ฒ ๋๋ค.
- ๋ฅผ ์๊ฒ๋๋ฉด ์ ์ฝ์ ์ ์ด์ฉํด ์ญ์ ๊ตฌํ ์ ์๊ฒ ๋๋ค.
์ฐธ๊ณ
- Support vector machine - Wikipedia
- ์ํฌํธ ๋ฒกํฐ ๋จธ์ - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์
- Jaejun Yooโs Playground: ์ด์ง ๋ํ์์์ ์ ์ฅ์์ ์ดํดํ๋ Support Vector Machine (1)
- 16. Learning: Support Vector Machines - YouTube
- [ํ์ด์ฌ/๋จธ์ ๋ฌ๋] SVM(Support Vector Machine) ๋ถ๋ฅ - ์ด๋ก : ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
- ์ํฌํธ ๋ฒกํฐ ๋จธ์ (Support Vector Machine) ยท ratsgoโs blog
- [๋ฐ์ดํฐ๋ง์ด๋] Support Vector Machine (SVM)
- [ML] Support Vector Machine(SVM)