기본적인 딥러닝 모델 중 하나인 CNN과 RNN의 개념에 대해 알아보자.
CNN
커널을 입력벡터 상에서 움직여가면서 선형 모델과 합성함수가 적용되는 구조이다.
입력이 3차원인 경우, 즉 여러 채널의 2차원 입력이 주어질 경우, 커널의 채널 수를 입력의 채널 수와 같게 만들어야 한다.
출력의 채널 개수를 O_c개로 만들고 싶다면, 커널을 O_c개 사용하면 된다.
CNN의 역전파
간단한 CNN 구조에서 순전파의 예시 그림이다.
그레디언트가 출력 벡터에 전달된다.
커널의 각 파라미터에 전달되는 그레디언트는 convolution 연산과 같은 형태가 된다.
RNN
시퀀스 데이터의 패턴을 학습하는데 특화된 인공 신경망의 한 종류이다.
이전 시퀀스의 정보들을 잠재변수 H_t에 모아, 출력을 만들고, 다음 순서의 잠재변수 H_(t+1)을 인코딩한다.
역전파를 시간의 역순으로 진행하는 BPTT(Backpropagation Through Time)은 시퀀스의 길이가 길어질수록, 미분 값이 0에 수렴하거나, 무한대로 발산하는 문제가 있다.
이러한 문제를 해결하기 위해 역전파를 중간에 끊어주는 truncated BPTT를 진행한다.
'AI > AI Math' 카테고리의 다른 글
Latex 명령어 정리 (2) | 2023.04.24 |
---|---|
[Math] 조건부 확률과 인과 관계 (0) | 2023.03.12 |
[Math] 다층 퍼셉트론 (0) | 2023.03.12 |
[Math] 경사 하강법 (0) | 2023.03.11 |
[Math] 벡터와 행렬 (2) | 2023.03.11 |