[Deep Learning] Backpropagation

김희진·2021λ…„ 3μ›” 28일

DeepLearning

λͺ©λ‘ 보기
5/12
post-thumbnail

πŸ“– μΌ€λΌμŠ€ μ°½μ‹œμžμ—κ²Œ λ°°μš°λŠ” λ”₯λŸ¬λ‹ (ν”„λž‘μ†Œμ™€ μˆ„λ ˆ, λ°•ν•΄μ„ , κΈΈλ²—) μ°Έκ³ 

🌈 Forward Propagation

ν•¨μˆ˜ν˜• λͺ¨λΈμ˜ ν•™μŠ΅ μ›λ¦¬λŠ” 이전 ν¬μŠ€νŒ…μ—μ„œ μ„€λͺ…ν•œ Gradient Descent이닀. Parameter Updateλ₯Ό ν•˜κΈ° μœ„ν•΄ 각 νŒŒλΌλ―Έν„°λ“€μ˜ νŽΈλ―ΈλΆ„κ°’μ„ κ΅¬ν•΄μ„œ λΉΌλŠ” λ°©μ‹μœΌλ‘œ ν•™μŠ΅μ„ μ§„ν–‰ν•˜μ˜€λ‹€. ν•˜μ§€λ§Œ Parameter κ°œμˆ˜κ°€ 100만개 μ΄μƒμœΌλ‘œ ꡉμž₯히 λ§Žμ€ 경우 μˆ˜μΉ˜λ―ΈλΆ„μœΌλ‘œ κ³„μ‚°ν•˜λŠ” 것이 κ°€λŠ₯ν• κΉŒ?

이전 ν¬μŠ€νŒ…μ—μ„œλ„ μ–ΈκΈ‰ν–ˆλ“― μ‹€μ œ μ‹ κ²½λ§μ—μ„œλŠ” νŒŒλΌλ―Έν„°μ˜ κ°œμˆ˜κ°€ 수천 κ°œλ³΄λ‹€ 적은 κ²½μš°κ°€ 거의 μ—†μœΌλ©° 수천만 개의 νŒŒλΌλ―Έν„°λ₯Ό κ°–λŠ” κ²½μš°λ„ μ’…μ’… μžˆλ‹€. Hidden Layer의 수, Node의 개수 등에 영ν–₯을 λ°›μ•„ κ°œμˆ˜κ°€ μ¦κ°€ν•˜λŠ” 것이닀. Parameter의 μˆ˜λŠ” Model Capacity에 영ν–₯을 μ€€λ‹€. ν•˜μ§€λ§Œ νŒŒλΌλ―Έν„°μ˜ κ°œμˆ˜κ°€ μ¦κ°€ν•˜λ©΄ ν•™μŠ΅μ‹œκ°„μ— 영ν–₯을 쀄 것이닀.

κ·Έλ ‡λ‹€λ©΄ μˆ˜μΉ˜λ―ΈλΆ„μ„ ν•˜μ§€ μ•Šκ³  λ―ΈλΆ„ 값을 얻을 μˆ˜λŠ” μ—†μ„κΉŒ?

🌈 BackPropagation


신경망 λͺ¨λΈμ€ μœ„ μˆ˜μ‹μ²˜λŸΌ κ°„λ‹¨ν•œ ν•¨μˆ˜λ“€μ˜ ν•©μ„± ν•¨μˆ˜λ‘œ λ³Ό 수 μžˆλ‹€. 즉, κ°„λ‹¨ν•œ ν•¨μˆ˜λ“€μ΄ μ€‘μ²©λœ ν˜•νƒœλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€.
κ·Έλ ‡κΈ° λ•Œλ¬Έμ— μš°λ¦¬λŠ” 연쇄 법칙을 μ μš©ν•  수 μžˆλ‹€.

Chain Rule

Chain Rule, λ―ΈλΆ„μ˜ 연쇄 λ²•μΉ™μ΄λž€ ν•©μ„± ν•¨μˆ˜μ˜ 미뢄은 ν•©μ„± ν•¨μˆ˜λ₯Ό κ΅¬μ„±ν•˜λŠ” κ°œλ³„ ν•¨μˆ˜ λ―ΈλΆ„μ˜ 곱으둜 λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€.

Backpropagation Algorithm

μœ„μ™€ 같은 ꡬ쑰의 신경망이 μžˆμ„ λ•Œ μš°μ„  μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½ λ°©ν–₯으둜(Forward) 연산을 ν•˜λ©° Cost, μ˜€μ°¨κ°’μ„ κ³„μ‚°ν•œλ‹€.

n3 λ…Έλ“œλ₯Ό ν™•λŒ€ν•΄λ³΄λ©΄ 이런 ꡬ쑰둜 λ‚˜νƒ€λ‚  것이닀. μš°λ¦¬λŠ” W21을 μ—…λ°μ΄νŠΈν–ˆμ„ λ•Œ μ˜€μ°¨κ°’μ΄ μ–Όλ§ˆλ‚˜ κ°μ†Œν• μ§€ μ•Œκ³  μ‹Άλ‹€. 이것을 μ•„λž˜μ™€ 같은 μˆ˜μ‹μœΌλ‘œ ν‘œν˜„ν•  수 μžˆλ‹€.

이 μˆ˜μ‹μ„ 연쇄 법칙을 ν™œμš©ν•˜μ—¬ ν’€λ©΄ μ˜€μ°¨κ°’ Β· 좜λ ₯κ°’(1-좜λ ₯κ°’) Β· μž…λ ₯κ°’μ˜ ν˜•νƒœλ‘œ λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€. 즉, λ―ΈλΆ„ 연산을 ν•˜μ§€ μ•Šκ³  Forward Propagation 결과만으둜 λ―ΈλΆ„ 값을 얻을 수 μžˆλŠ” 것이닀.

미뢄을 ν•˜μ§€ μ•Šκ³  μ˜€μ°¨κ°’, 좜λ ₯κ°’, μž…λ ₯값을 μ΄μš©ν•΄μ„œ κ°€μ€‘μΉ˜λ₯Ό μœ„μ™€ 같은 식을 톡해 μ—…λ°μ΄νŠΈ ν•  수 μžˆλ‹€.

수치 미뢄을 κ³„μ‚°ν•˜λŠ” 것은 λ§Žμ€ μ»΄ν“¨νŒ… μžμ› 및 μ‹œκ°„μ΄ μ†Œμš”λ˜κΈ° λ•Œλ¬Έμ— 이와 같이 미뢄을 ν•˜μ§€ μ•Šκ³  Forward Propagation의 κ²°κ³Όλ₯Ό μ „λ‹¬ν•˜λ©° νŒŒλΌλ―Έν„° μ—…λ°μ΄νŠΈλ₯Ό ν•˜λŠ” 방법이 λ°”λ‘œ Backpropagation, μ—­μ „νŒŒ μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€. μ—­μ „νŒŒ μ•Œκ³ λ¦¬μ¦˜μ„ 톡해 μš°λ¦¬λŠ” hidden layerλ‚˜ node의 μˆ˜κ°€ μ¦κ°€ν•˜μ—¬λ„ ν•™μŠ΅ 속도에 영ν–₯을 λ°›μ§€ μ•Šκ³  ν•™μŠ΅ν•  수 μžˆλ‹€.

0개의 λŒ“κΈ€