๊ฐ ๋ณ์๋ค์ด ํจ์ 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
ํจ์ ์ ๋ํด์ ์ด๋ค ๋ณ์์ 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 (์๊ทธ๋ชจ์ด๋ ํ์ฑํจ์)
์ผ๋ จ์ computational graph๋ฅผ ํ๋์ big Node๋ก ๋์ฒดํ์ฌ ๊ณ์ฐํ ์ ์๋ค. ์ ์ด๋ฏธ์ง์ฒ๋ผ ํน์ ์ฐ์ฐ์ sigmoid gateํํ์ฌ sigmoid function์ ๋ฏธ๋ถํด๋ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
ย
Jacobian Matrix
Jacobian Matrix๋ ๋ค๋ณ์ ๋ฒกํฐ ํจ์์ ๋ํจ์ ํ๋ ฌ๋ก, ํธ๋ฏธ๋ถํ ๋ณ์๊ฐ ๋ง๊ณ ๊ทธ ๋ณ์๋ค๋ก ์ด๋ฃจ์ด์ง ํจ์๋ ๋ง์ ๋ ์ฃผ๋ก ์ฐ์ธ๋ค.
๋ฒกํฐ๋ฅผ ๊ฐ์ง ๋์ backpropagation์ Jacobian Matrix๋ฅผ ์ด์ฉํ๋ค. ๋ณ์(์ซ์) backpropagation์์์ gradient์ ์ญํ ์ Jacobian Matrix๊ฐ ํ๋ค๋ ๊ฒ์ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ํ๋ฆ์ด ์ผ์นํ๋ค.
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์ ์กฐ์ ํ๋ค.
ย