Back-propagation
2020-1ํ๊ธฐ, ๋ํ์์ โ์ธ๊ณต์ง๋ฅโ ์์ ์ ๋ฃ๊ณ ๊ณต๋ถํ ๋ฐ๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ง์ ์ ์ธ์ ๋ ํ์์ ๋๋ค :)
Backpropagation
<Back-propagation>์ <GD>๋ฅผ ์ํํ๊ธฐ ์ํด Loss์ ํธ๋ฏธ๋ถ์ ์ฝ๊ฒ ๊ตฌํ ์ ์๊ฒ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
\[\nabla_\mathbf{w} \text{TrainLoss}(\mathbf{w})\]<Back-propagation> ์๊ณ ๋ฆฌ์ฆ์ <Neural Network>๋ฅผ ์ผ์ข ์ โComputational Graphโ๋ก ๋ชจ๋ธ๋ง ํ์ฌ, Gradient๋ฅผ ๊ตฌํ๋ค. Gradient๋ <Chain Rule>์ ์ํด ์์ชฝ์ ์ฐ์ฐ๊น์ง ์ฐจ๋ก๋๋ก ์ ํ๋๋ค.
<Back-propagation>์ ๋ณต์กํ ํํ์ Loss ํจ์์ผ์ง๋ผ๋ ๊ทธ๊ฒ์ ์์ ์์๋ถํฐ ์ฐจ๋ก๋ก <Chain Rule>์ ๋ฐ๋ผ Gradient์ ๊ตฌํ๊ธฐ ๋๋ฌธ์ ๋ณต์กํ ํจ์์ ๋ฏธ๋ถ์์ ์ง์ ๊ตฌํ์ง ์๊ณ ๋ ์ฝ๊ฒ Gradient๋ฅผ ๊ตฌํ ์ ์๋ค! ๐
Function as boxes
๋จผ์ ๊ฐ์ฅ ๊ฐ๋จํ ํํ์ <Computational Graph>๋ถํฐ ์ดํด๋ณด์.
Remark. basic building blocks
1. Addition $f(a, b) = a+b$
\[\frac{\partial f(a, b)}{\partial a} = 1 \quad, \quad \frac{\partial f(a, b)}{\partial b} = 1\]2. Multiplication $f(a, b) = ab$
\[\frac{\partial f(a, b)}{\partial a} = b \quad , \quad \frac{\partial f(a, b)}{\partial b} = a\]$a$, $b$์ ์์๊ฐ ๋ฐ๋์๋ค!!
3. max function $f(a, b) = \max(a, b)$
\[\frac{\partial f(a, b)}{\partial a} = I[a > b] \quad , \quad \frac{\partial f(a, b)}{\partial b} = I[a < b]\]๋น์ฐํ $a > b$์ผ ๋, $f(a, b)$๊ฐ $a$์ ๋ํ identity func.์ด ๋๋ฏ๋ก, ์์ ๊ฒฐ๊ณผ๋ ๋น์ฐํ๋ค!
4. sigmoid function $f(a) = \sigma(a)$
\[\frac{\partial f(a)}{\partial a} = \sigma(a) (1 - \sigma(a))\]Remark. generalized build block
<Computational Graph>์ building block์ ํํ๋ฅผ ์ผ๋ฐํํ๋ฉด ์๋์ ๊ฐ๋ค.
Remark. composing functions
ํฉ์ฑ ํจ์์ ๊ฒฝ์ฐ๋ <back-propagation>์ผ๋ก ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค!
์ฒซ block๋ถํฐ ์ดํด๋ณด์๋ฉด, $\text{mid}$๋ฅผ ํจ์๊ฐ ์๋๋ผ ๋ณ์๋ก ์ทจ๊ธํ๋ฉด, ์์ฝ๊ฒ gradient๋ฅผ ๊ตฌํ ์ ์๋ค.
\[\frac{\partial \text{out}}{\partial \text{mid}}\]์ฌ๊ธฐ์์ ๊ทธ ๋ค์ block์ ์ดํด๋ณด๋ฉด, ์ด๊ฒ๋ ๊ทธ๋ฅ ํธ๋ฏธ๋ถ์ ์ํํด์ฃผ๋ฉด ๋๋ ๊ฒ์ด๋ค.
\[\frac{\partial \text{mid}}{\partial \text{in}}\]๋ gradient ๊ฐ์ ๋ค ๊ตฌํ๋ค๋ฉด, ๊ตฌํ gradient๋ฅผ ๋ชจ๋ ๊ณฑํด์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ gradient๋ฅผ ๊ตฌํ๋ค! ๐
\[\frac{\text{out}}{\text{in}} = \frac{\partial \text{out}}{\partial \text{mid}} \cdot \frac{\partial \text{mid}}{\partial \text{in}}\]Remark. Branching Block
ํจ์๊ฐ์ด ๋ ๊ตฐ๋ฐ๋ก ๋ถ๊ธฐํ๋ ๊ฒฝ์ฐ์ gradient๋ ์๋์ ๊ฐ์ด ๊ตฌํ ์ ์๋ค.
\[\frac{\partial\text{out}}{\partial \text{mid}} = \frac{\partial\text{out1}}{\partial \text{mid}} + \frac{\partial\text{out2}}{\partial \text{mid}}\]์ฆ, ๋ถ๊ธฐํ๋ ๊ฒฝ์ฐ๋ gradient ๊ฐ์ ๋ํด์ฃผ๋ฉด ๋๋ค!
Example. Binary Classification with Hinge Loss
โจ Goal: $\dfrac{\partial \text{Loss}}{\partial \mathbf{w}}$
์ ์ผ ๋จผ์ ํ ์ผ์ <Computational Graph>๋ฅผ ๋ง๋๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ค์์๋ Graph์ edge์ ๊ท์น์ ๋ฐ๋ผ ๊ณ์ฐํ gradient ๊ฐ์ ํ์ํ๋ค. ๋ง์ง๋ง์๋ gradient๋ฅผ ๊ตฌํ๊ณ ์ ํ๋ ๋์, ์ฌ๊ธฐ์๋ $\mathbf{w}$๊น์ง Graph๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉฐ edge์ ํ์๋ gradient๋ฅผ ๋ชจ๋ ๊ณฑํด์ค๋ค! ๐
๋ฐ๋ผ์ gradient๋
\[\frac{\partial \text{Loss}}{\partial \mathbf{w}} = - 1 \cdot I(\text{margin} < 1) \cdot \phi(x) \cdot y\]