๐ค ๋ ผ๋ฌธ ์ฝ๋๋ฒ by. Andrew Ng.
1. ๋ ผ๋ฌธ ์ฝ๋๋ฒ.
์๋ก์ด ๋ถ์ผ๋ฅผ ์ตํ๊ธฐ ์ํ ๋ ผ๋ฌธ์ ์ฝ์ ๋, ํ ๋ถ์ผ์์ 15~20๊ฐ ์ ๋์ ๋ ผ๋ฌธ์ ์ฝ์ผ๋ฉด ์์ ์ด ๊ฐ๋ฅํ๋ค.
๋ค๋ง, ์ด 15~20๊ฐ๋ฅผ ์ฒ์์๋ 10%๋ง ์ฝ๊ณ good/bad๋ฅผ ํ๋จํ๋ฉด์ ์ ์ ์ฐพ์์ ์ฝ๋๋ค.
์ด๋ ๋ง์ฝ 50~100์ฌ๊ฐ ์ ๋๋ผ๋ฉด ํด๋น ๋ถ์ผ์์ ๊น์ ์ง์์ ์๊ณ ์๋ค ํด๋ ๋ ๊ฒ์ด๋ค.
2. ์ต์ ๋ ผ๋ฌธ ์ฝ๊ธฐ.
โ Title / Abstract / Figure ๋ฐ Experiment 1~2๊ฐ
Abstract, Figure(๊ตฌ์กฐ) ๋ฑ์ผ๋ก ์ด๋์ ๋ ํ์ ๊ฐ๋ฅ.
โก Intro / Conclusion / Figure / Related Works Skim(์๋ )
Accept์ ์ํ ์ค๋๋ ฅ์ ๊ฐ์ถ๊ธฐ ์ํด Intro์ Conclusion์ ์์ฃผ ์ ์คํ๊ณ ๊น๋ํ ์์ฝํ๋ค.
Related Works๋ ํด๋น๋ถ์ผ์ ์ค์๋ ผ๋ฌธ์ ์๊ธฐ์ํด ์ค์. ๋ฐ๋ผ์ Skim(์๋ ) or Skip์ด ์ถ์ฒ๋จ.
โข Math , etc ์ดํด์๋๋ ๊ฒ → Skim or Skip
ํด๋น ๋ ผ๋ฌธ์ด ๋ด ์ฐ๊ตฌ์ ํ์ํ๋ฉด ๋ฐ๋์ ๊ผผ๊ผผํ ์ฝ์ ๊ฒ (๊ตฌํ๋ ์ ๋๊น์ง ํฌํจ)
๋ค๋ง, ๋ง์ research๋ ผ๋ฌธ์ ์ฝ์ด์ผ ํ๋ค๋ฉด, skim or skip
3. ๊ทธ๋ผ ์ด๋์ ๋ ์์ค์ด ์ดํด๋๋ค ๋ณด๋๊ฑฐ์ง?
์๋ ์ง๋ฌธ์ ๋๋ต๊ฐ๋ฅํ๋ค? ๊ทธ๋ผ ๋ง์๋๊ณ ๋ค๋ฅธ๋ ผ๋ฌธ ์ฝ์ผ๋ฌ ๊ฐ๋ณด์.
โ๏ธ์ ์์ ์ฑ์ทจ์์ (Main Contribution)
โ๏ธMain Method์ ์ ๊ทผ๋ฐฉ์
โ๏ธ์ด ๋ ผ๋ฌธ์์ ๋ด๊ฐ ํ์ฉํ ์ ์๋ ๋ฐ๋ ๋ฌด์์ธ๊ฐ?
โ๏ธ๋ค๋ฅธ Reference๋ฅผ ๋ณผ๋งํ ๊ฐ์น๊ฐ ์๋๊ฐ?
4. ๊ธฐํ
โ ๋ ผ๋ฌธ ์ ๋ณด ์ป๋๋ฒ
๋ณธ์ธ: ์น๊ฒ์, ๋ธ๋ก๊ทธ ๋ฑ๋ฑ
Ng: Twitter / ML Subreddit / NIPS,ICML,ICLR๋ฑ Top Confer / ArXiv Sanity
arxiv-sanity
arxiv-sanity-lite.com
โก ์์..๐ซ
๊ฐ๋จํ ์์์ ๋ชจ๋ฅด๊ฒ ์ผ๋ Batch Norm, DDPM ๋ฑ ์์์ด ๋ง๊ฑฐ๋ ์ด๋ ค์ด ๊ฒฝ์ฐ, ์ด๋ป๊ฒ ์ ์ดํดํ ์ ์์๊น?
โ๏ธ์ฒ์๋ถํฐ ๋ค์ ์ ๋ํด๋ณด๊ธฐ
- ์ ๋ง ์ ์ดํดํ๊ณ ์ถ๋ค๋ฉด, theoretical science๋ mathematics ์ธ๋ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ก ์ ์ด๋๊ณ ๋น ์ข ์ด์๋ค๊ฐ ์ ๋ํ๋ ๊ณผ์ ์ ๋ค์ ํด๋ณธ๋ค. ๊ทธ๊ฑธ ํ๋ฉด ์ ๋ง ์ ์ดํดํ ๊ฒ.
- ๊ทธ๋ฆฌ๊ณ ์ด๊ฑธ ํ ์ ์๊ฒ ๋๋ฉด ์๋กญ๊ฒ ์ผ๋ฐํ๋ฅผ ํ ์ ์๊ฒ ๋๊ณ ์๋ก์ด ์์ด๋์ด๋ฅผ ์ป๋ ๋ฐ ๋์์ด ๋๋ค. ์๊ฐ์ ๋ง์ด ๊ฑธ๋ฆฌ์ง๋ง ๊ทธ๋งํผ ๋์์ด ๋ ๊ฒ์ด๋ค.
โข Code
- ์คํ์์ค ์ฝ๋๋ฅผ ๋ฐ์ ์คํํด๋ณด๊ธฐ
- ์ฒ์๋ถํฐ ์ฝ๋๋ฅผ ์ฌํํด๋ณด๊ธฐ
๐ ์ ํ๋์(Linear Algebra)
1. Baseline
i)
๐ ํ๋ฅ ํต๊ณ(Probability & Statistics)
์ฐธ๊ณ ): https://chan4im.tistory.com/229 , https://chan4im.tistory.com/233 ,
Uncertainty: ์์ ํํ์ผ๋ก ๋ค๋ฃจ๊ธฐ ์ํด "ํ๋ฅ ๋ก "๋ฑ์ฅ
โ Epistemic(์ธ์๋ก ์ )
= systematic
→ ์ ํํ dataset์ ์ ์
โ Aleotoric(์ฐ์ฐ์ฑ)
= intrinsic = stochastic = noise
→ ์ธ์ ์ผ๋ถ๋ง ๊ด์ฐฐํ๊ธฐ์ noise๊ฐ ๋ฐ์
→ ๋ค๋ฅธ์ข ๋ฅ์ data์์ง์ผ๋ก noise ์ํ๊ฐ๋ฅ
โ ํฉ๊ณผ ๊ณฑ์ ๋ฒ์น
ํฉโ๊ณฑ๋ฒ์น + ๊ฒฐ์ ์ด๋ก (decision theory)๋ฅผ ์ด์ฉํ๋ฉด,
๋ชจํธํ ์ ๋ณด( = uncertainty)๋๋ผ๋ optimal prediction์ ๋๋ฌ๊ฐ๋ฅ
p(X,Y) : X์ Y์ ๊ฒฐํฉํ๋ฅ (joint probability)
p(Y|X) : X์ ๋ํ Y์ ์กฐ๊ฑด๋ถํ๋ฅ (X๋ง ๊ณ ๋ ค์, Y์ผ ํ๋ฅ )
p(X) : ์ฃผ๋ณํ๋ฅ (marginal probability), ๋จ์ Xํ๋ฅ
p(X,Y) = p(X)p(Y) : ๋ ๋ฆฝ
Expectation & Covariance
โ Expectation: ํ๋ฅ ๋ถํฌ ํ ํจ์์ ๊ฐ์คํ๊ท
E[f] : ๋ค๋ฅธ x๊ฐ๋ค์ด ์๋์ ํ๋ฅ ์ ๋ฐ๋ผ "๊ฐ์ค"๋๋๋ฐ, ์ด๋ ๊ณง "ํ๋ฅ ๋ถํฌ p(x)ํ์์ ํจ์ f(x)์ ๊ฐ์คํ๊ท "์ ์๋ฏธ.
์ด์ฐ๋ณ์์ ๊ธฐ๋๊ฐ์ ๊ฒฝ์ฐ, sample์ด ๋ง์์ง์๋ก ์ค์ ํจ์์ ๊ฐ์คํ๊ท ์ ๋์ฑ ์๋ ดํ๊ฒ ๋๋ค.
cf) ๋ถ์ฐ: Var[f] = E[f(x)2] - E[f(x)]2. (feat. ์ ํํ์ )
โ Covariance: ๋ ๋ณ์๊ฐ ํจ๊ป ์ผ๋ง๋ ๋ณํ๋์ง๋ฅผ ์ธก์ .
๋ง์ฝ x์ y๊ฐ ๋ ๋ฆฝ์ด๋ผ๋ฉด: Cov[x,y]=0
๋ ๋ฒกํฐ x์ y์ ๋ํด, ๊ทธ๋ค์ ๊ณต๋ถ์ฐ์ ๋ค์๊ณผ ๊ฐ์ ํ๋ ฌ์ด๋ค:๋ง์ฝ ๋ฒกํฐ x์ ๊ตฌ์ฑ ์์๋ค ๊ฐ์ ๊ณต๋ถ์ฐ์ ๊ณ ๋ คํ๋ค๋ฉด,
๋ ๊ฐ๋จํ ํ๊ธฐ๋ฒ์ผ๋ก cov[x] ≡ cov[x, x]๋ฅผ ์ฌ์ฉํ๋ค.
Gaussian Distribution
โ Gaussian ๋ถํฌ (์ต๋entropy์ CLT)
Maximum Entropy์ ์ค์ฌ ๊ทนํ ์ ๋ฆฌ(CLT)์ ๊ด์ ์์ ์์ฐ์ค๋ ๋ํ๋๋ค.
cf) ์ต๋๊ฐ=์ต๋น๊ฐ์ด๋ฉฐ, precision = 1/σ2
โ Likelihood ํจ์
์ฐ์ธก ๊ทธ๋ํ๋ Gaussian์ Likelihoodํจ์:
ํ์์ : Gaussian๋ถํฌ์์ i.i.d์ธ Dataset
ํ๋์ : ๊ฐ dataset์ ๋ํ ๊ด์ธก๊ฐ, p(x)
Likelihoodํจ์: p(x)์ PDF์ ๊ณฑ์ผ๋ก "ํน์ data๊ด์ฐฐ ํ๋ฅ ์ ์๋ฏธ"
โ Maximum Likelihood
์ด๋ ๊ด์ฐฐ๋ Dataset์ผ๋ก Likelihood Function์ ์ต๋ํํ๋ ํ๋ฅ ๋ถํฌ์ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ.
์ข์ธก ๊ฐ์ ํ๊ท ๊ณผ ๋ถ์ฐ์ ๋ํด ์ likelihoodํจ์๋ฅผ ์ต๋ํ ์,
๊ฐ๊ฐ์ ๋ํ Maximum Likelihood ํด๋ฅผ ์ป์ ์ ์๋ค.
Maximum Likelihood์ ์ ํ์ฌํญ์ด ์กด์ฌํ๋ค:
(MLE๋ ๋ชจ์ง๋จ ์ถ์ ์ ์๋ฒฝํ์ง ์์๋ฐ, ์ด๋ bias๋ก ์ธํด ๋ฐ์ํ๋ค)
μML = μ์ ๋ถํธ ์ถ์ ๋ , σML2 ≠ σ2์ ๋ถํธ ์ถ์ ๋. (N-1 / N)
[Bias๋ฐ์์์ธ]:
๋ถ์ฐ์ด ๋ฐ์ดํฐ์ ๋ง๊ฒ ์กฐ์ ๋ MLE๊ธฐ์ค์ผ๋ก ์ธก์ ๋๊ธฐ ๋๋ฌธ.
์๋ ๊ทธ๋ฆผ์ MLE๋ก Gaussian์ ํ๊ท ๊ณผ ๋ถ์ฐ์ ๊ฒฐ์ ํ ๋,
bias๊ฐ ์ด๋ป๊ฒ ๋ฐ์ํ๋์ง์ ๋ํ ์ง๊ด์ ์ธ ์ดํด๊ฐ ๊ฐ๋ฅํ๋ค.๋นจ๊ฐ๊ณก์ : Gaussian๋ถํฌ
ํ๋๊ณก์ : 2๊ฐ์ ๋ น์ data point๋ก ์ด๋ค์ง 3๊ฐ์ dataset์ ML๋ก ์ป์ Gaussian๋ถํฌ.
์ ๊ทธ๋ฆผ์ ํตํด ๋ค์ ์ฌ์ค์ ์ ์ ์๋ค.
3๊ฐ์ dataset์ ํ๊ท ํํ๋ฉด ํ๊ท ์ ๋์ผํ๋ค.
ํ์ง๋ง, ๋ถ์ฐ์ ์ค์ ํ๊ท ๊ณผ ๋น๊ตโ , ํ๋ณธํ๊ท ๊ณผ ๋น๊ต → ๋ค์ ๊ณผ์ํ๊ฐ(N-1/N)๋๋ค.
๋ค๋ง, ์ ๊ฒฝ๋ง์ฒ๋ผ ๋ณต์กํ ๋ชจ๋ธ์์๋ ML์ bias๋ณด์ ์ด ์ฝ์ง ์๋ค.
๋ํ, MLE์ bias๋ Data point N์ด ๋ง์์ง๋ฉด, ๋ ์ค์ํด์ง์ง๋ค.(lim N → ∞)
Gaussian์ ๊ฒฝ์ฐ, ๋๋ฌด N์ด ์ ์ง ์์ ์ด์ ์ด bias๊ฐ ํฐ ๋ฌธ์ ๊ฐ ๋์ง ์์ง๋ง
๋ณธ ์ ์๋ Deep Learning ์ฆ, ๋ง์ parameter๋ฅผ ๊ฐ๋ ๋ชจ๋ธ์ ์ด์ ์ ๋์๊ธฐ์
ML๊ณผ ๊ด๋ จ๋ bias๋ฌธ์ ๋ ๋ณด๋ค ์ฌ๊ฐํ๋ค.(Overfitting๋ฌธ์ ์ ๋ฐ์ ํ ๊ด๋ จ์ฑ์ ๊ฐ์ง.)
๋ณ์๊ฐ ๋น์ ํ๋ณํ:
โ Density ๋ณํ๋ฐฉ๋ฒ:
๋ชจ๋ ๋ฐ๋ p(y)๋ ๋ชจ๋ ๊ณณ์์ 0์ด์๋ ๊ณ ์ ๋ ๋ฐ๋ q(x)๋ฅผ ์ป์ ์ ์๊ธฐ ๋๋ฌธ.
์ด๋, q(x)๋ x=f(y)์ธ ๋น์ ํ๋ณ์๋ณํ์ผ๋ก ์ป์ด์ง ๊ฐ.
๋นจ๊ฐ๊ณก์ : x์ ๋ํ ์ ๊ท๋ถํฌ p(x)
์ด ๋ถํฌ์์ N=5๋ง๊ฐ ์ ์ถ์ถ, histogram์ ๊ทธ๋ฆผ.
→ p(x)์ ๊ฑฐ์ ์ผ์นํ ๊ฒ.
x→y๋ก์ ๋น์ ํ๋ณ์๋ณํ์ ๊ณ ๋ คํด๋ณด๋ฉด:
x = g(y) = ln(y)-ln(1-y)+5
์ด ํจ์์ ์ญํจ์๋ Sigmoidํจ์๋ก ํ๋๊ณก์ ์ด๋ค.
px(g(y)): ๋ง์ฝ ๋จ์ํ px(x)๋ฅผ x์ ํจ์๋ก ๋ณํํ๋ค๋ฉด ์ป๋ ๋ถํฌ, ๊ณก์ ์ mode๊ฐ ๋ณํ๋ ๊ฒ์ ํ์ธ๊ฐ๋ฅ.
y์ ๋ํ ๋ฐ๋๋ ์ข์ธก ์์ ์ํด ๋ณํ๋๊ธฐ์
์ข์ธก์ ํํฌ ๊ณก์ (right-skewed)์ผ๋ก ๋ํ๋๋ค.
์ด ์์ ๋ค๋ณ๋์ ๋ํด ์ ์ฉํ๋ ค๋ฉด Jacobian Matrix๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค.
x, y๊ฐ ๋ค๋ณ๋๋ถํฌ์ผ ๋, ๋น์ ํ๋ณํ์ ์ ์ฉํ๋ ค๋ฉดJacobian Matrix๋ฅผ ์ฌ์ฉ (py(y) = px(x) |det J|).
ํด๋น ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด y์ ์ฃผ๋ณ๋ถํฌ๋ก ๋จ์ด์ง๋๋ฐ ์ด๋ฅผ ๊ณต๊ฐ์์ผ๋ก ํ์ฅํ ๊ฒ.
์ฆ, "์ฃผ๋ณ ์์ญ"์ผ๋ก ๋ณํ ๋๋ค๋ ๊ฒ์ ์๋ฏธ.
cf) J์ ์ญํ :
๊ณต๊ฐ์ ์ผ๋ถ๋ฅผ ํ์ฅํ๊ณ ๋ค๋ฅธ ๋ถ๋ถ์ ์์ถํ๋ ๊ฒ
(= ํด๋น ๋ณ์์ ๋ณํ๋์ด ๋ค๋ฅธ ๋ณ์์ ์ผ๋ง๋ ์ํฅ์ ์ฃผ๋์ง๋ฅผ ์๋ฏธ;
์ด๋ฅผ ๋ชจ๋ ์์ญ์ ๋ํด ๊ณ ๋ คํ๋ฉด ์ ์ฒด ๊ณต๊ฐ์ด ์ด๋ป๊ฒ ๋ณํํ๋์ง ์ ์ ์์)
์ ๋ณด์ด๋ก : Entropy
โ Entropy: ํน์ ๊ฐ ๊ด์ฐฐ ์ ์ป๋ ์ ๋ณด๋
๋ฌผ๋ฆฌํ์์์ entropy๋ณด๋จ, ์ ๋ณด์ด๋ก ์ค์ฌ์ "์ ๋ณด๋"๊ธฐ์ค์ผ๋ก ์ดํด๋ณด์.
์ ๋ณด๋ด์ฉ์ ์ธก์ ์ ํ๋ฅ ๋ถํฌ p(x)์ ์์กด, ๋ฐ๋ผ์ h(x)๋ฅผ ์ฐพ๋๊ฒ์ด ๋ชฉํ.
h(x): p(x)์ ๋จ์กฐ ํจ์์ธ ์ ๋ณด ๋ด์ฉ์ ๋ํ๋ด๋ ์
[์ ๋ฆฌ]: ๋ ๋ ๋ฆฝ์ฌ๊ฑด x,y์ ๋ํด ์๋๊ฐ ์ฑ๋ฆฝ.
โ h(x,y) = h(x) + h(y)
โ p(x,y) = p(x)p(y)
h๋ p์ ์ ๋ณด๋์ด๊ธฐ์ ์ ์์ด ๋ง์กฑํ๋ ค๋ฉด h๋ log๋ก ์ฃผ์ด์ง๋ค.
∴ h(x) = -logโp(x)๋ก ์ฃผ์ด์ง๋ค.
์ ๋ณด๋ก : logโ๊ฐ ๊ด๋ก์ , ์ด๋ ๊ณง h(x)์ ๋จ์๊ฐ bit('binary digits')์์ ์๋ฏธ.
์ด๋, entropy๋ฅผ ์ข ๋ ์ ๋ณด๋ก ์ ์ผ๋ก ์ ๊ทผํด๋ณด์.
๋จผ์ log ์ฌ์ฉ์ด์ ์ด๋ค.
์ ๋ณด ์ ๋ฌ ์, encoding์ ํ์ฌ ์์ถ์ ์์ผ์ผ ํ๋๋ฐ, log๋ ์๋ฆฟ์๋ฅผ ์ฝ๊ฒ ํํ๊ฐ๋ฅํ๋ค.
ex) log100 = 2, log1000 = 3
์ฆ, Entropy๋ random๋ณ์์ ์ํ๋ฅผ ์ ์ก ์,
์ ์ก ๊ฐ๋ฅํ ๊ฐ์ฅ ์งง์, encoding๊ธธ์ด ์ต์๊ฐ์ ์๋ฏธํ๋ค.
์ถ๊ฐ์ ์ผ๋ก ์ ์ก๋ด์ฉ์ ํํ ์์ค์ด ๋ฐ์ํ๋๋ฐ, ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ data๋ ์ด์ฐํ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์ฆ, ๋งค์ฐ ์ ๋ฐํ๊ฒ ์ง์ ํ๋ ค๋ฉด ๋ง์ bit๊ฐ ํ์ํจ์ ์๋ฏธํ๋ค.
โ H[x] : x์ entropy (= p(x)์ ๊ธฐ๋๊ฐ = ํ๊ท ์ ๋ณด๋)
H[x]๋ x์ entropy๋ก ํ๊ท ์ ๋ณด๋ ์ฆ, p(x)์ ๊ธฐ๋๊ฐ์ ์๋ฏธ cf) H[x, y] = H[y|x] + H[x]๋ฅผ ๋ง์กฑ.
์ฆ, x์ y๋ฅผ ์ค๋ช ํ๋๋ฐ ํ์ํ ์ ๋ณด = ์ฃผ์ด์ง ์กฐ๊ฑด์์ y๋ฅผ ์ง์ ํ๋๋ฐ ํ์ํ ์ถ๊ฐ์ ๋ณด + x๋ง์ ์ค๋ช ํ๋๋ฐ ํ์ํ ์ ๋ณด.
โ KL Divergence : ๋ ๋ถํฌ๊ฐ์ ๋น์ ์ฌ๋ ์ธก์ .
๋ชจ๋ฅด๋ ๋ถํฌ p(x)์ ๊ทผ์ฌ๋ถํฌ q(x)์ ๋ํด q(x)๋ฅผ ์ด์ฉํด x๊ฐ์ ์์ ์์๊ฒ ์ ์กํ๋ค.
์ด๋, q(x)๋ ์ค์ ๋ถํฌ p(x)๋์ x๊ฐ ์ง์ ์ ํ์ํ "ํ๊ท ์ถ๊ฐ์ ๋ณด๋"์ ์๋ฏธํ๋ค.
(์ฆ, ์ถ๊ฐ๋ก ์ ์กํด์ผํ ์ ๋ณด = ๋ ๋ถํฌ๊ฐ์ KL-Divergence)์ฝ๊ฒ ์ค๋ช ํ์๋ฉด, Cross Entropy - Entropy๊ฐ ๋ฐ๋ก KL Divergence์์ด๋ค.
cf) Deep Learning์์ Loss function์ผ๋ก KL Divergence๋ฅผ ์ฌ์ฉํด์ผํ๋ ๊ฒ ์๋๊ฐ์?
์ KL Divergence๊ฐ ์๋ Cross Entropy๋ฅผ ์ฌ์ฉํ๋์ง ์๋ฌธ์ด ๋ค ์ ์๋ค.
KL-Divergence๋ cross entropy์์ ์ต์๋์ธ entropy๋ฅผ ๋นผ๋๊น ์ด ์ค์ฐจ๊ฐ,
์ฆ, cross entropy๊ฐ optimal(= entropy)ํด์ง๋๋ก ํ๊ท ์ถ๊ฐ์ ๋ณด๋์ ์ค์ด๋ ๋ฐฉํฅ์ผ๋ก ํ์ตํ๋ ๊ฒ์ด ๋ง๋ค๋ ์๊ฐ์ด ๋ค ๊ฒ์ด๋ค.
ํ์ง๋ง ์ค์ฐจํจ์ ๋ฏธ๋ถ ์, Entropy๊ฐ ์์๊ฐ ๋์ด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์
๊ฒฐ๊ตญ KL-Divergence = Cross Entropy๊ฐ ๋์ด๋ฒ๋ฆฐ๋ค.
๊ฒฐ๊ตญ Cross Entropy๋ฅผ ํธ์์ ์ฌ์ฉํ์ง๋ง, ์ค์์ KL-Divergence๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ผ ์๊ฐํ๋ฉด ๋๋ค.
Bayes' Theorem: ๋ถํ์ค์ฑ์ ์์ ํํ
โ Frequentist ํ๋ฅ :
ํ ๋์ ์ ๊ฒฝ์ฐ ๋์ ์ด ์ค๋ชฉํ ๋ฉด์ผ๋ก ๋จ์ด์ง ํ๋ฅ ์ฒ๋ผ ๋ฌด์์, ๋ฐ๋ณต ๊ฐ๋ฅํ ์ฌ๊ฑด์ ๋น๋์ ๋ํ ํ๋ฅ .
[p(D|w)์ ๋ํ ์ ๊ทผ๋ฐฉ์]: w๋'estimator'์ ์ผ์ข ์ ์ํด ๊ฒฐ์ ๋๋๊ณ ์ ๋ ๋งค๊ฐ๋ณ์๋ก ๊ฐ์ฃผ
[๊ธฐ๊ณํ์ต์ ๋ํ ์ ์ฉ๋ฐฉ์]: ์ ๊ทํ๋ MSE๊ฐ์ Loss function์ ์ต์ ํํด ์ป์ parameter์ง์ ์ ์ถ์ ์น๋ฅผ ์ฌ์ฉโ Bayesian ํ๋ฅ
[p(D|w)์ ๋ํ ์ ๊ทผ๋ฐฉ์]: ํ๋์ dataset D๋ง ์กด์ฌํ๋ฉฐ (์ฆ, ์ค์ ๋ก ๊ด์ธก๋ ๋ฐ์ดํฐ), ๋งค๊ฐ๋ณ์์ ๋ํ ๋ถํ์ค์ฑ์ w์ ๋ํ ํ๋ฅ ๋ถํฌ๋ฅผ ํตํด ํํ
[๊ธฐ๊ณํ์ต์ ๋ํ ์ ์ฉ๋ฐฉ์]: ๋ฐ์ดํฐ์ ํ๋ฅ ์ด ๊ฐ์ฅ ๋์ ๋ชจ๋ธ์ ์ ํ → ๋ ๋ณต์กํ ๋ชจ๋ธ์ ์ ํธ → Overfitting
๊ทธ๋ ๊ธฐ์ Bayesian๊ธฐ๋ฐ ๊ธฐ๊ณํ์ต ๋ชจ๋ธ์ ์ ์ dataset์ผ์๋ก ๋ ์ข์ ์ฑ๋ฅ์ ๋ธ๋ค.
๋ถํ์ค์ฑ์ ์์ ํํ, prior๊ฐ ์์ฐ์ค๋ ๋ฐ์ํ์ฌ ํฌํจ๋๋ค.
"๋ถํ์ค์ฑ ํํ์ ์ํด ํ๋ฅ ์ ์ฌ์ฉํ์ง ์์ผ๋ฉด, ์ด์ฑ์ ์ด๊ณ ์ผ๊ด๋ ์ถ๋ก ์ ํ ์ ์๋ค."
ex) ๋ถํ์ค์ฑ = ๋์ ์ ์ค๋ชฉํ ๋ฉด์ด ์ด๋๋ฉด์ธ์ง ํ์ ํ๋ ๊ฒ
์๋ฅผ ๋ค์ด, ๋์ ์ด ๋ท๋ฉด์ผ๋ก ๋ ๋ง์ด ๋จ์ด์ง๋ ํ์๊ฐ ๋ง๋ค๋ฉด?
๋์ ์ด ์ค๋ชฉํ ๋ฉด์ด ๋ท๋ฉด์ผ ๊ฐ๋ฅ์ฑ์ด ๋ ๋๋ค๋ ์ฆ๊ฑฐ๋ฅผ ์ ์ํ๊ณ ,
์ค์ ๋ก ์ด๋ฐ ์ง๊ด์ ๋ง๊ธฐ์ ์ด๋ฅผ ํ๋ฅ ๊ท์น์ผ๋ก ์ฌ์ฉํด ์์ ์ผ๋ก ํํ๊ฐ๋ฅํ๋ค
→ Bayes์ ๋ฆฌ์ ์ํด ๋์ ๋์ง๊ธฐ๋ก ์ ๊ณต๋ ๋ฐ์ดํฐ๋ฅผ ํตํฉํ์ฌ ์ค๋ชฉํ ๋ฉด์ด ์๋ฉด์ผ ์ฌ์ ํ๋ฅ ์ ์ฌํ ํ๋ฅ ๋ก ๋ณํํ ์ ์๋ค.
๊ณผ์ ์ด ๋ฐ๋ณต๊ฐ๋ฅํ๊ธฐ์, ์๋ก์ด ๋์ ๋์ง๊ธฐ์์์ ๋ฐ์ดํฐ๋ฅผ ํตํฉํ๋ ๋ฐ์๋ ์ด์ ์ ์ฌํ ํ๋ฅ ์ด ์ฌ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
D : train dataset
p(D|w) : Likelihood ; ์ฃผ์ด์ง parameter์์ ๊ด์ธก๋ data๊ฐ ๋ฐ์ํ ํ๋ฅ
p(w) : prior ; ์ ํ์ ์ง์์ด๋ ๋ฏฟ์.
p(w|D) : posterior ; ์ ๊ณต๋๋ update๋ parameterํ๋ฅ ๋ถํฌ
p(D) : Marginal Likelihood ; p(D|w)โp(w)์ ์ ๋ถ๊ฐ ; ๋ชจ๋ธ์ ์ฒด์ ์ ํฉ๋.
์ด๋ฅผ ํตํด train data์ ๋ํ ์ฐ๋ฆฌ์ ๋ถํ์ค์ฑ์ ๋ฐ์์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก new data์ ๋ํ ์์ธก ์ํ์ด ๊ฐ๋ฅํ๋ค.
์ด๋ ๊ฒ Bayesian์ ๊ทผ์ model parameter์ ๋ํ ๋ถํ์ค์ฑ์ ๊ณ ๋ คํ ํ๋ฅ ์ ์ถ๋ก ์ ์ ๊ฑฐ, ๋ถํ์ค์ฑ update๋ฅผ ํตํ model๊ฐ์ ์ด ๊ฐ๋ฅํ๋ค.
๐ ๊ธฐ๊ณํ์ต(Machine Learning)
1. Baseline
i)
๐ ์ฌ์ธตํ์ต(Deep Learning)
1. Baseline
i)
๐ ์ปดํจํฐ๋น์ (Computer Vision)
1. Baseline
i) Logit๊ณผ Softmax, Cross Entropy
class์ ๋ํด ์์ธกํ ๊ฐ(-∞,∞)์ผ๋ก sigmoid-1 ๊ฐ์ ๊ฐ๋๋ค.
์ฆ, ์ฌ๊ฑด์ด ์ผ์ด๋ odds = P(์ฌ๊ฑด๋ฐ์โญ๏ธ) / P(์ฌ๊ฑด๋ฐ์โ)์ ์์ฐ๋ก๊ทธ๊ฐ์ด๋ค.
๋ณดํต ์ด logit๊ฐ์ softmax๋ฅผ ์ทจํ๋ค.
๐ค Softmax๋?๋จผ์ KL๋ฐ์ฐ์ ๋ํด ๊ฐ๋จํ ๋์ง์ด๋ณด์.
KL๋ฐ์ฐ์ 2๊ฐ์ ๋ถํฌ๋ฅผ ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ค์ ๋ถํฌ P์ ์์๋ถํฌ Q๋ฅผ ๋น๊ตํ๋ ๊ฒ์ด๋ค.
KL๋ฐ์ฐ๊ณผ Softmaxํจ์ ์ฌ์ด์ ๊ด๊ณ๋ Cross Entropy์ ์ฐ๊ด๋์ด ์๋ค.
Cross Entropy๋ ์ค์ ๋ถํฌ์ ์์ธก๋ถํฌ๊ฐ์ ์ฐจ์ด๋ฅผ ์ธก์ ํ๋๋ฐ ์ฌ์ฉ๋๋ค.
์ฆ, Softmaxํจ์๋ Cross Entropy์์คํจ์๋ฅผ ์ต์ํํ๋๋ฐ ์ฌ์ฉ๋๋ฉฐ, KL๋ฐ์ฐ๊ณผ ๊ด๋ จ๋ Cross Entropy์์ค์ ์ต์ํ ํ๋ ๋ฐฉํฅ์ผ๋ก ํ์ต์ด ์งํ๋๋ค.
๐ค One-Hot Encoding๊ณผ Softmax
์ต์ ํ ์งํ ์, ๋ ์ฌ์ด ์ ํด๋ฆฌ๋๊ฑฐ๋ฆฌ(=MSE) ๊ณ์ฐ๋ณด๋ค๋ Cross Entropy๊ฐ ๋ ์ ํฉํ๋ฐ,
Cross Entropy์ ๊ฒฝ์ฐ, ์์น์ ์์ ํ๋ฅผ ์ํด log๋ฅผ ์ฌ์ฉํ๋ค. (์์์ ์ ๊ฐ๊น์ด ํ๋ฅ ๋ค์ ์ฒ๋ฆฌํ๊ธฐ๊ฐ ์ฉ์ดํ๊ธฐ ๋๋ฌธ.)
ii) Batchโimageํฌ๊ธฐ, ์ ํ๋์ ๋น์์ฐ์ฑ
โ batch_size = 128
โ 128๊ฐ img์ ๋ํด ∇๋ฅผ ๊ณ์ฐ ํ updateํ๋ค๋ ์๋ฏธ
๐ฉ ๋ณ๋ ฌํ๋ฅผ ํตํด solution์ ๋ ๋น ๋ฅด๊ฒ ์๋ ดํ ๊ฐ๋ฅ์ฑ์ด ์กด์ฌ.
GPU๋ RAM์ ํ์ด ์๊ธฐ์, img๊ฐ ํด์๋ก batch๋ก ๋ฌถ์ ์ ์๋ img๊ฐ ์ ์ด์ง๋ค.
๋ํ, ๋ ํฐ img๋ก ํ๋ จํ๋ ค๋ฉด ๋ชจ๋ธ๋ ๊ทธ๋งํผ ์ปค์ผํ๊ธฐ์ ๊ทธ์ ๋น๋กํ๊ฒ ๊ฐ์ค์น ์๋ ์กฐ์ ํด์ผํ๋ค.
batch_size๊ฐ ํด์๋ก train๊ณก์ ์ด ๋ ๋ถ๋๋ฌ์์ง๊ธฐ์ ํฐ img๋ ์ ํ๋์ธก๋ฉด์์ ๋น์์ฐ์ ์ผ ์ ์๋ค.
HR-img๋ Noise๊ฐ ๋๋๋ฌ์ง๋๋ฐ, ํนํ ์ผ์ธ๋ ์ ์กฐ๋ ํ๊ฒฝ์ ์์์ ๋์ฑ ๊ทธ๋ ๋ค.
(์ฆ, ํด์๋๋ฅผ ๋ฎ์ถ๋ฉด img๊ฐ ๋ถ๋๋ฌ์์ ธ train์๋ ๋ฐ ์ ํ๋๊ฐ ๋์์ง๋ค.)
∴ ๊ฒฐ๋ก : img์ noiseํน์ฑ์ด ๋ณด์ฅ๋๊ณ ์์ฐ๊ฐ๋น๊ฐ๋ฅ ์ ์์ ์ต๊ณ ํด์๋ ์ฌ์ฉ์ด ๊ถ์ฅ.
restoring์, computing๋ณด๋ค ์ ๋ ดํด JPEG๊ฐ์ ํด์๋๋ฅผ ๋ฎ์ถฐ ์ ์ฅํ ๊ฒ์ด ๊ถ์ฅ๋จ.
๐ง Batch size์ ๋ํ์ฌ
Data๋ Model์ ์ข ๋ฅ์ ๋ฐ๋ผ ์ ์ ํ Batch_size๊ฐ ์กด์ฌํ๊ธฐ์
batch_size๋ฅผ ๋๋ฌด ์์๊ฐ์ด๋ ํฐ๊ฐ์ ์ฐ๋ฉด ์คํ๋ ค ํ์ต์ด ์ ์๋๋ ๊ฒฝํฅ์ด ์กด์ฌํ๋ค.
cf) ํน์ ํ ๊ฐ์คํ์ ์ฐ์ญ์ ์ผ๋ก ์ฆ๋ช ๊ฐ๋ฅํ ๋,
batch size๋ฅผ 2๋ฐฐ ์ฆ๊ฐ์ํค๋ฉด step size๋ √2๋ฐฐ ์ฆ๊ฐ์์ผ์ผํ๋ค.
cf) batch size๋ฅผ ์ฆ๊ฐ์์ผฐ๋๋ฐ๋ ์ด epoch์๋ฅผ ๊ทธ๋๋ก ๋๋ฉด
ํ epoch๋น iteration์๊ฐ ์ค์ด๋ค๊ธฐ์
๊ทธ๋งํผ gradient๋ก parameter update๋ฅผ ๋ ์ํค๋ ๊ฒ์ด๋ฏ๋ก
Loss๊ฐ์์๋๊ฐ ๋๋ ค์ ธ ํ์ต์ด ์ ์๋ ์๋ ์๋ค.
iii) Regularization
์ฆ, Softmaxํจ์๋ Cross Entropy์์คํจ์๋ฅผ ์ต์ํํ๋๋ฐ ์ฌ์ฉ๋๋ฉฐ, KL๋ฐ์ฐ๊ณผ ๊ด๋ จ๋ Cross Entropy์์ค์ ์ต์ํ ํ๋ ๋ฐฉํฅ์ผ๋ก ํ์ต์ด ์งํ๋๋ค.
๐ค One-Hot Encoding๊ณผ Softmax
์ต์ ํ ์งํ ์, ๋ ์ฌ์ด ์ ํด๋ฆฌ๋๊ฑฐ๋ฆฌ(=MSE) ๊ณ์ฐ๋ณด๋ค๋ Cross Entropy๊ฐ ๋ ์ ํฉํ๋ฐ,
Cross Entropy์ ๊ฒฝ์ฐ, ์์น์ ์์ ํ๋ฅผ ์ํด log๋ฅผ ์ฌ์ฉํ๋ค. (์์์ ์ ๊ฐ๊น์ด ํ๋ฅ ๋ค์ ์ฒ๋ฆฌํ๊ธฐ๊ฐ ์ฉ์ดํ๊ธฐ ๋๋ฌธ.)
iv) Optimizer & Scheduler
๐ค Optimizer
โ SGD: Default Optimizer๋ก ์ฌ์ฉ๋์์์.
โ Adam: ๋ ๋น ๋ฅด๊ณ ์์ ๋ ์๋ ด์ ์ํด ์ฌ์ฉ๋จ.
โ F-trl: ๊ทน๋๋ก ํฌ์ํ dataset์ ์ ์๋ํ๋ ๊ฒฝํฅ์ด ์กด์ฌ.
โ AdamW: Differential LR์ ์ด์ฉํด ํ์ต
(pretrain์๋ ๋ฎ์ lr)
(classifier์๋ ๋ณดํต์ lr)
LR: ๊ทน์๊ฐ๋ค์ ๊ทธ๋ฅ ์ง๋์นจ
lr: ๊ทน์๊ฐ์ ๋ฒ์ด๋์ง ๋ชปํจ
๐ค Scheduler
ํ์ต๋ฅ ์ ๋์ ์ผ๋ก ์กฐ์ ํ๋ ๊ธฐ๋ฒ.
ํ์ต๋ฅ ์ ๋ชจ๋ธ์ด ๊ฐ ๋ฐ๋ณต(iteration)์์ ๊ฐ์ค์น๋ฅผ ์ ๋ฐ์ดํธํ ๋ ์ฌ์ฉ๋๋ ์ค์ผ์ผ๋ง๋ ๊ฐ
๋คํธ์ํฌ๊ฐ ์ต์ ์ ์๋ฃจ์ ์ผ๋ก ์๋ ดํ๋ ์๋์ ์์ ์ฑ์ ์ํฅ์ ๋ฏธ์น๋ค.
โStep Decay: ์ผ์ ํ ๊ฐ๊ฒฉ(epoch ๋๋ iteration ์)๋ง๋ค ํ์ต๋ฅ ์ ๊ฐ์.
โExponential Decay: ๋งค step๋ง๋ค LR์ ์ง์์ ์ผ๋ก ๊ฐ์ (by. decay factor์ ๊ณฑํจ).
โCosine Annealing: cos์ ์ด์ฉํด max-min ์ฌ์ด๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์ง๋์์ผ ํ์ต๋ฅ ์ ์กฐ์ .
โReduceOnPlateau: val_loss๊ฐ ๋ ์ด์ ๊ฐ์ ๋์ง ์์ ๋๋ง๋ค ํ์ต๋ฅ ์ ๊ฐ์.
๋ชจ๋ธ์ด ์ต์ ๊ฐ์ ๊ฐ๊น์ด ์๋ ดํ ์๋ก ํ์ต๋ฅ ์ ์ค์ฌ ๋น ๋ฅด๊ฒ ์๋ ดํ๋๋ก ๋๋๋ค.
v) Layer (Conv, Maxpool)
โCovolution Layer: ์ค์ํ ๊ฒ์ถ๊ฐ์ feature map ๋ฐํ
additive bias๋ฅผ ์ฌ์ฉํ๋ฉฐ, ReLU๋ ์ด bias๋ฅผ ์์ ์์๊ฐ์ผ๋ก ์ด๊ธฐํํ๋ค.
ํ์ฑํ ์ดํ 0์ด ์๋ ๊ฐ ์ถ๋ ฅ ๋ฐ 0์ด ์๋ gradient๋ฅผ ๊ฐ๊ฒ ํ๋ค.
โMaxpooling Layer: ์ต๋๊ฐ๋์ feature๋ง ๋จ๊น,
feature map์ ํด์๋↓ = Receptive Fieldํฌ๊ธฐ ↓
vi) Video
โFrame๋ณ ์ฒ๋ฆฌ: ๋์์์ frame์ผ๋ก ๊ตฌ์ฑ๋จ.
๋ฐ๋ผ์ ๋์์ ์ฒ๋ฆฌ๋ฅผ ์ํด ๊ฐ๋ณ frame์ ๋ํด
image์ฒ๋ฆฌ๋ฅผ ์ํํ ๊ฒฐ๊ณผ๋ฅผ ์ข ํฉ→์ ์ฒด์์์ ๋ถ์
(๋ค๋ง, ์ด ์ ๊ทผ๋ฐฉ์์ ์ธ์ ํ frame๊ฐ์ ์๊ด์ฑ์ด ๋๋ค.)
โ3D CNN: ๋์์ ์ฒ๋ฆฌ์, ํ๋ฒ์ ํ frame์ฉ ์ฒ๋ฆฌํ๋ ์์ ๋ฐฉ์๊ณผ ๋ฌ๋ฆฌ ํ๋ ์๊ฐ์ ์๊ด๊ด๊ณ๋ฅผ ์ด์ฉํ๋
"frame์ ์ด๋ํ๊ท (rolling average)๋ฅผ ๊ณ์ฐ"ํ๋ ๋ฐฉ์์ด๋ค.
์ด ๋ฐฉ์์ ํ๋ฉด์ noise๊ฐ ๋ง์ ๋ ํนํ๋ ์ ์ฉํ๋ค.
๋์์ ํด๋ฆฝ์ [B,C,T,H,W]์ 5์ฐจ์ Tensor๋ก ์ฝ๊ณ , ํ์์ ๋ฐ๋ผ ๋์์์ ์งง์ ํด๋ฆฝ์ผ๋ก ๋๋๋ค.
โRNN ๊ณ์ด: RNN ๋ฑ์ sequence๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
(์ด๋ ํ๋ จ์ด ๋งค์ฐ ์ด๋ ค์ 3D-CNN์ ๊ทผ๋ฐฉ๋ฒ์ด ๋ ์ค์ฉ์ ์ด๋ค)
vii) Data Preprocessing
โTrain-Serving Skew:
inference time์์ client๊ฐ ์ ๊ณตํ img์ ๋ํด train์ ์ ์ฉํ ๋ชจ๋ ์ฐ์ฐ(๋์ฝ๋ฉ, ํฌ๊ธฐ์กฐ์ , ๋ฑ๋ฑ)์ ์ํํด์ผํ๋ค.
์ฐ์ฐ์ ๋น ๋จ๋ฆฌ๊ฑฐ๋ train๊ณผ inference๊ฐ์ ์ฝ๊ฐ์ด๋ผ๋ ๋ค๋ฅด๊ฒ ์ํํ๋ค๋ฉด, ์ ์ฌ์ ์ผ๋ก ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์๋ค.
์ฆ, "ํ๋ จ ์ค์๋ ๋ํ๋์ง ์๋ ์์์น ๋ชปํ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ก ์ ์ผ์ด๋๋ ๊ฒ"์ด๋ค.
Sol) ํ๋ จ๊ณผ ์ถ๋ก ์์ ๋์ผํ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉ.
โData Augmentation: ๊ฐ์ค์น๊ฐ ๋ง์์๋ก ๋ชจ๋ธํ๋ จ์ ๋ฐ์ดํฐ๊ฐ ๋ง์ด ํ์ํ๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ์ฆ๊ฐ์ "Data space Solution"์ผ๋ก Dataset์ ํฌ๊ธฐ์ ํ์งํฅ์์ ๋์์ ์ค๋ค.
๋ํ์ ์ผ๋ก ์๋ 3๊ฐ์ง ๋ฒ์ฃผ๋ก ๋๋ ์ ์๋ค.
โ๏ธ ๊ณต๊ฐ์ ๋ณํ: Flip, Rotate, Crop, Zoom, ...
โ๏ธ ์์ ์๊ณก: ๋ฐ๊ธฐ, ์์กฐ๋ณํ
โ๏ธ ๊ณต๊ฐ์ ๋ณํ: Cutout, Mixup, ...
viii) TFRecords (Tensorflow Record)
์ด๋ฆ์์ tensorflow๋ผ ์ ํ์๋ ๊ฒ๊ณผ๋ ๋ฌ๋ฆฌ? pytorch์์๋ ํ์ฉ๊ฐ๋ฅํ๋ค. (์๋ ๋งํฌ ์ฐธ์กฐ.)
โ์ฌ์ฉ ์ด์ :
img๋ฅผ JPEGํ์ผ๋ก "์ ์ฅ"ํ๋ ๊ฒ์ ML๊ด์ ์์ ํจ์จ์ โ
→ ํจ์จ์ ์ธ ์ ์ฅ ๋ฉ์ปค๋์ฆ์ธ TFRecord๋ฅผ ์ฌ์ฉ
๋ณดํต ํ์ผํฌ๊ธฐ๋ 10~100MB๊ฐ ์ด์์ ์ด๋ค.
(๋ค์์ worker(in GPU)์์ image๋ฅผ ์ฝ๋ ๊ธฐ๋ฅ๊ณผ
๋ง์ batch์์ latency๋ฅผ ์์ํ ๋งํผ ๊ฐ ํ์ผ์ ์ถฉ๋ถํ ๊ธธ๊ฒ ์ด์ด์ผํ๊ธฐ ๋๋ฌธ.)
TFRecord๋ฅผ ์์ฑํ๊ธฐ ์ , ๋ฏธ๋ฆฌ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ง์์ง๋ฉด ํ๋ จํ์ดํ๋ผ์ธ์์์ ์ฒ๋ฆฌ๋↓
๋ฐ๋ผ์ ํ๋ จ์๋์ ํจ์จ์ฑ, ๋ฐ์ดํฐ์ฒ๋ฆฌ๋ ๋ชจ๋๋ฅผ ๋๋ฆด ์ ์๋ค.
โ๋ณ๋ ฌํ: cs์ ๊ฐ์ CPU(= vCPU)๊ฐ 2๊ฐ ์ด์์ผ ๋
โ๏ธ tensorflow์ dataset์์ฑ ์, ์ฝ๊ธฐ๋ฅผ ์๋์ผ๋ก interleaveํ๊ฒ ์์ฒญ๊ฐ๋ฅ
tf.data.TFRecordDataset(pattern, num_parallel_reads=AUTO)
โ๏ธ ๋ map()์ฐ์ฐ์ ๋ณ๋ ฌํ ๊ฐ๋ฅ.
.map(preproc.read_from_tfr, num_parallel_calls=AUTOTUNE)
์กฐ๊ธ ๋ ์์ธํ Train pipeline์ ๋ํ ๋ด์ฉ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ์กฐ.
(https://www.oreilly.com/library/view/practical-machine-learning/9781098102357/)
Practical Machine Learning for Computer Vision
This practical book shows you how to employ machine learning models to extract information from images. ML engineers and data scientists will learn how to solve a variety of image … - Selection from Practical Machine Learning for Computer Vision [Book]
www.oreilly.com
TFRecordLoader — TorchData main documentation
Shortcuts
pytorch.org
cf) Metric
โ Confusion Matrix
โConfusion Matrix:
โ๏ธAccuracy = (TP+TN) / n
→ ๋ฐ์ดํฐ๋ถ๊ท ํ, ํธํฅ๋ ๋ชจ๋ธ ๋ฑ์์๋ ์ข์ง์์ ํ๊ฐ์งํ.
โ๏ธ Precision = TP / (TP+FP) = PR์ ์ ํ์ฑ
โ๏ธ Recall(= Sensitivity) = TP / (TP+FN) = positive ๊ตฌ๋ถ๊ฐ๋ฅ์ฑ
โ๏ธSpecificity= TN / (TN+FP)
โ๏ธ F1-score = 2*(p×r)/(p+r)
→ ์ ๋ฐ๋์ ์ฌํ์จ๊ฐ์ "์กฐํํ๊ท "
โ๏ธ Fβ-score = (1+β2) * (p×r)/(β2×p+r)
→ F1 score์ β๋ฅผ ์ถ๊ฐ, P์ R์ ๋ํ ์ค์์ฑ์ ํ์ฅ์ํฌ ์ ์์.
๐ฉ Sensitivity and Specificity (๋ฏผ๊ฐ๋ / ํน์ด๋) --> ์ํ๋ถ์ผ์์ ์ฌ์ฉ
Sensitivity : True Positive Rate (TPR) = TP / (TP + FN) --> positive ๊ตฌ๋ถ ์ฑ๋ฅ
Specificity : True Negative Rate(TNR) = TN / (TN + FP)
โ
๐ฉ Precision and Recall (์ ๋ฐ๋ / ์ฌํ์จ) --> information retrieval ์์ ์ฌ์ฉ
Recall = Sensitivity
Precision = TP / (TP + FP) --> positive rate ์ ์ ํ์ฑ (ex. ๋ณด์๋ถ์ผ)
โก ROC-AUC & PR Curve
โROC-Curve: Recall์ y์ถ, FPR์ x์ถ์ผ๋ก ๊ฐ๋๋ค. (FPR = FP / (FP+TN))
cf) AUC: ROC๊ณก์ ์ ์๋๋ฉด์ (Area Under Curve): ์ด ๊ฐ์ ๊ณ์ฐํด ๋จ์ผ ์ซ์๋ก ์ ๋ณด๋ฅผ ์์ฝํ ์ ์๋ค.
โPR-Curve: Precision์ y์ถ, Recall์ x์ถ์ผ๋ก ๊ฐ๋๋ค.
โ๏ธAUC๋ ๊ธฐ๋ณธ์ ์ผ๋ก 0.5์ด์์ด์ด์ผ ํ๋๋ฐ, AUC=0.5๋ผ๋ ๋ป์ ๋ชจ๋ธ์ด Random Classifier์ ๊ฐ๋ค๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
โ๏ธData๊ฐ ๊ท ํ์กํ ์์๋๋ AUC-ROC๋ฅผ ๊ณ์ฐํ๋ ๊ฒ์ด ์ถ์ฒ๋๋ค.
โ๏ธClass Imbalanced, Biased๋ ๊ฒฝ์ฐ AUC-PR์ด ๊ถ์ฅ๋๋ค.โ
cf) Macro์ Micro Average
F1- Score์ 3๊ฐ์ง ์ข ๋ฅ
โ Macro Avg: Label๋ณ F1-score ์ฐ์ ํ๊ท (= ๋ชจ๋ data๊ฐ ๋์ผํ ๊ฐ์ค์น=์ค์๋)
โ Micro Avg: ์ ์ฒด TP,FN,FP๋ฅผ ํ๊ท ํ ๊ฒ = Accuracy
โ Weighted Avg: Label๋ณ F1-score๋ฅผ ์ํ์์ ๋น์ค์ ๋ฐ๋ผ ๊ฐ์คํ๊ท
cf) EMR๊ณผ Hamming Score, Hamming Loss
โ EMR: Exact Match Ratio
์ต๋ํํ๊ธฐ ๊ฐ์ฅ ๊น๋ค๋ก์ด ์งํ๋ ๋ถ๋ถ์งํฉ์ ํ๋(subset Acc)๋ผ๋๋ ๋ถ๋ฅด๋
์ ํํ ์ผ์น๋น์จ(EMR: Exact Match Ratio)์ด๋ค.EMR์ "๋ชจ๋ "๋ผ๋ฒจ์ด ์ ํํ ๋ง๋ ์์ ๋ฐฑ๋ถ์จ์ ์ธก์ ํ๋ค.
์ฆ, img์ 100๊ฐ์ class๊ฐ ์๊ณ , 99๊ฐ๋ง ์์ธกํ๋ค๋ฉด ์ ํํ ์ผ์นํ๋ ๊ฒ์ผ๋ก ์น์ง ์๋๋ค.
โ Hamming Score
EMR๋ณด๋ค ๋ ์๊ฒฉํ ์งํ์ ๋ค์ค๋ผ๋ฒจ์ ํ๋๋ฅผ ๋ํ๋ด๋ ์ ์์งํ์ด๋ค.๊ฐ ์์ ๋ํด ์ด ๋ผ๋ฒจ์์ ์ฌ๋ฐ๋ก ์์ธก๋ ๋ผ๋ฒจ์ ๋น์จ์ ์ธก์ ํด ํ๊ท ํ ๊ฒ์ด๋ค.
(์ฌ์ค IoU๋ Jaccard Index์ ์๋นํ ์ ์ฌํ๋ค.)
โ Hamming Loss
0๊ณผ 1 ๋ฒ์์ ์์คํจ์๋ก Hamming Score์ ๋ฌ๋ฆฌ
์๋ชป์์ธก๋ ํด๋์ค ๋ผ๋ฒจ์ ๋ํ example์ ๊ด๋ จ์ฑ์ ์ธก์ , ๋ค์ ํด๋น ์ธก์ ์ ํ๊ท ์ ๊ตฌํ๋ค.์ด๋ XOR์ฐ์ฐ๊ณผ ์ ์ฌํ๋ฐ, example n์ ์์ ํด๋์ค L์ ๋ํด ์ด ๋ ์๋ก ์ด์คํฉ์ ์ ๊ทํํ๋ค.
โข Regression Metric (MSE,MAE,Huber)
โ MSE : mean-unbiased ์ถ์ ๋
์ ๊ณฑ์ค์ฐจํ๊ท ์ผ๋ก 2์ฐจํญ์ผ๋ก ์ธํด ๊ฐ๋๊ฐ ํฐ ํ๊ท ํธํฅ์ถ์ ์น์ด๋ค.
์ฆ, ํฐ ๊ฐ๋๋ ๋ช๊ฐ์ง ์ด์์น์ ๊ณผ๋ํ๊ฒ ์ํฅ์ ๋ฏธ์น ์ ์์์ ์๋ฏธํ๋ค.
cf) RMSE๋ผ๋ MSE์ ๋ฃจํธ๋ฅผ ์์ ์ฌ์ฉ๋๋ ์งํ๋ ์กด์ฌ.
cf) ์ถ์ ๋(estimator)์ ํ๋ณธํ๊ท ์ด ๋ถํฌํ๊ท ๊ณผ ๊ฐ์ (= mean-unbiased์ถ์ ๋)
โ MAE : median-unbiased ์ถ์ ๋
์ข ๋ ๋จ์ํ๊ณ ํด์ํ๊ธฐ ์ฌ์ด ์งํ๋ก ์ ๋์ฐจ๊ฐ์ ์ด์ฉ.
์ ๊ณฑ์ง์๊ฐ ์๋ MSE, RMSE์ ๋นํด ์ด์์น ๋ช๊ฐ๋ก ์๊ณก๋๋ ํ์์ ๋ํ๋ค.
cf) ์ถ์ ๋์ด ๊ณผ๋ํ๊ฐํ๋ ๋น๋๊ฐ ๊ณผ์ํ๊ฐํ๋ ๋น๋์ ๊ฐ์ (= median-unbiased์ถ์ ๋)
โ Huber Loss
MSE, MAE์ฅ์ ์ ํ๋ฒ์ ์ทจํ ์ ์๋ค.
์ ๋์ค์ฐจ๊ฐ์ด threshold(δ)๋ณด๋ค ์์ผ๋ฉด ์ ๊ณฑํญ์ ์ฌ์ฉํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ํํญ์ ์ฌ์ฉํ๋ค.0์ ๊ฐ๊น์ด ๊ฐ์ ๋ํด 2์ฐจ ํญ์ ์ ๊ณฑํ๊ท ๋ถํธ์ถ์ ๋์ ๋ฏผ๊ฐ๋์
0์ ๋ ๋จผ ๊ฐ์ ๋ํด ์ ํ ํญ์ ์ค์๋ถํธ์ถ์ ๋์ ๊ฒฌ๊ณ ์ฑ์
๋ชจ๋ ๋๋ฆด ์ ์๊ฒ ํด์ค๋ค.
โฃ IoU (Intersection Over Union)
โDetection:
Detection์์ ์ฌ์ฉ๋๋ ์งํ ์ค ํ๋๋ก ์ด๋ฆ์์ ์ ์ ์๋ฏ, ๊ต์งํฉ / ํฉ์งํฉ ์ด๋ค.์ด IoU๋ฅผ ์ด์ฉํด Detection์์๋ ํด๋น ๊ฐ์ฒด๊ฐ Detect๋ ๊ฒ์ธ์ง ์๋์ง์ ๋ํ ํ๋ณ์งํ๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์
ํน์ IoU๊ฐ์ threshold๋ก ์ ํด ๊ฐ์ฒด๊ฒ์ถ์ฌ๋ถ๋ฅผ ํ๋ณํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์๊ณ๊ฐ: 50, 75, 95%
TP = ์ฌ๋ฐ๋ฅด๊ฒ ๊ฒ์ถ๋ ๊ฒ.
FP = ์๋ชป ๊ฒ์ถ ๋ ๊ฒ.
FN = ์ค์ Bbox๋ฅผ ์ ํ ๊ฒ์ถํ์ง ๋ชปํ ๊ฒ (= ๊ฒ์ถ ๋๋ฝ)
(cf. TN์ Detection์์ ์ฌ์ฉ๋์ง ์๋๋ค.)
โ๏ธ precision = TP / All_Detections
โ๏ธ Recall = TP / All_Actual_Bbox
โ๏ธ Pinterpolated = maxR'≥R[P(R')] = Avg Recall
โค AP์ mAP
โ AP (Average Precision)
๋ณด๊ฐ์ ์ํด ๋ชจ๋ ๊ณ ์ ํ ์ฌํ์จ์ ์ ํํ๋ "ํ๊ท ์ ๋ฐ๋"๋ ๋ณด๊ฐ๋ PR-Curve์ ์๋๋ฉด์ ์ด๋ค.AP๋ ์์ ๊ฐ์ ์ํฉ(Bbox๊ฐ ์ฌ๋ฟ ๋ํ๋๋ ์ํฉ)์์ ๊ณ์ฐํ๋ค.
AP๊ณ์ฐ์ ์ํด TP, FP, FN์ ์ธ์ผํ๋ค. cf) True = ๋ง์ถ๊ฒ์ ์๋ฏธ
AP ๊ณ์ฐ์๊ณ ๋ฆฌ์ฆ:
โ ์ ๋ขฐ๋ ์๊ณ๊ฐ์ ๋๋ Bbox๋ง ์ ํ, ์์ธก๋ชฉ๋ก์ ์์ฑ
โก ์์ธก๋ชฉ๋ก์ ์๋ Bbox๋ฅผ ์ ๋ขฐ๋๋ก ์ ๋ ฌ
โข Confidence๊ฐ์ด ํฐ ์์๋๋ก ์ฒ๋ฆฌ.
ํ์ฌ Bbox๊ฐ IoU ์๊ณ๊ฐ์ ๋์ผ๋ฉด TP๋ก ํ์ , ์๋๋ฉด FP๋ก ํ์
โ๏ธ์ด๋, 2๊ฐ ์ด์์ ๋ฌผ์ฒด์ ํ๋์ Bbox๊ฐ ๊ฒน์น๊ฒ ๋๋ค๋ฉด?
IoU๊ฐ ์ต๋์ธ ์์ ์ฌ์ฉํ๋ค.
TP๋ฐ์ ์, ์ฐธ๊ฐ๋ชฉ๋ก์์ TP_Bbox๋ฅผ ์ ๊ฑฐ, ์ด์ค์ ์์ ๋งบ๋ ๊ฒ์ ๋ฐฉ์งํ๋ค.
์ด๋, ์์ธก๋ชฉ๋ก์ ์๋ Bbox๋ฅผ ๋ชจ๋์ฒ๋ฆฌํ, ์์ ๋งบ์ง๋ชปํ ์ฑ ๋จ์์๋ TP_Bbox๋ FN์ผ๋ก ํ์ ํ๋ค.
โ mAP (mean Average Precision)
AP๋ฅผ ๊ฐ ๋ฌผ์ฒด class์ ๋ํด ๊ณ์ฐ → ์ด AP๋ฅผ ๋ชจ๋ class์ ๋ํด ํ๊ท ํ ๊ฐ์ด๋ค.
ํ๋์ ํด๋์ค๋ AP๋ฅผ ๊ตฌํ๋ฉด ๋๋ค.
ํ์ง๋ง, Detection์์๋ ์ข ์ข ๊ฒ์ถ์ฑ๋ฅ์ด ๋ค๋ฅธ ์ฌ๋ฌ ํด๋์ค๊ฐ ์๊ธฐ์
๊ฐ ํด๋์ค์ ํ๊ท ์ ๋ฐ๋ํ๊ท (mAP)๋ฅผ ๊ณ์ฐํ๋ ๊ฒ์ด ์ ์ฉํ๋ค.
์๋ ์์๋ฅผ ์ดํด๋ณด์.
๋จผ์ , Precision๊ณผ Recall์ ์๋์์์ฒ๋ผ ๊ตฌํ ์ ์๋ค.
์ฆ, True = ๋ง์ถ๊ฒ์ ์๋ฏธํ๋ฏ๋ก Precision๊ณผ Recall์ ์๋์ฒ๋ผ ์ค๋ช ํ ์ ์๋ค.
โ Precision = (๋ง์ถ๊ฒ=TP) / (์์ธกํ ๊ฒ ์ค = ?P)
โ Recall = (๋ง์ถ๊ฒ=TP) / (์ค์ ์ค)
๋จผ์ mAP๋ฅผ ๊ตฌํ๋ ์์์ ๋ํด ์ค๋ช ํด๋ณด๊ฒ ๋ค.
โช Confidence=0.6 & IoU=0.5 ๋ก ์ค์ โ Confidence์๊ณ๊ฐ์ ๋๊ธด Bbox๋ก ์์ธก๋ชฉ๋ก {a,b,d}๋ฅผ ์์ฑ โก ์์ธก๋ชฉ๋ก์ Confidence์์ผ๋ก ์ ๋ ฌ → {b,d,a} โข ์ ๋ขฐ๋๊ฐ ๊ฐ์ฅ ๋์ b๋จผ์ ์ฒ๋ฆฌ. โ b๋ 2,3๊ณผ ๊ฒน์นจ → IoU๊ฐ ๋ ํฐ 2์ ์์ ๋งบ์ โ b-2์์ TP๋ก ํ์ ํ, 2๋ ์ฐธ๊ฐ(Ground_Truth)๋ชฉ๋ก์์ ์ ์ธ. โฃ 2๋ฒ์งธ ์ ๋ขฐ๋๋ฅผ ๊ฐ๋ d๋ฅผ ์ฒ๋ฆฌ โ d๋ 4์ IoU๊ฐ 0.12(<์๊ณIoU)์ด๋ฏ๋ก FP๋ก ํ์ โค ๋ง์ง๋ง Bbox์์ธก๋ชฉ๋ก์์ a๋ฅผ ์ฒ๋ฆฌ โ a๋ 1๊ณผ IoU๊ฐ 0.6(=์๊ณIoU)์ด๋ฏ๋ก TP๋ก ํ์ โฅ Bbox๋ก ์์ฑํ ์์ธก๋ชฉ๋ก์ ๋ชจ๋ ์ฒ๋ฆฌํ์๋ค. โฆ ์์ธก Bbox ์ฒ๋ฆฌ ํ, ์์ ๋ชป๋งบ์ 3๊ณผ 4๋ FN์ผ๋ก ํ์ . โง ์ต์ข ์ ์ธ Precision๊ณผ Recall์ ๋ค์๊ณผ ๊ฐ๋ค. โ TP=2 , FP=1 , FN=2 ∴ Precision = 2/3 ∴ Recall = 2/4 โจ Confidence์๊ณ๊ฐ์ 0.5๋ก ๋ฎ์ถ๋ฉด, Precision๊ณผ Recall์ ๋ค์๊ณผ ๊ฐ๋ค. โ TP=3 , FP=2 , FN=1 ∴ Precision = 3/5 ∴ Recall = 3/4
โ AR๊ณผ mAR
AR(Average Recall)์ AP์ ์ฌ์ฉ๋๋ PR-Curve๋์ Recall-IoU๊ณก์ ์ ์ฌ์ฉํ๋ค.
์ด๋ ๋ชจ๋ IoU(ํนํ 50%์ด์)์ ๋ํด ํ๊ท ํ Recall๊ฐ์ผ๋ก AUC๊ฐ์ด 2๋ฐฐ๊ฐ ๋๋ค.
mAR์ mAP์ฒ๋ผ ๋ค์คํด๋์ค Object Detection์ ์ํ ๊ฒ์ผ๋ก ์ ์ฒด ํด๋์ค์ AR์ ๊ตฌํ๊ธฐ ์ํ ๊ฒ์ด๋ค.
cf) weights ๋ถํฌ์ NaN, Normalization
๐ค ๊ฐ์ค์น ๋ถํฌ๋ ์ด๋ค ๋ชจ์ต์ด์ด์ผ ํ ๊น?
์ ๊ฒฝ๋ง์ ๊ฐ ์ธต์๋ ์์ฒ~์๋ฐฑ๋ง๊ฐ์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง๋ฉฐ, ์ด๋ฐ ๊ฐ์ค์น๊ฐ๋ค์ ํฐ ์งํฉ์ ๋ถํฌ(Distribution)๋ฅผ ์์ฑํ๋ค.
ํ๋ จ ์์๊ณผ ๋์ ๊ฐ์ค์น ๋ถํฌ๋ ๋งค์ฐ ๋ค๋ฅผ ์ ์๊ธฐ์, ์ผ๋ฐ์ ์ผ๋ก ์ด๊ธฐ ๋ถํฌ๋ ๊ฐ์ค์น ์ด๊ธฐํ์ ๋ต์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ค.
์ด๋ ์ ๊ท๋ถํฌ๋ ๊ท ๋ฑ๋ถํฌ์์ ๋ฌด์์๋ก ์ถ์ถ๋๊ณ , ์ ๊ทํ ์์ธ์ด ์๊ฑฐ๋ ์๋ ๋ฑ ๋ค์ํ ๋ฐฉ์์ด ์ฌ์ฉ๋๋ค.
์ค์ฌ๊ทนํ์ ๋ฆฌ(CLT: Central Limit Theorem)์ ๋ฐ๋ฅด๋ฉด, ๊ฐ์ค์น๋ถํฌ๋ ๋ชจ๋ธ์ด ํ๋ จ๋๊ณ ์๋ ด๋จ์ ๋ฐ๋ผ ๋ Gauss์ ์ผ๋ก ๋ณด์ด๊ธฐ ์์ํ๋ค.
์ฆ, ํ๊ท μ์ ํ์คํธ์ฐจ σ๋ฅผ ๊ฐ๋ ๋ชจ์ง๋จ์ ๋ํด,
โ์ถฉ๋ถํ ๋ง์ ์์ ๋ฌด์์ ํ๋ณธ์ด ์ฃผ์ด์ง๋ฉด → ํ๋ณธํ๊ท ๋ถํฌ๋ Gaussian Distribution์ ๊ฐ๊น์์ง๋ค.
Butโ๏ธ๋ชจ๋ธ์ system์ ์ธ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด?
๊ฐ์ค์น๊ฐ ํด๋น ๋ฌธ์ ๋ฅผ ๋ฐ์ํด
โ 0๊ฐ (์ ๋ ฅ๊ฐ์ scale์ด ์ ๋๋ก ์กฐ์ ๋์ง ์์๊ฒฝ์ฐ ๋ฐ์ํ๋ 'Dying Layer Problem')
โ ๋งค์ฐ ํฐ๊ฐ (Overfitting)์ผ๋ก ์น์ฐ์น ์ ์๋ค.
∴ weight๋ถํฌ๋ฅผ ๋ณด๊ณ ๋ฌธ์ ๊ฐ ์๋์ง ์ง๋จ์ด ๊ฐ๋ฅํ๋ค!
์ฆ, Gaussian๋ถํฌ๋ฅผ ๋ฐ๋ฅด์ง ์๋ ๊ฐ์ค์น๋ถํฌ์ ๋ํด ๋ช๊ฐ์ง ๋ฐฉ๋ฒ์ ์๋ํ ์ ์๋ค.
๐ฉ ๋ถํฌ๊ฐ 0์ ์น์ฐ์ณ ์๋ ๊ฒฝ์ฐ:
โ ์ ๋ ฅ๊ฐ์ ๋ฒ์๋ฅผ [0, 1] → [-1. 1]๋ก scaling
โ ์ค๊ฐ Layer์ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด, Batch Normalization์ ์ถ๊ฐ.
๐ฉ ๋ถํฌ๊ฐ ํฐ ์ชฝ์ ์น์ฐ์ณ ์๋ ๊ฒฝ์ฐ:
โ Regularization or Dataset↑
๐ฉ ๊ฐ์ค์น๊ฐ ๊ฐ์ฐ์ค๋ถํฌ์์ ๋ฒ์ด๋ ๊ฒฝ์ฐ:
์ด๋ ์ฐ๋ฆฌ์ ์ด๊ธฐํ์ ๋ต์ด ๋ถ์ ์ ํ๊ธฐ์ ๊ฐ์ค์น๊ฐ ์๊ณ ์ ๊ท๋ถํฌ๋ฅผ ์ด๋ฃจ๋ ํ์คsystem์ ๋ฐ๋ฅด๊ธฐ ์ด๋ ค์ ์์ ์๋ฏธํ๋ค.
→ Gradient๋ฌธ์ ์ด๋ฏ๋ก Clipping, Regularization, Penalty ๋ฑ์ ์ถ๊ฐ.
์ ๊ฒฝ๋ง์ ๊ฐ์ค์น๋ ์ผ์ ๋ฒ์์์์ ์ ์ง๋์ด์ผ ํ๋ค.
์ด๋, ๊ฐ์ด ๊ฐ์๊ธฐ ์ปค์ง๋ค๋ฉด Gradient Exploding๋ฌธ์ ์ด๋ค.
ํนํ Loss๊ฐ์ด NaN์ ๋ฐํํ๋ฉด weight๊ฐ overflow์ค๋ฅ๋ฅผ ๋ฐ์์ํฌ ๋งํผ ์ปค์ก๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
๋ณดํต, scale์ด ์กฐ์ ๋์ง ์์ ์ ๋ ฅ์ ํฐ activation์ ๋ง๋ค์ด ๊ธฐ์ธ๊ธฐํญ๋ฐ๊ฐ๋ฅ์ฑ์ด ์๋ค.
๊ทธ๋ ๊ธฐ์ ์ ๋ ฅ์ธต์ 0~255ํฝ์ ์ด ์๋, -1~1์ด๋ 0~1์ฌ์ด์ scale๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ด๋ค.
์ด๋ฐ scale์กฐ์ ์ ์ด๊ธฐ์๋ง ์์ ๋๋๋ฐ, weight๊ฐ์ด randomํ ์ด๊ธฐ๊ฐ๊ณผ ๋ฉ์ด์ง๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฅผ Covariate Shift(๊ณต๋ณ๋ ๋ณํ)๋ผ ๋ถ๋ฅด๋๋ฐ, ์ด๋ฅผ ์ํด Batch Normalization์ ์ฌ์ฉํ๋ค.
Batch Normalization์ ์ด๋ฅผ ์ํด scale parameter(γ)์ shift parameter(β)๋ฅผ ์ฌ์ฉํ๋ค.
(์ ๋ ฅ์ γ๋ก ์กฐ์ , β๋ก ์ด๋์์ผ ์ถ๋ ฅ.)ํ๋ จ๊ณผ์ ์์ BN์ธต์ ์ฑ๋๋ณ ํ๊ท โํ์คํธ์ฐจ์ ์ด๋ํ๊ท (moving average)๋ฅผ ๊ณ์ฐํด ์ ์ฅํ๋ค.
cf) Batch Norm v.s Layer Norm
Transformer๋ ํ์ต๊ณผ์ ์์ ์ฑ์ ์ํด Layer Normalization์ ์ฌ์ฉํ๋ค.
Batch Norm: ๊ฐ ์ฑ๋์ ์ถ๋ ฅ์ ํ๊ท ์ด 0, ํ์คํธ์ฐจ๊ฐ 1์ด ๋๋๋ก ์ ๊ทํํ๋ ๋ฐฉ๋ฒ.
(์ด๋, batch์ฐจ์๊ณผ ๊ณต๊ฐ์ฐจ์์ ๊ฑธ์ณ ์ ๊ทํ ํต๊ณ์น๊ฐ ๊ณ์ฐ๋๋ค.)
Layer Norm: ์ฑ๋์ฐจ์์ ๋ํด ์ ๊ทํ ํต๊ณ์น๊ฐ ๊ณ์ฐ๋๋ค.
๋ฐ๋ผ์ batch์ ์๋ ๊ฐ sequence์์น๋ง๋ค ์ ๊ทํํ๋ค.
(์ด๋, ์ ๊ทํ ํต๊ณ์น ๊ณ์ฐ๋ฐฉ์์ด BN๊ณผ ์์ ํ ๋ฐ๋์ด๋ค.)
cf) Bias
ํน์ ์๊ฐ dataset์ด ๋๋ฌด ์ ๊ฑฐ๋ ๋ง์ ํด๋น ์๋๋ฆฌ์ค์ ๋ํ ์ ํ๋๊ฐ ๋จ์ด์ง๋ค๋ฉด,
์ด๋ ๋ฌธ์ ๊ฐ ๋๋๋ฐ ์ด์ ๋ํด dataset์ด biased(ํธํฅ)๋ ๊ฒ์ด๋ผ ํ๋ค.
์์ธ
๐ค Bias vs Imbalanced
์๋ฅผ ๋ค์ด ์ฌํ๋ฆฌ ์ดฌ์ ์, ์ฌ๊ท์ด๊ฐ ์์ ๊ฐ๋ฅ์ฑ์ 1% ๋ฏธ๋ง์ผ ๊ฒ์ด๋ค. (๋ฐ๋ฆผ์ ์๊ฑฐ๋ ...)
์ด Dataset์ ๋งค์ฐ ์ ์ ๋น์จ๋ก ์ฌ๊ท์ด๊ฐ ์์ํ ๋ฐ, ๊ท ํ์ด ๋ง์ง๋ ์์ง๋ง ํธํฅ์ ์ฆ๊ฑฐ๋ผ ํ ์๋ ์๋ค.
(์ฆ, Imbalanced๋ ๋ง์ผ๋ Bias๋ผ๊ณ ๋ ํ๊ธฐ๋ ์ ๋งคํ๋ค๋ ๊ฒ.)
๐ค Bias์ ์์ธ
- Selection Bias
- Measurement Bias
- Confirmation Bias
์ ํ ํธํฅ(selection bias)
๋ชจ๋ธ์ด production์์ ์ ํ ์๋๋ฆฌ์ค์ ํธํฅ๋ ํ์์งํฉ์ ๋ํด ํ์ต ์ ๋ฐ์.
๋ฐ์์ด์ :
- ํน์ ๋ฒ์ฃผ๊ฐ ์ ์ธ๋๊ฑฐ๋ ์ ๋๋ก ์ํ๋ง ๋์ง ์๋๋ก ์ค์๋ก ๋ฐ์ดํฐ ์์ค๋ฅผ ์ ํํ ๊ฒฐ๊ณผ๋ก ๋ฐ์ํ๋ ๋ถ์์ ํ ๋ฐ์ดํฐ์์ง
- ํน์ ์ ํ์ ๋ฐ์ดํฐ๊ฐ ๋ค๋ฅธ ์ ํ๋ณด๋ค ์์งํ๊ธฐ ์ฌ์ธ ๋.
- ์ด์์น ๊ฐ์ง์น๊ธฐ ๋ฐ ๋ฐ์ดํฐ์ ์ ๋ฆฌ์ ๋ฐ์๊ฐ๋ฅ
Sol) production ์์คํ ์์๋ถํฐ ์์ , ์ด๋ฏธ์ง๋ฅผ ์ฌ์ ์ ์์ง
์ธก์ ํธํฅ(measurement bias)
ํ๋ จ๊ณผ production๊ฐ์ image์์ง๋ฐฉ์์ด ๋ค๋ฅผ ๋ ๋ฐ์
๋ฐ์์ด์ :
- ํ๋ จ์ ์ํ ์ด๋ฏธ์ง์์ง๋ฐฉ์๊ณผ production์์์ ์์ง๋ฐฉ์์ ์ฐจ์ด๋ก ๋ฐ์.
- data๋ฅผ ์ ๊ณตํ๋ ์ฌ๋์ด ๋ฌ๋ผ์ง๊ฑฐ๋ labeling์ ์ฌ๋ฌ์ฌ๋์ด ์ํํ ๋
์ฆ, ์ธก์ ํธํฅ์ ๋งค์ฐ ๋ฏธ๋ฌํ ์๋ ์๋ค.
ํ์ฆ ํธํฅ(confirmation bias)
์ค์ํ์์ ๊ฐ์ ๋ถํฌ๊ฐ ์์น์๋ ํ๋์ ๊ฐํํ๋ ๋ชจ๋ธ๋ก ์ด์ด์ง ๋ ๋ฐ์
๋ฐ์์ด์ :
์์ ํธํฅ๊ณผ ๋ถ๊ท ํ์ ๊ตฌ๋ถ์ด ์ค์ํ๋ค ํ๋๋ฐ, ํ์ฆํธํฅ๊ณผ ๊ด๋ จํด ๋ ์ฌ์ด์ ์ฐจ์ด์ ๊ณผ ์ํธ๊ด๊ณ๋ ํนํ๋ ์ค์ํ๋ค.
(Dataset์ด imbalanceํ ์ค์ ๋ถํฌ๋ฅผ ์ ํํ๊ฒ ๋ํ๋ด๋๋ผ๋ ํธํฅ๋ ์ ์๊ธฐ ๋๋ฌธ!)
๋ฐ์ดํฐ ์์ง๋น์์๋ ๋๋ฌ๋์ง ์์ผ๋, dataset์์ ํ๋ จ๋ ๋ชจ๋ธ์ ํผ๋์ ์ผ์ผํฌ ์ ์๋ค.
Ex) ํน์ ํ๋ฒ์ ์ ๋ฆฌ ํ์ต๋ ๋ชจ๋ธ → ๋ชจ๋ธ์ด ์ด๋ฅผ ํ์ตํด ๋ฐ๋ผํ๊ฒ ๋จ.
์ฆ ํธํฅ๋์ง ์์ ๋ชจ๋ธ์ ์ด์ ๊ทน๋๋ก ํธํฅ๋์ด handler์ ํธ๊ฒฌ์ ํ์ฆํ๊ณ ์ง์์ํค๊ฒ ๋๋ค.
Sol) ‘๋ชจ๋ฅด๋ ๋ชจ๋ฆ’์ ์ํ๊ฒ๋ค์ ‘์๋ ์’์ด๋ ‘์๋ ๋ชจ๋ฆ’์ ๋ฒ์ฃผ๋ก ์์์ ์ผ๋ก ๋์ด๋ด์ผํ๋ค.
๐ค ์ง์์ด๋?
‘์๋ ์’: ์ฐ๋ฆฌ๊ฐ ์ด๋ค ์ง์์ ์๋ค๋ ์ฌ์ค์ ์ค์ค๋ก ์๊ฐํ๋ ๊ฒ.
‘์๋ ๋ชจ๋ฆ’: ์ฐ๋ฆฌ๊ฐ ๋ชจ๋ฅธ๋ค๋ ์ฌ์ค์ ์๋ ๊ฒ
‘๋ชจ๋ฅด๋ ๋ชจ๋ฆ’: ํด๋น ์ง์์ ์์ง๋ชปํ๋ค๋ ์ฌ์ค์กฐ์ฐจ ๋ชจ๋ฅด๋ ๊ฒ.
-Donald Rumsfeld, ์ ็พ ๊ตญ๋ฐฉ๋ถ ์ฅ๊ด-
ํธํฅ๊ฐ์ง
ํธํฅ๊ฐ์ง๋ฅผ ์ํด ์ฌ๋ผ์ด์ค ํ๊ฐ(Sliced Evaluation)์ ํ ์ ์๋๋ฐ, ์ฌ๋ผ์ด์ค ํ๊ฐ์์๋ ๋ชจ๋ธ์ ๋ชฉ์ ํจ์๋ฅผ ๊ทธ๋ฃน ๊ตฌ์ฑ์์ ๋ํด ๊ณ์ฐํด์ ๊ทธ๊ฒ์ ๋น๊ตฌ์ฑ์์ ๋ํ ์งํ์ ๋น๊ตํ๋ค.
๊ทธ ํ, ๋ค์ ์ฌ๋ผ์ด์ค ์งํ๊ฐ ์ ์ฒด dataset์ ์งํ์ ๋งค์ฐ ๋ค๋ฅธ ๊ทธ๋ฃน์ ์กฐ์ฌํ๋ค.
๋ํ, Bayes ์ ๊ทผ๋ฐฉ์์ ์ ์ฉํด ํด๋น ํ๋ฅ ์ ๋ํ์ธก์ ๊ฐ์ ๊ณ์ฐํ ์ ์๋ค.
๊ท๋ฉํธํฅ(Inductive Bias) feat. Transformer
๋จธ์ ๋ฌ๋์ด๋ ํต๊ณํ์์ ๋ชจ๋ธ์ด ์ ํํ๋ ๊ฐ์ค ๊ณต๊ฐ์ ์ ํํ๊ฑฐ๋ ์ ํธํ๋ ์ฑ๊ฒฉ
์ฆ, ๋ชจ๋ธ์ด ํ์ตํ๊ณ ์ผ๋ฐํํ๋ ๋ฐ ์ฌ์ฉํ๋ ๊ฐ์ ์ด๋ ์ ์ ๊ฒฌ์ ์๋ฏธํฉ๋๋ค.
์ด๋ฌํ ๊ท๋ฉ ํธํฅ์ ๋ชจ๋ธ์ด ํน์ ์ ํ์ ํจ์ ๋๋ ๊ตฌ์กฐ๋ฅผ ๋ ์ ํธํ๋๋ก ์ ๋ํ์ฌ,
ํ์ต ์๊ณ ๋ฆฌ์ฆ์ด ํน์ ์ ํ์ ๊ฐ์ค์ ๋ ๊ฐ๊น๊ฒ ์๋ ดํ๋๋ก ๋๋๋ค.
์ด๋ ๋ชจ๋ธ์ด ํ์ต ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ผ๋ฐํ๋ฅผ ์ํํ ๋, ํน์ ๊ฐ์ ์ด๋ ๊ฐ์ค ๊ณต๊ฐ์ ์ฐ์ ์ ์ผ๋ก ๊ณ ๋ คํ๋๋ก ์ ๋ํจ์ผ๋ก์จ
๋ชจ๋ธ์ ๋ณต์ก์ฑ์ ์ ์ดํ๊ฑฐ๋ ํ์ต์ ๋์์ฃผ๋ ์ญํ ์ ํ๋ค.
๋ฐ์์ด์ :
: ํน์ ์๊ณ ๋ฆฌ์ฆ์ ํน์ ์ ํ์ ๋ชจ๋ธ์ ๋ ์ ํธํ๋ ๊ฒฝํฅ.
1. ์๊ณ ๋ฆฌ์ฆ ์ ํ์ ๋ฐ๋ฅธ ํธํฅ
ex) ๊ฒฐ์ ํธ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ์ดํฐ์ ํน์ง์ ๊ธฐ๋ฐ์ผ๋ก ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ถํ ํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
2. ๊ฐ์ ์ ๋ฐ๋ฅธ ํธํฅ:
๋ชจ๋ธ์ด ํน์ ๊ฐ์ ์ ๊ฐ์ง๊ณ ํ์ตํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
ex) ์ ํ ํ๊ท๋ ๋ฐ์ดํฐ๊ฐ ์ ํ ๊ด๊ณ์ ์๋ค๋ ๊ฐ์ ํ์ ํ์ต๋ฉ๋๋ค.
3. ํ์ดํผํ๋ผ๋ฏธํฐ ์ค์ ์ ๋ฐ๋ฅธ ํธํฅ
๋ค๋ง, ์๋ชป๋ ๊ท๋ฉ ํธํฅ์ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์ ํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฃผ์ํด์ผ ํฉ๋๋ค.
cf) ๋ชจ๋ ๊ธฐ๊ณํ์ต๋ชจ๋ธ์ ๊ท๋ฉํธํฅ(inductive bias)์ด ์กด์ฌํ๋ค.
ex) CNN์ ๊ฒฝ์ฐ ์ด์ํ pixel๊ณผ ๋น์ทํ ํน์ฑ์ ๊ฐ๋๋ค๋ "locality"์
๋ฌผ์ฒด๊ฐ ์ด๋ํ๋ฉด ์ด๋ํ ์์น์ ๋์ผํ ํน์ง์ด ์ถ์ถ๋๋ค๋ "translation-equivalent" ๋ฑ์ด ๋ํ์ .
CNN์ ๊ฒฝ์ฐ ์ด๋ฐ ๊ท๋ฉํธํฅ์ด ๊ฐํ ํธ์ผ๋ก ์ด๋ฅผ ๋ง์กฑํ์ง ๋ชปํ๋ ์์ฐ์ด์ ๊ฐ์ ๋ค๋ฅธ modality-data์ ์ ์ฉ์ ๋ถ์์ฐ์ค๋ฌ์ด ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค. (๋ฌผ๋ก , RNN๋ ์๊ฐ์ถ๊ณผ ๊ด๋ จ๋ ๊ฐํ ๊ท๋ฉํธํฅ์ ๊ฐ๋๋ค.)
cf) ๊ท๋ฉํธํฅ: ๊ธฐ๊ณํ์ต๋ชจ๋ธ์ด ํ์ต๋จ๊ณ์ ๋ณด์ง์์๋ ์๋ก์ด sample๋ก ์ณ๊ฒ ์ถ๋ก ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ฐ์
- ํ์ง๋ง transformer์ ๊ฒฝ์ฐ, ๊ท๋ฉํธํฅ์ด ์ฝํ ํธ์ผ๋ก
๊ฐ์ฅ ์ค์ํ๊ฒ ํ์ฉ๋๋ "Self-Attention"์ image, text๋ฅผ ํฌํจํด ๋๋ถ๋ถ์ signal์์ ๋ํ๋์
์ฌ๋ฌ inputํํ (multi-modal data)์ ์ ์ฉํ ์ฌ์ง๊ฐ ์กด์ฌํ๋ค.
ex) ์์ฐ์ด->๊ทธ๋ฆผ์ DALL-E ๋ฑ๋ฑ vision๊ณผ NLP๋ฅผ ๋์์ ์ฒ๋ฆฌํ๋ ์ฌ๋ฌ ์์ฉ์์ backbone์ผ๋ก ํ์ฉํ ์ ์๋ค.
2. Classification
i) Deeper = Why High Accuracy?
1. Expressivity ๊ฐ์ค
๋น์ ํ ํ์ฑํํจ์๋ก ์ด๋ฃจ์ด์ง ์ธต์ ๋ง์ด ์์ ๋น์ ํ์ฑ์ด ๋ฐ์
→ ๊ณ ๋๋ก ๋ณต์กํ ์์ฉ์ ๊ทผ์ ๊ฐ๋ฅโ๏ธ
2. Generalization ๊ฐ์ค
MLP๋ ์ ๋ ฅ์ ์๋ฏธ๋ก ์ ์ผ๋ก ๋ถํด, feature์ hierarchical๊ตฌ์กฐ๋ฅผ ์์ฑํ๋ค.
shallow ----> deeper
detail ----> global feature
์ ์์ค ----> ๊ณ ์์ค
์ผ๋ก ๊ฐ ์๋ก classifier๊ฐ ๋ ์ผ๋ฐํ๋๋ค๋ ๊ฒ์ด๋ค.
3. Perceptive Field ๊ฐ์ค
image์ ์ฒด๋ฅผ ํฌ์ฐฉํ๋ ค๋ฉด N×N filter๊ฐ ํ์ํ๋ค.
Butโ๏ธ ์ถฉ๋ถํ ๊น๊ฒ ์์ผ๋ฉด 1×1, 3×3์ผ๋ก๋ N×N์์ญ์ "๋ณผ ์ ์๊ฒ"๋๋ค๋ ๊ฒ์ด๋ค.
ii) Deeper Network
๐ค Filter ๋ถํด
์ฆ, ๋ ์ ์ ํ๋ผ๋ฏธํฐ์ ์๋ฅผ ๊ฐ์ง๋ง 2๋ฒ์ ๋น์ ํ์ฑ์ ํตํด ๋ชจ๋ธ์ ๊น๊ฒ ๋ง๋ค ์ ์๋ค.
3×3 filter 2๋ฒ 5×5 filter ๐ = 18(2×3×3) ๐ = 25
๐ค GAP (Global Average Pooling)
GAP์ ํ์ต๊ฐ๋ฅํ ๊ฐ์ค์น๊ฐ ์๋ค๋ Pooling์ ํน์ง์ ์ด์ฉ.
๊ฐ channel๊ฐ์ ํ๊ท ํํด ์ถ๋ ฅํ๋ค.
๋ค๋ง, ์ด๋ฏธ์ง์ ์์น๊ฐ ์ค์ํ Detection์์๋ ๋ถ์ ์ ํ ๋ฐฉ๋ฒ์ด๋ค.
๐ค 1×1 filter๊ทธ๋ฅ ์ด๋ฏธ์ง๋ฅผ ์ด๋ํ๋ฉฐ ์์๋ฅผ ๊ณฑํ๋ ์ธ๋ฐ์์ด ๋ณด์ด์ง ์๋?
"๋ค์ค channel์์ channel๋ณ ๊ฐ์ค์น๋ฅผ ๋ฌ๋ฆฌ"ํ์ฌ ์๋ฏธ๊ฐ ๋ฐ์!
+ data์ channel์กฐ์ ์ ๋ค! (ํ์ต๊ฐ๋ฅ๐ ์๋ฅผ ์ค์ผ ์ ์๋ค.)
cf) DenseNet์ ๊ฒฝ์ฐ, ์ด๋ฅผ ํ์ฉํด ํ์ต๊ฐ๋ฅ๐ ๋ฅผ ๊ฒฝ์ ์ ์ผ๋ก ์กฐ์ ํ๋ค.
(DenseNet์ Conv์ ๋จ๊ณ์์ ๋ฐ๋ผ channel์๊ฐ ์ ํ์ ์ผ๋ก ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ)
iii) Module์ ๊ตฌ์กฐ (Skip-Connection์ด ์ ์ข์๊ฐ?)
Module์ ๊ตฌ์กฐ๋ ์ฌ๋ฌ ์ ํ์ฌํญ์ ๋ง๋ ํ ์ด๋๊ฒ์ด ๊ฐ์ฅ ์ข์์ง ์ ๊ฒฝ๋ง์ด ํ์ตํ๊ฒ ํ๋ ๊ฒ์์ ์ถ๋ฐํ๋ค.
Inception module, Residual blocks, inverted residual bottlenecks ๋ฑ์ด ์์ผ๋ ResNet์์ฃผ๋ก ๋ค๋ฃฐ ๊ฒ์ด๋ค.
๐ค ResNet
์ ๊ฒฝ๋ง ๊น์ด๊ฐ ๊น์ด์ง๋ฉด ์ ์ฒด layer gradient๊ฐ ํฉ์ด์ ธ ๋๋ฆฌ๊ฒ ์๋ ดํ๊ฑฐ๋ ์๋ ดX
→ layer์ฌ์ด skip-connection์ ์ถ๊ฐ, ์ ํธ๋ฅผ ๊ทธ๋๋ก ์ ๋ฌํ๋ค.
์ฆ, element-wise addition์ ๋น์ ํ์ฑ์ด ์ถ๊ฐ๋ signal๊ณผ ์งํํ๋ ๊ฒ์ด๋ค.
๐ค Skip Connection์ด BP์ต์ ํ ๋จ๊ณ์์ Gradient Flow์ ์ ๋์์ ์ฃผ๋๊ฐ?
1. Addition ์ฐ์ฐ
โ ๋ณดํต์ DNN๋ชฉํ: ์ํ๋ ์ถ๋ ฅ์ ์ํด ๋ด๋ถ w๋ฅผ update
โ Skip Connection: input๊ณผ output์ฌ์ด Δ or residue๋ฅผ ์ถ๋ ฅํ๋๊ฒ์ด ๋ชฉํ
2. Residual์ฐ๊ฒฐ์ด ์ค์ ๋ก ์ ๊ฒฝ๋ง์ ๋ shallowํ๊ฒ ๋ง๋ ๋ค๋ ๊ฒ.
(= ์ต์์ ๊ฒฝ๋ก๋ฅผ ์ค์ค๋ก ์ ํ, ์ค์ ๋ก๋ ๊ทธ๋ฅ ๊น์ง ์์ ํจ์จ์ ์ธ ์๋ ด๊ฐ๋ฅ.)
3. Training ์ค ์ต์ ํ๋ J(w)์ topologyํ๊ฒฝ
iv) MobileNet: ์ ์ฐจ์์ ReLU๋ ๋๋ฌด๋ง์ ์ ๋ณด๋ฅผ ํ๊ดดํ๋ค.
๐ Depth-wise Seperable Convolution
๊ธฐ์กด filter๋ ๋๊ฐ์ ๊ณต๊ฐ์ ์ฌ์ฐฝ์กฐํ๊ธฐ์ ๐๋ฅผ ๋นํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ค.
Filter๋ H×W×C๋ก spatial filtering(H×W)๊ณผ Channel๊ณผ์ ์ ํ์ฌ์กฐํฉ ๊ณผ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
์ด ๋์ฐ์ฐ์ด ์ฑ๋ฅ์ ์ํฅ์ ์ฃผ์ง์์ผ๋ฉฐ "๋ ๋ฆฝ"(= ๋ถ๋ฆฌ๊ฐ๋ฅ)ํ๋ฉด, ์ ์ ๐ ๋ก ํ์ตํ ์ ์๋ค.
๐ค Depth-wise Seperable Convolution์ ๋ค์ ํน์ง์ ๊ฐ๋๋ค.
โ ๋ ๋ฆฝ์ ์ธ filter set์ผ๋ก channel๋ณ ์ ๋ ฅ์ filtering
โ ์ดํ 1x1 convolution์ผ๋ก ๊ฐ๋ณ์ ์ธ ์ถ๋ ฅ์ ๊ฒฐํฉ (= channel๋ณ ๊ฐ์คํฉ)(โต channel์ ์ถ์ถํ "๋ชจ์์ ๋ณด"๊ฐ ์๋๊ธฐ ๋๋ฌธ)
(๋ค๋ง, img๋ "๋ชจ์์ ๋ณด"์ด๊ธฐ์ 3x3 filter๋ฅผ ์ฌ์ฉํ๋ค.)
๐ค Inverted Residual Bottleneckscf) latency๋, inference time์์ ์ง์ฐ์๊ฐ์ ์๋ฏธ
v) EfficientNet
์ต์ ํ ๋ชฉํ: ์์ธก์ ํ๋ > ์ถ๋ก latency
→ 3๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก convolution๊ตฌ์กฐ๋ฅผ ํ์ฅ.
โ layer ์ถ๊ฐ
โ layer๋ณ channel ์ถ๊ฐ
โ input img ํด์๋↑
์ด๋, ์ 3๊ฐ์ง ๋ฐฉ๋ฒ์ ์๋ก์๊ฒ ์ํฅ์ ์ค๋ค.
(โต Receptive Field๋ฅผ ํค์ฐ๋ ค๋ฉด layer๊ฐ ๋ ํ์.)
(โต ๋ ํฐ img์ ๋ฏธ์ธํจํดํฌ์ฐฉ์ ์ํด channel๋ ๋ง์ด ํ์.)EfficientNet๊ตฐ์ Overfitting๋ฐฉ์ง๋ฅผ ์ํด B0~B7๊น์ง Dropout์ 0.2~0.5๋ก ๋๋ฆฐ๋ค.
๋ํ, AutoAugment์ SiLU(= Swish-1)๋ฅผ ์ฌ์ฉํ๋ค.
vi) Vision Transformer with Self-Attention Mechanism
Transformer์ ๊ฒฝ์ฐ, Self Attention Mechanism์ ์ฌ์ฉํ๋ค.
[Self Attention Mechanism]: ์ ๋ ฅ์ฌ์ด ์๋ฏธ๋ก ์ ๊ด๊ณ(Semantic Relation)์ ์ธ์, ํน์ patch๊ฐ ๋ค๋ฅธ patch์ ๋นํด ๋ ์ค์ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๊ฒฝ์ฐ, ์ด๋ฅผ . ๋๊ฐ์กฐํด ์๋ก์ด ํํ์ ์์ฑํ๋ค.
Convolution์ Dataset์ด ์ฆ๊ฐํ ๋, ๊ฐ์ค์น ์๋ฅผ ์ค์ฌ์ผ ํ๋ค.
ViT๋ image๋ฅผ patch๋จ์๋ก ์ชผ๊ฐ patch์ ํฝ์ ๊ฐ๊ณผ position์ ์ด์ด๋ถ์ฌ ํํํ๋ค.
๋ค๋ง, ViT์ ๊ฒฝ์ฐ, Convolution๋ณด๋ค ๋ ๋ง์ Dataset์ ์๊ตฌํ๊ธฐ์
๋๋์ Data๋ก pretrainํ ํ ๋ ์์ Dataset์ผ๋ก Fine-tuningํ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ค.
vii) Ensembles & ๊ถ์ฅ ํ์ต์ ๋ต.
ํต์ฌ์ ์ฝ์ ๋ณด์์ ์ํด "์ต๋ํ ๋ค๋ฅธ ๋ชจ๋ธ์ ์ ํ"ํ๋ ๊ฒex) DenseNet + Xception + EfficientNet
โ Dataset์ด ๋งค์ฐ ์์๋: Transfer Learning
โ Dataset์ด ๋ณดํต์ผ ๋: Fine-Tuning
โ Dataset์ด ๋งค์ฐ ํด ๋: ์ฒ์๋ถํฐ ํ์ต
3. Detection
์ข ๋ ์์ธํ ์ค๋ช ์ ๊ฐ์ฅ ํ๋จ๋ชฉ๋ก์ ์ฐธ์กฐ.
RetinaNet(FPN, AnchorBox, NMS)
๐ค FPN (Feature Pyramid Network)
๋น์ ํ์ฑโ ์ ๊ฒฝ๋ง
Conv์ธต: Feature map์ ์๋ฏธ์ ๋ณด๋ฅผ ์ ์ฐจ ๋ค๋ฌ๋๋ค.
Pool์ธต: ๊ณต๊ฐ(x,y)์ฐจ์์์ feature map์ ์ถ์ํ๋ค.
๐ค Anchor Box
Bbox๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฐจ์ด๊ฐ(Δ)์ผ๋ก ๊ณ์ฐ๋๋๋ฐ, ์ด๋ ๋จ์ํ ์ฌ๋ฌผ๊ณผ ๊ฒน์ณ์ง ๊ฒ์ ์๋ฏธํ๋ค.
โ pred = Δ of Anchor ํฌ๊ธฐ&์์น
โ ๋ชฉํ: ์ ๊ฒฝ๋ง์ด 0์ฃผ๋ณ์ ์์ ๊ฐ์ผ๋ก ์์ธกํ๊ฒ ๋๋ ๊ฒ.
(โต 0 ๋ถ๊ทผ์์๋ง ๋น์ ํ์ฑ์ ๊ฐ๋ ํ์ฑํ ํจ์๋ฅผ ์ฌ์ฉํ๋ ์ด์ .)
Loss ๊ณ์ฐ์, ์ค์ธก๋ฐ์ค(N) Anchor Box(M) ์ ๋ณ IoUํ๋ ฌ(N×M)์ ๊ณ์ฐ,
์ด๋, ์ ์๋ฏธํ์ง ์์ ๊ฐ = Background๋ก ๊ฐ์ฃผํด ์๋ฌด๊ฒ๋ ๊ฒ์ถํ์ง ์๊ฒ ํ๋ จ๋๋ค.
๐ฉ (ํด๋์ค ๋ถ๋ฅ): Focal Loss
Background Box์ ํด๋นํ๋ ์์ค์ด ์ ์ฒด ์์ค ์๋ ๊ฐ๋ฅ
→ ์ด๋ฅผ ๋ฐฉ์งํ๊ณ ์ RetinaNet๋ ผ๋ฌธ์์ ์์คํจ์๋ฅผ ์กฐ์ (BCE with γ)
→ ๋น ๋ฐฐ๊ฒฝ์ ํจ์ฌ ๋ ์์ Loss๊ฐ์ ์์ฑํ๊ฒ ํ๋ค!
๐ฉ (๋ฐ์ค ํ๊ท): Smooth L1 Loss
L1: ๊ฒฝ์ฌ๊ฐ ๋ชจ๋ ๊ณณ์์ ๋์ผํ๋ค๋ ๋ฌธ์
L2: pred์ target๊ฐ์ด ๋ฉ์๋ก ์ค์ฐจ๊ฐ์ด ์ปค์ ธ outlier์์ ๋ฌธ์ ๊ฐ ๋ฐ์
์ด์ ๋ํ ์ ์ถฉ์์ผ๋ก ๋ฑ์ฅํ Smooth L1 Loss (์์ ๋ Huber Loss)๋ ์๋์ ๊ฐ์ ๋๋์ผ๋ก ์ฌ์ฉ๋๋ค.
โ ์ค์ฐจ๊ฐ ์์ ๊ฐ → L2
โ ์ค์ฐจ๊ฐ ํฐ ๊ฐ → L1
๐ค NMS (Non-Maximum Suppression)
๋ค์์ Anchor Box ํ๋ณด์์ IoU์ Confidence๋ฅผ ์ด์ฉํด ๊ฐ์ฒด๋ณ 1๊ฐ์ฉ๋ง ์ ํํ๊ธฐ ์ํ "Greedy-Algorithm"
Step 1: Greedy๋ก IoU > Threshold์ธ Box๋ฅผ ์ฐพ์
Step 2: ๋ ๋์ class confidence๋ฅผ ๊ฐ๋ Box๋ฅผ ์ด๋ฆผ.
์ด๋ฅผ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ํ๋ด๋ฉด ์๋์ ๊ฐ๋ค.def NMS(Boxes, Confidence): res_box = [] for b1 in Boxes: ๋ฒ๋ฆผ = False for b2 in Boxes: if IoU(b1, b2) > threshold: if Confidence[b2] > Confidence[b1]: ๋ฒ๋ฆผ = True if not ๋ฒ๋ฆผ: res_box.append(b1) return res_box
4. Segmentation
i) Semantic Segmentation
instance segmentation์ ๊ฒฝ์ฐ, ๊ฐ๋ณ instance๊ฐ ๋ถ๋ฆฌ๋์ง ์๋๋ค.
semantic segmentation์ ๊ฒฝ์ฐ, ๊ฐ์ segment์ "pixel"๋ก ๊ตฌ๋ถํ๋ ๊ฒ์ด๋ค.
U-Net์ ๊ฒฝ์ฐ, Encoder to Decoder๊ตฌ์กฐ๋ก "์ง์ ์ ์ธ" Skip connection์ ์งํํ๋ค.
์ด๋ฅผ ํตํด Semantic granularity์ ๋ณด๋ฅผ Encoder์์ Decoder๋ก ์ง์ ๊ฐ์ ธ์จ๋ค.
ii) Instance Segmentation (Atrous Convolution, Mask R-CNN)
๐ค Transposed Convolution
= Atrous Convolution
= Deconvolution
์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, ์ด๋ ๊ธฐ์กด Upsampling๋ฐฉ๋ฒ๊ณผ ๋ฌ๋ฆฌ "ํ์ต๊ฐ๋ฅํ ๊ฐ์ค์น๋ฅผ ํฌํจํ๋ Upsampling"์ฐ์ฐ์ด๋ผ๋ ์ ์์ ์ ์ฉํ๋ค.
์์ธํ ์ค๋ช ์ ์ด ๋งํฌ ์ฐธ์กฐ.
๐ค Instance Segmentation with Mask R-CNN
Detection: Object ์ฃผ๋ณ Bbox๋ฅผ ์ฐพ์ ๋ถ๋ฅํ๋ ๊ฒ.
Instance Segmentation: Detection๋ ๋ชจ๋ ๊ฐ์ฒด์ ๋ํด ๊ฐ ๊ฐ์ฒด๋ชจ์์ ๋ง๋ pixel mask๋ฅผ ์ถ๊ฐ.
๐ฉ Mask R-CNN
Mask R-CNN๊ณผ ๊ธฐํ RPN์ ํ๋ฒ์ ํ ๊ณณ์ RoI์์ ์๋ํ๊ธฐ์ ์ด๋ ์ค์ ๋ก Interest์ผ ํ๋ฅ ์ด ๋๊ณ , ์ฆ RoI๋ง๋ค ๋ ๋ง์ ์์ ์ ๋ ๋์ ์ ๋ฐ๋๋ก ์ํํ ์ ์๋ค.
Instance Segmentation Head: detection๋ ๊ฐ์ฒด์ Feature map์ Transposed Convolution์ผ๋ก Upsamplingํ๋ค.
์ด๋, Mask-Head๋ ํด๋์ค๋น 1๊ฐ์ mask๋ง ์์ฑํ๋ค.
Segmentation Loss๋ ๋จ์ pixel by pixel์ ๋ํ BCE Loss๋ฅผ ์ฌ์ฉํ๋ค.
(์์ธก๋ ํด๋์ค์ ๋ํด ์์ธก๋ mask๋ง Loss๊ฐ์ ๊ณ์ฐํ๋ค.)
5. Pose Estimation
๐ค Pose Estimation์ด๋?
์ฌ๋์ ์์ธ๋ฅผ ์๋ณํ๊ธฐ ์ํด ํ๊ฟ์น, ๋ฌด๋ฆ, ์ผ๊ตด ๋ฑ์ ์๋ณํ๋ ๊ฒ.
์ฌ๋์ด ์์์๋์ง, ์์๋์ง ๋ฑ์ ์์ธํ๋ณ์ด ๊ฐ๋ฅํด ๋ค์๊ณผ ๊ฐ์ ๊ณณ์์ ํ์ฉ๊ฐ๋ฅํ๋ค.
- ํ๋ ์ธ์ (Activity recognition) in ์คํฌ์ธ , ์๋ฃ
- ์ ๋๋ฉ์ด์ (Animation)
- ๊ฒ์ด๋ฐ (Gaming)
- ์ฆ๊ฐ ํ์ค (Augmented reality)
๐ค PoseNet
[1๋จ๊ณ]
โ Detection๋ชจ๋ธ์ ์ฌ์ฉํด Interest point์ Heatmap์ ์๋ณ
(์ผ๋ฐ์ ์ธ Interest point: ๊ด์ (joint or landmark), ๋, ์ฝ ๋ฑ)
(Heatmap: Detection๋ชจ๋ธ classifier head์์ ์ถ๋ ฅ๋๋ ์ ์ = threshold์ง์ ์ด์ ๊ฐ)
[2๋จ๊ณ]
โ Detect๋ ๊ฐ joint๋ฅผ ๊ธฐ์ค, ๊ทผ์ฒ joint์ ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์๋ ์์น ์๋ณ.
[3๋จ๊ณ]
โ Hough Transform์ด๋ผ๋ Weighted Voting Mechanism์ผ๋ก 1,2๋จ๊ณ์ ๋ฐ๋ผ ์ ํ๋ Joint๊ธฐ๋ฐ, pose๊ฒ์ถ.์ด๋, 2,3๋จ๊ณ๋ ๋ค์ํ jointํ์ง๋ฅผ ์ํด ๋จ์ detection๋ชจ๋ธ๋ก๋ ์ถฉ๋ถ์น ์๊ธฐ์ ํ์์ ์ด๋ค.
๊ทธ๋ ๊ธฐ์ joint์ joints์ฌ์ด์ offset๋ ์์ธกํ๋ ๊ฒ์ด๋ค.
๐ค ๋ค์ค๊ฐ์ฒด์ pose estimation
๋จ์ผ ์ด๋ฏธ์ง์์ ์ฌ๋ฌ์ฌ๋์ pose estimation์ ์ํด ์์ step์ ๋ช๊ฐ์ง ๊ธฐ์ ์ถ๊ฐ๊ฐ ํ์ํ๋ค.
1. segmentation๋ชจ๋ธ์ ํ์ฉ, ์ฌ๋์ ํด๋นํ๋ ๋ชจ๋ pixel ์๋ณ
2. joint์กฐํฉ์ ์ฐธ๊ณ ํด ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ ๋์ ์ ์ฒด๋ถ์ ์๋ณ
3. ๊ฐ ์ฌ๋์๊ฒ ์ฌ๋ pixel์ ํ ๋น.
(1์์ ์ฐพ์ mask์ Pixel๊ณผ 2์์ ์๋ณํ ๊ฐ๋ฅ์ฑ๋์ joint๋ฅผ ์ด์ฉ.)
๐ง Human Pose Estimation ๋ฐฉ์
1) Top-Down ๋ฐฉ์
: ์ฌ๋์ ๋จผ์ Detect → Detect๋ ์์ธ๋ฅผ ์ถ์ .
์ ํ๋๊ฐ Bottom-up๋ฐฉ์๋ณด๋ค ๋์.
๊ฒ์ถ๋ ์ฌ๋๋ค์ ์ํํ๋ฉฐ joint๋ค์ ์ฐพ๊ธฐ์ ์๋๊ฐ Bottom-up๋ฐฉ์๋ณด๋ค ๋๋ฆฌ๋ค
๋ณดํต ์ ํด์๋์์ ๊ณ ํด์๋๋ก ๊ณผ์ ์ด ์ํ
์ฆ, object detector๋ฅผ ์ฌ์ฉํด, ๊ฐ๋ณ instance๋ฅผ ์๋ณ(identifying), localizing → ํ ์ฌ๋์ ํฌ์ฆ๋ฅผ ์ถ์ .ex) AlphaPose, Mask-RCNN
2) Bottom-Up ๋ฐฉ์
joint๋ฅผ ๋จผ์ Detect → ์๋ก ์ฐ๊ฒฐํด ์์ธ๋ฅผ ์ถ์ .
์ ํ๋๋ Top-down ๋ฐฉ์์ ๋นํด ๋จ์ด์ง.
Object Detection ๊ณผ์ ์ด ์์ด ์๋๊ฐ ๋นจ๋ผ ์ค์๊ฐ ์ฒ๋ฆฌ์ ์ฌ์ฉ ๊ฐ๋ฅ
๋ณดํต ๊ณ ํด์๋์์ ์ ํด์๋๋ก ๊ณผ์ ์ด ์ํ
์ฆ, ํ์ธ๋์ง ์์(identity-free) ์๋ฏธ๋ก ์ ์ค์ฒด(semantic entities)๋ฅผ ์ง์ญํ→์ฌ๋ ์ธ์คํด์ค๋ก ๊ทธ๋ฃนํex) OpenPose
Pose Estimation Guide - Fritz ai
Almost everything you need to know about how pose estimation works Pose estimation is a computer vision technique that predicts and tracks the location of a person or object. This is done by looking at a combination of the pose… Continue reading Pose Est
fritz.ai
๐ ์์ฑ AI (Generation AI)
1. Baseline
ํ์ฌ๊น์ง ์ด 6๊ฐ์ง์ ํ๋ฆ์ผ๋ก Vision Generation์ ๋ถ๋ฅ๊ฐ๋ฅํ๋ค:
โ VAE
โ GAN
โ Auto-Regressive
โ Normalizing Flow
โ Energy-Based Model
โ Diffusion
์ด์ ๋ํด ๊ฐ๋จํ ํน์ง์ ์ ๋ฆฌํ๋ฉด ์๋์ ๊ฐ๋ค.
โ VAE
d
sโ GAN
s
sโ Auto-Regressive
s
sโ Normalizing Flow
s
sโ Energy-Based Model
s
sโ Diffusion Model
s
s
2. Advanced GAN
ls
s
3. RL & World Model
ls
s
4. Multi-Modal
ls
s
๐ Detection ์์ธ์ค๋ช
1. R-CNN ๊ณ์ด (RCNN, Fast R-CNN, Faster R-CNN)
1.1 R-CNN
R-CNN์ ํ๋ณด์์ญ์ ์์ญ์ ์[Region Proposal]์ด๋ผํ๋ค.
2-stage๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ์ RCNN๊ณ์ด๋ฐฉ๋ฒ๋ค์ 2-stage๋ฐฉ๋ฒ์ด๋ผ ๋ถ๋ฅธ๋ค.
โ ์์ญ์ ์๊ณผ์
๋ฌผ์ฒด๊ฐ ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ ์์ญ์ ์ฐพ๋๋จ๊ณ.
RCNN์ Selective Search Algorithm์ผ๋ก ํ๋ณด์์ญ์ ์์ฑํ๋ค.
Selective Search๋ image๋ฅผ super pixel๋ก ๋ถํ ํ, clustering๊ณผ์ ์ผ๋ก ์์ญ์ ์์ฑ.
์์ฑ๋ ์์ญ์ 227×227ํฌ๊ธฐ๋ก ์ ๊ทํ,CNN์ ์ ๋ ฅ, ํน์ง๋ฒกํฐ๋ฅผ ์ถ์ถํ๋ค.
โ ์์ญ๋ถ๋ฅ๊ณผ์
Binary-classifier์ธ SVM์ด ๊ฐ ํด๋์คํ๋ฅ ์ ๊ณ์ฐ, ํด๋์คํ๋ฅ ๋ฒกํฐ๋ฅผ ์ถ๋ ฅ.
ํ๋ณด์์ญ์ ๋ํด ์์น์ ํด๋์ค์ ๋ณด๋ฅผ ํ๋ณด ํ, ์์น์ ํด๋์ค๋ฅผ ์ต์ข ์ ์ผ๋ก ์ถ๋ ฅํ๋ค.
์ฆ, "Selective Search์๊ณ ๋ฆฌ์ฆ → RoI ์์ฑ → CNN์ผ๋ก ํน์ง๋ฒกํฐ ์ถ์ถ → SVM" ์.
1.2 Fast-RCNN
โ ์์ญ์ ์๋จ๊ณ: Selective Search Algorithm ์ฌ์ฉ.
โ ์์ญ๋ถ๋ฅ๋จ๊ณ: SVM์ Neural Net์ผ๋ก ๋์ฒด.
โ RoI ํฌ์
Convํน์ง๋งต์์ ํ๋ณด์์ญ์ ํด๋นํ๋๊ณณ์ RoI(Region Of Interest)๋ก ์ง์ ํ๋, RoIํฌ์์ ์งํ.
๊ทธ๋ฆผ์์ ์ข์ธก์ ์์ ํด๋นํ๋ RoI๊ฐ ๋ ธ๋์์ธ๋ฐ, RoI์ RoIํ๋ง์ธต์ ์ ์ฉํด ๊ณ ์ ํฌ๊ธฐ๋งต(๋ น์ 7×7๋งต)์ ์ถ๋ ฅํ๋ค.
โ RoI ํน์ง๋ฒกํฐ์ถ์ถ
์ด ํน์ง๋งต์ 2๊ฐ์ FC์ธต์ ํต๊ณผ์์ผ 4096์ฐจ์์ RoIํน์ง๋ฒกํฐ๋ก ๋ณํํ๋ค.
RoIํน์ง๋ฒกํฐ๋ 2๊ฐ๋๋ก ๋๋๋ค.
โ ๋ถ๋ฅ ๋ฐ ํ๊ท๊ณผ์ ์ ๋ชจ๋ RoI์ ์ ์ฉ
ํ๊ณณ์ ๋ถ๋ฅ๋ฅผ ๋ด๋นํ๋ FC์ธต์ ํต๊ณผ, ํด๋์คํ๋ฅ ๋ฒกํฐ๋ฅผ ์ถ๋ ฅํ๊ณ
ํ๊ณณ์ ํ๊ท๋ฅผ ๋ด๋นํ๋ FC์ธต์ ํต๊ณผ, ํด๋์ค๋ณ ๋ฐ์ค์ ๋ณด(x,y,h,w)๊ฐ ๋๋ค.
์ฆ, "RoIํฌ์ → RoI ํน์ง๋ฒกํฐ์ถ์ถ → ๋ถ๋ฅ ๋ฐ ํ๊ท๊ณผ์ ์ ๋ชจ๋ RoI์ ์ ์ฉ" ํ๋ค.
๋ฌผ์ฒด์์์ผ๋ก ํ์ ๋ RoI๋ ๋ฒ๋ฆฌ๊ณ , ๋๋จธ์ง๋ ํ์ฒ๋ฆฌ ํ ๋ฐ์ค์ ๋ณด์ ํด๋์ค์ ๋ณด๋ฅผ ์ต์ข Detection๊ฒฐ๊ณผ๋ก ์ถ๋ ฅํ๋ค.
Fast-RCNN์ ๋ฐ์ค์ ๋ณด๋ฅผ ์์๋ด๋ ํ๊ท์ ํด๋์ค๋ฅผ ์์๋ด๋ classification์ ๋์์ ์ํํ๊ธฐ ๋๋ฌธ์ ํ๋์ Loss function์ผ๋ก ๋ task๋ฅผ ๋ฌ์ฑํด์ผํ๋ค.
โ ์์คํจ์: J = Jclassification + λโJregression ํ์
์ด๋ฐ ์์คํจ์๋ฅผ ๋ค์ค๊ณผ์ ์์คํจ์(Multi-task Loss function)๋ผ ํ๋ค.
1.3 Faster-RCNN
โ ์์ญ์ ์๋จ๊ณ: ์์ญ์ ์๋ชจ๋, RPN(Region Proposal Network)์ ๊ฒฝ๋ง ์ฌ์ฉ.
โ ์์ญ๋ถ๋ฅ๋จ๊ณ: Fast R-CNN ์ฌ์ฉ.
โ RPN
Pre-Trained VGG16์ ์์ ๋ฐฐ์นํด ํน์ง๋งต์ ์ถ์ถ(๋ ธ๋์ H×W๋งต)ํ๋ค.
RPN์ ์ด ํน์ง๋งต์ ๊ฐ pixel์์ 3×3 filter๋ก 512์ฐจ์์ ํน์ง๋ฒกํฐ๋ฅผ ์ถ์ถํ๋ค.
์ด ํน์ง๋งต์ ์๋ก ๋ค๋ฅธ 2๊ฐ์ 1×1 convolution์ ์ ์ฉํด 6๊ฐ์ ๊ฐ๋ค์ ์ถ์ถํ๋ค.
โ ๋ฌผ์ฒด์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ 2๊ฐ์ ๊ฐ
โ ๋ฐ์ค์ ๋ณด๋ฅผ ๋ํ๋ด๋ 4๊ฐ์ ๊ฐ.
์์ ์ฐ์ฐ์ 9๋ฒ ์ ์ฉํด ํฌ๊ธฐ์ ๊ฐ๋ก์ธ๋ก๋น์จ์ด ๋ค๋ฅธ 9๊ฐ์ ๋ฐ์ค (= Anchor)๋ฅผ ์์ฑ.
Anchor: ์ฌ๋ฌํฌ๊ธฐ์ ๋ฌผ์ฒด๋ฅผ ํํํ๋ Anchor๋ฅผ ์์ฑํจ์ผ๋ก์จ ๋ค์คํฌ๊ธฐ์ ๋ฌผ์ฒดํ์ง๋ฅ๋ ฅ์ ๊ฐ์ถ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก H×W์ pixel๋ง๋ค 9๊ฐ์ Anchor๊ฐ ์์ฑ๋๋ฏ๋ก H×W×9๊ฐ์ Anchor๊ฐ ์์ฑ๋๋ค.
์ฌ๊ธฐ์ NMS๋ฅผ ์ ์ฉํด 2,000์ฌ๊ฐ์ Anchor๋ง ๋จ๊ธด๋ค.
์ฆ, CNN์ผ๋ก ํน์ง๋งต ์ถ์ถ → 1×1 conv๋ก 6๊ฐ๊ฐ ์ถ์ถ 9ํ ์งํ → Anchor Box์์ฑ ์์ด๋ค.
โ Fast R-CNN
์ด Anchor๋ค์ RoI์ผ๋ก ๊ฐ์ฃผํด ์ ๊ทธ๋ฆผ์ ์ ๊ฒฝ๋ง์ ๋ท๋ถ๋ถ์ ์๋ Fast-RCNN์ผ๋ก ์ ๋ ฅํ๋ค.
Fast-RCNN์ ํ๋ณด์์ญ ๊ฐ๊ฐ์ ๋ํด RoIํฌ์ → RoI ํน์ง๋ฒกํฐ์ถ์ถ → ๋ถ๋ฅ ๋ฐ ํ๊ท๊ณผ์ ์ ์ ์ฉํ๋ค.
๋ฌผ์ฒด์์์ผ๋ก ํ์ ๋ ํ๋ณด์์ญ์ ๋ฒ๋ฆฌ๊ณ , ๋๋จธ์ง ํ์ฒ๋ฆฌ ํ, ๋ฐ์ค์ ๋ณด์ ํด๋์ค์ ๋ณด๋ฅผ ์ต์ข Detection๊ฒฐ๊ณผ๋ก ์ถ๋ ฅํ๋ค.
2. YOLO ๊ณ์ด
YOLO v1์ ํน์ง
image๋ฅผ s×s๊ฒฉ์๋ก ๋๋๋ค.
(์ค์ ๊ตฌํ์ ์๋๊ทธ๋ฆผ์ ๋ ธ๋๊ฒฉ์์ฒ๋ผ s=7๋ก ์ค์ ํด ์ด 49๊ฐ์ ์นธ์ด ์กด์ฌํ๋ค; ๋นจ๊ฐ๋ฐ์ค๋ dataset์ ๋ผ๋ฒจ๋ง๋ ์ฐธ๊ฐ์ด๋ค.)
์๋๊ทธ๋ฆผ์์ ๊ฒ์์นธ์ ์๋ก๋ค์ด 90์ฐจ์์ ๋ฒกํฐ๋ก ํํํด๋ณด์.
๋นจ๊ฐ์์ ์ข์ธก์ ์๋ฅผ ํ์ํ ๋นจ๊ฐ๋ฐ์ค์ ์ค์ฌ์ ๊ฒ์์นธ์ ๋์ด๊ธฐ์ ๊ฒ์์นธ์ด ์ด ๋ฐ์ค๋ฅผ ์ฑ ์์ง๋ค.
๋ฒกํฐ๋ 90์ฐจ์์ธ๋ฐ ์์ 5๊ฐ์์(x1, y1, w1, h1, o1)๋ ์ด ๋ฐ์ค์ ์์น์ ํฌ๊ธฐ, ์ ๋ขฐ๋๋ฅผ ์๋ฏธํ๋ค.
๋ฐ์ค์ ์์น์ ํฌ๊ธฐ๋ ์์์ขํ๊ณ๋ฅผ [0,1]์ฌ์ด๋ก ์ ๊ทํํ๊ณ ์ ๊ทํ์ขํ๋ฅผ ์ค์ฌ์ผ๋ก ํํํ๋ค.
x2,y2,w2,h2,o2๋ ๋๋ค๋ฅธ ๋ฐ์ค๋ฅผ ํํํ ์ ์๊ธฐ์ ํ์นธ์ ๋ฐ์ค๋ฅผ 2๊ฐ๊น์ง ์ฑ ์์ง ์ ์๋ค.
p0~p80์ ํด๋น๋ฐ์ค๊ฐ ์ด๋ค๊ฐ์ฒดํด๋์ค์ ์ํ๋์ง ๋ํ๋ด๋ one-hot์ฝ๋์ด๋ค.YOLO๊ฐ ๋ฌผ์ฒด์ ์์น์ ํด๋์ค๋ฅผ ํํํ๋ ๋ฐฉ์
YOLO๋ RCNN๊ณ์ด์ ๋นํด ์๋นํ ๋จ์ํ๋ฐ, ์๋ ๊ทธ๋ฆผ์ YOLO๊ฐ ์ฌ์ฉํ๋ CNN์ ๊ตฌ์กฐ์ด๋ค.
โ Conv์ธต: 24๊ฐ / MaxPool์ธต: 4๊ฐ / FC์ธต: 2๊ฐ ๋ก ๊ตฌ์ฑ๋๋ฉฐ
- input์ 448×448ํฌ๊ธฐ๋ก ๋ณํ๋์ด ์ ๋ ฅ๋๊ณ
- output์ 7×7×90์ ์ถ๋ ฅํ ์๋ฅผ ๊ฐ๋๋ค.
์ ๊ทธ๋ฆผ์์ ์ ๊ฒฝ๋ง์ image๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ 7×7×90์ ์ถ๋ ฅํ ์๋ฅผ ์ฐธ๊ฐ์ผ๋ก ์ฃผ์ด ํต์งธ๋ก ํ์ตํ๋ค.
์ฐธ๊ฐํ ์์ [float์ผ๋ก ํ์๋๋ Bbox์ ๋ณด], [OneHot์ฝ๋๋ก ํํ๋๋ ํด๋์ค์ ๋ณด]๊ฐ ์์ฌ์๊ธฐ์ classification๊ณผ regression์ด ๋์์ ์ผ์ด๋๋ค.
YOLO v3
YOLO v3์ (object, class)์ 85์ฐจ์ ๋ฒกํฐ๋ฅผ ์ถ์ถํ๋ ์ธต์ ์ ๊ฒฝ๋ง 3๊ณณ์ ๋ฐฐ์นํ๋ค.
โ yolo_82์ธต์์๋ 14×14๊ฒฉ์๋ก ๋๋ 14×14×85×3ํ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ฐ๋ผ์ 14×14์ ๊ฐ ์์๋ ๋ฐ์ค๋ฅผ 3๊ฐ๊น์ง ์ถ๋ ฅํ๋ค.
โ yolo_94์ธต์์๋ 28×28๊ฒฉ์๋ก ๋๋ 28×28×85×3ํ ์๋ฅผ ์ถ๋ ฅํ๋ค.
โ yolo_106์ธต์์๋ 56×56๊ฒฉ์๋ก ๋๋ 56×56×85×3ํ ์๋ฅผ ์ถ๋ ฅํ๋ค.
์ด ์ธต๋ค์ด ์ถ๋ ฅํ ํ ์๋ฅผ ๊ฐ์ฒด์ ๋ณด๋ก ๋ณํํ๋ฉด, ์ฌ๋ฌ scale์ ๊ฐ์ฒด๋ฅผ ํ์งํ ์ ์๋ค.
Loss Function
์ ๋ต์ผ๋ก Ground truth box์ ํด๋์ค๊ฐ ์ฃผ์ด์ง๋ค.โ 1, 2ํญ์ ๊ฐ ๋ฐ์ค์ ์์น์ค๋ฅ์ ํฌ๊ธฐ์ค๋ฅ๋ฅผ ์ธก์ ํ๋ Regression Loss์ด๋ค.
โ 3ํญ์ ๋ฌผ์ฒด๊ฐ ์์ง๋ง ์๋ค๊ณ ํ FN์ค๋ฅ๋ฅผ ์ธก์ ํ๋ Confidence Loss์ด๊ณ ,
โ 4ํญ์ ๋ฌผ์ฒด๊ฐ ์์ง๋ง ์๋ค๊ณ ํ FP์ค๋ฅ๋ฅผ ์ธก์ ํ๋ Confidence Loss์ด๋ค.
โ 5ํญ์ class๋ฅผ ๋ํ๋ด๋ OneHot์ฝ๋์ ์ค๋ฅ๋ฅผ ์ธก์ ํ๋ Classification Loss์ด๋ค.
3. Transformer : DETR , SETR
๊ณ ์ ๋ฐฐ๊ฒฝ)
๊ณ ์ ๋ฐฐ๊ฒฝ)Transformer๋ฅผ ์ฌ์ฉํ๋ฉด,
โ ํ๋ณด์์ญ(RoI)์ ์์ฑํ๋ ์ค๊ฐ๋จ๊ณ์์ด Box์งํฉ์ ์ง์ ์์ธกํ ์ ์์๊น?
โ ์ค๋ณตํ์์ด ์์ ์ผ์ด๋์ง ์๊ฒ ํ ์ ์์๊น?
โ Convolution๊ธฐ๋ฐ์ Faster-RCNN์ด๋ YOLO๋ณด๋ค ์ข์ ์ฑ๋ฅ์ ์ป์ ์ ์์๊น?
CNN์ ์ ์ฐํ๊ธฐ์ Faster-RCNN๊ณผ YOLO v3์ ๊ตฌ์กฐ๋ฅผ ์์ ์์ฌ๋ก ์ค๊ณ๊ฐ๋ฅํ์๋ค.
ํ์ง๋ง Transformer๋ ๋ค์ ๊ณ ์ ์ ์ธ๋ฐ, ์ด์ ๋ ์๋์ ๊ฐ๋ค.
โ T × dmodel ํฌ๊ธฐ์ tensor๊ฐ ์ฌ๋ฌ encoder๋ธ๋ก๊ณผ decoder๋ธ๋ก์ ํ๋ฅด๋ฉฐ ์ฐ์ฐ์ด ์งํ
Encoder๋ง ์ฌ์ฉ๋๋ ViT์ ๋ฌ๋ฆฌ DETR๋ ์์์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ค์งํฉ์ ์ถ๋ ฅํด์ผํ๊ธฐ์ Encoder์ Decoder ๋ชจ๋ ์ฌ์ฉํ๋ค.
Decoder์ ๋ถ์ ์ถ๋ ฅ์ธต์ T × dmodel tensor๋ฅผ Box์งํฉ์ผ๋ก ๋ณํํด์ผํ๋ค.
์์คํจ์๋ Transformer๊ฐ ์์ธกํ Box์งํฉ๊ณผ label๋ฐ์ค์งํฉ์ด ์ผ์นํ๋ ์ ๋๋ฅผ ์ธก์ ํ๋ ๋ฅ๋ ฅ์ ๊ฐ์ ธ์ผํ๋ค.
โ Box๋ ์ง์ฌ๊ฐํ์ ํํํ๋ 4๊ฐ์ ์ขํ(coordinate)์
โ ๋ฌผ์ฒด ํด๋์ค๋ฅผ ๋ํ๋ด๋ Classํ๋ฅ ๋ฒกํฐ(softmax)๋ก ํํ.
3.1 DETR (DEtection TRansformer)
Faster-RCNN๊ฐ์ CNN๊ธฐ๋ฐ ์ ๊ฒฝ๋ง์ Box์งํฉ์ ๋ฐ๋ก ์์ธกํ๊ธฐ ์ด๋ ต๊ธฐ์
RoI๋ฅผ ์์ฑ ํ, ์์ญ์ ๋ถ๋ฅํ๋ ์ผ์ข ์ ์ฐํํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
์ฆ, ๊ธฐ์กด๋ฌธ์ ๋ฅผ ๋๋ฆฌ๋ฌธ์ ๋ก ๋ฐ๊พธ๊ณ ๋๋ฆฌ๋ฌธ์ ๋ฅผ ํธ๋ ์ ์ด๋ผ ๋ณผ ์ ์๋ค.
DETR์ RoI์์ฑ๋จ๊ณ๊ฐ ์๊ณ , NMS๋ผ๋ ํ์ฒ๋ฆฌ๋จ๊ณ๊ฐ ์๋, End-to-End ํ์ต์ด ๊ฐ๋ฅํ๋ค.์์ ๊ทธ๋ฆผ์ DETR๋ชจ๋ธ๊ตฌ์กฐ๋ก DETR์ โ ~โข๋ก ํ์ํ 3๊ฐ์ง ๋ชจ๋๋ก ๊ตฌ์ฑ๋๋ค.
โ ๋ชจ๋ โ
CNN์ ํตํด Feature Extraction์ ์งํ.
๋ํ, 1×1 convolution์ ์ ์ฉํด channel์ C์์ dmodel๋ก ์ค์ฌ h×w×dmodel์ tensor๋ก ๋ณํํ๋ค.
์ดํ Flatten์ผ๋ก pixel์ ์ด์ด๋ถ์ฌ ํ์ ๋ฐฐ์นํ hw×dmodel ํ๋ ฌ์ ์ป๋๋ค.
์ ๊ทธ๋ฆผ์์๋ hw๋ฅผ T๋ก ํ๊ธฐํ๋๋ฐ, ์ด๋ ์ต์ข ์ ์ผ๋ก transformer์ input์ผ๋ก ์ ๋ ฅํ T×dmodelํ๋ ฌ์ ์ป์์ ์๋ฏธํ๋ค.
์ด ํ๋ ฌ์ ๊ฐ ํ์ ์ถ์๋ image์ pixel์ ํด๋นํ๋ฉฐ, Self-Attention๊ณ์ฐ ์ ํ์ด Query๋ก ์ฐธ์ฌํ๊ธฐ์
์ถ์๋ pixel(= patch)๊ฐ์ attention์ ๋ณด๋ฅผ ์ถ์ถํ๋ ์ ์ด๋ค.
์ฆ, DETR์ Self-Attention์ ๋ฐ์ํ๋ค ๋ณผ ์ ์๋ค.
โ ๋ชจ๋ โก
Encoder-Decoder๋ก ๊ตฌ์ฑ๋ Transformer๋ก
๋ชจ๋ โ ์์ ์ ๋ ฅ๋ T×dmodel ํ๋ ฌ์ Position Encoding์ ์ ์ฉํด Encoder๋ธ๋ก1์ ์ ๋ ฅํ๋ค.
Encoder๋ธ๋ก1, ... , Encoder๋ธ๋กM์ ํตํด ๋ณํ๋ ํ๋ ฌ์
Decoder์ MHA์ ์ ๋ ฅ๋์ด Key์ Value์ ์ญํ ์ ํ๋ค.
Decoder๋ฅผ ์ข ๋ ์ดํด๋ณด์.๊ธฐ์กด Transformer์์๋ Decoder๊ฐ Auto-Regressive๋ฐฉ์์ผ๋ก ์๋ํ๋ค.
์ฆ, NLP์์ <SOS>ํ ํฐ์ ์ฃผ๋ฉด ์ฒซ๋ฒ์งธ ๋จ์ด๊ฐ ์์ฑ๋๊ณ
<SOS>ํ ํฐ๊ณผ ์ฒซ๋ฒ์งธ ๋จ์ด๋ฅผ ์ฃผ๋ฉด ๋๋ฒ์งธ ๋จ์ด๊ฐ ์์ฑ๋๋ค.
์ด๋ฐ AR๋ฐฉ์์ ๊ฐ์ฒดํ์ง์ ์ ์ฉํ ์ ์์๊น?? → โ
(Bbox๋ ์์์์ด ์งํฉ์ผ๋ก๋ง ํํํ๊ธฐ ๋๋ฌธ.)
Decoder ์ ๋ ฅ์ ๋ณด๋ฉด object queries๋ผ ํ์๋ K๊ฐ ๋ฒกํฐ๊ฐ ์๋ค.
K×dmodelํฌ๊ธฐ์ ํ๋ ฌ์ด ์ ๋ ฅ๋๋ค๋ ์๋ฏธ๋ก K๋ ํ์ง๊ฐ๋ฅํ ๋ฌผ์ฒด์ ์ต๋๊ฐ์์ด๋ค.
์ถ๋ ฅ์ธต์ ๋ฌผ์ฒด๊ฐ ์๋๊ฒฝ์ฐ, ∅๋ฅผ ์ถ๋ ฅํ ์ ์๊ธฐ์ ๊ฐ๋ณ๊ฐ์์ ๊ฐ์ฒดํ์ง๊ฐ ๊ฐ๋ฅํ๋ค.
๊ทธ๋ฆผ์ ์์์์๋ 2๊ฐ์ ๋ฐ์ค์ 3๊ฐ์ ∅๋ฅผ ์ถ๋ ฅํ๋ค.
Decoder์ ์ต์ด ์ ๋ ฅ์ธ object queries๋ Box์ ๋ํ ์๋ฌด๋ฐ ์ ๋ณดโ
Position Encoding, P๋ฅผ ๊ฐ๊ณ ์ถ๋ฐํด์ผํ๋๋ฐ, DETR์ ํ์ต์ ํตํด ์์๋ธ P๋ฅผ ์ฌ์ฉํ๋ค.
โ ๋ชจ๋ โข
Decoder๋ธ๋ก์ด ์ถ๋ ฅํ K×dmodelํ๋ ฌ์ ๊ฐ ํ์ Feed-Foward์ ํต๊ณผ์์ผ ๋ฐ์ค์ ๋ณด๋ก ๋ณํํ๋ค.
์ด๋ ๊ฒ ๋ชจ๋ธ์ด ์์ธกํ ๋ฐ์ค์งํฉ์ ลท๋ผ ํ๊ณ
์ ๋ต์ ํด๋นํ๋ Ground_Truth Box์งํฉ์ y๋ผ ํ์.
y์ ∅๋ฐ์ค๋ฅผ ์ถ๊ฐํด ลท์ฒ๋ผ K๊ฐ ๋ฐ์ค๋ฅผ ๊ฐ๊ฒ ํ๋ค.
ลท๊ณผ y์ Hungarian Algorithm์ ์ฌ์ฉํด ์ต์ ๋งค์นญ์์ ๊ตฌํ๋ค.
๐ Loss Function
๋งค์นญ๋ ์ฐธ๊ฐ๋ฐ์ค i์ ์์ธก๋ฐ์ค j์์ ์ด์ฉํด ์๋ ์ฒ๋ผ ์์คํจ์๋ฅผ ์ ์ํ๋ค.์ฒซ๋ฒ์งธ ํญ์ class๋ฅผ ๋ง์ท๋์ง ์ธก์ ํ๋ค. (pฬj(ci)๋ classํ๋ฅ ๋ฒกํฐ์์ ์ฐธ๊ฐclass์ ํด๋นํ๋ ํ๋ฅ .)
๋๋ฒ์งธ, ์ธ๋ฒ์งธ ํญ์ ๋ฌผ์ฒด์์น๋ฅผ ์ผ๋ง๋ ์ ํํ ๋งํ๋์ง ์ธก์ ํ๋ค. (2๋ฒ์งธํญ: IoU ; 3๋ฒ์งธํญ: L1 Distance)
Self-Attention Matrix์ = softmax(QKT / √dkey).
์ด ํ๋ ฌ์ image๋ฅผ ๊ตฌ์ฑํ๋ ์ฌ๋ฌ Q๋ฒกํฐ๊ฐ ์ํธ์ฃผ๋ชฉํ๋ ์ ๋๋ฅผ ํํ.์ ์ ํ๋ฏ, DETR์์ ๋ชจ๋ โ ์ด m×nํฌ๊ธฐ์ ๊ธฐ์กดimage๋ฅผ h×w๋ก ์ถ์ํ๊ณ
์ถ์๋ ํน์ง๋งต์์ ํ์๊ฐ๊ฐ์ Q๋ฒกํฐ๋ก ์ทจํ๊ธฐ์ Self-Attention Matrix๋ ์ถ์๋ pixel (= patch)๊ฐ ์ํธ์ฃผ๋ชฉํ๋ ์ ๋๋ฅผ ์ธก์ .
์์ ๊ทธ๋ฆผ์์ ์ฃผํฉ์ ํ์๋ ์ฝ๋ผ๋ฆฌ์ ๊ฒฝ์ฐ, ์ฝ์ ๋ฐ, ๋ฑ, ๊ผฌ๋ฆฌ์ ์ฃผ๋ชฉํ๊ณ ์๋๋ฐ, ์ด๋ Bbox์ ๊ฒฝ๊ณ์ ์ฃผ๋ชฉํ๊ณ ์๋ค๋ ์ฌ์ค์ ํ์ธํ ์ ์๋ค.
์ด ์ฌ์ค์ ๋ฐํ์ผ๋ก Decoder์ ์ญํ ์ ์ถ๋ก ํด๋ณด๋ฉด, Decoder๋ Bbox๋ฅผ ์ ๋๋ก ์์๋ด๊ธฐ์ํด Self-Attention Matrix๋ฅผ ํตํด ๋ฌผ์ฒด์ ์ํ์ข์ฐ ๊ฒฝ๊ณ์ ์ฃผ๋ชฉํ๋ค๊ณ ํ ์ ์๋ค.
3.2 SETR (SEgmentation TRansformer)
DETR๋ Object Detection์ ๋ชฉ์ ์ผ๋ก ๊ณ ์๋์๋ค.
์ด๋, Transformer์ ํน์ฑ์ผ๋ก์ธํด ๋ถํ ์ ํ ์ ์๋๋ก ์ฝ๊ฒ ํ์ฅํ ์ ์๋ค.์์ DETR๋ชจ๋ธ์ ๋ชจ๋ โข์ ์ถ๋ ฅํ๋ ฌ์ ํด์ํด Box์ ๋ณด๋ก ๋ณํํ๋, Detection์ฉ๋์ Head์ด๋ค. DETR Architecture
๋ฐ๋ผ์, Segmentation์ฉ๋์ Head๋ฅผ ๋ถ์ด๋ฉด, SETR์ด ๋๋ค.
์ฆ, ์์ฝํ๋ฉด SETR์ Encoder(Transformer) - Decoder(CNN)์ ๊ตฌ์กฐ๋ฅผ ๋๋ค.
Segmentation Head๋ ์ถ์๋ ํด์๋๋ฅผ ์๋ ํด์๋๋ก ๋ณต๊ตฌํ๊ธฐ์ํด UpSampling์ ์ํ Convolution์ธต์ด ํฌํจ๋๋ค.(a). ๋จผ์ image(m×n×3)๋ฅผ ๊ณ ์ ๋ ํฌ๊ธฐ์ patch๋ก ๋๋๊ณ SETR Architecture
๊ฐ patch๋ฅผ ์ ํ ์๋ฒ ๋ฉํ ๋ค์ Position Embedding์ ์ถ๊ฐํ ํ,
๊ฒฐ๊ณผ ๋ฒกํฐ ์ํ์ค๋ฅผ ํ์ค ํธ๋์คํฌ๋จธ ์ธ์ฝ๋์ ๊ณต๊ธํ๋ค.
(์ด๋, ํฝ์ ๋จ์ ๋ถํ ์ ์ํํ๊ธฐ ์ํด ๋ค์ํ ๋์ฝ๋๋ฅผ ๋์ ํ๋ค)
(b) Decoder๋ ์ ์ง์ UpSampling(resulting in a variant called SETRPUP)์ผ๋ก
์ฌ๋ฌ ๋จ๊ณ์ Convolution์ธต์ ์์ ํผ๋ผ๋ฏธ๋ ํํ๋ก ์์ Decoder๋ฅผ ์ ์ํ๋ค.
(c) multi-level feature aggregation (a variant called SETR-MLA).
4. Swin Transformer
4.1 Backbone Transformer
CNN transfer learning์ DNN์ ํฐ ์ด์ ์ด๋ค.
๋ณดํต ์ ์ดํ์ต(transfer learning)์ ๋๋ฆฌ ์ฌ์ฉ๋๋ Backbone model๋ก๋ VGG, GoogLeNet, ResNet, DenseNet121 ๋ฑ์ด ์์์ผ๋ฉฐ, ์ต๊ทผ์๋ EfficientNet ๋ฑ์ด ์๋ค.
Backbone model์ ์ฃผ๋ก input data์์ feature map์ ์ถ์ถํ๋ ์ญํ ์ ํ๋ค.
์ฃผ๋ก pretrained model์ ์ฌ์ฉํ๋ฉฐ, ๋ค์ํ๊ตฌ์กฐ(CNNs, Transformers, ResNets)๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๊ธฐ์กด NLP์์ Transformer๊ฐ ์ฌ์ฉ์ด ๋์๊ธฐ์(GPT, BERT), ์ด๋ฐ์๋ transformer๋ transfer learning์ ์ํ Backbone model๋ก ์ธ ์ ์์๊น? ๋ผ๋ ์๋ฌธ์์ ์ถ๋ฐํ๋ค.
์ง์ญ์ ๋ณด๋ฅผ ์ถ์ถํ๋ Convolution์ฐ์ฐ์ ์์กดํ๋ CNN์ ๋นํด Self-Attention์ ์์กดํ๋ Transformer๊ฐ Transfer Learning์ ํจ์ฌ ์ ๋ฆฌํ๋ค๋ ์คํ์ ์ ์ฆ์ด ๋ง์ด ๋ฐํ๋์๋๋ฐ,
Backbone์ผ๋ก ์ธ ์ ์๋ Vision Transformer๋ฅผ ์ ์ํ ์ ์์๊น? ๋ผ๋ ์๋ฌธ์์ Swin Transformer๋ก ๋ต์ ํด์ค๋ค.
Backbone์ด ๋๋ ค๋ฉด image์ feature๋ฅผ ์ถฉ๋ถํ ๋ฐ์ํ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํด์ผํ๋ค.
๊ธฐ์กด transformer๋ ๋ฌธ์ฅ์ฒ๋ฆฌ๋ชฉ์ ์ผ๋ก ์ค๊ณ๋์๊ธฐ์, ์กฐ๊ธ์ ๋ณํ์ด ํ์ํ๋ค.
Backbone๋ชจ๋ธ์ด ๋๋ ค๋ฉด ์๋์ ํน์ฑ๋ค์ ์ ๋ฐ์ํด ์ฒ๋ฆฌํ ์ ์์ด์ผ ํ๋ค.
(๋ฌธ์ฅ์ ๊ตฌ์ฑํ๋ ๋จ์ด๋ scale๋ณํ๊ฐ ์์ผ๋ image๋ฅผ ๊ตฌ์ฑํ๋ Object๋ ์์ฃผ ๋ค์ํ ํฌ๊ธฐ๋ก ๋ํ๋๊ธฐ์ scale๋ณํ๊ฐ ์ฌํํธ.)
(๋ํ, ํ ๋ฌธ์ฅ์ ๊ตฌ์ฑํ๋ ๋จ์ด๋ ์์ญโ์๋ฐฑ๊ฐ์ ๋ถ๊ณผํ์ง๋ง, image๋ฅผ ๊ตฌ์ฑํ๋ pixel์ ์๋ง~์๋ฐฑ๋ง ๊ฐ์ด๋ค.)
(๋ฌธ์ฅ์ ๋จ์ด๋ ๋์ด์ฐ๊ธฐ๋ก ์ ๋ถํ ๋์ด์์ง๋ง, image๋ Object๋ผ๋ฆฌ ํน์ ๋ฐฐ๊ฒฝ์ด ์ฌํ๊ฒ ์์ฌ์๋ค.)
4.2 Hierarchical Feature map. &. Shifted Window
Swin Transformer๋ imageํน์ฑ์ ๋ฐ์ํ๊ธฐ์ํ ํต์ฌ์์ด๋์ด๋ฅผ 2๊ฐ์ง๋ก ์ค๋ช ํ๋ค.
โ Hierarchical ViT
์๋ ๊ทธ๋ฆผ(a)์ Hierarchical ViT(= Hierarchical Featuremap)์ ์ฌ์ฉํด ๊ฐ์ฒด์ scale๋ณํ์ ๋์ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค.
๋ชจ๋ window๋ M×M๊ฐ์ patch๋ก ๊ตฌ์ฑ๋๋ค. (์ฌ๊ธฐ์ M=4)
๋งจ ์๋์ธต์ ์์ patch_size๋ก window๊ฐ 4×4๊ฐ๊ฐ ์๋ค.
๊ฐ์ด๋ฐ ์ธต์ patch_size๊ฐ 2๋ฐฐ๋ก ์ปค์ ธ 2×2๊ฐ์ window๊ฐ ์๊ณ , ๋งจ ์์ธต์ 1๊ฐ์ window๊ฐ ์๋ค.
์ด๋ ๊ฒ ์์ patch๋ถํฐ ํฐ patch๋ก ๊ตฌ๋ถํด ์ฒ๋ฆฌํ๋ฉด, ์ฌ๋ฌ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ๋ถ๋ฅํ๊ฑฐ๋ ํ์งํ ์ ์๋ค.
๊ทธ๋ฆผ (b)์ ViT์ ๊ฒฝ์ฐ, ์์์ ๋ถ๋ฅํ๋๋ฐ ์ฌ์ฉํ ์๋ ์์ง๋ง ๊ฐ์ฒดํ์ง ๋ฐ ๋ถํ ์๋ ํ๊ณ๊ฐ ์๋ค.
๊ณ์ธต์ ํน์ง๋งต์ ๊ณ์ฐํจ์จ์์๋ ํฐ ์ด์ ์ด ์กด์ฌํ๋ค.
๋จ์ผํด์๋๋ฅผ ์ฌ์ฉํ๋ ViT์ ๊ฒฝ์ฐ)
224×224 image๋ฅผ 16×16 patch(= 14×14๊ฐ)๋ก ๋๋๋ค ๊ฐ์ ํ์.
์ด ๊ฒฝ์ฐ, T = 196์ธ ํ๋ ฌ์ด ์ ๋ ฅ๋๋๋ฐ, MHA๋ T๊ฐ patch๋ผ๋ฆฌ Self-Attention์ ๊ณ์ฐํ๊ธฐ์ T2๋ฒ ์ฐ์ฐ์ ์ํํ๋ค.
์ด๋, ์ฐ์ฐ์ QKT์ ํ๋ ฌ๊ณฑ์ผ๋ก ์ด๋ค์ง๋ค.
Q์ K๊ฐ T×dkeyํ๋ ฌ์ด๋ฏ๋ก T2×dkey๋งํผ ๊ณฑ์ ์ด ์ํ๋๋ค.
๋ค์คํด์๋๋ฅผ ์ฌ์ฉํ๋ Swin์ ๊ฒฝ์ฐ)
window๋ณ๋ก self-attention์ ์ ์ฉํ๋ค.
window๋ M×M๊ฐ์ patch๋ก ๊ตฌ์ฑ๋๊ธฐ์ ํ window๋ M2×dkey๋งํผ ๊ณฑ์ ์ ์ํํ๋ค.
์ฆ, ViT์๋นํด (T×T) / (M×M×window๊ฐ์)๋ฐฐ ๋น ๋ฅด๊ฒ ๊ณ์ฐ๋๋ค.
์๋ฅผ ๋ค๋ฉด ๊ทธ๋ฆผ(a)์ ๋งจ ์๋์ธต์์๋ window๊ฐ 16๊ฐ์ด๋ฏ๋ก 49๋ฐฐ ๋น ๋ฅด๋ค.
โ Shifted Window
Swin Transformer์ ์ด๋ฆ์ด Shifted WINdow์์ ์ ๋๋์์ ์ ๋๋ก ํต์ฌ์์ด๋์ด์ด๋ค.
โ๋ฒ์งธ layer์์ ์ด์ ์ฒ๋ผ window๋ฅผ ๋๋๋๋ฐ,
๊ทธ ๋ค์ โ+1์ธต์์๋ window๋ฅผ ์ ๋ฐํฌ๊ธฐ๋งํผ ์ํ๊ณผ ์์ง๋ฐฉํฅ์ผ๋ก ์ด๋ํด ๋๋๋ค.
shifted window๋ฅผ ์ฌ์ฉํ๋ฉด window๊ฐ์ ์ฐ๊ฒฐ์ฑ๊ฐํ ๋ฐ ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ณ ,
๊ฐ์ฒด์ ์๋์ ์ธ ์์น์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋ฑ ์ด๋ฅผ ํตํ ์ฑ๋ฅํฅ์์ด ๊ฐ๋ฅํ๋ค.
4.3 Swin Transformer Architecture
์๋๊ทธ๋ฆผ์ Swin Transformer์ ๊ตฌ์กฐ์ด๋ค.
์ข์ธก์์ ์ฐ์ธก์ผ๋ก ํ๋ฅด๋ ๋จ๊ณ 1~4๋
์ข์ธก๊ทธ๋ฆผ์ (a)์ ์๋์์ ์๋ก ์งํํ๋ฉฐ patch๋ ์ปค์ง๊ณ
window๊ฐ์๋ ์์์ง๋ ๋ฐฉํฅ์ ํด๋นํ๋ค.
์๋ฅผ๋ค์ด, C=96์ผ๋ก ํ๊ณ , m×n = 448×448 image๊ฐ ์ ๋ ฅ๋ ๋,
๋จ๊ณ1) input tensor: 112×112×48 // output tensor: 112×112×96
๋จ๊ณ2) input tensor: 112×112×96 // output tensor: 56×56×192
๋จ๊ณ3) input tensor: 56×56×192 // output tensor: 28×28×384
๋จ๊ณ4) input tensor: 28×28×384 // output tensor: 14×14×768
์ ๊ทธ๋ฆผ์ (a)๋ ์ด๋ฐ tensor๋ณํ์ ์ด๋ป๊ฒ ์ํํ๋์ง ์ค๋ช ํ๋ค.๋จ๊ณ 2์์ patchํฉ์น๊ธฐ ์ ์ฉ์, ๋งจ ์๋์ธต์์ ๋งจ ์์ธต์ผ๋ก ์งํํ๋ ๊ณผ์ ์ ํด๋นํ๋ ๊ฒ์ผ๋ก ๋จ์ํ ์ด์ํ 4๊ฐ patch๋ฅผ ํ๋์ patch๋ก ํฉ์น๋ ๊ณผ์ ์ ์๋ฏธํ๋ค.
๋ชจ๋ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์ป์ ํน์ง๋งต์ classification์ ์ํ head๋ฅผ ๋ถ์ด๋ฉด classifier๊ฐ ๋๊ณ ,
Detection์ ์ํ head๋ฅผ ๋ถ์ด๋ฉด detector๊ฐ,
Segmentation์ ์ํ head๋ฅผ ๋ถ์ด๋ฉด segmentor๊ฐ ๋๋ค.
์ด๋ฐ ๋ฐฉ์์ผ๋ก Swin Transformer๋ Backbone ๋ชจ๋ธ๋ก ์์ฉํ๋ค.
์ด์ ๋จ๊ณ 1~4์ ๋ ธ๋์ ํ์๋ Swin Transformer Block์ ๋์์ ๊ทธ๋ฆผ (b)๋ฅผ ํตํด ์ดํด๋ณด์.
(b)๋ Encoder Block์ 2๊ฐ ์์ ์ํฉ์ผ๋ก ํ์ฌ Block โ์ โ-1๋ฒ์งธ Block์์ xโ-1 tensor๋ฅผ ๋ฐ์ Layer Normalization์ ๊ฑฐ์ณ W-MHSA์ธต์ผ๋ก Self-Attention์ ์ ์ฉํ๋ค.
์ดํ, Add์ Norm, FF, Add๋ฅผ ์ ์ฉํด xโ์ ์ถ๋ ฅํ๋ค.
โ+1๋ฒ์งธ Block์ xโ์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์ณ xโ+1 tensor๋ฅผ ์ถ๋ ฅํ๋ค.
โ Block๊ณผ โ+1 Block์ Self-Attention์ W-MHA, SW-MHA๋ก ํ๊ธฐํ๋ค.
W-MHA๋ window๋ฅผ ๋ถํ ํ๊ณ SW-MHA๋ Shifted Window๋ก ๋ถํ ํ๋ค.Backbone๋ชจ๋ธ๋ก์จ์ Swin Transformer Swin Transformer๋ Backbone์ผ๋ก ์ฐ์ด๋ CNN์ธ ResNet๋ฑ๊ณผ ํธํ๋๋๋ก tensor๋ชจ์์ ์ค์ ํ๊ธฐ์
๊ธฐ์กด ๋ฅ๋ฌ๋๋ชจ๋ธ์์ CNN-Backbone์ ๋ค์ด๋ด๊ณ Swin-Transformer๋ก ์ฝ๊ฒ ๋์นํ ์ ์๋ค.
5. ETC
cf) InternImage
[๋ ผ๋ฌธ review] - InternImage(2023): Exploring Large-Scale Vision Foundation Models withDeformable Convolutions
๐ InternImage [CVPR 2023] InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions Paperswithcode ํํ์ด์ง์์ Detection, Segmentation ๋ฑ ๋ง์ Benchmark Dataset์์ ์ต๊ณ ์ ์ฑ๋ฅ(SOTA)๋ฅผ ๋ฌ์ฑํ (๋ฌด์น
chan4im.tistory.com
cf) W&B
'Deep Learning : Vision System/MLOps Tool: Weights & Biass' ์นดํ ๊ณ ๋ฆฌ์ ๊ธ ๋ชฉ๋ก
์ปดํจํฐ๊ณผํ, ์ธ๊ณต์ง๋ฅ์ ๋ํ ๊ณต๋ถ๋ฅผ ์ด์ฌํ ํ๋ ๊ณต๋์
chan4im.tistory.com
- 41OTI4NT
- 40OTk0Nj
- 43MTg2OD