데이터 분석 일지

[Deep Learning] Regression 본문

Lecture or Textbook Review/Deep Learning

[Deep Learning] Regression

-ˋˏ ♡ ˎˊ- 2024. 1. 31. 21:55

1. Motivation

 

실생활에서는 선형 데이터보다 비선형 데이터가 더 많이 존재한다. → 비선형 함수를 어떻게 만들 수 있을까?

아래의 식과 같이 선형 함수 두 개를 이어 붙이는 경우에도 선형 함수가 나온다.

$$n = x · W_1 + b_1$$ $$y = n · W_2 + b_2 = x · W_1 · W_2 + b_1 · W_1 + b_2$$

 

2. In Logistic Regression

 

마지막 sigmoid 함수를 통해 매우 작은 값은 0에, 매우 큰 값은 1에 수렴하도록 할 수 있다.

 

3. Adding Non-linearity: 레이어 사이에 비선형 활성 함수 추가

 

4. Network Capacity

 

깊이와 너비를 넓게 할수록 신경망의 표현력은 좋아진다. 보통 너비는 입력보다 출력이 더 작은 형태로 이루어진다. 입력되는 파라미터, 즉 조건은 여러 개이지만 출력되는 값은 더 적은 경우가 많다. 

 

5. Gradient Descent for Deep Neural Networks

 

Same as Linear / Logistic Regression, except DNN has more parameters(= more computation)

 

6. Backpropagation

 

Gradient Descent를 하려면 Loss 값을 학습 파라미터로 미분해야 하는데, 이 계산을 수행할 때 반복적으로 나오는 값은 저장해 두었다가 순차적으로 계산한다. 

 

7. Chain rule

 

미분을 다룬 변수들의 미분의 곱으로 표현할 수 있다.

 

$$\frac{\partial{y}}{\partial{x}} = \frac{\partial{y}}{\partial{h}} · \frac{\partial{h}}{\partial{x}}$$

 

이 chain rule을 사용한다면 심층신경망은 합성 함수로 표현할 수 있다. 

 

8. Backpropagation with Chain rule

 

Chain rule을 사용한다면 Backpropagation을 수행할 때 필요한 기존 미분 값 재활용이 가능하다. 

 

$$\frac{\partial{L}}{\partial{W_3}} = \frac{\partial{L}}{\partial{y}} · \frac{\partial{y}}{\partial{W_3}}$$ $$\frac{\partial{L}}{\partial{W_2}} = \frac{\partial{L}}{\partial{y}} · \frac{\partial{y}}{\partial{h_2}} · \frac{\partial{h_2}}{\partial{W_2}}$$

$$\frac{\partial{L}}{\partial{W_1}} = \frac{\partial{L}}{\partial{y}} · \frac{\partial{y}}{\partial{h_2}} · \frac{\partial{h_2}}{\partial{h_1}} · \frac{\partial{h_1}}{\partial{W_1}}$$

 

각 수식마다 새롭게 계산해야 하는 항은 모두 2개 싹이다. 이와 같이 미분 값을 저장해 둔다면 계산을 더 효율적으로 할 수 있다. 

 

9. Gradient of Sigmoid & TanH

 

sigmoid나 tanh를 미분하면 모두 1보다 작은 값이 나온다. 이는 gradient vanishing 문제로 이어질 수 있다. 

  • Gradient가 1보다 작을 경우: 1보다 작은 값을 거듭제곱한다면 이는 0에 수렴하여 파라미터가 업데이트되지 않는다. 

$$W_1 \leftarrow W_1 - \eta\nabla_{W_1}L(\theta)$$

  • Gradient가 1보다 클 경우: 1보다 큰 값을 거듭제곱하여 곱한다면 이는 무수히 커질 수 있기 때문에 파라미터가 증폭한다. 

 

10. ReLU(Rectified Linear Unit)

 

ReLU는 두 개의 Linear 함수로 이루어져 있고, 이는 gradient vanishing 문제를 어느 정도 해결할 수 있다. 수식은 아래와 같다. 

$$y = ReLU(x) = max(0, x)$$

 

11. Leaky ReLU

 

Leaky ReLU는 기울기를 조절할 수 있다. ReLU는 x가 0보다 작을 경우에 이전 레이어를 학습할 수 없다는 문제가 있었는데 이를 개선한 것이 Leaky ReLU이다. 수식은 아래와 같다. 

$$y = Leaky ReLU_\alpha (x) = max( \alpha · x, x)$$ $$where 0 \leq  \alpha <1$$

 

ReLU Function & Leaky ReLU Function