안녕하세요. CNN에 대해서는 최근에 글을 쓴 적이 있는데요.
[ML] 간단한 합성곱 신경망의 개념과 AlexNet
안녕하세요! 합성곱 신경망(CNN)에 대해 공부해보겠습니다.by 임커밋 임커밋님의 영상을 보고 기본적인 개념은 쉽게 잡을 수가 있었어요.아예 처음이면 위 영상을 보는 것을 추천합니다. CNN은 입
jimmin.tistory.com
그래서 CNN에 대해서는 처음 보는 것만 정리하고 RNN 위주로 정리해보겠습니다.
아래 모든 내용은 부스트캠프 AI Tech 프리코스에서 가져왔습니다.
Convolution 연산의 역전파

역전파를 계산할 때도 convolution 연산이 나오게 되는데, 위 식을 통해 이해할 수 있습니다.
입력층이 5x5이고, 3x3 사이즈 커널을 통해 연산을 하면
3x3 사이즈의 출력이 나오게 됩니다.
이 3x3 출력층으로 그래디언트가 넘어온다면 연산을 할 때 사용한 커널을 그대로 곱해주면 역전파 연산이 완료됩니다.
참 신기하네요.
RNN과 조건부확률
RNN을 왜 사용해야 되는지부터 생각해봅니다.
데이터가 시퀀스 데이터인 경우가 많습니다. 시계열 데이터 같은 것도 포함이고요.
음성, 문자열, 주가 등등이 그렇습니다.
이런 데이터는 독립동등분포 가정을 위배하기 쉽기 때문에 과거의 정보에 손실이 발생하면 데이터의 확률분포가 바뀌어버리게 됩니다.
이런 순차적으로 들어오는 데이터를 어떻게 처리할 지 생각해보겠습니다.
그 방법으로는 조건부확률을 이용할 수 있습니다.

Xt까지의 확률은 Xt-1까지의 확률에 조건부확률을 곱한 것이 되고,
이걸 계속해서 곱하게 되면 아래와 같은 형태가 됩니다.
즉 이전까지의 데이터를 조건으로 하여 다음 데이터를 예측할 수 있게 됩니다.
다만 이렇게 확률들의 곱으로 표현하게 될 때, 데이터의 길이가 전부 다르게 됩니다.
즉 가변적인 데이터를 읽을 수 있는 모델이 필요합니다.
고정된 길이 τ 만큼의 데이터 시퀀스만 사용하게 된다면 AR(τ) , 자기회귀모델이라고 부릅니다.
반대로 직전 정보를 제외한 나머지 정보들을 활용하는 모델은 잠재 자기회귀모델이라고 부릅니다.
RNN
RNN 모형은 기본적으로 MLP와 유사한 모양인데, 여기에 과거의 정보를 활용할 수 있게 한 형태입니다.
잠재변수를 복제해서 다음 순서의 잠재변수를 인코딩하는 데에 사용합니다.
$$ H_{t} = \sigma (X_{t}W^{(1)} + b^{(1)})$$
활성화함수를 거쳐 만들어진 잠재변수가 원래 이런 형태였다면
$$ H_{T} = \sigma (X_{t}W^{(1)} + H_{t-1}W_{H}^{(1)}+ b^{(1)})$$
이렇게 전 단계의 잠재변수를 활용하는 형태가 됩니다.

역전파는 이 연결그래프를 역순서로 돌아가면서 계산하게 됩니다.
이를 BPTT라고 부릅니다.
시퀀스 길이가 점점 길어질수록 항은 불안정해지기 쉽습니다. 기울기 소실과 같은 문제가 일어날 수도 있습니다.
이런 것을 해결하기 위해서 시퀀스 길이를 끊어주는 것이 필요합니다.
이를 truncated BPTT라고 합니다.
긴 시퀀스를 처리하기 위해서는 요즘에는 GRU나 LSTM 같은 역전파 모델을 사용합니다.
'CS > AI' 카테고리의 다른 글
| [PyTorch] 모델 불러오기 / PyTorch 모니터링 (0) | 2025.07.10 |
|---|---|
| [ML] AutoGrad, Optimizer, 데이터셋과 데이터 로더 (0) | 2025.07.08 |
| [부스트캠프 AI Tech 프리코스] 경사하강법과 딥러닝 학습 방법 (0) | 2025.06.24 |
| [ML, DL] 간단한 합성곱 신경망의 개념과 AlexNet (0) | 2025.06.20 |
| [ML] SGD, Adam, Dropout (0) | 2025.06.15 |
