Backpropagation (์—ญ์ „ํŒŒ)

Backpropagation (์—ญ์ „ํŒŒ)

๊ฐ ๋ณ€์ˆ˜๋“ค์ด ํ•จ์ˆ˜ f์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ฐพ๊ธฐ ์œ„ํ•˜์—ฌ output์— ๋Œ€ํ•œ input์˜ gradient๋ฅผ ์ถœ๋ ฅ๊ฐ’์œผ๋กœ๋ถ€ํ„ฐ ๊ฑฐ๊พธ๋กœ ๊ณ„์‚ฐํ•˜๋Š” rule์ด๋‹ค. gradient๋ฅผ ์–ป๊ธฐ ์œ„ํ•˜์—ฌ Computational Graph ๋‚ด๋ถ€ ๋ชจ๋“  ๋ณ€์ˆ˜์— ๋Œ€ํ•ด chain rule์„ ์žฌ๊ท€์ ์œผ๋กœ ์ ์šฉํ•œ๋‹ค. input์ด ๋งˆ์ง€๋ง‰ ์ถœ๋ ฅ๊ฐ’์— ์˜ํ–ฅ์„ ๋ผ์น˜๋Š” ์ •๋„๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ์“ฐ์ธ๋‹ค.
ย 

์›๋ฆฌ


Backpropagation๋Š” computational graph์—์„œ chain rule์„ ์ ์šฉํ•˜๋ฉฐ ์ง„ํ–‰ํ•œ๋‹ค. computational graph ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ๋กœ ์ง„ํ–‰๋˜๋Š” forward pass์—์„œ ๊ฐ ๋…ธ๋“œ๊ฐ€ local input์„ ๋ฐ›์•„๋“ค์˜€์„ ๋•Œ, ๋…ธ๋“œ์— ๋”ฐ๋ฅธ output๊ณผ ๊ทธ output์— ๋Œ€ํ•œ input์˜ local gradient๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ €์žฅํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ €์žฅํ•œ ๊ฒƒ์€ ์ดํ›„ backward pass์—์„œ chain rule์„ ์‚ฌ์šฉํ•˜์—ฌ upstream gradient์™€ ์ €์žฅํ•œ ๊ฐ’๋“ค์„ ๊ณฑํ•ด ๊ฐ ๋…ธ๋“œ์˜ input์— ๋Œ€ํ•œ gradient๋ฅผ ๊ตฌํ•˜๊ณ  ๊ทธ๊ฒƒ๋“ค์„ ์—ฐ๊ฒฐ๋œ ์ด์ „ ๋…ธ๋“œ๋กœ ํ†ต๊ณผ์‹œํ‚ค๋ฉฐ ์—ฐ์‚ฐํ•œ๋‹ค. ์ด๋•Œ ์ „์ฒด ํšŒ๋กœ์˜ ๊ณ„์‚ฐ ๊ณผ์ •์„ ๋ชจ๋ฅด๋”๋ผ๋„ ์™„์ „ํžˆ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ’๋“ค์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” Neural Network์—์„œ ์ค‘์š”ํ•œ ๊ฐœ๋…์ด๋ฉฐ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹์ด Computationalํ•˜๋‹ค.
ย 

๊ด€๋ จ ์šฉ์–ด


Chain Rule

์—ฐ์‡„ ๋ฒ•์น™์ด๋ผ๋Š” ๋œป์œผ๋กœ ํ•ฉ์„ฑ ํ•จ์ˆ˜๋ฅผ ๋ฏธ๋ถ„ํ•  ๋•Œ์˜ ๊ณ„์‚ฐ ๊ณต์‹์ด๋‹ค.
ย 

Gradient

gradient โˆ‡f๋Š” ํŽธ๋ฏธ๋ถ„ ๊ฐ’๋“ค์˜ ๋ฒกํ„ฐ์ด๋‹ค. ๊ธฐ์กด์˜ ์ˆ˜์‹์„ ํ†ตํ•ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์—ญ์ ์ธ gradient๋ฅผ local gradient๋ผ๊ณ  ํ•˜๊ณ , ๋’ค์—์„œ๋ถ€ํ„ฐ ์•ž์œผ๋กœ ์—ญ์ˆœ์œผ๋กœ ๋„˜์–ด์˜ค๋Š” gradient๋ฅผ upstream gradient(global gradient)๋ผ๊ณ  ํ•œ๋‹ค.
๐Ÿฅ‘
Gradient ๊ณ„์‚ฐ ์ด์œ  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ Neural Networks๋ฅผ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์ด๋‹ค. Gradient๋Š” ํ•™์Šตํ•œ Neural Networks๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐ ์“ฐ์ธ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Support Vector Machine์—์„œ๋Š” ๊ตณ์ด gradient๋ฅผ ์—…๋ฐ์ดํŠธํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ์ปค๋„์„ ์ด์šฉํ•˜์—ฌ ํ•จ์ˆ˜๋ฅผ ํ•ฉ์„ฑํ•˜๋Š”๋ฐ SVM์€ ๋”ฑ ํ•œ ๋ฒˆ ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
ย 
ย 

์˜ˆ์‹œ


Basic Example

notion image
ํ•จ์ˆ˜ ์— ๋Œ€ํ•ด์„œ ์–ด๋–ค ๋ณ€์ˆ˜์˜ gradient๋ฅผ ์ฐพ๊ณ ์ž ํ•œ๋‹ค. ๋จผ์ € ํ•จ์ˆ˜ f๋ฅผ computational graph๋กœ ๋‚˜ํƒ€๋‚ด๊ณ , input๊ฐ’์ธ x=-2, y=5, z=-4 ์ธ ๊ฒฝ์šฐ ์ตœ์ข… ๋…ธ๋“œ๋ฅผ ํ†ต๊ณผํ•˜๋ฉด f=-12๋ผ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š”๋‹ค. ํŽธํ•œ ๊ณ„์‚ฐ์„ ์œ„ํ•ด ๋ง์…ˆ ๋…ธ๋“œ๋ฅผ ๋ผ๋Š” ์ค‘๊ฐ„ ๋ณ€์ˆ˜๋กœ ์ง€์ •ํ•˜๋ฉด, f=๊ฐ€ ๋œ๋‹ค. q์™€ z์— ๋Œ€ํ•˜์—ฌ f๋ฅผ ๋ฏธ๋ถ„์„ ํ•˜๋ฉด gradient๋Š” ๊ฐ๊ฐ ์™€ ๊ฐ€ ๋œ๋‹ค.
forward pass๋ฅผ ํ†ตํ•ด ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด q์™€ z์— ๋Œ€ํ•œ ๋ฏธ๋ถ„๊ฐ’์„ ์ •๋ฆฌํ•˜๋ฉด z=-4, q=x+y=3 ์ด๋‹ค.
x์™€ y์— ๋Œ€ํ•œ ๋ฏธ๋ถ„๊ฐ’์€ Backpropagation์„ ํ†ตํ•ด ๊ตฌํ•œ๋‹ค. chain rule์„ ์ด์šฉํ•ด y์— ๋Œ€ํ•œ f์˜ ๋ฏธ๋ถ„์€ q์— ๋Œ€ํ•œ f์˜ ๋ฏธ๋ถ„๊ณผ y์— ๋Œ€ํ•œ q์˜ ๋ฏธ๋ถ„์˜ ๊ณฑ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ฐ’๋“ค์„ ๊ณ„์‚ฐํ•œ ๊ฒƒ์ด x์™€ y์— ๋Œ€ํ•œ ๋ฏธ๋ถ„๊ฐ’์ด๊ณ  ๊ฐ๊ฐ 1*(-4) = -4, 1*(-4) = -4 ๊ฐ€ ๋œ๋‹ค.
ย 

Sigmoid Function (์‹œ๊ทธ๋ชจ์ด๋“œ ํ™œ์„ฑํ•จ์ˆ˜)

notion image
์ผ๋ จ์˜ computational graph๋ฅผ ํ•˜๋‚˜์˜ big Node๋กœ ๋Œ€์ฒดํ•˜์—ฌ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ํŠน์ • ์—ฐ์‚ฐ์„ sigmoid gateํ™”ํ•˜์—ฌ sigmoid function์„ ๋ฏธ๋ถ„ํ•ด๋„ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค.
ย 

Jacobian Matrix

Jacobian Matrix๋Š” ๋‹ค๋ณ€์ˆ˜ ๋ฒกํ„ฐ ํ•จ์ˆ˜์˜ ๋„ํ•จ์ˆ˜ ํ–‰๋ ฌ๋กœ, ํŽธ๋ฏธ๋ถ„ํ•  ๋ณ€์ˆ˜๊ฐ€ ๋งŽ๊ณ  ๊ทธ ๋ณ€์ˆ˜๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ํ•จ์ˆ˜๋„ ๋งŽ์„ ๋•Œ ์ฃผ๋กœ ์“ฐ์ธ๋‹ค.
๋ฒกํ„ฐ๋ฅผ ๊ฐ€์งˆ ๋•Œ์˜ backpropagation์€ Jacobian Matrix๋ฅผ ์ด์šฉํ•œ๋‹ค. ๋ณ€์ˆ˜(์ˆซ์ž) backpropagation์—์„œ์˜ gradient์˜ ์—ญํ• ์„ Jacobian Matrix๊ฐ€ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋“  ํ๋ฆ„์ด ์ผ์น˜ํ•œ๋‹ค.
notion image
4096 ์ฐจ์›์˜ ๋ฒกํ„ฐ์— ์š”์†Œ๋ณ„๋กœ(elementwise) ์ตœ๋Œ€๊ฐ’(max)์„ ์ทจํ•˜๋Š” ๋…ธ๋“œ๋ฅผ ์ ์šฉํ•œ๋‹ค. ์ด๋•Œ, Jacobian Matrix์˜ ๊ฐ ํ–‰์€ ์ž…๋ ฅ์— ๋Œ€ํ•œ ์ถœ๋ ฅ์˜ ํŽธ๋ฏธ๋ถ„์ด๋‹ค. ๋Œ€๊ฐ ํ–‰๋ ฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž…๋ ฅ ๊ฐ ์š”์†Œ ์ฒซ๋ฒˆ์งธ ์ฐจ์›์€ ์˜ค์ง ์ถœ๋ ฅ์˜ ํ•ด๋‹น ์š”์†Œ์—๋งŒ ์˜ํ–ฅ์„ ์ค€๋‹ค. ํ–‰๋ ฌ์˜ ์‚ฌ์ด์ฆˆ๋Š” 4096*4096์ด๋‹ค.
ย 

Patterns in Backward Flow

  • add gate โ†’ gradient distributor : local gradient์˜ ๊ฐ’์ด 1์ด๋ฏ€๋กœ ์ด์ „์˜ gradient๋ฅผ ๊ทธ๋Œ€๋กœ ์ „ํŒŒํ•œ๋‹ค.
  • max gate โ†’ gradient router : ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜ ์ค‘ ๊ฐ€์žฅ ํฐ ํ•˜๋‚˜๋งŒ ์ทจํ•˜๋ฏ€๋กœ ํ†ต๊ณผํ•œ๋‹ค.
  • multiplication gate โ†’ gradient switcher : ๊ฐ’์— ๋”ฐ๋ผ gradient์˜ scale์„ ์กฐ์ •ํ•œ๋‹ค.
ย