Deep learning Chapter 10 : Convolutional Networs
본 글은 “Deep Learning: Foundations and Concepts” (저자: Christopher Bishop)의 10장, Convolution Network 내용을 한국어로 정리한 것입니다.
🧠 왜 인간은 이미지를 잘 인식할까?
우리는 고양이 사진을 0.1초만 봐도 그것이 고양이임을 즉시 알아차릴 수 있습니다. 심지어 사진의 일부가 가려져 있거나, 살짝 기울어져 있거나, 낮은 해상도라 하더라도 인간은 쉽게 인지합니다. 이 놀라운 능력은 시각 피질(visual cortex)이 수십만 년에 걸쳐 계층적이고 효율적인 방식으로 시각 정보를 처리하도록 진화해왔기 때문입니다.
그렇다면 자연스레 이러한 고민을 해볼 수 있습니다. 컴퓨터도 비슷한 방식으로 이미지를 처리하게 만들 수 있을까?
바로 이 질문에 대한 답이 합성곱 신경망(CNN)입니다. CNN은 인간의 시각 시스템에서 영감을 받아, 이미지를 부분에서 전체로, 단순한 것에서 복잡한 것으로 해석하는 방법을 학습합니다. 본 장에서는 CNN, Convolution Network에 대해서 살펴보도록 하겠습니다.
1. 컴퓨터 비전 (Computer Vision)
컴퓨터 비전(Computer Vision)은 컴퓨터가 이미지나 비디오로부터 의미 있는 정보를 자동으로 추출하는 기술 분야입니다. 과거에는 주로 3차원 기하학 기반 접근법이 주류였지만, 딥러닝, 특히 CNN의 등장 이후 엄청난 발전이 일어났습니다. CNN은 이제 컴퓨터 비전의 거의 모든 분야에서 기본 도구로 사용되고 있으며, 최근에는 텍스트, 음성, 시계열 데이터 등 다른 도메인에서도 활용되고 있습니다.
📷 컴퓨터 비전의 주요 과제
CNN을 통해 컴퓨터 비전에서 다룰 수 있는 대표적인 작업들은 다음과 같습니다.
- 이미지 분류 (Image Classification)
- 입력 이미지를 하나의 라벨로 분류
- 예: 피부 사진 → ‘양성’ or ‘악성’
- 객체 탐지 (Object Detection)
- 이미지에서 여러 개의 객체 탐색 + 위치(Bounding Box) 예측
- 이미지 분할 (Segmentation)
- 이미지의 각 픽셀을 분류하여 영역을 나눔
- 예: 하늘, 건물, 사람 등
- 이미지 캡션 생성 (Image Captioning)
- 이미지 → 자연어 설명 자동 생성
- 이미지 생성 (Image Generation)
- 텍스트 → 이미지 생성 (예: “강아지가 자전거 타는 사진”)
- 인페인팅 (Inpainting)
- 지워진 영역을 주변과 조화롭게 복원
- 스타일 전이 (Style Transfer)
- 예: 사진 → 고흐 풍의 유화로 변환
- 초해상도 (Super-resolution)
- 저해상도 이미지 → 고해상도 이미지 복원
- 깊이 예측 (Depth Prediction)
- 이미지로부터 카메라와의 거리 추정
- 장면 재구성 (3D Scene Reconstruction)
- 여러 장의 2D 이미지 → 3D 장면 복원
🖼️ 이미지 데이터의 특성
- 이미지는 2차원 격자 구조를 가진 픽셀들의 집합
- 대부분 RGB 3채널, 각 채널은 보통 0~255 범위의 정수
- 영상은 시간 차원을 포함하는 3D 텐서 구조
- 의료 영상(MRI 등)은 3D 볼륨(=voxel)을 가지기도 함
🚫 비구조적 처리의 문제점
- CNN 없이 이미지를 완전연결층으로 처리하면:
- 엄청난 파라미터 수 필요 (예: 100x100 이미지 → 10,000차원 입력)
- 픽셀 간의 공간 구조가 무시됨 → 자연스러운 이미지 패턴 학습 불가능
✅ CNN이 필요한 이유
- 국소성(Locality): 인접 픽셀 간의 상관성 활용
- 가중치 공유(Weight Sharing): 연산 효율성 + 일반화 향상
- 계층 구조(Hierarchy): 단순 패턴(엣지) → 고차원 개념(얼굴)
CNN은 이렇게 이미지의 구조적 특성을 적극적으로 활용하여, 적은 수의 파라미터로도 복잡한 시각 문제를 해결할 수 있습니다.