16차시: 딥러닝 학습방법 이해하기
16-1. 딥러닝 학습방법 이해하기
1. 신경망을 수식으로 분해해 보자
지난 시간까지 데이터를 선형모델로 해석하는 방법을 배웠다면 이제부턴 비선형모델인 신경망(neural network)을 배워볼 예정이다.
선형모델의 수식
X처럼 데이터를 모아둔 행렬과, 이 데이터를 다른 벡터 공간으로 보내주는 "가중치 행렬"인 W로 나누어 볼 수 있다.
X와 W, b 가 선형적으로 구성되는 것을 "선형 모델"이라고 한다.
데이터가 바뀌면 결괏값도 바뀌게 되는데, 이때 출력 벡터의 차원은 d에서 p로 바뀌게 된다.
d개의 변수로 p개의 선형모델을 만들어서 p개의 잠재변수를 설명하는 모델을 상상해 볼 수 있다.
pd개의 화살표가 필요하게 되는데 이는 W와 차원이 같다.
즉, W는 화살표들의 값이라고 생각하면 쉽다.
2. 소프트맥스 연산
소프트맥스(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
'취업준비 > 인공지능' 카테고리의 다른 글
[AI Tech] 3주차 15-3차시 프로젝트 6 (0) | 2024.02.03 |
---|---|
[AI Tech] 3주차 16-2차시 Quiz 6 (0) | 2024.02.03 |
[AI Tech] 3주차 15-2차시 경사하강법 연습 (1) | 2024.02.02 |
[AI Tech] 3주차 15-1차시 경사하강법(순한맛) (2) | 2024.02.02 |
[AI Tech] 3주차 14-2차시 행렬이 뭐예요? (1) | 2024.01.30 |