※ 본 내용은 stanford에서 제공하는 cs231n 강의, 강의자료를 바탕으로 작성하였습니다.

 

Lecture 4 에서는 역전파(Backpropagation) 과 Neural Network에 대해 다루고 있다. 

<Backpropagation>

- Backpropgation이란?

Backpropagation이란, 계산 그래프와 연쇄 법칙(chain rule)을 통해 미분을 간단하게 하는 방법이다.

계산 그래프

먼저 간단한 계산 그래프는 위와 같다.

f = (x+y)z의 계산과정에서, 각 연산을 node 단위로 나눠 표현할 수 있다.

 

이렇게 하면 각 node 별 미분 값(local 미분 값)은 간단하게 구할 수 있는데, 이에 연쇄법칙까지 적용하면 각 변수에 대한 미분을 쉽게 구할 수 있다는 것이 역전파의 아이디어이다. 

(물론 f = (x+y)z 는 이러한 단계를 거치지 않아도 쉽게 미분할 수 있지만, 복잡한 경우 역전파를 이용하면 훨씬 간단하게 계산할 수 있다.)

 

역전파 적용

빨간색으로 표현된 값이 역전파를 통해 계산된 미분값이다. 

순전파와 반대의 순서대로 1에서 부터 시작하여 local 미분값과 역전파를 통해 전달되는 값을 곱하면 전체 결과에 대한 해당 노드의 미분값을 계산할 수 있다.

 

역전파 예시2

조금 더 복잡한 함수에서 역전파를 통해 미분을 수행한 예시이다.

간단한 미분과 곱셈을 계속해서 수행하면 복잡한 미분을 수행할 수 있다.

 

- Backpropagation for Vectorized Operations

input과 output이 vector인 경우에도 역시 backpropagation을 적용할 수 있다.

이때 input과 미분의 shape는 동일하다.

 

행렬곱의 결과의 L2 norm을 구하는 과정에 대한 미분 과정을 통해, 그 예시를 살펴보겠다. 

2x2 행렬 W와 크기가 2인 vector x의 내적결과

에 대한 L2 norm을 구하는 계산 그래프이다.

 

먼저 L2 노드에 대한 미분 값을 살펴보면, 

$ \frac{\partial f}{\partial q_i} = 2q_i $ 라는 것은 $ f(q) = q_1^2 + ... + q_n^2$ 이라는 점을 생각하면 쉽게 이해할 수 있고, 

위와 같은 벡터의 미분을 나타낼 때  $ \nabla_qf $ 와 같이 나타낸다고 한다. (역삼각형은 '나블라'라고 한다.)

$ 2q $와 역전파를 통해 전달되는 값 1.00을 곱해주면 미분값이 된다. 

 

 

다음으로 $ \frac{\partial f}{\partial W} $를 구하는 과정이다.

$ \frac{\partial q_k}{\partial W_(i, j) }$ 표현이 조금 복잡한데,

우선 $ 1_{k = i}$는 k == i 인 경우 1이라는 것을 의미하고, 결국 아래 결과를 풀어쓴 것이다.

$ q_1 = W_{(1,1)}x_1 + ... + W_{(1, n)}x_n$ 이라는 점을 생각해보면 쉽게 미분 결과에 대해 이해할 수 있을 것이다.

마지막으로 역전파를 통해 전달된 값과 local 미분값을 곱해주면 $ \frac{\partial f}{\partial W}$를 구할 수 있다.

 

q에 대한 미분도 동일한 방법으로 계산할 수 있다.

 

<Neural Network>

앞서 하나의 weight로 구현한 linear classifier를 다뤘는데, Neural Network에서는 Weigth, Layer를 여러 층 쌓는다. 

템플렛을 거친 결과에 대해 또 새로운 템플렛과 비교해보는 과정이라 생각해보면 된다. 

예를 들어 첫 템플릿($ W_1$)에서는 모양에 대해 비교하고, 두 번째 템플렛($ W_2$)에서는 방향에 대해 비교해보는 등의 방식으로 더 정교하게 예측이 가능해질 것이다. 

 

lecture4에서는 자세한 개념에 대해서는 다루지 않았다. 

 

이러한 neural network의 구조는 뉴런에서 영감을 얻었다고 한다.

각각의 뉴런은 impulses를 전달받고 해당 수치들에 대해 어떠한 연산을 수행한 결과(ex)NN에서 Weight를 곱하는 것)가 임계점 이상이면 다음 뉴런으로 신호를 전달하고, 그렇지 않으면 신호를 전달하지 않는다고 한다. 

 

그러나 엄밀히는 뉴런과 NN이 정확히 동일하지는 않다고 한다.

우선 뉴런에 여러 타입이 있고, 처리하는 연산이 Linear하게 Weight를 곱하는 것과 다르다는 등의 이유가 나와있다.

 

뉴런에서 임계점을 기준으로 신호를 전달하고 말지를 결정하는 것처럼, NN에서도 연산 결과를 다음 층으로 어떻게 전달할지 activation function을 통해 결정한다. 

위 그림처럼 다양한 종류가 있고 앞으로의 강의에서 계속해서 살펴볼 것이라고 한다. 

 

'Computer Vision > cs231n' 카테고리의 다른 글

[cs231n] Assignment1-Q5  (0) 2022.01.01
[Assignment1 - Q4] 2-layer NN  (0) 2022.01.01
[Assignment1 - Q3] Softmax  (0) 2021.12.30
[Assignment1 - Q2] SVM  (0) 2021.12.30
[Lec 3] Loss Functions and Optimization  (0) 2021.12.30

+ Recent posts