[Day 10] Math for AI - Data visualization & Probability theory โ ก
๐ Data visualization - graphic tools
๐ฅ matplotlib
- ๋ํ์ ์ธ ์๊ฐํ ๋๊ตฌ๋ก ๋ค์ํ graph์ง์๊ณผ pandas ์ฐ๋
- pyplot ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ ํ์(flush ๋๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด๋ก ๋ค๋ฃจ๊ธฐ ํ๋ฌ)
- conda install matplotlib -> import matplotlib as plt
- graph๋ ์๋ figure ๊ฐ์ฒด์ ์์ฑ๋๊ณ figure์์ axes๋ก ๊ตฌ์ฑ๋๋๋ฐ ์ฌ๋ฌ๊ฐ์ axes๋ฅผ ์์ฑํ ์ ์์
- ๋จ์ : argument๋ฅผ kwargs๋ก ๋ฐ๊ณ ๋ ๊ณ ์ ๋ argument์์ด ํ์ธ์ด ์ด๋ ค์.
- color: float:ํ๋ฐฑ, RGB color, predefined color ์ฌ์ฉ
- line style: dashed, dotted ๋ฑ์ด ์กด์ฌํ๊ณ , ํ์ํ ๋ ์ฐพ์์ฐ์!
- title: plot์์ title์ ๋ง๋ค์ด ์ค(latex ํ์ ์ ํํ๋ ๊ฐ๋ฅ - ์์ ํํ ๊ฐ๋ฅ)
- legend: ๋ฒ๋ก ํ์ํจ, loc์์น ๋ฑ ์์ฑ ์ง์
- grid & xylim: graph ๋ณด์กฐ์ ์ ๊ธ๋ grid์ xy์ถ ๋ฒ์ ํ๊ณ๋ฅผ ์ง์
๐ฅ matplotlib graph
- scatter(์ฐ์ ๋): marker - scatter ๋ชจ์ ์ง์ / s - ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ์ง์ (๋ฐ์ดํฐ์ ํฌ๊ธฐ ๋น๊ต ๊ฐ๋ฅ)
- bar chart: ์ค์ ์ผ๋ก ์์ด๋ ์๋ก ์๋ ๊ทธ๋ํ๊ฐ ๊ฐ๋ฅ
- histogram(๋ถํฌ ์ฐจํธ), boxplot ๋ฑ์ ์ข ๋ฅ๊ฐ ์์
๐ฅ seaborn: ํต๊ณ์ ๋ฐ์ดํฐ ์๊ฐํ(Statistical data visualization)
- matplotlib๋ฅผ ์ข ๋ ์ฝ๊ฒํ๊ธฐ ์ํด ์ฌ์ฉ
- ๋ณต์กํ ๊ทธ๋ํ๋ฅผ ๊ฐ๋จํ๊ฒ ๋ง๋ค ์ ์๋ wrapper(๊ฐ๋จ ์ฝ๋ + ์์ ๊ฒฐ๊ณผ)
- Basic: matplotlib์ ๊ฐ์ ๊ธฐ๋ณต์ ์ธ plot์ผ๋ก ์์ฌ์ด ์ค์ ์ผ๋ก ๋ฐ์ดํฐ ์ฐ์ถ
- lineplot, scatterplot, countplot, regplot(hue - ์นดํ ๊ณ ๋ฆฌ ๋ณ data ๋ณด๋ ๊ฒ ๊ฐ๋ฅ), FacetGrid ๋ฑ์ด ์กด์ฌ
- conda install seaborn -> import seaborn as sns
๐ ํต๊ณํ ๋ง๋ณด๊ธฐ
- ํต๊ณ์ ๋ชจ๋ธ๋ง์ ์ ์ ํ ๊ฐ์ ์์์ ํ๋ฅ ๋ถํฌ๋ฅผ ์ธก์ (inference)ํ๋ ๊ฒ์ด ๋ชฉํ์ด๋ฉฐ, ๊ธฐ๊ณํ์ต๊ณผ ํต๊ณํ์ด ๊ณตํต์ ์ผ๋ก ์ถ๊ตฌํ๋ ๋ชฉํ.
- BUT, ์ ํํ ๊ฐ์์ ๋ฐ์ดํฐ๋ง ๊ด์ฐฐํด์ ๋ชจ์ง๋จ์ ๋ถํฌ๋ฅผ ์ ํํ๊ฒ ์์๋ธ๋ค๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ฏ๋ก, ๊ทผ์ฌ์ ์ผ๋ก ํ๋ฅ ๋ถํฌ๋ฅผ ์ถ์ ํ๋ค.
- ๋ชจ์์ ๋ฐฉ๋ฒ๋ก : data๊ฐ ํน์ ํ๋ฅ ๋ถํฌ๋ฅผ ๋ฐ๋ฅธ๋ค๊ณ ์ ํ์ ์ผ๋ก(a priori) ๊ฐ์ ํ ํ ๊ทธ ๋ถํฌ๋ฅผ ๊ฒฐ์ ํ๋ ๋ชจ์(parameter)๋ฅผ ์ถ์ ํ๋ ๋ฐฉ๋ฒ
- ๋น๋ชจ์์ ๋ฐฉ๋ฒ๋ก : ํน์ ํ๋ฅ ๋ถํฌ๋ฅผ ๊ฐ์ ํ์ง ์๊ณ ๋ฐ์ดํฐ์ ๋ฐ๋ผ ๋ชจ๋ธ์ ๊ตฌ์กฐ ๋ฐ ๋ชจ์์ ๊ฐ์๊ฐ ์ ์ฐํจ
-> ๋ชจ์, ๋น๋ชจ์์ ์ฐจ์ด๋ '๊ฐ์ '์ ์ฐจ์ด์ด๋ค.
- ๊ธฐ๊ณ์ ์ผ๋ก ํ๋ฅ ๋ถํฌ๊ฐ์ X, ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ์๋ฆฌ๋ฅผ ๋จผ์ ๊ณ ๋ คํด ๋ณผ ๊ฒ! -> ๋ชจ์๋ฅผ ์ถ์ ํ ๊ฒ์ฆํ๋ ๊ณผ์ ์ด ์ค์
- ์ ๊ท๋ถํฌ์ ๋ชจ์๋ ํ๊ท ๊ณผ ๋ถ์ฐ์ผ๋ก ์ด๋ฅผ ์ถ์ ํ๋ ํต๊ณ๋(statistic)์ ๋ค์๊ณผ ๊ฐ๋ค.
๐ฅ ํ์ง๋ถํฌ(Sampling Distribution)
- ํต๊ณ๋์ ํ๋ฅ ๋ถํฌ๋ก N์ด ์ปค์ง์๋ก ์ ๊ท๋ถํฌ๋ฅผ ๋ฐ๋ฆ(์ค์ฌ๊ทนํ์ ๋ฆฌ์ ๋ฐ๋ผ)
๐ฅ ์ต๋ ๊ฐ๋ฅ๋ ์ถ์ ๋ฒ(MLE, Maximum Likelihood Estimation)
- ์ด๋ก ์ ์ผ๋ก ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ ๋ชจ์๋ฅผ ์ถ์ ํ๋ ๋ฐฉ๋ฒ
- ๋ฐ์ดํฐ ์งํฉ X๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์ถ์ถ๋์์ ๊ฒฝ์ฐ ๋ก๊ทธ ๊ฐ๋ฅ๋๋ฅผ ์ต์ ํ
๐ ์ ๋ก๊ทธ๊ฐ๋ฅ๋๋ฅผ ์ฌ์ฉํ๋์?
- ๋ก๊ทธ ๊ฐ๋ฅ๋๋ฅผ ์ต์ ํํ๋ ๋ชจ์ theta๋ ๊ฐ๋ฅ๋๋ฅผ ์ต์ ํํ๋ MLE์ด๋ค.
- BUT, ๋ฐ์ดํฐ๊ฐ ์์ต๋จ์๊ฐ ๋ ๊ฒฝ์ฐ, ์ปดํจํฐ์ ์ ํ๋๋ก๋ ๊ฐ๋ฅ๋ ๊ณ์ฐ์ด ๋ถ๊ฐ๋ฅํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ๋ ๋ฆฝ์ผ ๊ฒฝ์ฐ, ๋ก๊ทธ๋ฅผ ์ฌ์ฉํด ์ปดํจํฐ๋ก ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.(์ฐ์ฐ๋์ ๊ฐ์ O(n^2) => O(n))
- ๋๊ฒ ์์คํจ์์ ๊ฒฝ์ฐ ๊ฒฝ์ฌํ๊ฐ๋ฒ ์ฌ์ฉ -> ์์ ๋ก๊ทธ๊ฐ๋ฅ๋๋ฅผ ์ต์ ํํ๋ฉด ๋จ
๐ฅ DL์์์ ์ต๋ ๊ฐ๋ฅ๋ ์ถ์ ๋ฒ
- ๊ฐ์ค์น theta๋ผ ํ์๋, ๋ถ๋ฅ ๋ฌธ์ ์์ Softmax vector๋ ์นดํ ๊ณ ๋ฆฌ ๋ถํฌ์ ๋ชจ์๋ฅผ ๋ชจ๋ฐ์ผ๋ง
- one-hot vector๋ก ํํํ ์ ๋ต ๋ ์ด๋ธ y๋ฅผ ๊ด์ฐฐ ๋ฐ์ดํฐ๋ก ์ด์ฉํด ํ๋ฅ ๋ถํฌ์ธ softmax vector์ ๋ก๊ทธ ๊ฐ๋ฅ๋๋ฅผ ์ต์ ํ ํ ์ ์๋ค.
๐ฅ ํ๋ฅ ๋ถํฌ์ ๊ฑฐ๋ฆฌ
- ๊ธฐ๊ณํ์ต์์ ์ฌ์ฉ๋๋ ์์ค ํจ์๋ค์ ๋ชจ๋ธ์ด ํ์ตํ๋ ํ๋ฅ ๋ถํฌ์ ๋ฐ์ดํฐ์์ ๊ด์ฐฐ๋๋ ํ๋ฅ ๋ถํฌ์ ๊ฑฐ๋ฆฌ๋ฅผ ํตํด ์ ๋
- ๋ฐ์ดํฐ ๊ณต๊ฐ์ ๋๊ฐ์ ํ๋ฅ ๋ถํฌ P(x), Q(x)์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๊ธฐ ์ํ ๊ธฐ๋ฒ
-> ์ด๋ณ๋๊ฑฐ๋ฆฌ(TV, Total Variation Distance)
-> ์ฟจ๋ฐฑ-๋ผ์ด๋ธ๋ฌ ๋ฐ์ฐ(KL, Kullback-Leibler Divergence)
-> ๋ฐ์ํ์ธ ๊ฑฐ๋ฆฌ(Wasserstein Distance)
๐ ์ฟจ๋ฐฑ-๋ผ์ด๋ธ๋ฌ ๋ฐ์ฐ
- ๋ถ๋ฅ ๋ฌธ์ ์์ ์ ๋ต๋ ์ด๋ธ(P), ๋ชจ๋ธ ์์ธก(Q)๋ฅผ ์ต์ํํ๋ ๊ฒ์ผ๋ก ํ์ต ๊ฐ๋ฅ
- ์์ ์์ ์๋์ ๊ฐ์ด ๋ถํดํ ์ ์๋ค.