🧠 Machine Learning

πŸͺ’ λ”₯λŸ¬λ‹μ— ν•„μš”ν•œ ν™•λ₯  살짝 찍어먹기, μ΅œλŒ€μš°λ„λ²•

이유 YIYU 2024. 5. 2. 14:19

λ”₯λŸ¬λ‹ λͺ¨λΈμ„ κ³΅λΆ€ν•˜λ‹€λ³΄λ©΄ 항상 λ§‰νžˆλŠ” ν™•λ₯ ..!!!πŸ€¦πŸ»β€β™€οΈ 특히 λ”₯λŸ¬λ‹ 기반의 생성 λͺ¨λΈμ„ 곡뢀할 땐 μˆ˜μ‹μ—μ„œ ν™•λ₯ μ„ μ΄ν•΄ν•΄μ•Όν•©λ‹ˆλ‹€. κ·Έλž˜μ„œ 이번 글에선 자주 λ‚˜μ˜€λŠ” ν™•λ₯  4개의 μš©μ–΄μ— λŒ€ν•΄ μ •λ¦¬ν•˜λ €ν•΄μš”. λ‚΄μš©μ€ 주둜 λ―Έμˆ κ΄€μ— GAN λ”₯λŸ¬λ‹ μ‹€μ „ ν”„λ‘œμ νŠΈλ₯Ό μ°Έκ³ ν–ˆμŠ΅λ‹ˆλ‹€.

ν‘œλ³Έκ³΅κ°„

ν‘œλ³Έ 곡간은 μƒ˜ν”Œ xκ°€ κ°€μ§ˆ 수 μžˆλŠ” λͺ¨λ“  κ°’μ˜ μ§‘ν•©μž…λ‹ˆλ‹€. μ•„μ£Ό κ°„λ‹¨ν•œ μ˜ˆμ‹œλ‘œ μ£Όμ‚¬μœ„λ₯Ό 던져 λ‚˜μ˜¨ 눈의 수라고 ν•  λ•Œ μƒ˜ν”Œμ€ 1, 2, 3, 4, 5, 6이 될 수 있고 ν‘œλ³Έ 곡간은 \(S=\{1,2,3,4,5,6\}\)으둜 λ‚˜νƒ€λ‚Ό 수 μžˆμ–΄μš”. λ˜λ‹€λ₯Έ 예둜 이 세상 λͺ¨λ“  μ„±μΈλ“€μ˜ ν‚€κ°€ 100cmλΆ€ν„° 300cm이고 λͺΈλ¬΄κ²Œκ°€ 30kgλΆ€ν„° 200kgκΉŒμ§€λΌλ©΄ μ•„λž˜μ™€ 같은 ν‘œλ³Έ 곡간을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. 이 세상에 180cm에 λͺΈλ¬΄κ²Œκ°€ 80kg인 μ΄λ“ μ΄λž€ μ‚¬λžŒμ΄ μžˆλ‹€λ©΄ (ν‚€, λͺΈλ¬΄κ²Œ) = (180, 80)인 μƒ˜ν”Œμ΄ ν‘œλ³Έκ³΅κ°„ μ•ˆμ— μžˆλ‹€λŠ” κ±°μ—μš”.

ν™•λ₯  밀도 ν•¨μˆ˜

ν™•λ₯  밀도 ν•¨μˆ˜ p(x)λŠ” ν‘œλ³Έ κ³΅κ°„μ˜ 포인트 xλ₯Ό 0κ³Ό 1 μ‚¬μ΄μ˜ μˆ«μžμ— λ§€ν•‘ν•΄μ£ΌλŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. ν‘œλ³Έ κ³΅κ°„μ˜ λͺ¨λ“  ν¬μΈνŠΈμ— λŒ€ν•œ ν™•λ₯  밀도 ν•¨μˆ˜μ˜ 합은 1이 λ˜μ–΄μ•Ό ν—€μš”. ν‘œλ³Έκ³΅κ°„ λ°”κΉ₯의 κ³΅κ°„μ˜ p(x)λŠ” 0이고 ν‘œλ³Έκ³΅κ°„ μ•ˆμ˜ p(x)λŠ” μ–΄λ–€ μƒμˆ˜κ°’μ„ κ°–μŠ΅λ‹ˆλ‹€.

λͺ¨μˆ˜ λͺ¨λΈ

λͺ¨μˆ˜ λͺ¨λΈ \(p_\theta (x)\)λŠ” ν•œμ •λœ 개수(μœ ν•œ 개수)의 νŒŒλΌλ―Έν„° \(\theta\) λ₯Ό μ‚¬μš©ν•˜μ—¬ λ¬˜μ‚¬ν•˜λŠ” ν™•λ₯  밀도 ν•¨μˆ˜μ˜ ν•œ μ’…λ₯˜μ—μš”. 예λ₯Ό λ“€μ–΄ μœ„μ˜ μ˜ˆμ‹œλ‘œ λ“€μžλ©΄, \(\theta\) λŠ” μƒμžμ˜ μ™Όμͺ½ μ•„λž˜ λͺ¨μ„œλ¦¬ μ’Œν‘œ \((\theta_1, \theta_2)\)와 였λ₯Έμͺ½ μ•„λž˜ λͺ¨μ„œλ¦¬ μ’Œν‘œ \((\theta_3, \theta_4)\) λ„€ 개의 νŒŒλΌλ―Έν„°λ‘œ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. 즉, 이 λͺ¨μˆ˜ λͺ¨λΈμ˜ 각 ν™•λ₯  밀도 ν•¨μˆ˜λŠ” 4개의 숫자 \(\theta= (\theta_!, \theta_2, \theta_3, \theta_4)\)둜 ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. \(p_\theta (x)\)λž€ μˆ˜μ‹μ— λŒ€ν•΄ μ’€ 더 μžμ„Ένžˆ μ΄ν•΄ν•΄λ³΄μžλ©΄ xλ“€μ˜ ν™•λ₯ λ°€λ„ν•¨μˆ˜λ₯Ό \(\theta\)λ₯Ό μ΄μš©ν•΄ λ‚˜νƒ€λ‚Έ κ²ƒμ΄μ—μš”. μˆ˜μ‹μ„ λ‹€μ‹œ μ“°λ©΄ \(P(x|\theta)\)라고도 μ“Έ 수 μžˆμ–΄μš”.

μ΅œλŒ€ μš°λ„λ²•(Maximum Likelihood Method)

μ΅œλŒ€μš°λ„λ²•μ€ λͺ¨μˆ˜μ μΈ 데이터 밀도 μΆ”μ •λ°©λ²•μœΌλ‘œμ¨ νŒŒλΌλ―Έν„° θ둜 κ΅¬μ„±λœ μ–΄λ–€ ν™•λ₯ λ°€λ„ν•¨μˆ˜ \(P(x|\theta)\)μ—μ„œ κ΄€μΈ‘λœ ν‘œλ³Έ 데이터 집합을 x라 ν•  λ•Œ, 이 ν‘œλ³Έλ“€μ—μ„œ νŒŒλΌλ―Έν„° ΞΈλ₯Ό μΆ”μ •ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. μ’€ 더 μ‰½κ²Œ 예λ₯Ό λ“€μ–΄ λ³Όκ²Œμš”. μ•„λž˜μ™€ 같이 5개의 데이터 xλ₯Ό μ–»μ—ˆμ„ λ•Œ 보라색 곑선과 μ΄ˆλ‘μƒ‰ 곑선 쀑 μ–΄λ–€ κ³‘μ„ μ—μ„œ 얻은 λ°μ΄ν„°μΌκΉŒμš”? 직감적으둜 보라색 곑선이라고 생각할 수 μžˆμ–΄μš”. μ™œλƒλ©΄ 보라색 κ³‘μ„ μ˜ 쀑심이 λ°μ΄ν„°μ˜ 쀑심과 가깝기 λ•Œλ¬Έμ΄μ—μš”. 즉, 보라색 곑선일 κ°€λŠ₯μ„±(κ°€λŠ₯도)이 λ†’λ‹€κ³  말할 수 μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ„œ λ§ν•˜λŠ” κ°€λŠ₯μ„±(κ°€λŠ₯도)κ°€ likelihoodμž…λ‹ˆλ‹€. likelihoodλŠ” μ§€κΈˆ 얻은 데이터가 이 λΆ„ν¬λ‘œλΆ€ν„° λ‚˜μ™”μ„ κ°€λŠ₯도λ₯Ό λ§ν•˜λŠ” κ²ƒμ΄μ—μš”. λ‹€μ‹œ μ •λ¦¬ν•˜μžλ©΄ ν™•λ₯ λ°€λ„ν•¨μˆ˜μ—μ„œλŠ” πœƒκ°€ 이미 μ•Œκ³  μžˆλŠ” μƒμˆ˜κ³„μˆ˜κ³  xκ°€ λ³€μˆ˜μ§€λ§Œ likelihood에선 xλ₯Ό 이미 μ•Œκ³  μžˆλŠ” μƒμˆ˜κ³„μˆ˜κ³  πœƒλ₯Ό λ³€μˆ˜λ‘œ μƒκ°ν•˜λ©΄ λ©λ‹ˆλ‹€.

 

κ·Έλ ‡λ‹€λ©΄ likelihoodλ₯Ό μ–΄λ–»κ²Œ ν•˜λ©΄ μˆ˜μ‹ν™”ν•  수 μžˆμ„κΉŒμš”? 방법 쀑 ν•˜λ‚˜λŠ” 각 데이터 ν¬μΈνŠΈλ‘œλΆ€ν„° ν›„λ³΄κ΅°μ˜ 뢄포 높이λ₯Ό likelihood 기여도라고 ν•˜μ—¬ λͺ¨λ‘ κ³±ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. κ³±ν•œ 값이 클수둝 ν˜„μž¬μ˜ 데이터듀을 잘 λ‚˜νƒ€λ‚΄λŠ” ν™•λ₯ λΆ„ν¬λΌλŠ” 것이죠. 이 λͺ¨λ“  뢄포에 λŒ€ν•œ 높이λ₯Ό μ „λΆ€ κ³±ν•œ 것이 likelihood ν•¨μˆ˜μž…λ‹ˆλ‹€!

μˆ˜μ‹μœΌλ‘œ μ μ–΄λ³΄μžλ©΄ μ•„λž˜μ™€ κ°™μ•„μš”. μ €κΈ° λ³΄μ΄λŠ” λ¬Έ 같은건 파이라고 ν•˜λŠ”λ°μš”. k=1λΆ€ν„° nκΉŒμ§€μ˜ λͺ¨λ“  \(p(x_k|\theta)\)λ₯Ό κ³±ν•˜λΌλŠ” μ˜λ―Έμž…λ‹ˆλ‹€. μ‹μ—μ„œ μ™Όμͺ½μ— μžˆλŠ” likelihood ν•¨μˆ˜λ₯Ό μ΅œλŒ€ν™”ν•˜λŠ” \(\theta\)λ₯Ό κ³„μ‚°ν•˜λŠ” 것이 μ΅œλŒ€ μš°λ„λ²•μž…λ‹ˆλ‹€.

$$ \mathcal{L}=P(x|\theta)= \prod_{k=1}^{n}p(x_k|\theta) $$

계산을 더 μ‰½κ²Œ ν•˜κΈ° μœ„ν•΄ logλ₯Ό μ·¨ν•΄μ€λ‹ˆλ‹€. 그러면 νŒŒμ΄μ˜€λ˜ κ³±ν•˜κΈ°λ“€μ΄ λ”ν•˜κΈ°λ‘œ λ°”λ€Œκ²Œ λ©λ‹ˆλ‹€. μš°λ¦¬λŠ” μ΅œλŒ€ν•œ 데이터λ₯Ό 잘 ν‘œν˜„ν•˜λŠ” ν™•λ₯ λΆ„포λ₯Ό κ΅¬ν•˜κ³  μ‹ΆκΈ° λ•Œλ¬Έμ— likelihood의 μ΅œλŒ“κ°’μ„ μ°Ύμ•„μ£Όλ©΄ λ©λ‹ˆλ‹€.

$$ \mathcal{L(\theta|x)}= logP(x|\theta)= log\prod_{k=1}^{n}p(x_k|\theta) =\sum_{k=1}^{n}p(x_k|\theta) $$

λ‘œκ·Έν•¨μˆ˜λŠ” λ‹¨μ‘°μ¦κ°€ν•˜κΈ° λ•Œλ¬Έμ— logλ₯Ό μ”Œμš΄ κ°’μ˜ μ΅œλŒ“κ°’μ€ θ와 κ°™μ§€λ§Œ, 둜그λ₯Ό μ”Œμš°μ§€ μ•Šμ€, 예λ₯Ό λ“€μ–΄ κ°€μš°μŠ€ 뢄포λ₯Ό κ°–λŠ” κ²½μš°λŠ” 뢄포 ν•¨μˆ˜κ°€ μœ„λ‘œ λ³Όλ‘ν•˜κΈ° λ•Œλ¬Έμ— likelihood도 μœ„λ‘œ λ³Όλ‘ν•˜κ²Œ λ©λ‹ˆλ‹€. κ·Έλ ‡λ‹€λ©΄ 미뢄을 μ΄μš©ν•΄ μ΅œλŒ“κ°’μ„ ꡬ할 수 있게 되죠. κ·Έλž˜μ„œ νŽΈλ―ΈλΆ„μ„ μ‚¬μš©ν•˜κ²Œ 되고 λ―ΈλΆ„ν•œ 값이 0이 λ˜λŠ” 값을 찾으면 λ©λ‹ˆλ‹€.

$$ \hat\theta = \underset \theta {argmax}\ \mathcal{L}(\theta|X) $$

μ°Έκ³ ν•œ κΈ€