Lecture 4 | Introduction to Neural Networks
Lecture 4 | Introduction to Neural Networks
Backpropagation (์ญ์ ํ)
Computation graphs
๐ก Computation graph๋ ๋จ์ํ ๊ณ์ฐ๊ณผ์ ์ ๊ทธ๋ํ๋ก ๋ํ๋ธ ๊ฒ์ด๋ค.

์์ ์์์์๋ score function, loss function(SVM)์ ๊ทธ๋ํํ ์ํจ๊ฒ์ด๋ค.
backpropagation์ gradient๋ฅผ ์ป๊ธฐ ์ํด computation graph๋ด๋ถ์ ๋ชจ๋ ๋ณ์์ ๋ํด chain rule์ recursiveํ๊ฒ ์ฌ์ฉํ๋ค.
์ง๊ธ๊น์ง ๋ฐฐ์ด gradient๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค์ ์ด๋ป๊ฒ ์ ์ฉํ ์ง ์๊ฐํด๋ณด์.



๋ฐฐ์ด๊ฒ๋ค์ ์ ์ฉํ ๋ ค๋ ๋ง๋งํ ๊ฒ ์ด๋ค. ํ์ง๋ง backpropagation์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค.
Backpropagation: a simple example
Computaion graph๊ณผ Backpropagation์ ์ด์ฉํ gradient๋ฅผ ๊ตฌํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์์ ๋ํด Computation graph๋ฅผ ๊ทธ๋ฆฐ๋ค.
- input ๊ฐ์ ๋ํด ์๋ฐฉํฅ์ผ๋ก ๊ณ์ฐํ์ฌ Computation graph์ ํ๊ธฐํ๋ค.
- Chain rule์ ์ด์ฉํด ์ญ๋ฐฉํฅ์ผ๋ก ๋ณํ๋ฅ ์ ๊ณ์ฐํ๋ค.
- ์ต์ข ์ ์ผ๋ก input์ ๋ํ output์ ๋ณํ๋ฅ ์ ๊ตฌํ๋ค.
๊ทธ๋ผ ์ด์ Backpropagation์ ๊ฐ๋จํ ์์๋ฅผ ์ดํด๋ณด์.

๋ค์๊ณผ ๊ฐ์ด f(x, y, z) = (x + y)z๋ผ๋ ์์ด ์์ ๋ ์์ ๊ณผ์ ์ ํตํด gradient๋ฅผ ๊ตฌํด๋ณด์.
- ์์ ๋ํด Computation graph๋ฅผ ๊ทธ๋ฆฐ๋ค.

- input ๊ฐ์ ๋ํด ์๋ฐฉํฅ์ผ๋ก ๊ณ์ฐํ์ฌ Computation graph์ ํ๊ธฐํ๋ค.
(์ฌ๊ธฐ์๋ ์์์ ๊ฐ x = -2, y = 5, z = -4๋ผ๋ ๊ฒ์ ์ฃผ์์)

- Chain rule์ ์ด์ฉํด ์ญ๋ฐฉํฅ์ผ๋ก ๋ณํ๋ฅ ์ ๊ณ์ฐํ๋ค.
(์ค๋ช ์ ์ฝ๊ฒํ๊ธฐ ์ํด q = x + y๋ก ์นํํ์์)
๋จผ์ ๊ณ์ฐ์ ์ฝ๊ฒํ๊ธฐ์ํด ๊ฐ ํจ์๋ค์ด ๋ฏธ๋ถ์ ๊ตฌํ์.

๋ค์์ผ๋ก ์์ ๊ตฌํด์ง ๋ฏธ๋ถ์ ๋ฐํ์ผ๋ก Backpropagation์ ์ฉ

- ์ต์ข ์ ์ผ๋ก input์ ๋ํ output์ ๋ณํ๋ฅ ์ ๊ตฌํ๋ค.


Backpropagation์ ํน์ง

Backpropagation์ ํน์ง์ ์์์ ๊ณ์ฐํ ๊ฒ๊ณผ ๊ฐ์ด local gradient๋ง์ ๊ณ์ฐํ๋ค๋ ๊ฒ์ด๋ค. ์ด๋ฌํ Backpropagation์ ํน์ง์ ๋ณต์กํ ์ฐจ์, ๋ณต์กํ ์์์ด๋ผ๋ ์ธ๋ถํํ์ฌ local๋จ์๋ก ๊ณ์ฐํ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ์ ์ฉํ ์ ์๋ค.
๋ค์ ํ ๊ฐ์ง์ ๋ค๋ฅธ ์๋ฅผ ์ดํด๋ณด์.

์ด๋ฒ์๋ ์กฐ๊ธ ๋ ๋ณต์กํ ์์์ backpropagation์ ์ด์ฉํด gradient๋ฅผ ๊ตฌํด๋ณด์.
1, 2. ์์ ๋ํด Computation graph๋ฅผ ๊ทธ๋ฆฌ๊ณ input ๊ฐ์ ๋ํด ์๋ฐฉํฅ์ผ๋ก ๊ณ์ฐํ์ฌ Computation graph์ ํ๊ธฐํ๋ค.

- Chain rule์ ์ด์ฉํด ์ญ๋ฐฉํฅ์ผ๋ก ๋ณํ๋ฅ ์ ๊ณ์ฐํ๋ค.
๋จผ์ ๊ณ์ฐ์ ์ฝ๊ฒํ๊ธฐ์ํด ๊ฐ ํจ์๋ค์ด ๋ฏธ๋ถ์ ๊ตฌํ์.

๋ค์์ผ๋ก ์์ ๊ตฌํด์ง ๋ฏธ๋ถ์ ๋ฐํ์ผ๋ก Backpropagation์ ์ฉ

๊ฐ ๋ ธ๋์ ๊ณ์ฐ์ ์๋์ ๊ฐ์ ์ ๋ฐ์ ์ธ rule์ ๋ฐ๋ฅธ๋ค.

(ํ์ฌ ๋ ธ๋ ๊ฐ์ ๋ํ ๋ค์ ๋ ธ๋ ๊ฐ์ ๋ณํ์จ) x (์ง๊ธ๊น์ง backpropagation์ผ๋ก ์ ๋ฌ๋ gradient)
- ์ต์ข ์ ์ผ๋ก input์ ๋ํ output์ ๋ณํ๋ฅ ์ ๊ตฌํ๋ค.

Backpropagation ์ฆ๋ช
๊ทธ๋ผ ์ด๋ ๊ฒ ๊ตฌํ gradient๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ํด์์ ์ผ๋ก ๊ตฌํ gradient์ ๊ฐ์์ง ์ดํด๋ณด์.
์์ ์์๋ก ์ฌ์ฉํ๋ Computation graph๋ฅผ ๋ค์ ๊ฐ์ ธ์๋ณด์.

์ฌ์ค ์ด ๊ทธ๋ํ์๋ Sigmoid ํจ์๊ฐ ์ํด ์์๋ค. ์ฐ๋ฆฌ๊ฐ ๊ณ์ฐํ Computation graph์ ๋ฐ๋ฅด๋ฉด Sigmoid ํจ์๋ฅผ ๋ฏธ๋ถํ ์์ 0.73์ ๋ฃ์ผ๋ฉด 0.20์ด๋ผ๋ ์ ๋ต์ ๊ตฌํ ์ ์๋ค.
๊ทธ๋ผ ์ด๋ฒ์๋ ํด์ํ์ ์ผ๋ก ์ง์ ๋ฏธ๋ถ์ ํตํด ๊ตฌํด๋ณด์. Sigmoid ํจ์์ ๋ฏธ๋ถํ ์์ ๋ค์๊ณผ ๊ฐ๋ค.


Sigmoid ํจ์๋ ์ง์ํจ์์ด๊ธฐ ๋๋ฌธ์ ๋ฏธ๋ถ์ ํ๋ฉด ์๊ธฐ์์ ์ ํฌํจํ ์์ด ๋์จ๋ค.
์ด์ ๊ตฌํ ์์ 0.73์ ๋ฃ์ด๋ณด์.

๋๋๊ฒ๋ 0.2๋ผ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์๋ค. ์ด๋ ๊ฒ ์ฐ๋ฆฌ๊ฐ Backpropagation๊ณผ Computation graph๋ฅผ ํตํด ๊ตฌํ gradient๊ฐ ํด์ํ์ ์ผ๋ก ๊ตฌํ gradient์ ์ผ์นํ๋ค๋ ๊ฒ์ด ์ฆ๋ช ๋์๋ค.
Pattern in backward flow
Backpropagation๊ณผ์ ์์ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ์ฐพ์ ์ ์๋ค.

- add gate: gradient distributor
๋ํ๊ธฐ ์ฐ์ฐ์ upstream gradient(์ง๊ธ๊น์ง ์ ๋ฌํ gradient)๋ฅผ ๋ถ๋ฐฐํ์ฌ ์ ๋ฌํ๋ค.
- max gate: gradient router
max(a,b)์ฐ์ฐ์ router์ญํ ์ ํ์ฌ ๋ค์ด์จ ๋ ธ๋์ ๋ํด์ upstream gradient(์ง๊ธ๊น์ง ์ ๋ฌํ gradient)๋ฅผ ๊ทธ๋๋ก ์ ๋ฌํ๊ณ ๋ค๋ฅธ ๋ ธ๋ํํ ๋ 0์ ์ ๋ฌํ๋ค.
- mul gate: gradient swicher
๊ณฑํ๊ธฐ ์ฐ์ฐ์ upstream gradient(์ง๊ธ๊น์ง ์ ๋ฌํ gradient)์ ํ ๋ ธ๋์์ ๋ค์ด์จ ๊ฐ์ ์ ์ธํ ๋ค๋ฅธ ๋ ธ๋๋ค์ ๊ณฑํ์ฌ ์ ๋ฌํ๋ค.
<์ฐธ๊ณ ์ฌํญ>
๋ค์๊ณผ ๊ฐ์ด ํ๋์ ๋ ธ๋์์ branch๊ฐ ๋ ๊ฐ์ด์์ด๋ฉด ์ ๋ฌ๋ฐ์ gradient๋ฅผ ๋ํ๋ค.

Gradients for vectorized code
์ง๊ธ๊น์ง ์ฐ๋ฆฌ๋ scala๊ฐ๋ค์ ๋ํด์ Backpropagation์ ์ดํด๋ณด์๋ค. ๊ทธ๋ผ์ด์ input๊ฐ์ด vector์ธ ์ํฉ์ ๋ํด์ Backpropagation์ ์ดํด๋ณด์.

์ ๋ฐ์ ์ผ๋ก ํํ๋ scala๋์ ๋ค๋ฅผ๊ฒ ์๋ค. ๋ค๋ฅธ ๊ฒ์ด ์๋ค๋ฉด gradient๋ฅผ ์ ๋ฌ ํ ๋ Jacobian matrix๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ด๋ค.
Jacobian matrix๊ฐ๋จ ์ ๋ฆฌ
https://m.blog.naver.com/jinohpark79/110190680093
02. ํธ๋ฏธ๋ถ์ ๊ฐ๋จํ๊ฒ! Jacobian Matrix
์ฐ๋ฆฌ๊ฐ ์ด๋ค ์ผ์ ํ ๋, ๋ณต์กํ ํจ์์ ๋ฏธ๋ถ์ ์ํํ ๋ ๊ณ ๋ฑํ๊ต / ๋ํ๊ต ๋์ ๊ธฐ์ต์ ๋ ์ฌ๋ฆฌ๋ฉฐ, ๋ฏธ๋ถ...
blog.naver.com
→ ์์ ์์์๋ x1~xn์ ๋ํ์ฌ ๊ฐ๊ฐ x1์ ๋ํ z1์ ๋ณํ๋ฅ , x1์ ๋ํ z2์ ๋ณํ๋ฅ , x1์ ๋ํ z3์ ๋ณํ๋ฅ ,......,x1์ ๋ํ zn์ ๋ณํ๋ฅ ์ matrixํํ๋ก ๋ํ๋ธ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ Jacobian matrix์ shape์ len(x) x len(z)๊ฐ ๋๋ค.
Vectorized operations
๊ตฌ์ฒด์ ์ผ๋ก vectorized operation์ ๋ํด ์์๋ณด์.

input์ผ๋ก 4096์ฐจ์์ vector๊ฐ ๋ค์ด์จ๋ค๋ฉด ์์ ๋ณด์ด๋ ๊ฒ๊ณผ ๊ฐ์ด 4096์ฐจ์์ vector๊ฐ output์ผ๋ก ์๊ฒจ๋ ๊ฒ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฌ๊ธฐ์ jacobian matrix์ ํฌ๊ธฐ๋ ์ผ๋ง์ผ๊น?
→ ๊ทธ ๋ต์ 4096 x 4096์ matrix๊ฐ ๋ง๋ค์ด ์ง ๊ฒ์ด๋ค.
ํ์ง๋ง ์ด๊ฒ์ ํ๋์ vector๋ง์ ์ฌ์ฉํ์ ๊ฒฝ์ฐ์ด๋ค. ๋ง์ฝ batch๋ฅผ 100์ผ๋ก ์ฌ์ฉํ๋ค๋ฉด jacobian matrix์ ํฌ๊ธฐ๋ 4096000 x 4096000์ด ๋ ๊ฒ์ด๋ค. ์ด ์์น๋ ๋งค์ฐ ๊ฑฐ๋ํ๊ธฐ ๋๋ฌธ์ ์์ ์ ํจ์จ์ ์ด์ง ์๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ jacobian matrix๋ฅผ ๊ตฌ์ฑํ ๊น?
→ ๊ตฌ์ฑํ ํ์๊ฐ ์๋ค. ์ฐ๋ฆฌ๋ ์ถ๋ ฅ์ ๋ํ x์ ์ํฅ์ ๋ํด์ ๊ทธ๋ฆฌ๊ณ ์ด ๊ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ํด์๋ง ์๋ฉด๋๋ค.
A vectorized example
์ด๋ฒ์๋ ์ธ๋ถํ๋ ๋ ธ๋๋จ์์์ vectorize๊ฐ ์ด๋ป๊ฒ ์ด๋ฃจ์ด ์ง๋ ์ง ์ดํด๋ณด์.

๋ค์๊ณผ ๊ฐ์ ์์์ด ์๋ค. ์ฌ๊ธฐ์ x๋ n์ฐจ์, W๋ nxn์ฐจ์์ด๋ค. ์์์ ๋ฐฐ์ด backpropagation์ ์ ์ฉํด ๋ณด์.
- ์์ ๋ํด Computation graph๋ฅผ ๊ทธ๋ฆฐ๋ค.

- input ๊ฐ์ ๋ํด ์๋ฐฉํฅ์ผ๋ก ๊ณ์ฐํ์ฌ Computation graph์ ํ๊ธฐํ๋ค.

- Chain rule์ ์ด์ฉํด ์ญ๋ฐฉํฅ์ผ๋ก ๋ณํ๋ฅ ์ ๊ณ์ฐํ๋ค.
๋จผ์ ๊ณ์ฐ์ ์ฝ๊ฒํ๊ธฐ์ํด ๊ฐ ํจ์๋ค์ด ๋ฏธ๋ถ์ ๊ตฌํ์.

๋ค์์ผ๋ก ์์ ๊ตฌํด์ง ๋ฏธ๋ถ์ ๋ฐํ์ผ๋ก Backpropagation์ ์ฉ

- ์ต์ข ์ ์ผ๋ก input์ ๋ํ output์ ๋ณํ๋ฅ ์ ๊ตฌํ๋ค.

scala ๊ณ์ฐ๊ณผ ๋ณ ๋ค๋ฅผ ๊ฒ ์์ด ๊ตฌํ๋ค.
๋จ. vector์ฐ์ฐ์ ํ ๋ ์ฃผ์ํ ์ ์ ๋ฐ๋์ ์ฐ์ฐํ๋ ๋ vector๊ฐ ๋๊ฐ์ ํฌ๊ธฐ ์ธ์ง ํ์ธ ํด์ผํ๋ค.
Modularized implementation
์ง๊ธ๊น์ง ๋ฐฐ์ด Computaion graph์ backpropagation์ ๊ทธ๋ฆฌ๋ ๋ฐฉ๋ฒ์ psuedo code๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.



Neural Networks (์ ๊ฒฝ๋ง)
์ง๊ธ๊น์ง ์ฐ๋ฆฌ๋ Linear score function์ ๋ํด์๋ง ๋ค๋ค๋ค. ์ด์ 2-layer Neural Network์ ๋ํด ์์๋ณด์.

2-layer Neural Network๋ ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ด Linear score fundtion๊ฐ์ ๋ ๋ค๋ฅธ W๋ฅผ ๊ณฑํด ๋ค๋ฅธ score๋ฅผ ๊ตฌํ ๊ฒ์ด๋ค.
Linear score funtion๊ณผ 2-layer Neural Network์์ ์ฐจ์ด๋ ๋ฌด์์ผ๊น?
→ Linear score funtion๋ ์๋์ 10๊ฐ์ class์ค car๊ฐ ๋ฌด์์ ์ํ๋ ์ง ์ฐพ์๋ผ ์ ์๋ค. ํ์ง๋ง ๊ทธ๊ฒ์ด ๋ ธ๋์ฐจ์ธ์ง ๋นจ๊ฐ์ฐจ์ธ์ง๋ ๊ตฌ๋ณํ์ง ๋ชปํ๋ค. ๋ฐ๋ฉด์ 2-layer Neural Network๋ 1๋ฒ W์์ 10 class์ค car๊ฐ ๋ฌด์์ธ์ง ์ฐพ์๋ด๊ณ ๋ ๋์๊ฐ 2๋ฒ W์์ ๋ ธ๋์ฐจ, ๋นจ๊ฐ์ฐจ๋ฑ๋ฑ์ ์ฐจ์ ๋ํ ์ธ๋ถํ๋ ํน์ง์ ์ฐพ์๋ธ๋ค.
์ด๋ฐ 2-layer Neural Network๋ 20์ค ์ ๋๋ก ๊ตฌํํ ์ ์๋ค.

Activation functions

Neural networks: Architectures

Syllabus
Youtube
'Deep Learning > cs231n' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Lecture 6 | Training Neural Networks I (0) | 2022.02.05 |
|---|---|
| Lecture 5 | Convolutional Neural Networks (0) | 2022.01.28 |
| Lecture 3 | Loss Functions and Optimization (0) | 2022.01.15 |
| Lecture 2 | Image Classification (0) | 2022.01.14 |
| Lecture 0 | CS321n (0) | 2022.01.14 |



