본문 바로가기
AI/Stanford Univ. cs231n

11강 CNNs in Practice

by coco88 2025. 8. 30.

Data Augmentation (데이터 증강)

기존의 데이터를 다양한 방식으로 변형하여 새로운 데이터를 생성하는 방법

 

1) Horizontal flips 

 

 

 

 

 

 

 

 

 

 

 

2) Random crops/scales

 

3) Color jitter

대비(contrast)를 조절, principal component directions을 따라 color의 offset을 이미지 모든 픽셀에 더하는 방식 등등

 

translation, rotation, stretching, shearing, lens distortions 등의 다양한 데이터 증강 방법이 있다. 

 

Transfer Learning (전이 학습)

이미 학습된 모델의 지식을 새로운 작업에 활용하는 학습 방법

 

2) Feature Extractor(특징 추출) (데이터가 적은 경우)

기존 모델의 conv 레이어들은 고정하여 일반적인 feature 추출기로만 사용하고, 마지막 FC 레이어만 새로운 task에 맞게 학습한다.

 

3) Fine-tuning (데이터가 많은 경우)

전체 모델 또는 일부 레이어를 새로운 데이터로 조금씩 학습

conv 레이어 대부분은 그대로 두고, 상위 몇 개 레이어와 FC 레이어를 재학습한다. 

Fine-tuning 시 학습률을 작게 설정해야 한다. (맨 위 FC layer: 1/10, 중간 conv layer: 1/100)

ImageNet과 다른 데이터이더라도, CNN이 학습하는 저수준 시각 특징은 보편적이라 전이학습이 큰 도움이 된다. 

 

 

All About Convolutions

1. How to stack them

작은 필터 여러 개 vs 큰 필터 한 개 

3개의 3×3 convolution을 연속으로 사용하면 더 적은 파라미터 수로 더 많은 비선형성(ReLU) 적용이 가능하며, 7×7 영역을 보는 것과 동일한 receptive field를 갖게 되므로 더 효율적이다. 

(Receptive Field: CNN에서 한 뉴런이 입력 이미지에서 참조하는 영역) 

Fewer parameters, more nolinearity, Less compute = Good

작은 필터의 강력함을 알 수 있다. 

 

1×1 conv는 채널을 줄였다 늘릴 수 있는 채널 변환기 역할을 한다. 

1x1 conv layer = bottleneck layer

 

 

2. How to compute them

Implementing Convolutions: im2col

im2col = 이미지를 패치 단위로 펼쳐 행렬로 만드는 기법

 

이미지를 작은 patch들(필터 적용 영역)로 펼쳐서 행렬로 변환하는 방법

convolution 연산을 행렬 곱으로 변환하기 위한 방법

 

FFT(Fast Fourier Transform)

Fourier Transform(푸리에 변환)을 빠르게 계산하는 알고리즘

 

Fast Alogorithm

특정 문제를 보다 빠른 시간 복잡도로 해결하도록 고안된 최적화된 계산 방법

 

 

Implementation Details

CPU는 적은 수(1~16개)의 빠른 코어로 구성되어 있다. 순차적 작업에 강하며 일반적인 프로그램 실행이 가능하다. 

GPU는 수천 개의 느리지만 많은 코어로 구성되어 있다. 수많은 작은 연산을 동시에 처리할 수 있어 딥러닝에 적합하다. 

 

CPU-GPU communication

GPU와 CPU 사이의 데이터 전달이 느려서 전체 학습 속도를 떨어뜨릴 수 있다.(bottleneck)

CPU는 데이터를 미리 준비하고 증강하는 역할을, GPU는 계산을 수행하는 역할을 분리해서 병렬로 처리하면 CPU-GPU 간 병목(bottleneck)을 줄일 수 있다.

 

Floating Point Precision

FP32(float32): 대부분 딥러닝 연산의 기본

FP16(half precision): 16비트로 저장, 계산 → 메모리 절약, 속도 향상

'AI > Stanford Univ. cs231n' 카테고리의 다른 글

13-2강 Attention  (0) 2025.09.05
13-1강 Segmentation  (1) 2025.08.30
10강 RNN과 LSTM (Recurrent Neural Networks)  (7) 2025.08.24
9강 Understanding and Visualizing CNN  (3) 2025.08.22
8강 Spatial Localization and detection, R-CNN  (2) 2025.04.12