해당 게시글은 LG Aimers Phase1의 수업 내용을 정리한 글로, 모든 내용의 출처는 https://www.lgaimers.ai/ 입니다.
Data의 순서에 따른 특징
순서가 없을 경우 : Non-Sequential Data

순서가 있을 경우 : Sequential Data
시간 정보 포함하여 생성되는 데이터 (NT(측정 시점 수)D) ~ tensor
관측치 하나에 대해 하나의 행렬 나오게 됨

구조

vanilla RNN 구조에서의 정보 흐름
forward path

backpropagation
목적 : 실제로 얼마나 틀렸는지를 확인하여 역방향으로 어떻게 해야 현재 입력-출력쌍을 잘 맞추는 가중치 행렬을 구하기
편미분을 통해 gradient를 구해야 함 ~ 역방향으로 진행 ~ chain 규칙

문제되는 부분임

→ 가 특정 범위를 벗어나게 되면 0이 됨
→ 누적해서 쌓아온 정보가 0이 되어버림 ~ gradient vanishing
→ 이를 해결하기 위한 방법 : LSTM
LSTM (Long Short-Term Memory)

1. 지금까지의 cell state에 저장된 정보 중 얼만큼을 망각할 것인지 결정 : forget gate
1. Forget Gate : 이전 단계의 hidden state와 현 단계의 입력으로부터 0 ~ 1 사이의 값 출력
2. Sigmoid 함수 활용하여 0~1 사이의 값 반환
2. 새로운 정보를 얼마만큼 cell state에 저장할 것인지 결정 : Input Gate
1. Tanh layer를 사용해 새로운 cell state 후보 생성
2. 시점별로 Data에 따라 adaptive하게 보존 정도 정해짐
3. 예전 cell state를 새로운 cell state로 업데이트
1. 예전 cell state를 얼마나 망각할 것인가를 계산한 Forget Gate 결과값과 곱함
2. 새로운 cell state 후보와 얼마나 보존할 것인가를 계산한 Input Gate 결과값을 곱함
3. 두 값을 더하여 새로운 cell state로 결정
4. 출력값을 결정 : Output Gate
1. 이전 hidden state 값과 현재의 입력값을 이용하여 output gate 값 산출
2. ouptut gate 값과 현재 cell state 값을 결합하여 현재의 hidden state 값을 계산
2. GRU

1. LSTM보다 조금 더 단순한 구조
2. 경험에 따르면, LSTM과 GRU의 성능이 크게 차이나지 않음 ~ GRU 적용을 먼저 진행한 뒤 LSTM 적용
3. 별도의 cell state존재하지 않음
4. update gate = forget gate + input gate : 현재 정보를 얼마나 많이 반영
5. reset gate : 과거의 정보를 얼마나 반영
3. Bi-directional RNN
1. 데이터를 가지고 있다 : 과거와 미래의 정보 모두를 가지고 있다
2. 시간의 역방향으로 처리할 수 있음 ~ 대표적 사례 : 번역
3. 순방향 + 역방향 정보 처리 모두 진행

→ 순방향과 역방향 hidden state를 concat하여 활용
Attention
성능이 매우 향상됨
예측에 있어 몇번째 시점이 가장 중요하게 역할을 했는지 답변 가능

→ 각 시점 중 2번째, 3번째가 가장 큰 영향을 미치고 있다고 해석 가능

→ context vector

수업 요약

CNN 설명

주요 구조
AlexNet
구조

→ 초반에는 넓게, 느슨하게 (큰 filter, 큰 stride) / 막판에는 좁게, 촘촘하게 (작은 filter, 작은 stride)
→ 224*224 이미지 입력으로 활용
VGGNet

Time-Series Data에 대한 합성곱 적용
가정
종류
이미지와의 차이점
시계열 데이터는 변수들 사이에 spatial correlation이 존재하지 않음
시간축으로 움직이는 conv는 의미 있으나 변수축으로 움직이는 conv는 의미 없음
시간에 따른 관련성은 있을 수 있으나
변수 간에 관계는 없음
1-D conv는 모든 변수를 한번에 고려하여 시간축에 대해서만 conv 수행
→ 직사각형 형태의 filter 활용

2-d conv는 시간과 변수 두 축을 모두 conv 연산을 통해 탐색하는 방식
CNN을 time-series에 적용하는 방식

Dilated Convolution

요약

Time-Series Transformer : 시계열 데이터를 다루기 위한 special한 Transformer 구조
언어 모델 : 특정한 언어에서 특정 문장, 단어의 나열이 얼마나 자연스러운지 확률을 계산하는 모델
인코딩
입력 : word embedding
positional encoding
multi-head attention
입력된 문서 안에서 단어들이 어떠한 연관관계를 가지고 있는지 해석하는 방법
self-attention
입력 시퀀스의 다른 위치의 단어를 둘러보며 특정 위치의 단어를 더 잘 설명할 수 있게 함
순서

multi-head attention
residual connection + layer normalization
feed-forward
디코딩
시계열 데이터에 대한 Transformer 적용
Time-Series Transformer (TST) : 다변량 시계열 데이터에 최초로 적용한 논문
입력 데이터 변환


→ 네모 안의 부분은 사전학습 이후 freeze하여 update하지 않음 → 마지막 FFN 레이어만 학습을 통해 update요약

개발자로서 배울 점이 많은 글이었습니다. 감사합니다.