DEEP LEARNING FUNDAMENTALS ④ · CNN · COMPUTER VISION
Neural Network에게
이미지는 어떻게 보일까?
사람에게 사진은 고양이, 자동차, 얼굴이다. 하지만 Neural Network에게 이미지는 처음에는 그저 숫자가 빼곡히 들어 있는 Tensor일 뿐이다.
Edge를 찾고,
Edge를 조합해 Part를 찾고,
Part를 조합해 Object를 찾는다.
Andrew Ng Deep Learning Specialization의 네 번째 Course인 Convolutional Neural Networks는 Fully Connected Network에서 벗어나 이미지의 공간 구조를 적극적으로 활용하는 방법을 배운다.
Edge Detection · Convolution · Padding · Stride · Volume Convolution · Pooling · Why Convolution?
Week 2 · Deep Convolutional Models
Classic Networks · ResNet · 1×1 Convolution · Inception · MobileNet · EfficientNet · Transfer Learning · Data Augmentation
Week 3 · Object Detection
Localization · Sliding Window · Bounding Box · IoU · NMS · Anchor Box · YOLO · U-Net · Transposed Convolution
Week 4 · Special Applications
Face Recognition · One-shot Learning · Siamese Network · Triplet Loss · Neural Style Transfer · 1D/3D Convolution ```
먼저 전체 지도를 보자
WEEK 1
이미지 전체를 한 번에 보지 말고, 작은 조각부터 보자
1,000×1,000 RGB 이미지를 Fully Connected Network에 넣는다고 생각해보자.
첫 Hidden Layer에 Neuron이 1,000개만 있어도 Weight가 약 30억 개 필요하다.
너무 크다.
더 중요한 문제가 하나 있다. Fully Connected Layer는 이미지에서 “서로 가까이 있는 Pixel은 서로 관련이 있다”는 사실을 특별히 활용하지 않는다.
이미지 전체와 한 번에 연결하지 말고, 작은 Filter로 Local Pattern부터 찾자.
1. Edge Detection부터 시작한다
다음과 같은 6×6 흑백 이미지가 있다고 하자.
10 10 10 0 0 0
10 10 10 0 0 0
10 10 10 0 0 0
10 10 10 0 0 0
10 10 10 0 0 0
10 10 10 0 0 0
왼쪽은 밝고 오른쪽은 어둡다. 가운데에 수직 Edge가 있다.
여기에 다음 3×3 Filter를 사용해보자.
1 0 -1
1 0 -1
1 0 -1
Filter를 이미지의 왼쪽 위에 올리고, 같은 위치끼리 곱한 뒤 전부 더한다.
Image patch:
10 10 10
10 10 10
10 10 10
Filter:
1 0 -1
1 0 -1
1 0 -1
Result:
10×1 + 10×0 + 10×(-1)
+10×1 + 10×0 + 10×(-1)
+10×1 + 10×0 + 10×(-1)
= 0
이 영역은 모두 비슷하게 밝아서 Edge가 없다.
Filter를 가운데 경계로 옮기면:
10 10 0
10 10 0
10 10 0
×
1 0 -1
1 0 -1
1 0 -1
= 10 + 0 + 0
+10 + 0 + 0
+10 + 0 + 0
= 30
Filter가 “밝은 영역 → 어두운 영역”으로 변하는 수직 Edge를 발견한 것이다.
2. 출력 크기는 왜 작아질까?
입력 크기가 n×n,
Filter가 f×f라고 하자.
Padding과 Stride 없이 Filter를 움직이면 출력 크기는:
예를 들어:
Filter = 3×3
따라서 Output은 4×4다.
3. Padding: 이미지 테두리를 보호하자
Convolution을 여러 번 하면 이미지가 계속 작아진다.
6×6
↓ 3×3 Conv
4×4
↓ 3×3 Conv
2×2
↓
더 이상 적용하기 어려움
더구나 이미지 가장자리 Pixel은 가운데 Pixel보다 Filter에 포함되는 횟수가 적다.
그래서 이미지 주변에 0을 붙인다.
0 0 0 0 0
0 1 2 3 0
0 4 5 6 0
0 7 8 9 0
0 0 0 0 0
Padding 크기를 p라고 하면 출력 Dimension은:
3×3 Filter에서 입력과 출력 크기를 같게 만들고 싶다면 보통 p=1.
Same Convolution → 적절한 Padding으로 공간 크기를 유지한다.
4. Stride: 한 칸씩 가지 말고 두 칸씩 가자
지금까지 Filter를 한 Pixel씩 이동했다. 이 이동 간격이 Stride다.
s=2라면:
Position:
(0,0)
↓ +2
(0,2)
↓ +2
(0,4)
다음 Row도 2칸 이동
Padding과 Stride를 모두 포함한 일반적인 출력 크기:
예제
Input n = 7
Filter f = 3
Padding p = 1
Stride s = 2
= 3 + 1
= 4
Output은 4×4.
5. 실제 이미지는 2D가 아니라 Volume이다
RGB 이미지는:
예를 들어:
Filter 역시 Channel 전체를 관통해야 한다.
중요한 규칙:
6. Filter 하나가 Output Channel 하나를 만든다
Filter가 하나면 Feature Map도 하나다.
서로 다른 Filter 10개를 사용하면?
7. CNN Parameter 수를 계산해보자
Input Channel이 3이고,
Filter가 3×3,
Filter 개수가 10개라고 하자.
Filter 하나의 Weight:
Bias 하나를 추가하면:
Filter가 10개:
이미지 크기가 100×100이든 1,000×1,000이든 이 Convolution Layer의 Parameter는 여전히 280개다.
8. 왜 Convolution이 효과적인가?
9. Pooling: 중요한 정보만 압축한다
대표적인 것은 Max Pooling.
Input:
1 3 2 4
5 6 1 2
7 2 8 1
3 4 2 9
2×2 Filter, Stride 2 Max Pooling:
max(1,3,5,6) = 6
max(2,4,1,2) = 4
max(7,2,3,4) = 7
max(8,1,2,9) = 9
Output:
6 4
7 9
Max Pooling에는 학습해야 할 Parameter가 없다.
→ Pattern을 발견한다.
→ 같은 Filter를 전체 Image에서 재사용한다.
→ 여러 Filter가 여러 Feature Map을 만든다.
→ Pooling으로 공간을 압축한다.
WEEK 2
CNN을 깊게 쌓으면 새로운 문제가 생긴다
CNN Layer를 여러 개 쌓으면 점점 더 복잡한 Feature를 배울 수 있다.
Pixels
↓
Edges
↓
Textures
↓
Parts
↓
Objects
하지만 Network를 무작정 깊게 만든다고 학습이 잘되는 것은 아니다.
1. ResNet: 그냥 건너뛰는 길을 만들어준다
일반적인 Layer는:
Residual Block은 입력을 뒤쪽으로 바로 보내는 Shortcut Connection을 추가한다.
여기서 중요한 것은 Network가 전체 Mapping을 새로 배우는 대신 Residual F(a), 즉 입력에서 얼마나 수정해야 하는지를 학습할 수 있다는 점이다.
왜 이게 도움이 될까?
추가 Layer가 아무것도 배울 필요가 없다면:
그러면:
Identity Mapping과 비슷하게 동작할 수 있다.
2. 1×1 Convolution: 1 Pixel만 보는데 무슨 의미가 있을까?
처음 보면 가장 이상한 연산 중 하나다.
Filter Size가 1×1이라면 공간적으로는 Pixel 하나밖에 보지 않는다.
하지만 Channel 방향으로는 전체를 본다.
Input Pixel at (h,w):
[ channel1,
channel2,
channel3,
...
channel192 ]
1×1×192 Filter가 이 Channel들을 가중합한다.
예:
↓ 32개의 1×1 Filter
28×28×32
Channel Dimension이 192에서 32로 크게 줄었다.
3. Inception: Filter Size를 사람이 하나 고르지 말자
어떤 Layer에서는 1×1이 좋을까? 3×3이 좋을까? 5×5가 좋을까? Pooling이 좋을까?
Inception의 아이디어는:
4. MobileNet: Convolution을 두 단계로 쪼개자
Standard Convolution은 공간과 Channel Mixing을 한 번에 수행한다.
MobileNet은 이를:
+
Pointwise 1×1 Convolution
으로 분리한다.
Standard Conv 연산량의 핵심 항
여기서:
D_K = Kernel Size
M = Input Channels
N = Output Channels
D_F = Feature Map Size
Depthwise Separable Conv는:
DK² × M × DF²
M × N × DF²
Standard Conv 대비 비율을 정리하면 대략:
Kernel 3×3, Output Channel 256이라면:
이상적인 연산량 비교에서는 Standard Conv의 약 11.5% 수준까지 내려갈 수 있다는 직관을 준다.
5. EfficientNet: Network를 키울 때 무엇을 키울까?
Model Capacity를 키우는 방법은 적어도 세 가지다.
Layer를 더 많이 쌓기
Channel을 더 많이 사용
더 큰 이미지를 입력
EfficientNet의 핵심 아이디어는 셋 중 하나만 무작정 키우기보다 Depth, Width, Resolution을 균형 있게 Scaling하는 것이다.
depth = α^φ
width = β^φ
resolution = γ^φ
원 논문에서는 대략적인 계산량 증가를 통제하기 위해
α·β²·γ² ≈ 2 같은 제약을 둔다.
6. Transfer Learning: CNN을 처음부터 학습하지 않아도 된다
ImageNet 같은 대규모 데이터에서 이미 학습된 CNN을 가져와 마지막 Layer만 새로운 Task에 맞게 바꿀 수 있다.
Pretrained CNN
Edge
↓
Texture
↓
Shape
↓
Object Feature
↓
[기존 Classification Head 제거]
↓
우리 Task용 Head 추가
데이터가 적다면 초기 Layer를 Freeze하고 마지막 부분만 학습할 수도 있다.
데이터가 충분하다면 전체 Network를 Fine-tuning할 수도 있다.
7. Data Augmentation
이미지에는 자연스럽게 적용할 수 있는 변형이 많다.
Original
↓
Horizontal Flip
Random Crop
Rotation
Color Shift
Brightness
Scale
핵심은 Label을 바꾸지 않는 범위에서 Training Distribution을 다양하게 만드는 것이다.
WEEK 3
“고양이다”에서 “고양이가 여기 있다”로
Image Classification:
Object Detection:
1. Object Localization
Bounding Box를 네 개 숫자로 표현할 수 있다.
예를 들어 전체 이미지를 0~1 좌표로 표현하면:
bx = 0.50
by = 0.55
bw = 0.40
bh = 0.30
Bounding Box의 중심과 크기를 나타낼 수 있다.
2. IoU: 두 Box가 얼마나 겹치는가?
예를 들어:
Prediction Box Area = 100
Ground Truth Area = 120
Intersection = 80
Union
= 100 + 120 - 80
= 140
3. Non-max Suppression: 자동차 하나에 Box가 10개 나오면?
Detection Model은 같은 Object 주변에 여러 Box를 제안할 수 있다.
Box A: confidence 0.95
Box B: confidence 0.91
Box C: confidence 0.82
Box D: confidence 0.30
NMS는:
1. 가장 Confidence가 높은 Box 선택
2. 그 Box와 IoU가 매우 높은
중복 Box 제거
3. 남은 Box 중 가장 높은 것 선택
4. 반복
4. Anchor Box: 같은 위치에 서로 다른 Shape가 있을 수 있다
한 Grid Cell 안에 사람과 자동차가 함께 있을 수 있다.
사람은 세로로 길고, 자동차는 가로로 길다.
▯
Tall Box
Person-like
▭
Wide Box
Car-like
여러 Anchor Box를 두면 한 위치에서 여러 형태의 Object 후보를 표현할 수 있다.
5. YOLO: You Only Look Once
예전 Detection Pipeline은 이미지의 여러 Region을 반복적으로 검사하는 방식이 많았다.
YOLO의 핵심 아이디어는 Detection을 하나의 Neural Network Prediction 문제로 통합하는 것이다.
YOLO는 전체 이미지를 한 Network에 넣어 Bounding Box와 Class Probability를 직접 예측한다는 통합된 접근으로 유명해졌다.
6. Detection과 Segmentation은 무엇이 다를까?
| Task | Output |
|---|---|
| Classification | 이 이미지가 무엇인가? |
| Localization | 하나의 Object가 어디 있는가? |
| Detection | 여러 Object와 Bounding Box |
| Semantic Segmentation | Pixel마다 Class를 예측 |
Segmentation은 Rectangle 하나가 아니라 모든 Pixel에 Label을 붙인다.
7. Transposed Convolution: 작아진 Feature Map을 다시 키운다
일반적인 CNN은:
256×256
↓
128×128
↓
64×64
↓
32×32
처럼 공간 크기를 줄이며 고차원 Feature를 만든다.
그런데 Segmentation 결과는 원본 Pixel과 비슷한 Resolution으로 돌아와야 한다.
그래서 Feature Map을 다시 키우는 연산이 필요하다.
공간 Resolution을 복원한다.
단순한 1D 직관에서 Transposed Conv 출력 크기는 상황에 따라 대략:
실제 Framework에서는 output padding, dilation 등의 설정에 따라 세부 공식이 확장된다.
8. U-Net: Context도 필요하고 위치 정보도 필요하다
Segmentation에는 두 가지가 동시에 필요하다.
이 Pixel 주변에 무엇이 있는가?
전체적으로 어떤 Object인가?
정확히 어느 Pixel까지가 Object인가?
WEEK 4
얼굴을 “분류”하지 말고 거리로 표현하자
1. Face Verification vs Recognition
| Problem | 질문 |
|---|---|
| Verification | “이 사람이 주장한 A가 맞는가?” 1:1 문제 |
| Recognition | “Database의 수많은 사람 중 누구인가?” 1:K 문제 |
2. One-shot Learning 문제
일반 Classification은 Class마다 많은 Example을 원한다.
그런데 출입 시스템에 새로운 직원이 등록됐다. 사진이 딱 한 장뿐이다.
Employee A → 1 image
Employee B → 1 image
Employee C → 1 image
직원 한 명 추가될 때마다 전체 Classification Network를 다시 학습할 수는 없다.
그래서 질문을 바꾼다.
3. Siamese Network: 얼굴을 Vector로 바꾼다
CNN 함수 f(x)가 얼굴 이미지를 Embedding Vector로 변환한다고 하자.
같은 사람이라면 Embedding Distance가 작아야 한다.
다른 사람이라면 커야 한다.
4. Triplet Loss
세 장의 이미지를 사용한다.
기준 얼굴
P · Positive
Anchor와 같은 사람
N · Negative
Anchor와 다른 사람
원하는 관계:
즉 같은 사람은 가까워야 하고,
다른 사람은 최소 Margin α만큼 더 멀어야 한다.
||f(A)-f(P)||²
- ||f(A)-f(N)||²
+ α,
0)
숫자로 보자
d(A,P) = 0.3
d(A,N) = 0.9
margin α = 0.2
Loss
= max(0.3 - 0.9 + 0.2, 0)
= max(-0.4, 0)
= 0
이미 충분히 잘 분리되어 있으므로 Loss가 없다.
반대로:
d(A,P) = 0.6
d(A,N) = 0.7
α = 0.2
Loss
= max(0.6 - 0.7 + 0.2, 0)
= 0.1
Positive와 Negative가 충분히 떨어져 있지 않다. Network는 Embedding Space를 수정해야 한다.
다만 Face Embedding과 Text Embedding은 학습 목적과 모델 구조가 다르며, 단순히 같은 기술이라고 볼 수는 없다. ```
이제 Network로 그림을 그려보자: Neural Style Transfer
세 이미지가 있다.
| 기호 | 의미 |
|---|---|
| C | Content Image |
| S | Style Image |
| G | Generated Image |
목표는:
S의 스타일을 가진 G를 만든다.
5. CNN Layer마다 보는 것이 다르다
Early Layer
→ Edge / Simple Texture
Middle Layer
→ Shape / Pattern
Deep Layer
→ Object-level Representation
이 특성을 이용해 Content와 Style을 서로 다른 방식으로 측정할 수 있다.
6. Content Cost
어떤 중간 Layer의 Activation이 Content Image와 Generated Image에서 비슷하면 두 이미지의 내용도 비슷하다고 볼 수 있다.
∝ ||a⁽ᶜ⁾ - a⁽ᴳ⁾||²
Generated Image의 Activation이 Content Image의 Activation과 멀어질수록 Cost가 커진다.
7. 그런데 Style은 어떻게 숫자로 만들까?
아주 재미있는 부분이다.
Style은 특정 위치에 정확히 무엇이 있느냐보다, 어떤 Feature들이 서로 함께 활성화되는가로 볼 수 있다.
Activation을 다음처럼 펼친다고 하자.
Channel 간 Correlation을 계산하는 Gram Matrix:
Gᵢⱼ는 Feature i와 Feature j가 이미지 전체에서
얼마나 함께 활성화되는지를 나타낸다.
예를 들어:
Feature 1 = 세로 방향 Texture
Feature 2 = 주황색 Pattern
G[1,2]가 크다
→ 세로 Texture와 주황색이
이미지에서 자주 함께 나타남
8. Style Cost
Style Image의 Gram Matrix와 Generated Image의 Gram Matrix 차이를 줄인다.
∝ ||Gram(S) - Gram(G)||²
실제 Style Transfer에서는 여러 Layer의 Style Cost를 가중합할 수 있다.
9. 최종 Objective
= α Jcontent(C,G)
+ β Jstyle(S,G)
여기서 흥미로운 점:
Neural Network Weight를 학습하는 게 핵심이 아니다.
이미 학습된 CNN을 Feature Extractor로 사용하고, Generated Image G 자체의 Pixel 값을 Gradient Descent로 바꾼다.
G = random image
repeat:
content_cost = ...
style_cost = ...
total_cost = ...
gradient = dJ/dG
G = G - learning_rate × gradient
Neural Style Transfer에서는 Image 자체를 Optimization Variable로 놓는다.
10. Convolution은 이미지 전용이 아니다
2D Convolution은 이미지에 자연스럽지만, 같은 아이디어를 다른 차원으로 일반화할 수 있다.
| Convolution | 예 |
|---|---|
| 1D | Time Series · Audio · Sequence |
| 2D | Image |
| 3D | CT/MRI Volume · 3D Spatial Data |
금융/Enterprise AI에서는 CNN을 어디서 만날까?
금융 AI Engineer가 직접 고양이 분류기를 만들 일은 많지 않을 수 있다. 하지만 Vision Pipeline 자체는 생각보다 가까이에 있다.
| Use Case | Vision 문제 |
|---|---|
| 스캔 문서 | Document Layout · OCR 전처리 |
| 계약서/신청서 | Table · Checkbox · Stamp · Signature Detection |
| 신분증 | Document Detection · Image Quality |
| Biometric | Face Verification |
| 보험 이미지 | Damage Detection / Segmentation |
RAG Error Analysis에서 “정답 문서가 있는데 검색이 안 됐다”고 생각했지만, 실제로는 Table이나 Text가 OCR 단계에서 누락된 경우도 충분히 발생할 수 있다. ```
Face Recognition처럼 생체정보를 다루는 시스템은 단순 Accuracy 문제를 넘어 Privacy, Consent, Data Retention, Access Control, Bias/Fairness, Audit, Regulatory Requirement를 함께 검토해야 한다.
CNN을 배우면 Transformer도 조금 다르게 보인다
Transformer 시대에 CNN을 배우는 것이 오래된 기술 공부처럼 보일 수 있다.
하지만 CNN이 던진 질문들은 지금도 중요하다.
| CNN에서 배우는 것 | 더 넓은 AI 개념 |
|---|---|
| Local Receptive Field | 어떤 입력끼리 Interaction시킬 것인가? |
| Parameter Sharing | 구조적 Inductive Bias |
| Residual Connection | Deep Transformer에서도 핵심 Building Block |
| Embedding Distance | Representation Learning · Vector Search |
| Encoder / Decoder | 다양한 Representation Architecture |
Course 4 수식 치트시트
# Convolution Output Size
n_out =
floor((n + 2p - f) / s) + 1
# Conv Layer Shape
Input:
n_H × n_W × n_C_prev
Filter:
f × f × n_C_prev
Number of filters:
n_C
Output:
n_H_new × n_W_new × n_C
# Conv Parameters
parameters =
(f × f × n_C_prev + 1) × n_C
# Residual Block
a[l+2] =
g(F(a[l]) + a[l])
# MobileNet Depthwise Separable Conv
Standard:
D_K² × M × N × D_F²
Depthwise:
D_K² × M × D_F²
Pointwise:
M × N × D_F²
# IoU
IoU =
Intersection / Union
# Face Embedding Distance
d(x1,x2) =
||f(x1) - f(x2)||²
# Triplet Loss
L =
max(
||f(A)-f(P)||²
- ||f(A)-f(N)||²
+ margin,
0
)
# Neural Style Transfer
J(G) =
α J_content(C,G)
+ β J_style(S,G)
# Gram Matrix
Gram(A) =
A Aᵀ
Computer Vision 문제를 보면 무엇부터 떠올릴까?
CNN에서 가장 많이 헷갈리는 것
Convolution Filter는 사람이 직접 정하는가?
초기 Edge Detection 예제에서는 사람이 만든 Filter를 사용해 직관을 배우지만, 실제 CNN의 Filter Weight는 대부분 Backpropagation으로 학습한다.
Filter 수와 Output Channel 수가 왜 같은가?
Filter 하나가 하나의 Feature Map을 만들기 때문이다. Filter 64개면 Output Channel도 64개다.
Pooling도 Weight를 학습하는가?
일반적인 Max/Average Pooling에는 학습 Parameter가 없다.
1×1 Conv는 아무 의미 없는 연산 아닌가?
공간적으로는 한 위치만 보지만 Channel 전체를 결합한다. Channel Mixing과 Dimension Reduction에 매우 유용하다.
ResNet의 Skip Connection에는 Parameter가 없는가?
Input과 Output Shape이 같으면 Identity Shortcut을 그대로 사용할 수 있다. Dimension이 다르면 Projection 등을 사용해 Shape을 맞추는 경우가 있다.
Detection과 Segmentation 중 무엇이 더 좋은가?
우열의 문제가 아니다. Bounding Box가 필요한지 Pixel-level Mask가 필요한지 Task 요구사항이 다르다.
Triplet Loss의 핵심은 얼굴인가?
핵심은 얼굴 자체보다 Embedding Space에서 Positive는 가깝게, Negative는 멀게 만드는 Metric Learning 사고방식이다.
18문제로 Course 4 이해도 체크
- 6×6 Input에 3×3 Filter, Padding 0, Stride 1이면 Output Size는?
- Padding을 사용하는 두 가지 주요 이유는?
floor((n+2p-f)/s)+1의 각 기호는 무엇인가?- RGB Input에 적용하는 Filter의 Channel Depth가 3이어야 하는 이유는?
- Filter가 64개면 Output Channel은 몇 개인가?
- CNN에서 Parameter Sharing은 무엇을 의미하는가?
- Max Pooling에는 학습 Parameter가 있는가?
- Residual Block에서 Shortcut Connection이 학습을 쉽게 만드는 직관은?
- 1×1 Convolution이 Channel Dimension을 줄일 수 있는 이유는?
- Inception Module이 여러 Filter Size를 병렬로 사용하는 이유는?
- Depthwise Separable Convolution은 Standard Conv를 어떤 두 단계로 나누는가?
- EfficientNet에서 함께 Scaling하는 세 Dimension은?
- IoU가 1이면 무엇을 의미하는가?
- NMS가 필요한 이유는?
- Anchor Box가 여러 개 필요한 이유는?
- U-Net의 Skip Connection은 Encoder의 어떤 정보를 Decoder에 전달하는가?
- Triplet Loss에서 A, P, N은 각각 무엇인가?
- Neural Style Transfer에서 Gram Matrix는 무엇을 표현하는가?
Course 4를 한 장면으로 기억하자
Parameter Sharing으로 같은 Pattern Detector를 어디서나 재사용한다.
Pooling / Stride는 공간을 압축한다.
Deep CNN은 Edge → Part → Object Representation을 만든다.
Residual Connection은 깊은 Network를 학습하기 쉽게 만든다.
Detection은 Class와 위치를 함께 찾는다.
Segmentation은 Pixel마다 의미를 붙인다.
Metric Learning은 이미지를 Embedding Space의 거리로 바꾼다.
Course 1에서는 모든 Neuron이 이전 Layer의 모든 값을 보는 Fully Connected Network를 배웠다.
Course 4에서는 처음으로 데이터의 구조 자체를 Architecture에 반영하는 것이 얼마나 강력한지 보게 된다.
이미지에서는 가까운 Pixel끼리 관계가 강하다는 Locality, 같은 Pattern이 위치를 바꿔서도 나타날 수 있다는 특성이 있다.
CNN은 이 구조를 Parameter Sharing과 Local Connectivity라는 형태로 Network에 넣는다.
데이터의 구조를 이용해 훨씬 효율적인 Representation을 학습하는 방법이다.
References
- DeepLearning.AI / Coursera — Convolutional Neural Networks
- He et al. — Deep Residual Learning for Image Recognition
- Szegedy et al. — Going Deeper with Convolutions
- Howard et al. — MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
- Tan & Le — EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
- Redmon et al. — You Only Look Once: Unified, Real-Time Object Detection
- Ronneberger et al. — U-Net: Convolutional Networks for Biomedical Image Segmentation
- Schroff et al. — FaceNet: A Unified Embedding for Face Recognition and Clustering
- Gatys et al. — Image Style Transfer Using Convolutional Neural Networks
※ 현재 공식 Course 4의 4개 Module을 기준으로 학습 순서를 재구성했다. 강의 Transcript를 옮긴 것이 아니라 Convolution 수식, Matrix/Volume Shape, ResNet·MobileNet·YOLO·U-Net·Triplet Loss·Neural Style Transfer의 직관과 숫자 예제, Enterprise AI 연결을 추가한 학습용 Deep Dive다.