generative vs dicriminative model
8 1 Generative vs Discriminative Models
https://youtu.be/YQClUDd9ff4
(ML 1.5) Generative vs discriminative models
https://youtu.be/oTtow2Ui8vg
7 2018 05 09 Data Science Generative Vs Discriminative Models
https://youtu.be/gwV7spVO5Z0
generative์์๋ ์ผ๋จ ํ๋ฅ ๋ฐ๋ํจ์๋ฅผ ๊ตฌํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ์ด์ฉํด์ ๊ฐ ์ง์ ์ ํ๋ฅ ๊ฐ์ ์ป๊ฒ ๋๋ค.
discriminative๋ ์์๊ฐ๊ณผ ์ค์ ๊ฐ๊ณผ์ ์์ค์ ๋น๊ตํด์ ๊ฐ์ฅ ์์ค์ด ์ ์ ๋ชจ๋ธ์ ์ฐพ์๊ฐ๋ค.
Machine Learning interview questions-what is difference between generative and discriminative model
https://youtu.be/uhRPeyzTZ9o
https://m.blog.naver.com/PostView.nhn?blogId=2feelus&logNo=221078340870&proxyReferer=https%3A%2F%2Fwww.google.com%2F
Discriminative Learning Algorithms
๋จธ์ ๋ฌ๋์ ย ๋ถ๋ฅ ์๊ณ ๋ฆฌ๋ฌ์ ๋ค์๊ณผ ๊ฐ์ด ํ์ด์ ์ค๋ช
ํ ์ ์๋ค.
์ด๋ค ์
๋ ฅ๊ฐ(input) x๊ฐ ์ฃผ์ด์ก์๋ ๊ทธ ๊ฒฐ๊ณผ๊ฐ(label)์ด y์ผ ํ๋ฅ ์ ์์๋ด๋ ๊ฒ
=> x๋ผ๋ ๊ฐ๋ค์ด ์ถฉ๋ถํ ์๋ฏธ์๋ ๋ฐ์ดํฐ์ผ๋ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ย y๊ฐ 0์ผ์ง 1์ผ์ง๋ฅผ ํ๋ฅ ์ ์ผ๋ก ์์ธก
=> ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ตฌ๋ถ์ ์ ์ฐพ์๋ด๋ ๊ฒ์ด ์ค์ํ๋ค.
์ด๋ ๊ฒ ์
๋ ฅ๊ฐ๊ณผ ์ถ๋ ฅ๊ฐ์ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ์ํค๋ ๋ฐฉ์์ Discriminative(๋ณ๋ณ) Algorithm์ด๋ผ๊ณ ํ๋ค.
Discriminative๋ฐฉ์์ ๋จธ์ ๋ฌ๋์ ๋ค์์ ๊ณผ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
1. ํน์ ์
๋ ฅ๊ฐX์ ๋ํ ์กฐ๊ฑด๋ถ ํ๋ฅ ๋ถํฌ๋ฅผ(Conditional Probability Distribution) ๋ง๋ค์ด๋ธ๋ค.
=> ์กฐ๊ฑด๋ถ ํ๋ฃฐ ๋ถํฌ๋ ์
๋ ฅ๊ฐ x๊ฐ ํน์ ๊ฐ์ด๋ผ๋ ์กฐ๊ฑด์ผ๋ก ์ฃผ์ด์ง๋์ Y๊ฐ์ ๋ถํฌ๋๋ฅผ ๊ธฐ์ ํ๋ ๋ฐ์ดํฐํ์์ด๋ค.
2. ์กฐ๊ฑด๋ถ ํ๋ฅ ๋ถํฌ์ ๊ทผ๊ฑฐํด์ x input๊ณผ y label(output)๋ก ๋ฒกํฐ๋ฅผ ๋ง๋ค์ด๋ธ๋ค.
3. x๊ฐ๋ค์ ์ฑ์ง(๊ฒฐ๊ณผ๊ฐ, ์ฆ y๊ฐ)์ด 0์ธ ๊ฒ ๋ค๊ณผ 1์ธ ๊ฒ๋ค์ ์ ๊ตฌ๋ถํ ์ ์๋ ์ (์ง์ ํน์ ๊ณก์ , decision boundary)์ ๋ง๋ค์ด๋ธ๋ค.
4. ๋ง๋ค์ด์ง ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์๋ก์ด ๋ฐ์ดํฐ(x')๊ฐ ์
๋ ฅ๋์์๋ ์ ์ผ๋ก๋ถํฐ ์ ํน์ ์์ ๋ฐฉํฅ์ผ๋ก์ ๊ฑฐ๋ฆฌ๋ฅผ ์ฌ์ด ํ๋ฅ ์ ๊ตฌํ๋ค.
๊ทธ๋ฆผ์ผ๋ก ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.( ๋ชจ๋ ์๋ค์ x๋ฅผ ์๋ฏธ, ๋
ธ๋/ํ๋์ y=0/y=1์ ์๋ฏธ, ๊ณก์ ์ ๊ตฌ๋ถ์ ์ ์๋ฏธ, ์ธ๋ชจ๋ ์๋ก์ด ์
๋ ฅ์, distant๋ ์ ๋ถ์ผ๋ก๋ถํฐ ์/์์ ๊ฑฐ๋ฆฌ๋ฅผ ์๋ฏธ)
๋ํ์ ์ธ ๋ฐฉ์์ด Logistic Regression์ด๋ค. ย ๊ทธ ์ธ์๋ Conditional Random Field, Support Vector Machine, Linear Regression, Neural Network ๋ฑ์ ์๊ณ ๋ฆฌ์ฆ๋ค์ด ์๋ค.
๋ฐ์ดํฐ๊ฐ ์ถฉ๋ถํ ๊ฒฝ์ฐ ์ข์ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋ค.
๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํ๋๋ฐ ๋ชฉํ๋ฅผ ๋๊ณ ์์ผ๋ฏ๋ก, ๋ฐ์ดํฐ๊ฐ ์ค์ ์ด๋ค ๋ชจ์ต์ธ์ง ๋ณธ์ง์ ์ดํดํ๊ธฐ๋ ์ด๋ ต๋ค.
Generative Learning Algorithms
๊ทธ๋ฐ๋ฐ ์ด๋ฌํ Discriminative ๋ฐฉ์๊ณผ๋ ๋ค๋ฅธ ๋ฐฉ์์ ๋ถ๋ฅ ์๊ณ ๋ฆฌ๋ฌ์ด ์๋ค. ๊ตฌ๋ถํด๋ด๋ ๊ฒ์ ๋์ด์ ๋ถ๋ฅ ์นดํ
๊ณ ๋ฆฌ์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ์์ฑํด๋ด๋ ๋ฐฉ์์ด๋ค.
์์ฑ๋๋ ์
๋ ฅ๊ณผ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ ๋ถ๋ฅ ํด๋์ค๋ณ๋ก ํน์ ํ ํต๊ณ์ ๋ถํฌ๋ฅผ ๋ฐ๋ฅธ๋ค๊ณ ๊ฐ์ ํ๋ ๋ฐฉ์์ด๋ค.
๋ค์๊ณผ ๊ฐ์ด ํ์ด์ ์ค๋ช
ํ ์ ์๋ค.
=> ย ์
๋ ฅ๊ฐ x์ ๊ฒฐ๊ณผ๊ฐ(๋ผ๋ฒจ)y๊ฐ ์ฃผ์ด์ง๋, ย ์ด๋ค์ ์ผ์ ํ ๋ถํฌ ๊ท์น์์์ ์กด์ฌํ๋ค. ๊ทธ ๋ถํฌ ๊ท์น์ ๋ถ๋ฅ ํด๋์ค๋ง๋ค ๋ค๋ฅด๋ค.
=> ์ด๋ฌํ ๋ถํฌ ๊ท์น์ Normal Distribution๋ฑ์ ํต๊ณ์ ์ธ ๋ฐฉ๋ฒ๋ก ์ ๋ฐ๋ฅธ๋ค.
=> ย ๋ถํฌ๊ท์น์ ์์์ ์ผ๋ก๋ ๊ฒฐํฉ ํ๋ฅ ๋ถํฌ - p( x , y) ย ๋ก ํํํ๋ค. ( ๊ฒฐํฉ ํ๋ฅ ๋ถํฌ- joint probability distribution )
=> ์ค์ ๋ก ๋ถ๋ฅ์ ย ํ์ํ ์ฌํํ๋ฅ p ( y | x)์ p(x,y)๋ก ๋ถํฐ ์ ๋ํ ์ ์๋ค. (๋ณ๊ฒฝ๊ณผ์ ์ ์๋ ๋ถ๋ก1์ )
=> ํต์ฌ์ ์นดํ
๊ณ ๋ฆฌ๋ณ๋ก ย ๋ถํฌ๊ท์น์ ํํํ๋ ย ํ๋ฅ ๋ถํฌ ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ๋ค์ ์ฐพ์ ๋ด๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ ์
๋ ฅ๊ฐ๊ณผ ์ถ๋ ฅ๊ฐ ์ฌ์ด์ ๋ถํฌ๊ท์น์ ๊ฐ๋
์ ์ ์ฉํ ๋ฐฉ์์ Generative(์์ฑ) Algorithm์ด๋ผ๊ณ ํ๋ค.
Generative๋ฐฉ์์ ๋จธ์ ๋ฌ๋์ ๋ค์์ ๊ณผ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
1. ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ๊ฒฐ๊ณผ๊ฐ์ ์ด์ฉํด ๋ชจ๋ x์ ๋ชจ๋ y์ ๋ํด ๊ฒฐํฉ ํ๋ฅ ๋ถํฌ (Joint Probability Distribution)๋ฅผ ๋ง๋ ๋ค.
2. ๊ฒฐํฉํ๋ฅ ๋ถํฌ๋ก ๋ถํฐ ์ด๋ค ํ๋ฅ ๋ถํฌ๋ชจ๋ธ์ด ๋ฐ์ดํฐ ๋ถํฌ๋ชจ๋ธ์ ์ ํํ์ง ์ธก์ (estimation)ํ๋ค. (์ด๋ ค์ด ๊ณผ์ )
3. ์ธก์ ํด๋ธ ํ๋ฃฐ ๋ถํฌ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ์ฌํํ๋ฅ ์ ์์๋ผ์ ์๋ค.
p(y|x) = ย p(x|y) * p(y) / p(x)
์ฌํ ํ๋ฅ = ๊ฒฐํฉํ๋ฅ (p(x,y)) ย / p(x) -
4.์ฆ ย x๊ฐ ์ฃผ์ด์ง ๊ฒฝ์ฐ, y์ ํ๋ฅ ์ ์์ธกํ๋ ค๋ฉด, ย x,y์ ๋ํ ๊ฒฐํฉํ๋ฅ ๋ถํฌ๊ณต์(๋ชจ๋ธ)๊ณผ x์ ํ๋ฅ (๊ฒฝ๊ณํ๋ฅ )์ ์๋ฉด ๊ตฌํ ์ ์๋ค.
๊ทธ๋ฆผ์ผ๋ก ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. (์์ ์๋ค์ x๋ฅผ ์๋ฏธ, ๋
ธ๋/ํ๋์ y=0/y=1์ ์๋ฏธ, ์ธ๋ชจ๋ ์๋ก์ด ์
๋ ฅ์, ํฐ ํ์์ ํ๋ฅ ๋ถํฌ๋ฅผ ์๋ฏธ)
๋ํ์ ์ธ ๋ฐฉ์์ Naive Bayes๊ฐ ์์ผ๋ฉฐ ์ด์ธ์๋ Gaussian discriminant Analysis(GDA), Gaussian Mixture Model(GMM), Hidden Markov Model(HMM), Latent Dirichlet Allocation(LDA), Restricted Boltzmann machine(RBM), Generative Adversarial Network(GAN)๋ฑ์ด ์๋ค.
Naive Bayes์ ๊ฒฝ์ฐ์๋ ์ฃผ์ด์ง ๊ด์ธก๋ฐ์ดํฐ ๊ฒฐํฉํ๋ฅ ๋ถํฌ๋ฅผ ํตํด ํ๋ฅ ๋ชจ๋ธ๋ก ๋ง๋ค์ด๋ด๊ธฐ๋๋ฌธ์ Generative Model์ด๋ค.
๋ฐ์ดํฐ ์
์ด ์ ์ด๋ ํ ๋งํ๋ค.
๋ฐ์ดํฐ ์์ฒด์ ํน์ฑ์ ํ์
ํ๊ธฐ์ ์ข๋ค.
๋ฐ์ดํฐ๋ฅผ ์์ฑํด ๋ด์ด ์๋ก์ด ๊ฒฐ๊ณผ๋ฌผ์ ์ป์ด๋ผ์ ์๋ค.
๋ฐ์ดํฐ๊ฐ ๋ง์ ๊ฒฝ์ฐ, Discriminative์ ๋นํด ์ฑ๋ฅ์ด ๋จ์ด ์ง์ ์๋ค.
๊ฒฐํฉํ๋ฅ ๋ถํฌํ ์ ์กฐ๊ฑด๋ถํ๋ฅ ๋ถํฌํ
์๋๋ ์
๋ ฅ๊ฐ X๊ฐ 0 ~ 2์ ๊ฑธ์ณ์ ์ด์ฐ๋ถํฌํ๊ณ , ๊ฒฐ๊ณผ๊ฐ Y๊ฐ 0~2์ ๊ฒฐ์ณ์ ์ด์ฐ๋ถํฌํ ๋ ์ ๊ฒฐํฉํ๋ฅ ๊ณผ ์กฐ๊ฑด๋ถ ํ๋ฅ ์ ๋น๊ตํ ๊ฒ์ด๋ค.
๋ฌธ์ ๋ฅผ ํตํด์ ๊ฒฐํฉํ๋ฅ ๊ณผ ์กฐ๊ฑด๋ถํ๋ฅ ๊ฐ์ ๋น๊ต๋ฅผ ํด๋ณด์.
๊ฒฐํฉํ๋ฅ ๋ถํฌํ(Joint Probability Distribution)
์กฐ๊ฑด๋ถํ๋ฅ ๋ถํฌํ(Conditional Probability Distribution)
X๊ฐ 1๋ก ์ฃผ์ด์ก์๋, Y๊ฐ 1์ผํ๋ฅ ์ 0.8๋ก์ ๋ค๋ฅธ Y class๋ค(0,2)์ ๋นํด์ ๊ฐ์ฅํ๋ฅ ์ด ๋๋ค. ย (checksum์ด 0.30์์ 1.0์ผ๋ก ๋ฐ๋๊ฒ์ ํ์ธ)
์ฆ x๊ฐ 1์ผ๋ ์์ธก๊ฐ์ 1์ด๋ค. ์์์ ๋ค์๊ณผ ๊ฐ๋ค. argmax๋ ์
๋ ฅ๊ฐ์ค์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ ํํ๋ผ๋ ์๋ฏธ์ด๋ค.
class = argmax( P(Y|X=1) ) = 1
๋ถ๋ก1) ๋ฒ ์ด์ฆ๋ฃฐ์ ๋ฐ๋ผ ๊ฒฐํฉํ๋ฅ ์์ ์ฌํํ๋ฅ ๋ก ๋ณ๊ฒฝ๋๋ ๊ณผ์
=> p(x,y) = p(y|x) * p(x) ย ๋ฒ ์ด์ฆ๋ฃฐ์ ๋ฐ๋ผ, ๊ฒฐํฉํ๋ฅ ์ ย x(input data)๊ฐ y(label) ์ผ๋์ ์ฌํ ํ๋ฅ (posterior)๊ณผ ย x์ ๊ฒฝ๊ณํ๋ฅ ์ ๊ณฑ์ผ๋ก ํํํ ์ ์๋ค.
=> p(x,y) = p(x|y) * p(y) ย ๋ฒ ์ด์ฆ๋ฃฐ์ ๋ฐ๋ผ, ๊ฒฐํฉํ๋ฅ ์ ย y(label)๊ฐ ์ฃผ์ด์ก์๋ ย x(input) ์ผ๋์ ๊ฐ๋ฅ๋(likelihood)์ ย y์ ์ฌ์ ํ๋ฅ (prior)์ ๊ณฑ์ผ๋ก ํํํ ์ ์๋ค.
=> p(x,y) = p(y|x) * p(x) = p(x|y) * p(y) ๋ผ๋ ๋ฒ ์ด์ฆ ํ๋ฅ ๊ณต์์ ๋ฐ๋ผ, p(y|x) = ย p(x|y) * p(y) / p(x) ๋ก ํํํ ์ ์๋ค.
=> p(y|x) = p(x|y) * p(y) / p(x) .
์ฆ ์
๋ ฅ๊ฐ x๊ฐ ์ฃผ์ด์ง๋์ ์ฌํํ๋ฅ ์ ๋ผ๋ฒจ y ๊ฐ ์
๋ ฅ๊ฐ x ์ผ ๊ฒฝ์ฐ์ ๊ฐ๋ฅ๋์ ๋ผ๋ฒจ y ์ ์ฌ์ ํ๋ฅ ์ ๊ณฑํ๊ฒ์ x ์ผ๊ฒฝ์ฐ์ ๋ชจ๋ ๊ฒฝ๊ณํ๋ฅ ๋ก ๋๋๊ฒ์ด๋ค.
Open AI์ Generative Model - "What I Cannot Create, I do not understand"(๋ง๋ค์ง ๋ชปํ๋ฉด ์ดํดํ์ง ๋ชปํ๊ฑฐ์ผ) - https://blog.openai.com/generative-models/
Andrew Ng์ ํ์ค๋ถํฌ๋ฅผ ์ด์ฉํ Generative Learning algorithms ย - http://cs229.stanford.edu/notes/cs229-notes2.pdf
Wikipedia ๋ฒ ์ด์ฆ ํ๋ฅ ๋ก -https://ko.wikipedia.org/wiki/%EB%B2%A0%EC%9D%B4%EC%A6%88_%ED%99%95%EB%A5%A0%EB%A1%A0
๊ฒฐํฉํ๋ฅ ๋ถํฌํ๊ณผ ์กฐ๊ฑด๋ถ ํ๋ฅ ๋ถํฌํ์ ๊ณ์ฐ - https://onlinecourses.science.psu.edu/stat414/node/116
์๋ฏธ์ ์์กด ๋งํฌ ํ ํฝ ๋ชจ๋ธ์ ์ด์ฉํ ์๋ฌผํ ์ฝ์ด ์ค์์ฑ ํด์ - http://kiise.or.kr/e_journal/2014/9/JOK/pdf/07.pdf