[250424목530H] 컴퓨터 비전 이론 (1) CNN의 역사

윤승호·2025년 4월 24일

컴퓨터 비전의 역사가 생각보다 깊은 것 같다. 신기하게도 이틀 전 U-Net 논문에서 봤던 스킵커넥션과 보틀넥을 다뤘다. 논문을 보고 모델을 구현해 보니까 다른 논문도 살짝 감이 오는 것 같다. 재밌네 이거!!

학습시간 09:00~02:00(당일17H/누적530H)


◆ 오늘의 깨달음

  • 스킵커넥션과 보틀넥을 사용한 대표 모델 ResNet vs U-Net 차이점
항목ResNetU-Net
발표 연도2015 (Microsoft Research)2015 (독일 의료영상 연구팀)
주요 분야이미지 분류 (Classification)이미지 세그멘테이션 (Segmentation)
핵심 구조Residual Block + Skip ConnectionEncoder-Decoder + Skip Connection
특징깊은 구조도 안정적으로 학습 가능픽셀 단위의 정밀한 위치 복원 가능
스킵 커넥션 위치네트워크 내부의 R Block 단위인코더 ↔ 디코더 사이
스킵 커넥션 방식y = F(x) + x 형태의 덧셈 기반 연결인코더와 디코더 Concatenate
스킵 커넥션 목적Gradient 소실 방지 및 안정적 학습 흐름 제공해상도 손실 보완, 원본 위치 정보 보존
보틀넥 위치있음 (ResNet-50, 101 등)있음 (네트워크 중심부, 업샘플링 직전)
보틀넥 방식1x1 → 3x3 → 1x1 Conv (채널 압축-변환-복원)MaxPool + Conv 조합
보틀넥 목적연산량 감소 및 깊이 확장특성 압축 및 디코더 입력으로 전달

◆ 학습내용

1. 컴퓨터 비전

(1) 컴퓨터 비전의 역사

  • 초기(1962~1982): 경계 검출, Hough Transform, Marr의 비전 이론
  • 기계학습 기반(1990~2012): SIFT, HOG, Viola-Jones, SVM, ImageNet
  • 딥러닝 시대(2012~): AlexNet → VGG → ResNet → ViT → CLIP, DALL-E
  • 현재: 자율주행, 의료, AR/VR, 멀티모달로 확장

(2) 주요 응용 분야

  • 자율주행: 객체 탐지 + 세그멘테이션 (Tesla, Waymo)
  • 의료영상 분석: 질병 탐지, 안과 이미지 분석
  • 얼굴 인식: Face ID, 공항 보안
  • AR/VR: SLAM, 3D 재구성 (Pokémon GO)
  • 멀티모달 AI: CLIP, DALL-E 등 이미지-텍스트 융합

(3) 이미지 구조와 특징

  • 픽셀과 채널: Grayscale(L채널), RGB(알파채널 존재), HSV 등
  • 포맷: JPEG(손실), PNG(무손실), BMP(비압축), TIFF(고해상)
  • 고차원성: 3D 텐서 구조 (W×H×C)
  • 공간적 연속성: 인접 픽셀 유사도, CNN의 핵심 전제
  • 데이터 왜곡: 회전·밝기·노이즈 등을 대비해 증강 학습 필요
  • 사람과 컴퓨터 시각 차이: 컴퓨터는 픽셀 단위 분석

(4) 이미지 통계적 특징

  • 히스토그램 분석: 밝기, 대비, 노출 정보 분석 후 평활화(Histogram Equalization)
  • 텍스처 분석: GLCM(픽셀간 관계), LBP(주변 픽셀 밝기) 등
  • 주파수 특성: 저주파(윤곽 특징), 고주파(엣지 특징)
  • 왜곡 해결법: 정규화 + 증강

(5) 전처리와 증강

  • 전처리 기법: 크기, 색상 채널, 노이즈, 밝기, 정규화, 크롭
  • 증강 기법: 회전, 크롭, 플립, 확대, 밝대색채명 조정, 노이즈, 왜곡, 일부 삭제, 혼합

(6) 이미지 처리 파이프라인

  • 단계: 로딩 → 전처리 → 증강 → 배치 생성 → 로딩 최적화
  • 최적화: 멀티프로세스, 캐싱, prefetching
  • 실무: 대규모 학습, 실시간 처리에 필수

2. 전이학습

전이학습이 가능한 이유 = Low Level Features!

  • 초기 레이어에서 학습된 Edge, Color, Texture 같은 기본 시각 특성들은 대부분의 이미지에서 공통적임
  • 따라서 기존 모델이 학습한 저수준 특징을 다른 작업에 재사용할 수 있음

(1) 전이학습의 필요성

  • 데이터 부족 해결
    • 딥러닝은 대규모 데이터 필요 → 전이학습은 적은 데이터로도 높은 성능 가능
    • 의료, 위성, 제조 등 특수 도메인에 특히 유리
  • 학습 시간 단축
    • 가중치 초기화를 하지 않고 사전학습된 값을 사용함으로써 빠른 수렴 가능
  • 성능 개선
    • 사전 학습 모델이 일반적인 Feature(모서리, 형태 등)를 학습했기 때문에 새로운 문제에도 효과적
  • 자원 효율성
    • 고성능 GPU 없이도 괜찮은 성능 도달 가능
    • 특히 Edge Device나 모바일 환경에서 유용

(2) 전이학습의 종류

A. Feature Extraction (특징 추출)

  • 사전 학습된 모델의 전체 또는 일부 Layer를 고정(freeze)
  • *분류기(FC Layer)**만 새로운 데이터에 맞게 학습
  • 주로 데이터가 적을 때 사용
  • 장점: 빠르고 안정적, 과적합 위험 낮음
  • 단점: 표현력이 제한될 수 있음

B. Fine-Tuning (미세 조정)

  • 사전 학습된 모델의 일부 Layer를 학습 가능하게 설정
  • 특정 Layer 이하를 freeze, 나머지는 재학습
  • 주로 데이터가 많고 복잡한 문제에 사용
  • 장점: 새로운 데이터셋에 최적화된 성능
  • 단점: 시간이 오래 걸리고 과적합 주의 필요

(3) 전이학습의 장점과 한계

장점

  • 적은 데이터로도 높은 정확도
  • 빠른 학습 시간
  • 다양한 데이터에 대해 일반화 가능
  • 다양한 구조(ResNet, VGG 등)에 적용 가능

한계

  • 도메인 차이 문제: 기존 학습 데이터와 새로운 데이터가 너무 다르면 성능 저하
  • 고정된 표현 한계: Feature Extraction은 기존 특성에 의존함
  • 데이터 품질 의존: Pretrained Model의 원본 데이터 품질이 낮으면 한계 발생

3. 다양한 CNN 종류

(1) AlexNet

  • 발표: 2012, ILSVRC 우승
  • 기존 CNN 구조에 ReLU, Dropout, GPU 병렬처리 도입
  • 학습률: 0.01, 모멘텀 0.9, Dropout 0.5, weight decay 5e-4
  • 주요 기여:
    • ReLU 도입 → 비선형성 강화, 학습 속도 향상
    • Data Augmentation 도입
    • 2개의 GPU 사용 → 연산 분산
    • CNN 구조를 대중화시킨 결정적 사건

(2) VGG Net

  • 발표: 2014, VGG16, VGG19 등
  • 3x3 Conv 필터 반복 사용 → 깊이 증가
  • 간단한 구조지만 매우 효과적
  • 특징:
    • 모든 Conv Layer는 동일한 필터 구조
    • 층이 깊을수록 더 복잡한 특징 학습 가능
    • Transfer Learning에 널리 사용됨
  • 학습 세팅:
    • Optimizer: SGD, momentum 0.9, Dropout 0.5
    • 초기 학습률 0.01 → plateau 시 1/10로 감소
    • Batch size 256

(3) GoogLeNet (Inception V1)

  • 발표: 2014, ILSVRC 우승
  • Inception Module 도입
    • 다양한 필터 크기(1x1, 3x3, 5x5) + Pooling을 병렬로 구성
    • 연산 효율성과 성능 동시 확보
  • 특징:
    • Global Average Pooling으로 FC 계층 대체
    • Auxiliary Classifier로 학습 안정성 확보
    • 파라미터 수 약 6.8M (AlexNet 대비 1/12)
    • 깊이: 22 레이어

(4) ResNet

  • 발표: 2015, ILSVRC 우승
  • 핵심 개념: Residual Learning(잔차 학습)
    • y = F(x) + x → identity mapping 학습 용이
    • Skip Connection으로 Gradient Vanishing 해결
  • 다양한 구조:
    • ResNet18, 34, 50, 101, 152
    • Bottleneck 구조: 1x1 → 3x3 → 1x1 (차원 축소 → 복원)
  • 학습 세팅:
    • BatchNorm, Xavier 초기화
    • Optimizer: SGD(momentum 0.9)
    • Learning rate: 0.1 → 정체 시 감소
    • Dropout 사용 안 함

4. XAI

  • XAI(설명 가능한 인공지능, eXplainable AI)는 인공지능 모델이 내린 결정이나 예측의 이유를 사람이 이해할 수 있도록 설명하는 기술과 방법

  • 모델의 "블랙박스" 특성을 해소하여, 왜 특정 결과가 도출되었는지, 어떤 요인이 영향을 미쳤는지를 명확하게 보여줌으로써 신뢰성과 투명성을 높이는 것이 목표

  • 사후 해석(post-hoc interpretation): 모델 학습 후, 예측 결과를 해석하는 방법(CAM, Grad-CAM, LIME, SHAP 등)

  • 모델 자체 해석(ante-hoc interpretability): 처음부터 해석 가능한 모델을 설계하는 방법

(1) CAM (Class Activation Mapping)

  • 구조: 마지막 Conv Layer + Global Average Pooling (GAP) 필요
  • 특정 클래스가 활성화된 영역을 시각화
  • 해석 방식: Feature map * 학습된 클래스 가중치의 선형 결합
  • 장점:
    • 구조가 단순함 (GAP만 도입하면 됨)
    • 해석 직관적
  • 단점:
    • GAP가 없는 모델에는 적용 불가
    • 기존 구조 변경이 필요함

(2) Grad CAM (Gradient-weighted CAM)

  • Gradient를 활용해 주목 영역 시각화
  • 기존 CAM의 단점 보완
  • 어떤 모델이든 마지막 Conv Layer만 있으면 사용 가능
  • 장점:
    • 구조 독립적 적용
    • 의사 결정 근거 시각화 가능
    • 디버깅/오류 진단 도구로 활용
  • 단점:
    • 역전파 기반 → 연산 복잡도 증가
    • ReLU 적용으로 음의 기여 무시 (부정 영역 해석 불가)
    • Gradient 노이즈에 민감할 수 있음

이론은 언제나 어렵다.

profile
나는 AI 엔지니어가 된다.

0개의 댓글