본문 바로가기

취업준비/인공지능

[AI Tech] 3주차 16-1차시 딥러닝 학습방법 이해하기

16차시: 딥러닝 학습방법 이해하기

16-1. 딥러닝 학습방법 이해하기

1. 신경망을 수식으로 분해해 보자

지난 시간까지 데이터를 선형모델로 해석하는 방법을 배웠다면 이제부턴 비선형모델인 신경망(neural network)을 배워볼 예정이다.

비선형모델 구조

선형모델의 수식

선형모델의 수식

X처럼 데이터를 모아둔 행렬과, 이 데이터를 다른 벡터 공간으로 보내주는 "가중치 행렬"인 W로 나누어 볼 수 있다.

X와 W, b 가 선형적으로 구성되는 것을 "선형 모델"이라고 한다.

데이터가 바뀌면 결괏값도 바뀌게 되는데, 이때 출력 벡터의 차원은 d에서 p로 바뀌게 된다.

d개의 변수로 p개의 선형모델을 만들어서 p개의 잠재변수를 설명하는 모델을 상상해 볼 수 있다.

pd개의 화살표가 필요하게 되는데 이는 W와 차원이 같다.

즉, W는 화살표들의 값이라고 생각하면 쉽다.

softmax

 

2. 소프트맥스 연산

소프트맥스(softmax) 함수는 모델의 출력을 확률로 해석할 수 있게 변환해 주는 "연산"이다.

분류 문제를 풀 때 선형모델과 소프트맥스 함수를 결합하여 예측한다.

Softmax 연산

오버플로우를 방지하기 위해 NumPy Max함수를 벡터에서 일단 빼준 다음 Exponential을 적용하게 된다.

또한, 기존 softmax와 근사하게 계산할 수 있다.

다만, 추론 시에는 softmax를 사용하지 않는다.

Linear Regression이 아닌 분류 문제의 경우, softmax를 사용하여 해결할 수 있다.

활성 함수는 오로지 해당 주소의 출력값만으로 연산한다.

신경망은 선형모델과 활성함수(activation function)를 합성한 함수이다.

 

3. 활성함수가 뭐예요?

정의

R 위에 정의된 비선형(nonlinear) 함수로서 딥러닝에서 매우 중요한 개념이다.

특징

- 활성함수를 쓰지 않으면 딥러닝은 선형모형과 차이가 없다.

- 시그모이드(sigmoid) 함수나 tanh 함수는 전통적으로 많이 쓰이던 활성함수지만 딥러닝에선 ReLU 함수를 많이 쓰고 있다.

2-layer라고 부르는 이유는 가중치 행렬이 2개 등장하기 때문이다.

다층(multi-layer) 퍼셉트론(MLP)은 신경망이 여러 층 합성된 함수이다.

Forward propagation: 입력이 왔을 때 출력물을 내뱉는 연산

 

4. 왜 층을 여러 개를 쌓나요?

이론적으로는 2층 신경망으로도 임의의 연속함수를 근사할 수 있다.

그러나 층이 깊을수록 목적함수를 근사하는데 필요한 뉴런(노드)의 숫자가 훨씬 빨리 줄어들어 좀 더 효율적으로 학습이 가능하다.

다만, 층이 깊다고 해서 최적화가 더 쉬운 것은 아니다.

 

5. 딥러닝 학습원리: 역전파 알고리즘

딥러닝은 역전파(backpropagation) 알고리즘을 이용하여 각 층에 사용된 패러미터 {W, b}를 학습한다.

저층의 Gradient를 계산할 때 위층의 Gradient가 필요하다.

각 층 패러미터의 그레디언트 벡터는 위층부터 역순으로 계산하게 된다.

 

6. 역전파 알고리즘 원리 이해하기

합성함수 미분법인 연쇄법칙(chain-rule) 기반 지동미분(auto-differentiation)을 사용한다.

딥러닝에서 각 뉴런의 값을 Tensor이라고 하는데,

이들이 작동하려면 Tensor가 메모리에 올라가 있어야 한다.

 

7. 예제: 2층 신경망

 

 

 

 

 

 

 

© NAVER Connect Foundation. All Rights Reserved