[강의노트] KDT_day13_260122

CNN(합성곱 신경망), 전이학습, 시계열 분석(RNN, LSTM)

by 아르떼

CNN(Convolutional Neural Network, 합성곱 신경망)

이미지와 같은 "격자(grid) 데이터"에 특화된 신경망.

일반적인 신경망은 이미지를 1차원으로 펼쳐서 처리하지만,

CNN은 "이미지의 공간 구조(가로, 세로, 위치관계)를 그대로 활용.


이미지 데이터에 커널을 적용시켜 dot product를 수행.

데이터의 크기가 줄어든다. 컨볼루션 층을 여러 개 적용하는 것을

CNN(합성곱 신경망)이라고 부른다.


맥스 풀링 (Max Pooling)

특성맵(feature map)에서 가장 큰 값만 뽑아 크기를 줄이는 연산

차원 축소로 연산량이 감소

중요한 특징만 유지

작은 위치 변화에 둔감

"가장 강한 특징만 남기고 공간 크기를 줄인다."


드롭아웃 (Dropout)

학습 중에 뉴런 일부를 무작위로 꺼버리는 기법

과적합 방지

뉴런들이 서로 의존하지 않도록 함

일종의 앙상블 효과

드롭아웃은 학습할 때만 적용하고 테스트/추론 시에는 꺼진다.

"뉴런을 일부러 쉬게 해서 모델을 튼튼하게 만든다"


플래튼 (Flatten)

CNN의 2D/3D 출력을 1D 벡터로 펴는 층

Dense layers는 입력을 1차원 벡터로 받기 때문

학습되는 파라미터는 없고 단순히 모양만 바꾼다.

"이미지 형태를 숫자 줄로 펼친다."




전이학습

이미 한 작업에서 잘 학습된 모델의 지식(가중치)을 가져와서 새로운 작업에 재활용하는 방법


전이학습의 대표적 방식

1. Feature Extraction (특징 추출)

- 기존 모델의 가중치를 고정

- 마지막 분류기만 새로 학습

2. Fine-Tuning (미세 조정)

일부 또는 전체 층을 다시 학습

기존 가중치를 초기값으로 사용


"전이학습은 사전 학습된 모델의 일반적인 특징 표현을 재사용해, 적은 데이터로도 빠르고 안정적으로 새로운 문제를 해결하는 기법입니다."




시계열 분석

시계열 분석(Time Series Analysis)은 시간의 흐름에 따라 순서대로 수집된 데이터를 분석해서 패턴을 이해하고, 미래를 예측하는 방법이다.


시계열 데이터 -> 시간 순서가 핵심인 데이터

예시) 일별 생산량, 시간별 설비 온도, 월별 불량률, 분 단위 센서 신호, 주가, 환율, 전력 사용량

행의 순서를 바꾸면 의미가 깨짐, 과거가 미래에 영향을 줌

인간의 언어, 즉 자연어도 시계열 데이터로 볼 수 있다.


RNN(Recurrent Neural Network) 순환신경망

RNN은 이전 시점의 출력을 다음 시점으로 전달한다.


RNN이 시계열에 강한 이유

- 과거 데이터를 "압축된 기억"으로 유지

- 시점 간 의존성 학습 가능

- 입력 길이가 가변적이어도 처리 가능


RNN의 치명적인 한계 = 장기 의존성 문제

오래된 과거 정보가 점점 희미해짐

가중치가 1보다 작을 경우 역전파 시 gradinet가 계속 곱해져서 0에 가까워짐.


이를 해결하기 위해 등장한 LSTM

LSTM (Long Short-Term Memory)

기억을 선택적으로 저장/삭제

Gate 구조:

- Forget gate (잊을까?)

- Input gate (기억할까?)

- Output gate (꺼낼까?)

선택적 기억 - 중요한 것은 장기적으로 기억하고, 중요하지 않은 것은 삭제

LSTM은 "무엇을 기억하고, 무엇을 잊을지 스스로 결정하는 장기 시계열 전용 신경망"


RNN 모두 LSTM 함수 형태로 불러와서 일정한 입력값만 넣어주면 사용할 수 있다.

하지만 정확하게 이해해야 어떤 입력값이 들어가야 더 좋은 결과를 도출하는지 알 수 있음.


BPTT(Backpropagation Through Time)

RNN을 시간축으로 펼쳐서 일반적인 역전파(Backpropagation)를 적용하는 방법

마지막 시점부터 첫 시점까지 gradient를 시간 역순으로 전달

작가의 이전글[강의노트] KDT_day12_260121