CNN · RNN ·
생성모델
CNN과 RNN의 구조, 어텐션과 잔차 연결, 오토인코더와 GAN의 학습 방법을 살펴본다. 데이터의 특성에 따라 모델 구조가 어떻게 달라지는지 비교한다.
시각 정보 처리와 CNN의 발전
허벨과 위젤은 고양이의 시각 피질에서 특정 방향과 위치의 선분에 반응하는 뉴런을 관찰했다. 이 연구는 시각 정보가 계층적으로 처리된다는 설명에 기여했다.
후쿠시마의 네오코그니트론(1980)과 르쿤 등의 LeNet-5(1998)는 이러한 계층적 처리와 지역적 연결을 활용한 대표적인 신경망이다. LeNet-5는 손글씨 숫자 인식에 사용되었다.
지역적 연결, 가중치 공유, 순환 구조 등 데이터의 특성에 맞춘 설계가 파라미터 수와 학습에 미치는 영향을 확인한다.
출처 Hubel & Wiesel, "Receptive fields, binocular interaction and functional architecture in the cat's visual cortex", J. Physiol. 160, 1962: ncbi.nlm.nih.gov
CNN의 구조와 발전
CNN은 지역적 연결과 가중치 공유를 이용해 이미지의 패턴을 학습한다.
CNN의 특징 추출과 분류
기본적인 CNN 분류 모델은 합성곱과 풀링으로 특징을 추출하고, 추출한 특징으로 클래스를 예측한다.
CNN은 이미지의 가까운 위치에 유용한 패턴이 있고, 같은 패턴이 여러 위치에 나타날 수 있다는 성질을 활용한다. 작은 커널로 주변 영역을 처리하고, 동일한 커널을 여러 위치에 적용한다. 이러한 설계의 효과는 데이터와 과제에 따라 달라진다.
생각해 볼 질문: 허벨·위젤의 단순 세포/복합 세포는 CNN의 어느 구성 요소에 각각 대응하는가?
출처 Fukushima, "Neocognitron", Biological Cybernetics 36, 1980: springer.com · LeCun 외, "Gradient-Based Learning Applied to Document Recognition", Proc. IEEE, 1998: ieeexplore.ieee.org
합성곱 연산
CNN은 학습 과정에서 커널의 가중치를 조정해 과제에 필요한 특징을 추출한다.
커널과 특성맵
컨벌루션은 주변 화소값들에 가중치(커널)를 곱해 더한 값을 새 화소로 삼는 연산이다. 커널이 한 칸씩 미끄러지며 만든 출력이 특성맵(feature map)이다.
필터를 갈아 끼우며 특성맵 보기
실습 목표: 3×3 필터의 종류에 따라 강조되는 이미지 특징이 달라지는지 확인한다.
실습 방법: 라플라시안, 소벨 세로, 소벨 가로 필터를 차례로 적용한다. 확인할 내용: 각 필터가 강조하는 윤곽과 경계 방향을 비교한다. CNN에서는 커널 값을 학습으로 조정한다.
전통적인 영상처리에서는 라플라시안과 같은 필터를 미리 설계해 특징을 추출했다. CNN은 필터의 가중치를 데이터에서 학습한다. 초기 층에서는 경계나 색 대비와 관련된 특징이, 깊은 층에서는 더 복잡한 특징이 나타날 수 있다. 실습에서 특성맵을 시각화해 확인한다.
생각해 볼 질문: 3×3 커널 두 층을 겹치면 한 화소가 "보는" 범위(수용 영역)는 몇×몇이 되는가? 5×5 한 층과 비교하면 파라미터는?
특성맵 크기와 풀링
입력 크기, 커널, 패딩, 스트라이드로 출력 크기를 계산하고 풀링의 역할을 확인한다.
합성곱 출력 크기 계산
커널이 미끄러질 수 있는 횟수를 세면 공식이 나온다. 시작 위치 1곳 + 남은 (N−K+2P)칸을 S칸씩 이동: 그래서 나누고 버림한 뒤 1을 더한다.
예1: N=5, K=3, S=1, P=0 → ⌊2/1⌋+1 = 3 예2: 패딩 P=1 추가 → ⌊4/1⌋+1 = 5 (입력 크기 유지)
기출: N=32, K=4, S=2, P=2 → ⌊32/2⌋+1 = 17 → 평균풀링 2×2, S=2 → ⌊15/2⌋+1 = 8
특성맵 크기 계산기: 컨벌루션 + 풀링 연쇄
실습 목표: 입력 크기, 커널, 패딩, 스트라이드를 이용해 합성곱과 풀링의 출력 크기를 계산한다.
실습 방법: 기본 설정에서 크기가 32, 17, 8로 계산되는지 확인한 뒤 패딩 P와 스트라이드 S를 바꾼다. 확인할 내용: 각 설정이 출력 크기에 미치는 영향과 나눗셈 결과를 내림하는 경우를 확인한다.
다채널·다커널로 확장해도 공식은 그대로다. 입력이 RGB 3채널이면 커널도 3×3×3으로 두꺼워져 결과는 여전히 한 장의 특성맵이고, 커널을 128개 두면 특성맵이 128장 나온다: 출력의 "가로세로"는 공식이, "장수"는 커널 개수가 정한다. 시험 계산에서 채널 수를 가로세로 크기에 섞는 실수가 흔하니 구분해 둘 것.
생각해 볼 질문: 어떤 N, K, S 조합에서 커널이 입력의 오른쪽 끝을 정확히 못 밟고 남는 픽셀이 생기는가? floor가 그 픽셀들을 어떻게 처리하는가?
풀링의 역할
풀링은 각 영역의 최대값이나 평균값을 이용해 특성맵의 크기를 줄인다. 계산량을 줄일 수 있지만 세부 위치 정보도 일부 사라진다.
- 계산이 빨라진다: 다음 층이 처리할 데이터가 4분의 1로 준다.
- 과적합이 줄어든다: 매개변수와 표현의 자유도가 함께 줄어든다.
- 이동에 둔감해진다: 물체가 조금 움직여도 결과가 유지된다.
풀링으로 줄어든 위치 정보는 물체 검출이나 영상 분할처럼 위치가 중요한 과제에 영향을 줄 수 있다. 이러한 과제에서는 고해상도 특징이나 건너뛰기 연결 등을 활용한다. 스트라이드가 있는 합성곱으로 크기를 줄이는 방법도 사용한다.
생각해 볼 질문: 최대 풀링과 평균 풀링은 각각 어떤 특징을 살리고 죽이는가? 밝은 점 하나가 중요한 과제라면?
RNN, 어텐션, 잔차 연결
RNN의 순차 처리와 장기 의존 문제를 살펴보고, 어텐션과 잔차 연결의 역할을 비교한다.
RNN의 순환 구조
순환신경망(RNN)은 출력의 일부를 다음 시각의 자기 입력으로 되돌린다. 현재 입력에 이전 정보가 쌓이며 갱신되므로, 순서가 있는 데이터(문장, 음성, 시계열)에 맞는 구조다.
학습은 이 펼친 그래프 위의 역전파, 즉 BPTT(BackPropagation Through Time)다. 시계열이 길수록 그래프가 길어져 계산 자원이 비례해 늘고 기울기도 불안정해지므로, 실무에서는 적당한 길이로 끊어 역전파하는 Truncated-BPTT를 쓴다: "어디서 끊는가"가 배울 수 있는 의존 거리의 상한이 된다.
생각해 볼 질문: "나는 프랑스에서 자랐다. … 그래서 ___어를 유창하게 한다"의 빈칸을 맞히려면 몇 시각 전의 정보가 필요한가? 이 문장이 다음 카드의 예고다.
RNN의 장기 의존과 기울기 문제
시간 방향으로 역전파할 때 미분값이 반복해서 곱해진다. 이 과정에서 기울기 소실이나 폭발이 발생할 수 있다.
RNN의 장기 의존 문제는 긴 계산 경로에서 기울기를 전달하기 어려운 문제와 관련된다. LSTM은 게이트를 이용해 이를 완화한다. 어텐션은 필요한 위치의 정보를 직접 참조하며, 트랜스포머는 순환 없이 어텐션을 사용한다.
생각해 볼 질문: 클리핑은 폭발에는 통하는데 소실에는 왜 못 쓰는가? ("작으면 키우면 되지 않나?"가 왜 안 되는지 생각해 보자)
인코더-디코더와 어텐션
초기 RNN 인코더-디코더는 입력 문장을 고정 크기 벡터로 표현한 뒤 디코더가 출력 문장을 생성하는 구조였다. 긴 입력의 정보를 하나의 벡터에 담아야 한다는 제약이 있었다.
비슷한 발상이 거의 동시에 여러 곳에서 나왔다. 그레이브스의 필기 생성 모델(2013년 8월)이 입력 글자열 위를 미끄러지는 소프트 윈도우를 썼고, 바다나우 등의 번역 어텐션(2014년 9월)에 이어 뉴럴 튜링 머신(2014년 10월)이 내용 기반으로 메모리를 읽었으며, 메모리 네트워크(2014년 10월)와 그 종단간 버전(2015년 3월)이 질의와 메모리의 내적에 소프트맥스를 씌워 가중합을 구했다. 인코더-디코더 자체도 Kalchbrenner와 Blunsom(2013)이 먼저다. "어텐션의 원조"를 논문 한 편으로 특정하기 어려운 이유다.
어텐션은 관련도 점수를 가중치로 변환한 뒤 값 벡터를 가중합한다. M2의 셀프 어텐션에서는 질의·키·값을 같은 입력으로부터 구성한다. 트랜스포머는 이 연산을 잔차 연결, 피드포워드 층, 층 정규화와 함께 사용한다.
생각해 볼 질문: α를 원문 단어 × 번역 단어의 표로 그리면 "어느 단어가 어느 단어에 대응하는가"가 보인다. 한국어→영어처럼 어순이 뒤집히는 구간에서 이 표는 어떤 모양이 될까?
출처 Sutskever 외, "Sequence to Sequence Learning with Neural Networks", NeurIPS 2014: arxiv.org · Cho 외, "Learning Phrase Representations using RNN Encoder–Decoder", EMNLP 2014: arxiv.org · Bahdanau, Cho & Bengio, "Neural Machine Translation by Jointly Learning to Align and Translate", ICLR 2015 (arXiv 2014): arxiv.org · 길이별 분석: Cho 외, "On the Properties of Neural Machine Translation", 2014: arxiv.org
어텐션과 잔차 연결
어텐션만 반복 적용하는 단순한 구조에서는 토큰 표현이 서로 비슷해질 수 있다. 잔차 연결은 입력 표현에 어텐션의 출력을 더해 원래 정보가 다음 층으로 전달되도록 한다.
어텐션만 쌓기 vs 잔차와 함께 쌓기: 토큰 6개의 운명
실습 목표: 단순화한 어텐션 모형에서 잔차 연결의 유무에 따라 토큰 표현이 어떻게 변하는지 비교한다. 점 하나가 토큰 하나의 2차원 표현이다. 왼쪽은 x ← A·x, 오른쪽은 x ← x + A·x로 갱신한다. 한 층의 가중합과 잔차 덧셈을 직접 계산해 본다.
실습 방법: 층수 L을 0부터 늘리고 [다시 생성]으로 초기값을 바꾼다. 확인할 내용: 두 구조에서 토큰 간 거리와 분포가 어떻게 변하는지 비교한다. 회색 고리는 초기 위치이며, 두 그림은 무게중심을 원점으로 맞춘다. 결과는 이 실습의 단순화된 모형에 대한 관찰이다.
Dong 등(2021)은 잔차 연결과 MLP가 없는 순수 셀프 어텐션의 표현이 특정 조건에서 랭크 1로 수렴하는 현상을 분석했다. 실습은 무작위 가중치와 토큰 6개를 사용해 이러한 현상과 잔차 연결의 효과를 비교한다. 실제 트랜스포머에는 추가 연산과 학습된 파라미터가 포함된다.
이 조합의 원형은 트랜스포머보다 2년 앞선 종단간 메모리 네트워크(Sukhbaatar 등, 2015)에서 볼 수 있다. 질의 u가 메모리를 소프트맥스로 조회해 o를 얻고, 다음 홉의 질의를 u + o로 갱신하며 홉을 층처럼 쌓는다: 조회(어텐션)와 덧셈 갱신(잔차)의 반복이고, 순서 정보를 위한 위치 인코딩까지 있다. 트랜스포머 논문도 이 모델을 "순차 순환 대신 순환적 어텐션에 기반한 구조"로 직접 인용한다. 그래서 트랜스포머의 기여는 어텐션의 발명이 아니라, 셀프 어텐션·잔차·FFN·층 정규화를 하나의 블록으로 정형화해 순환 없이 반복한 설계 결정으로 보는 편이 정확하다.
생각해 볼 질문: 오른쪽 그림에는 안 보이는 것이 하나 있다. 잔차를 더하면 모든 토큰이 공통으로 갖는 성분(무게중심)이 층마다 커진다. 실제 트랜스포머는 이것을 무엇으로 다스리는가? (힌트: M6 보조 자료의 층 정규화)
출처 Dong, Cordonnier & Loukas, "Attention is Not All You Need: Pure Attention Loses Rank Doubly Exponentially with Depth", ICML 2021: arxiv.org · Sukhbaatar 외, "End-To-End Memory Networks", NeurIPS 2015: arxiv.org · Vaswani 외, "Attention Is All You Need", NeurIPS 2017: arxiv.org · He 외, "Deep Residual Learning for Image Recognition", CVPR 2016 (arXiv 2015): arxiv.org
오토인코더와 GAN
오토인코더의 표현 학습과 복원, GAN의 데이터 생성 과정을 비교한다.
판별 모델과 생성 모델
생성 모델은 데이터의 분포를 학습해 새로운 샘플을 만든다. 조건부 생성 모델은 레이블이나 텍스트와 같은 추가 정보를 사용할 수도 있다.
생성 모델은 학습한 데이터의 패턴을 바탕으로 출력을 만든다. 잠재변수나 샘플링 과정에 무작위성을 사용하면 같은 조건에서도 서로 다른 샘플을 생성할 수 있다.
VAE, GAN, 확산 모델은 데이터를 생성하는 서로 다른 학습 방법이다. 일반적인 오토인코더의 복원 학습과는 구분해야 한다. LLM도 앞의 문맥에 따른 다음 토큰의 분포를 이용하는 생성 모델이다.
생각해 볼 질문: 같은 데이터로 판별 모델과 생성 모델을 다 만들 수 있다. 스팸 메일 데이터라면 각각 무엇을 할 수 있게 되는가?
오토인코더의 표현 학습과 복원
오토인코더는 입력을 잠재표현으로 변환한 뒤 원래 입력을 복원하도록 학습한다. 잠재표현의 차원이나 학습 조건에 제약을 두어 유용한 특징을 학습하게 한다.
- 활용: 특징 학습, 차원 축소, 표현 학습 등에 사용한다.
- 잡음 제거: 잡음이 섞인 입력에서 깨끗한 원본을 복원하도록 학습할 수 있다.
- 생성: 학습 후 잠재공간의 임의 좌표를 디코더에 넣으면 새로운 샘플이 나온다: 1장(M2)의 인코더·디코더 그림이 바로 이 구조였다.
픽셀 단위 평균제곱오차를 최소화하는 복원은 여러 가능한 출력의 평균에 가까워져 흐릿한 결과를 낼 수 있다. 생성 모델은 학습 목적과 출력 방식에 따라 선명도, 다양성, 학습 안정성이 달라진다.
생각해 볼 질문: 병목을 아주 넓게 (입력 차원과 같게) 만들면 오토인코더는 무엇을 배우게 되는가? 왜 그것이 쓸모없는가?
GAN의 생성자와 판별자
생성자는 데이터를 만들고, 판별자는 실제 데이터와 생성된 데이터를 구분한다. 두 모델을 번갈아 학습하며 실제 데이터와 비슷한 샘플을 생성하도록 한다.
GAN은 학습 불안정성, 모드 붕괴, 평가의 어려움 등을 고려해야 한다. 확산 모델도 생성 품질과 다양성 측면의 장점이 있지만 생성 시간과 계산 비용을 함께 검토해야 한다.
생각해 볼 질문: 모드 붕괴를 학생-채점자 관계에 비유하면 어떤 상황인가? 채점 기준(판별자)을 어떻게 바꿔야 막을 수 있는가?
출처 Goodfellow 외, "Generative Adversarial Networks", NeurIPS 27, 2014: arxiv.org
MLP, CNN, ViT 비교 실습
실습 노트북(CNN실습)은 CIFAR-10 이미지 분류에 MLP·CNN·트랜스포머(ViT) 세 구조를 나란히 붙여, 파라미터 수·정확도·추론 시간을 직접 비교한다.
CNN 블록의 최소 형태 (PyTorch)
이 장에서 배운 요소가 코드에서 어디에 있는지 짚는 것이 목적이다. 전체 학습·시각화는 실습 노트북에서.
확인할 내용: Conv2d(3, 32, …)에서 입력 채널 수와 출력 채널 수를 구분하고, 특성맵 크기 32, 32, 16의 계산 과정을 확인한다.
요약 정리
모델별 구조와 학습 방법, 데이터 처리 방식의 차이를 정리한다.
핵심 내용
- CNN은 지역적 연결과 가중치 공유를 사용한다. 이미지의 공간적 특성을 활용하며 파라미터 수를 줄일 수 있다.
- RNN과 트랜스포머는 시퀀스를 처리하는 방식이 다르다. RNN은 은닉상태를 순차적으로 갱신한다. 트랜스포머는 어텐션, 잔차 연결, 피드포워드 층 등을 이용한다.
- 생성 모델은 학습한 분포를 이용해 새로운 샘플을 만든다. VAE, GAN, 확산 모델은 구조와 학습 목표가 다르다.
다음 장에서는 행동의 결과로 얻는 보상을 이용하는 강화학습을 다룬다. MDP와 가치함수, LLM 정렬, PPO·DPO·GRPO의 차이를 살펴본다.
참고문헌
공개 원문 우선. 링크는 2026년 8월 확인 기준.
1차 문헌
- Hubel, D. H., & Wiesel, T. N. (1962). Receptive Fields, Binocular Interaction and Functional Architecture in the Cat's Visual Cortex. Journal of Physiology, 160, 106–154. ncbi.nlm.nih.gov
- Fukushima, K. (1980). Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern Recognition Unaffected by Shift in Position. Biological Cybernetics, 36, 193–202. springer.com
- LeCun, Y., et al. (1998). Gradient-Based Learning Applied to Document Recognition (LeNet-5). Proceedings of the IEEE, 86(11). ieeexplore.ieee.org
- Hochreiter, S., & Schmidhuber, J. (1997). Long Short-Term Memory. Neural Computation, 9(8), 1735–1780. ieeexplore.ieee.org
- Kalchbrenner, N., & Blunsom, P. (2013). Recurrent Continuous Translation Models. EMNLP. aclanthology.org
- Cho, K., et al. (2014). Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation. EMNLP. arxiv.org
- Goodfellow, I., et al. (2014). Generative Adversarial Networks. NeurIPS 27. arxiv.org
- Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to Sequence Learning with Neural Networks. NeurIPS 27. arxiv.org
- Bahdanau, D., Cho, K., & Bengio, Y. (2014). Neural Machine Translation by Jointly Learning to Align and Translate. ICLR 2015. arxiv.org
- Cho, K., van Merriënboer, B., Bahdanau, D., & Bengio, Y. (2014). On the Properties of Neural Machine Translation: Encoder–Decoder Approaches. SSST-8. arxiv.org
- Sukhbaatar, S., Szlam, A., Weston, J., & Fergus, R. (2015). End-To-End Memory Networks. NeurIPS 28. arxiv.org
- He, K., Zhang, X., Ren, S., & Sun, J. (2015). Deep Residual Learning for Image Recognition. CVPR 2016. arxiv.org
- Vaswani, A., et al. (2017). Attention Is All You Need. NeurIPS 30. arxiv.org
- Dong, Y., Cordonnier, J.-B., & Loukas, A. (2021). Attention is Not All You Need: Pure Attention Loses Rank Doubly Exponentially with Depth. ICML. arxiv.org
교재 · 보조 자료
- 천인국 (2023). 인공지능: 파이썬으로 배우는 머신러닝과 딥러닝 (2판). 인피니티북스.: 12·13주차 강의 교재.
- 실습 노트북. CNN실습: CIFAR-10에서 MLP·CNN·ViT 비교와 특성맵·어텐션 시각화. 강의 홈에서 배포.
그림 2·3의 수치 예와 특성맵 공식 예제는 본문 공식으로 직접 계산해 검산했다. 허벨·위젤의 "우연한 발견" 일화는 널리 알려진 회고에 근거한 것으로, 실험 결과 자체는 1962년 논문 기준이다. 어텐션 계보의 연도는 arXiv 최초 공개 기준이며 학회 발표가 이듬해인 경우 병기했다. 종단간 메모리 네트워크를 "트랜스포머와 구조적으로 가장 가까운 선행 연구"로 본 것은 트랜스포머 논문의 인용에 근거한 해석이며, 본문에도 해석으로 표시했다.