Lecture 4: Backpropagation and Neural Network

2 minute read

What is Backpropagation?

์—ญ์ „ํŒŒ(Backpropagtion)๋Š” ์›ํ•˜๋Š” ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ์ตœ์ ์˜ ๋ชจ๋ธ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ๊ฐ€์ค‘์น˜๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์—ญ์ „ํŒŒ ๊ณผ์ •์„ ์‰ฝ๊ฒŒ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ computational graph ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.

Structure of Computational graph

์œ„ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ์ฒ˜์Œ์— ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ W ์™€ ์‚ฌ์ง„ ๋ฐ์ดํ„ฐ x ๋ฅผ ๊ณฑํ•œ ํ›„ ์ •๊ทœํ™” ํ–‰๋ ฌ R์„ ๋”ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ณ„์‚ฐ๊ณผ์ •์„ ์ง์ ‘ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•ด ์•Œ์•„๋ณด๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“  ๊ฒƒ์ด computational graph ์ด๋‹ค.

Example of Backpropagtion

๋‹ค์Œ๊ณผ ๊ฐ™์€ x=-2, y=5, z=-4 ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž.

$f(x,y,z)=(x+y)z$

์ด๊ฒƒ์„ computational graph ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์—ฌ๊ธฐ์„œ ์ตœ์ ์˜ ๊ฐ€์ค‘์น˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” f ํ•จ์ˆ˜๋ฅผ x,y,z ๋กœ ๊ฐ๊ฐ ๋ฏธ๋ถ„ํ•œ ๊ฐ’์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค. ํ•œ๋ฒˆ์— ์ด ๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ f๋ฅผ q์™€ z๋กœ, q๋ฅผ x์™€ y๋กœ ๋ฏธ๋ถ„ํ•œ ๊ฐ’์„ ์ฐจ๋ก€๋กœ ์ฐพ๋Š”๋‹ค.

์ด ๋•Œ, ์—ฐ์‡„๋ฒ•์น™(chain rule)์„ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฏธ๋ถ„ ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, local gradient ์™€ upstream gradient ๋ฅผ ๊ณฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

$\frac{\partial f}{\partial x}=\frac{\partial f}{\partial q}\frac{\partial q}{\partial x}=z=-4$

$\frac{\partial f}{\partial y}=\frac{\partial f}{\partial q}\frac{\partial q}{\partial y}=z=-4$

์ด๋ ‡๊ฒŒ ์ฐพ์€ ๋ฏธ๋ถ„ ๊ฐ’์„ ์—ฐ์‡„๋ฒ•์น™์„ ์ด์šฉํ•ด ์ฐจ๋ก€๋กœ ๊ณฑํ•˜๋ฉด ์›ํ•˜๋Š” ๋ณ€์ˆ˜๋กœ ๋ฏธ๋ถ„ํ•œ ๊ฐ’์„ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ์€ ์ข€ ๋” ๋ณต์žกํ•œ ๊ณต์‹์„ ํ™œ์šฉํ•œ ์˜ˆ์‹œ์ด๋‹ค.

๊ณ„์‚ฐ ๊ณผ์ •์— ๋Œ€ํ•œ ์„ค๋ช…์€ ๋‹ค์†Œ ๊ธธ์–ด์ง€๊ณ  ์ค‘๋ณต๋œ ๋‚ด์šฉ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ƒ๋žตํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. local gradient ์™€ upstream gradient ๋ฅผ ๊ณฑํ•˜๋ฉด์„œ ์ฐจ๋ก€๋กœ ๊ฒŒ์‚ฐํ•ด ๋‚˜๊ฐ€๋ฉด $w_0$, $w_1$, $x_0$, $x_1$, $w_2$ ๋กœ ๋ฏธ๋ถ„ํ•œ ๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๋งŒ ๋ช…์‹ฌํ•˜๋ฉด ๋˜๊ฒ ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์œ„์™€ ๊ฐ™์€ ์˜ˆ์‹œ์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ณ„์‚ฐ๊ณผ์ •์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ๊ณ„์‚ฐ ๊ณผ์ •์„ ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

Patterns in backward flow

์—ญ์ „ํŒŒ ๊ณผ์ •์—๋Š” ์ผ์ •ํ•œ ๊ทœ์น™์ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ทœ์น™์—๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  1. add gate: gradient distributor, ์ฆ‰ local gradient ๊ฐ€ ํ•ญ์ƒ 1์ธ ์ƒํƒœ๋กœ upstream gradient ๋งŒ ์กด์žฌํ•œ๋‹ค.
  2. max gate: gradient router, ์ฆ‰ gradient๊ฐ€ ๋‹จ์ˆœํžˆ ํ†ต๊ณผํ•˜๋Š” ํšจ๊ณผ๋ฅผ ๊ฐ€์ง„๋‹ค.
  3. mul gate: gradient switcher, ์ฆ‰ ๊ณฑํ•˜๋Š” ๋‹ค๋ฅธ ๊ฐ’์˜ ๋ณ€์ˆ˜๋ฅผ ๊ฐ–๋Š”๋‹ค.

Vectorzied operations

์•ž์„œ ์‚ดํŽด๋ณธ ์˜ˆ์‹œ๋Š” ์ •๋ง ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ์ด๋‹ค. ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋Š” ํ–‰๊ณผ ์—ด์˜ ์ˆ˜๊ฐ€ 100๋‹จ์œ„๊ฐ€ ๋„˜์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ ์œ„์™€ ๊ฐ™์ด computational graph๋ฅผ ์ผ์ผํžˆ ๊ทธ๋ฆฌ๋Š” ๊ฒƒ์€ ๋งค์šฐ ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ณ  ๋ฒˆ๊ฑฐ๋กœ์šด ์ผ์ด๋‹ค. ์ด๋•Œ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ฐ๊ฐ์˜ ๋ณ€์ˆ˜๋“ค์„ ํŽธ๋ฏธ๋ถ„ํ•˜์—ฌ ์ด๋ฅผ ํ–‰๋ ฌ์˜ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ธ Jacobian Matrix ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ์ด Jacobian Matrix์˜ ๋ช‡๊ฐ€์ง€ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. 4096์ฐจ์›(์—ด) ์„ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ๋˜๊ณ  ๊ฐ™์€ ์ฐจ์›์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถœ๋ ฅ๋˜๋ฉด Jacobian Matrix์˜ ํฌ๊ธฐ๋Š” 4096x4096์ด ๋œ๋‹ค.
  2. ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ๊ฐ๊ฐ์˜ ์ฐจ์›์€ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์ผ์น˜ํ•˜๋Š” ์ฐจ์›์—๋งŒ ์˜ํ–ฅ์„ ์ค€๋‹ค.
  3. ๋Œ€๊ฐํ–‰๋ ฌ์ด๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ๋‚ด์šฉ์„ ์ตœ์ข…์ ์œผ๋กœ ์ •๋ฆฌํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Foward pass(ํฌ์›Œ๋“œ ํŒจ์Šค): ๋…ธ๋“œ์˜ ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ํ•จ์ˆ˜์— ๊ฐ’์„ ๋„ฃ์–ด๊ฐ€๋ฉฐ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
  • Backward pass (๋ฐฑ์›Œ๋“œ ํŒจ์Šค): ๋…ธ๋“œ์˜ gradient๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด Forward pass๋ฅผ ํ†ตํ•ด ๊ตฌํ•œ ๊ฐ’์„ ๋ฐ”ํƒ•์œผ๋กœ Jacobian Matrix๋ฅผ ๊ตฌํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. ์—ญ์ „ํŒŒ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ณผ์ •์ด๋‹ค.

Neural Networks

์‹ ๊ฒฝ๋ง(Neural Networks)์ด๋ž€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ์ด ์ฐจ๋ก€๋กœ ์ ์šฉํ•จ์œผ๋กœ์จ ๋…ธ๋“œ์˜ ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋งŒ์•ฝ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 2๊ฐœ์˜ ์ธต์„ ๊ฐ€์ง„ ์‹ ๊ฒฝ๋ง์ด ์žˆ๋‹ค๊ณ  ํ•˜์ž.

์œ„์™€ ๊ฐ™์€ ๋ชจ์Šต์˜ ์‹ ๊ฒฝ๋ง์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณต์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

$f(x)=W_2 max(0,W_1 x)$

์ด ์‹ ๊ฒฝ๋ง์€ ์ฆ‰ 3072์˜ ์ฐจ์›์„ $W_1$์˜ ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ€์ง„ ์ธต์„ ๊ฑฐ์ณ 100์ฐจ์›์œผ๋กœ ์ค„์ด๊ณ  ์ด๋ฅผ $W_2$์˜ ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ€์ง„ ์ธต์„ ๊ฑฐ์ณ 10์ฐจ์›์œผ๋กœ ์ค„์ธ๋‹ค. ์ธต์„ ๋” ์Œ“์„์ˆ˜๋ก High level(๊ณ ์ฐจ์›)๋ถ€ํ„ฐ Low level(์ €์ฐจ์›)์ ์ธ ํŠน์ง•์„ ๋ชจ๋‘ ๊ณ ๋ คํ•˜์—ฌ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค.

Analogy between neurons and neural networks

์ธ๊ณต ์‹ ๊ฒฝ๋ง์˜ ๊ฑ”๋…์€ ์šฐ๋ฆฌ ๋ชธ์•ˆ์— ์žˆ๋Š” ๋‰ด๋Ÿฐ์„ธํฌ๋กœ ๋ถ€ํ„ฐ ์ฐจ์šฉํ•œ ๊ฒƒ์ด๋‹ค. ์šฐ์„  ๋‰ด๋Ÿฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

'๋‰ด๋Ÿฐ'

dendrite๋ฅผ ํ†ตํ•ด cell body๊ฐ€ ์ž๊ทน์‹ ํ˜ธ๋ฅผ ์ „๋‹ฌ ๋ฐ›๊ณ  ์ด๋ฅผ ๋‹ค์‹œ axon ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์žˆ๋Š” ๋‹ค๋ฅธ cell body ์— ์ „๋‹ฌ์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๋•Œ axon์„ ํ†ตํ•ด ์ „๋‹ฌํ• ๋•Œ ์ž๊ทน์ด ์ผ์ • ๊ธฐ์ค€์น˜๋ฅผ ๋„˜์–ด์•ผ์ง€ ์ „๋‹ฌ์ด ๋œ๋‹ค. ๋‹ค์Œ์€ ์ธ๊ฒฝ ์‹ ๊ฒฝ๋ง์˜ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ์ด๋‹ค.

์ธ๊ณต์‹ ๊ฒฝ๋ง์ด ๋‰ด๋Ÿฐ๊ณผ ๋น„์Šทํ•œ ์›๋ฆฌ๋กœ ์ž‘๋™ํ•˜๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ activation function ์ด๋ผ๋Š” ๊ฐœ๋…์ด ๋‚˜์˜ค๋Š”๋ฐ, ์ด๋Š” ์ž๊ทน์ด ์ „๋‹ฌ๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ์ผ์ •ํ•œ ๊ธฐ์ค€์ด ๋˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ํ™œ์„ฑํ™” ํ•จ์ˆ˜(activation function)๋Š” ๋‹ค์–‘ํ•˜๊ฒŒ ์กด์žฌํ•˜๋Š”๋ฐ, ๋Œ€ํ‘œ์ ์ธ ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์—ฌ๊ธฐ์„œ ReLU ํ•จ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค. ํ™œ์„ฑํ™” ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ถ”ํ›„ ๊ฐ•์˜์— ์ž์„ธํžˆ ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๋‹ค.

Comments