아주 깊은 합성곱 신경망 (VGG)
3×3 필터만 쌓아 깊이를 19층까지 늘리면 이미지 인식이 크게 좋아짐을 보인 논문
먼저 알아야 할 것
다루는 내용
VGG는 모든 합성곱 층에 3×3 필터를 쓰고 다른 설계는 고정한 채 깊이만 11층에서 19층까지 늘려, 깊이가 정확도를 올린다는 것을 공정하게 보였습니다. 3×3 세 층은 7×7 한 층과 보는 넓이가 같으면서 파라미터가 적고 비선형이 많습니다. 스케일 지터링과 밀집 평가를 더해 ILSVRC-2014 분류 2위 · 위치 찾기 1위를 했고, 공개된 VGG-16/19 특징은 다른 데이터셋에서도 최고 수준이어서 사전학습 특징 추출기의 표준이 됐습니다.
초록
이 연구에서는 대규모 이미지 인식 환경에서 합성곱 신경망의 깊이가 정확도에 어떤 영향을 미치는지 조사합니다. 주된 기여는 아주 작은(3 × 3) 합성곱 필터를 쓰는 구조로 깊이를 점점 늘린 신경망들을 철저하게 평가한 것으로, 이를 통해 깊이를 가중치 층 16~19개까지 늘리면 기존 최고 수준의 구성보다 크게 개선할 수 있음을 보였습니다. 이 결과는 우리의 ImageNet Challenge 2014 참가작의 바탕이 되었고, 우리 팀은 위치 찾기(localisation) 부문과 분류(classification) 부문에서 각각 1위와 2위를 차지했습니다. 또한 우리가 얻은 표현이 다른 데이터셋에도 잘 일반화되어, 그곳에서도 최고 수준의 결과를 낸다는 것을 보입니다. 컴퓨터 비전에서 깊은 시각 표현을 활용하는 후속 연구를 돕기 위해, 성능이 가장 좋은 합성곱 신경망 모델 두 개를 공개했습니다.
해설
아주 깊은 합성곱 신경망 (VGG)
3×3짜리 아주 작은 필터만 쓰고 층을 16~19개까지 쌓아, "깊이가 정확도를 올린다"를 공정한 비교로 보여 준 논문입니다. 단순하고 규칙적인 구조 덕분에 이후 수년간 이미지 특징 추출의 표준 뼈대로 쓰였습니다.
| 항목 | 내용 |
|---|---|
| 원제 | Very Deep Convolutional Networks for Large-Scale Image Recognition |
| 저자 | Karen Simonyan · Andrew Zisserman (옥스퍼드대 Visual Geometry Group) |
| 발표 | 2014 · arXiv 1409.1556 (ICLR 2015 학회 논문) |
| 트랙 · 수준 | 딥러닝 기초 · 중급 |
| 먼저 알면 좋은 것 | 합성곱 · 풀링, ReLU, 소프트맥스 분류, 드롭아웃, AlexNet |
들어가기 전에
이 해설은 아래 내용을 안다고 보고 씁니다. 처음이라면 먼저 읽고 오면 수식과 손계산을 훨씬 쉽게 따라올 수 있습니다.
- 깊은 합성곱 신경망으로 ImageNet 분류하기 (AlexNet) — ReLU·드롭아웃·데이터 증강·GPU 2장으로 학습한 8층 CNN이 ImageNet 기록을 크게 깬 논문
한눈에 보기
- 큰 필터 하나(7×7) 대신 작은 필터(3×3) 여러 개를 쌓으면 같은 넓이를 보면서도 파라미터는 적고 비선형은 많아진다는 것을 압니다.
- 다른 조건은 고정한 채 깊이만 11층 → 19층으로 늘렸을 때 오류율이 어떻게 줄어드는지 압니다.
- 학습 · 시험 때 이미지 크기를 바꿔 쓰는 스케일 지터링이 왜 효과가 있는지 압니다.
- 완전연결층을 합성곱으로 바꿔 이미지 전체에 한 번에 적용하는 밀집 평가(dense evaluation) 를 압니다.
- VGG 특징이 다른 데이터셋에서도 잘 통해 사전학습 특징 추출기의 대표가 된 이유를 압니다.
초록 (번역)
이 연구에서는 대규모 이미지 인식 환경에서 합성곱 신경망의 깊이가 정확도에 어떤 영향을 미치는지 조사합니다. 주된 기여는 아주 작은(3 × 3) 합성곱 필터를 쓰는 구조로 깊이를 점점 늘린 신경망들을 철저하게 평가한 것으로, 이를 통해 깊이를 가중치 층 16~19개까지 늘리면 기존 최고 수준의 구성보다 크게 개선할 수 있음을 보였습니다. 이 결과는 우리의 ImageNet Challenge 2014 참가작의 바탕이 되었고, 우리 팀은 위치 찾기(localisation) 부문과 분류(classification) 부문에서 각각 1위와 2위를 차지했습니다. 또한 우리가 얻은 표현이 다른 데이터셋에도 잘 일반화되어, 그곳에서도 최고 수준의 결과를 낸다는 것을 보입니다. 컴퓨터 비전에서 깊은 시각 표현을 활용하는 후속 연구를 돕기 위해, 성능이 가장 좋은 합성곱 신경망 모델 두 개를 공개했습니다.
무엇을 풀었나
2012년 AlexNet 이후 합성곱 신경망(ConvNet, 이미지를 작은 창으로 훑으며 특징을 뽑는 신경망)이 이미지 인식의 주류가 됐습니다. 이후 연구들은 첫 층의 창 크기와 보폭(stride)을 줄이거나, 여러 크기의 이미지로 학습 · 시험하는 식으로 AlexNet을 다듬었습니다.
그런데 "층을 더 깊게 쌓으면 정말 좋아지는가"는 공정하게 비교된 적이 드물었습니다. 깊이를 늘리면 필터 크기 · 채널 수 · 계산량이 함께 바뀌어, 무엇 때문에 좋아졌는지 가려내기 어려웠기 때문입니다.
이 논문은 다른 설계는 모두 고정하고 깊이만 늘립니다. 이게 가능했던 열쇠는 모든 층에 3×3이라는 아주 작은 필터를 쓴 것입니다. 필터가 작으니 층을 많이 쌓아도 파라미터가 폭발하지 않습니다.
핵심 아이디어
1. 작은 필터를 여러 겹 쌓기 (3×3 스택)
한 문장 직관: 큰 돋보기 한 개로 넓게 보는 대신, 작은 돋보기 세 개를 차례로 겹쳐 같은 넓이를 보는 것입니다(해설용 비유). 렌즈 사이마다 "판단(비선형)"을 한 번씩 더 넣을 수 있습니다.
단계별 설명
- 3×3 필터 하나는 입력의 3×3 구역을 봅니다. 논문은 이를 "왼쪽/오른쪽, 위/아래, 가운데를 구별할 수 있는 가장 작은 크기"라고 설명합니다.
- 그 위에 3×3 층을 하나 더 쌓으면, 위층의 한 칸은 아래층의 3×3 칸을 보고, 그 각각은 다시 입력의 3×3을 봅니다. 그래서 입력 기준으로 5×5를 보게 됩니다.
- 세 층을 쌓으면 7×7을 봅니다. 즉 3×3 세 층 = 7×7 한 층과 보는 넓이(유효 수용 영역)가 같습니다.
- 차이는 두 가지입니다. ① 층 사이마다 ReLU가 들어가 비선형이 3번이 됩니다. ② 파라미터가 줄어듭니다.
수식 — 파라미터 수 비교 (입력 · 출력 채널이 모두 일 때, 편향 생략)
기호 풀이
| 기호 | 뜻 |
|---|---|
| 채널 수(특징 지도의 장수). 입력과 출력이 같다고 가정 | |
| 3×3 필터 하나가 개 입력 채널을 보고, 그런 필터가 개 있음 → | |
| 앞의 | 이런 층이 세 개 |
| 7×7 필터 개, 각 필터가 개 채널을 봄 |
는 보다 약 81% 많습니다(논문 수치). 논문은 이것을 "7×7 필터를 3×3 필터들로 분해하도록 강제하는 일종의 규제"로 볼 수 있다고 설명합니다.
숫자로 해 보기 (해설용 예)
채널 인 아주 작은 경우를 손으로 세어 봅니다.
- 3×3 한 층: 필터 한 개 = 개 가중치, 필터 2개 → 개
- 3×3 세 층: 개 ()
- 7×7 한 층: 필터 한 개 = 개, 필터 2개 → 개 ()
, 약 81% 더 많습니다. 보는 넓이는 7×7로 같은데 가중치는 절반 남짓입니다.
수용 영역도 1차원으로 세어 볼 수 있습니다. 입력 칸 번호가 1~7일 때, 3층의 가운데 칸 하나는 2층의 3칸(3~5)을, 그 3칸은 1층의 5칸(2~6)을, 그 5칸은 입력의 7칸(1~7)을 봅니다. 3 → 5 → 7로 층마다 2칸씩 넓어집니다.
왜 이렇게 했나
AlexNet은 첫 층에 11×11(보폭 4), 이후 연구들은 7×7(보폭 2)을 썼습니다. 큰 필터는 한 번에 넓게 보지만 파라미터가 많고 비선형이 한 번뿐입니다. 3×3을 쌓으면 같은 넓이를 더 적은 가중치로, 더 복잡한 판단 함수로 볼 수 있어 깊게 쌓기에 유리합니다.
2. 규칙적인 전체 구조 (A~E 다섯 가지 깊이)
한 문장 직관: 같은 모양의 블록을 "칸 수만 다르게" 쌓은 레고 탑 다섯 개를 만들어 높이만 비교한 실험입니다(해설용 비유).
단계별 설명
- 입력은 224×224 RGB 이미지입니다. 전처리는 학습셋 평균 RGB 값을 각 픽셀에서 빼는 것뿐입니다.
- 합성곱 층은 모두 3×3, 보폭 1, 패딩 1입니다. 그래서 합성곱을 지나도 가로세로 크기가 그대로입니다.
- 크기는 2×2 최대 풀링(보폭 2) 다섯 번으로만 줄입니다. 한 번에 가로세로가 절반이 됩니다.
- 채널 수는 첫 층 64에서 시작해 풀링을 지날 때마다 두 배가 되어 512에서 멈춥니다(64 → 128 → 256 → 512 → 512).
- 끝에는 완전연결층(FC) 3개가 있습니다. 4096, 4096, 그리고 1000개 클래스용 1000입니다. 마지막은 소프트맥스입니다.
- 모든 은닉층에 ReLU를 씁니다.
다섯 구성의 차이 (논문 표 1 · 2 요약)
| 구성 | 가중치 층 수 | 특징 | 파라미터(백만) |
|---|---|---|---|
| A | 11 (합성곱 8 + FC 3) | 가장 얕음 | 133 |
| A-LRN | 11 | A에 국소 응답 정규화(LRN) 추가 | 133 |
| B | 13 | 앞 두 단계에 3×3 층 추가 | 133 |
| C | 16 | B에 1×1 합성곱 3개 추가 | 134 |
| D | 16 | C의 1×1을 3×3으로 | 138 |
| E | 19 (합성곱 16 + FC 3) | 가장 깊음 | 144 |
D가 흔히 말하는 VGG-16, E가 VGG-19입니다. 깊이가 크게 늘어도 파라미터는 133M → 144M로 조금만 늡니다. 파라미터 대부분이 끝의 FC층에 있기 때문입니다.
수식 — 크기 변화
합성곱(3×3, 보폭 1, 패딩 1)의 출력 크기와 풀링(2×2, 보폭 2)의 출력 크기는 다음과 같습니다.
기호 풀이
- : 입력 특징 지도의 가로(또는 세로) 칸 수
- , : 필터 · 풀링 창 크기
- 패딩 : 가장자리에 0을 한 줄씩 덧대는 것
- 분모 , : 보폭(창을 몇 칸씩 옮기나)
숫자로 해 보기 (해설용 계산)
224에서 풀링 다섯 번: . 마지막 특징 지도는 7×7×512입니다. 첫 FC층이 받는 입력은 개 값이고, 이를 4096개로 잇는 가중치만 억 개입니다. 전체 133M~144M 중 큰 몫이 여기서 나온다는 것을 손으로 확인할 수 있습니다(이 분해는 해설용 계산이며, 논문은 구성별 총 파라미터 수만 제시합니다).
왜 이렇게 했나
깊이 효과를 공정하게 재려면 나머지를 고정해야 합니다. 그래서 모든 구성이 같은 원칙(3×3, 같은 풀링 위치, 같은 FC)을 따르고 층 수만 다릅니다. LRN은 A-LRN 실험에서 성능을 올리지 못하고 메모리 · 시간만 늘려서 더 깊은 구성(B~E)에서는 뺐습니다.
3. 1×1 합성곱 — 넓이는 그대로, 비선형만 추가
한 문장 직관: 1×1 합성곱은 한 픽셀 위치에서 채널들끼리만 섞는 "작은 완전연결층"입니다(해설용 비유).
단계별 설명
- 1×1 필터는 주변 픽셀을 보지 않고, 같은 위치의 채널 값들만 가중합합니다.
- 그래서 수용 영역을 넓히지 않습니다.
- 그 뒤에 ReLU가 붙으므로 비선형이 하나 늘어납니다.
- 구성 C는 이 1×1을 세 군데 넣었고, D는 같은 자리에 3×3을 넣었습니다.
수식
위치 의 입력 채널 벡터를 라 하면
- , : 입력 · 출력 채널 수 (논문 구성 C에서는 둘이 같음)
- , : 모든 위치가 공유하는 가중치 · 편향
숫자로 해 보기 (해설용 예)
채널 2개짜리 픽셀 , , 이라 하면 이고, ReLU를 지나 가 됩니다. 주변 픽셀은 전혀 쓰지 않았습니다.
결과로 본 교훈: C는 B보다 좋았지만(비선형 추가의 효과), 같은 깊이의 D보다 나빴습니다. 논문은 "비선형도 도움이 되지만, 3×3처럼 공간 맥락을 보는 필터도 중요하다"고 해석합니다.
4. 학습 방법 — 얕은 망으로 깊은 망을 시작하기
한 문장 직관: 높은 탑을 처음부터 쌓기 어려우니, 낮은 탑(A)을 먼저 세우고 그 아래 · 위층을 옮겨 와 높은 탑의 뼈대로 쓰는 방식입니다(해설용 비유).
단계별 설명 (논문 설정)
- 다항 로지스틱 회귀(소프트맥스 교차 엔트로피) 목표를 미니배치 경사하강법 + 모멘텀으로 최적화합니다.
- 배치 256, 모멘텀 0.9, 가중치 감쇠(L2) , 앞 두 FC층에 드롭아웃 0.5.
- 학습률은 에서 시작해, 검증 정확도가 멈추면 10분의 1로 줄입니다. 총 3번 줄였고 37만 반복(74 에폭)에서 멈췄습니다.
- 초기화: 먼저 얕은 A를 무작위 초기화로 학습합니다. 더 깊은 망은 앞 합성곱 4층과 끝 FC 3층을 A의 값으로 채우고, 가운데 층만 무작위로 둡니다. 무작위 값은 평균 0 · 분산 정규분포, 편향은 0입니다.
- 논문은 제출 뒤에 Glorot & Bengio(2010)의 무작위 초기화로도 사전학습 없이 초기화할 수 있음을 알았다고 덧붙입니다.
수식 — 모멘텀 경사하강 + 가중치 감쇠 (표준 형태로 단순화한 설명용 식)
| 기호 | 뜻 | 논문 값 |
|---|---|---|
| 가중치 | — | |
| 속도(이전 이동 방향의 누적) | — | |
| 모멘텀 | 0.9 | |
| 학습률 | 시작 | |
| L2 감쇠 계수 | ||
| 손실의 기울기 | — |
숫자로 해 보기 (해설용 예 — 논문 수치 아님)
, 기울기 , , , , 로 두면 , 입니다. 다음 단계에 기울기가 같다면 로 이동 폭이 커집니다. 같은 방향으로 계속 내려가면 가속되는 것이 모멘텀입니다.
왜 이렇게 했나
깊은 망은 나쁜 초기화로 시작하면 기울기가 불안정해 학습이 멈출 수 있습니다(당시엔 배치 정규화가 나오기 전입니다). 그래서 얕은 망의 값을 빌려 출발점을 안정시켰습니다. 논문은 파라미터가 더 많고 깊은데도 AlexNet보다 적은 에폭에 수렴한 이유를 ① 깊이와 작은 필터가 주는 암묵적 규제 ② 일부 층의 사전 초기화로 추측합니다.
5. 스케일 지터링 — 크기를 바꿔 가며 학습 · 시험
한 문장 직관: 같은 고양이 사진을 확대 · 축소해 가며 보여 주면, 가까이 찍힌 고양이도 멀리 찍힌 고양이도 알아보게 됩니다(해설용 비유).
단계별 설명
- 학습 이미지의 짧은 변을 로 맞춘 뒤 224×224를 무작위로 잘라냅니다. 좌우 뒤집기 · RGB 색 변화도 섞습니다.
- 고정 스케일: 또는 . 384 망은 256 망의 가중치로 시작하고 학습률을 으로 낮춥니다.
- 다중 스케일(지터링): 이미지마다 를 에서 무작위로 뽑습니다. 속도를 위해 로 학습한 망을 미세조정해 만듭니다.
- 시험 때도 짧은 변을 로 맞추고, 여러 로 돌린 결과의 확률을 평균할 수 있습니다.
수식 — 시험 스케일 고르기 (논문 규칙)
- : 학습 때 짧은 변 길이, : 시험 때 짧은 변 길이
- ,
숫자로 해 보기 (논문 규칙에 대입)
- 이면
- 이면
- 지터링이면
잘라낸 224×224가 짧은 변 256 이미지에서는 거의 전체를, 512 이미지에서는 일부(물체의 부분)를 담습니다. 같은 물체를 여러 "확대 배율"로 보게 되는 셈입니다.
왜 이렇게 했나
실제 사진 속 물체는 크기가 제각각입니다. 한 크기로만 학습하면 다른 크기에 약해집니다. 지터링은 데이터를 크기 방향으로 늘리는 증강이라 비용이 거의 없이 다중 스케일 통계를 배우게 합니다.
6. 밀집 평가 — FC층을 합성곱으로 바꾸기
한 문장 직관: 사진을 조각조각 잘라 여러 번 넣는 대신, 망 자체를 "어떤 크기 사진이든 통째로 받는 창틀"로 바꿉니다(해설용 비유).
단계별 설명
- 첫 FC층(7×7×512 → 4096)을 7×7 합성곱으로, 나머지 두 FC층을 1×1 합성곱으로 바꿉니다. 가중치는 같은 값을 모양만 바꿔 씁니다.
- 이제 망 전체가 합성곱이라 224보다 큰 이미지를 그대로 넣을 수 있습니다.
- 출력은 1000채널짜리 클래스 점수 지도가 됩니다(위치마다 점수).
- 이를 공간 평균해 1000개 점수 하나로 만들고, 좌우 뒤집은 이미지 결과와 평균합니다.
숫자로 해 보기 (해설용 계산)
짧은 변 384, 정사각형 이미지라 하면 다섯 번 풀링 뒤 , 즉 12×12×512 지도가 나옵니다. 7×7 합성곱을 보폭 1로 적용하면 , 6×6개 위치의 클래스 점수가 나옵니다. 36개 점수를 평균하면 이미지 하나의 점수가 됩니다. 224 이미지라면 → , 원래 FC와 똑같이 한 위치만 나옵니다.
왜 이렇게 했나
여러 조각(multi-crop)을 잘라 넣으면 조각마다 망을 다시 계산해야 해서 비효율적입니다. 밀집 평가는 한 번 계산으로 이미지 전체를 봅니다. 논문은 조각 평가가 약간 더 좋고 둘을 합치면 더 좋다고 보고하면서, 그 이유를 가장자리 처리(조각은 0 패딩, 밀집 평가는 이웃 픽셀이 채움)의 차이로 추정합니다.
7. 처리 흐름
flowchart LR
A["입력 이미지<br/>짧은 변 S로 크기 조정"] --> B["224×224 무작위 자르기<br/>뒤집기 · 색 변화"]
B --> C["3×3 합성곱 묶음 ×5단계<br/>64→128→256→512→512 채널"]
C --> D["단계마다 2×2 최대 풀링<br/>224→112→56→28→14→7"]
D --> E["FC 4096 → FC 4096 → FC 1000"]
E --> F["소프트맥스<br/>1000개 클래스 확률"]
F --> G["시험: FC를 합성곱으로 바꿔<br/>여러 Q에서 밀집 평가 후 평균"]결과
모든 수치는 논문이 보고한 값입니다. 데이터는 ILSVRC-2012(1000개 클래스, 학습 130만 · 검증 5만 · 시험 10만 장)이고, 평가는 top-1 오류(1등 예측이 틀린 비율)와 top-5 오류(정답이 상위 5개 예측 안에 없는 비율)입니다.
단일 스케일 평가 (검증셋, 논문 표 3 요약)
| 구성 | 학습 S | top-1 (%) | top-5 (%) |
|---|---|---|---|
| A | 256 | 29.6 | 10.4 |
| A-LRN | 256 | 29.7 | 10.5 |
| B | 256 | 28.7 | 9.9 |
| C | [256; 512] | 27.3 | 8.8 |
| D | [256; 512] | 25.6 | 8.1 |
| E | [256; 512] | 25.5 | 8.0 |
- 깊어질수록 오류가 줄었고, 19층(E)에서 포화했습니다.
- LRN은 도움이 되지 않았습니다(A 29.6 vs A-LRN 29.7).
- B의 3×3 두 층 쌍을 5×5 한 층으로 바꾼 얕은 망은 top-1 오류가 B보다 7% 높았습니다. "작은 필터 깊은 망 > 큰 필터 얕은 망"의 직접 증거입니다.
- 학습 스케일 지터링이 고정 스케일보다 확실히 좋았습니다.
다중 스케일 · 조각 평가 · 앙상블
- 시험 때 여러 스케일을 쓰면 단일 모델 최고가 검증 top-1/top-5 24.8%/7.5%였고, 시험셋에서 E가 top-5 7.3%를 냈습니다.
- 조각 평가와 밀집 평가를 합치면 D 24.4%/7.2%, E 24.4%/7.1%였습니다.
- ILSVRC-2014 제출 당시 7개 망 앙상블은 시험 오류 7.3%였습니다. 제출 뒤 D · E 두 망만 합쳐 밀집 평가 7.0%, 조각 · 밀집 결합 6.8%로 낮췄습니다.
- 분류 부문 2위였고, 1위 GoogLeNet은 6.7%였습니다. 단일 망 기준으로는 VGG가 7.0%로 단일 GoogLeNet보다 0.9% 앞섰다고 논문은 보고합니다.
- 위치 찾기 부문에서는 오류 25.3%로 1위를 했습니다.
다른 데이터셋으로 옮기기 (부록 B)
ILSVRC로 학습한 망의 마지막 FC를 떼고, 끝에서 두 번째 층의 4096차원 값을 특징으로 써서 선형 SVM만 새로 학습했습니다(미세조정 없음).
| 데이터셋 | 지표 | VGG D & E |
|---|---|---|
| VOC-2007 | mAP | 89.7 |
| VOC-2012 | mAP | 89.3 |
| Caltech-101 | 평균 클래스 재현율 | 92.7 ± 0.5 |
| Caltech-256 | 평균 클래스 재현율 | 86.2 ± 0.3 |
VOC-2012 행동 분류에서도 이미지만 쓸 때 79.2, 사람 상자까지 쓸 때 84.0 mAP로 최고 수준이었습니다.
구현: Caffe를 고쳐 GPU 4개 데이터 병렬로 학습했고, 단일 GPU 대비 3.75배 빨랐습니다. NVIDIA Titan Black 4개로 망 하나에 구조에 따라 2~3주가 걸렸습니다.
왜 중요한가 · 이후 영향
- "깊이가 중요하다"를 깔끔하게 증명했습니다. 조건을 고정한 비교라 결론이 설득력 있었고, 이후 ResNet이 "그럼 100층 넘게는?"이라는 질문을 이어받습니다.
- 3×3 쌓기가 표준이 됐습니다. 이후 대부분의 합성곱 망(ResNet 포함)이 3×3을 기본 블록으로 씁니다.
- 사전학습 특징 추출기의 대명사가 됐습니다. 공개된 VGG-16/19 가중치는 물체 검출 · 분할 · 캡션 생성 · 질감 인식 등에 널리 쓰였습니다. 논문도 Girshick 외가 AlexNet 대신 16층 모델을 써서 검출 최고 성적을 냈다고 언급합니다.
- 구조가 단순해 교육용으로도 좋습니다. 같은 패턴의 반복이라 합성곱 망을 처음 배울 때 기준 모델로 자주 쓰입니다.
한계 · 주의할 점
- 무겁습니다. 파라미터가 1억 3천만~1억 4천만 개이고, 대부분이 FC층에 몰려 있습니다. 후속 ResNet 논문은 VGG-19의 연산량을 196억 FLOPs로 보고합니다.
- 19층에서 포화했습니다. 논문 스스로 E에서 오류가 포화한다고 썼습니다. 이 방식으로 더 깊게 쌓는 길은 ResNet의 잔차 연결이 나오고서야 열렸습니다.
- 학습이 까다로웠습니다. 얕은 망의 값을 빌려 초기화해야 했고(이후 더 나은 초기화 방법이 나옴), 배치 정규화도 없던 시절이라 2~3주가 걸렸습니다.
- 분류 1위는 아니었습니다. 같은 해 GoogLeNet이 더 적은 연산으로 분류 1위를 했습니다. VGG의 강점은 최고 점수보다 단순함과 옮겨 쓰기 쉬움에 있습니다.
이어서 읽을 것
- 앞: AlexNet(2012) — VGG가 기준으로 삼은 구조 · 학습 방식
- 앞: 드롭아웃 — VGG도 FC층에 0.5로 사용
- 뒤: ResNet — VGG 철학(3×3, 채널 두 배)을 이어받아 152층까지
- 뒤: 배치 정규화 — 깊은 망을 사전 초기화 없이 학습하게 한 방법
- 뒤: ViT — 합성곱 대신 트랜스포머로 이미지를 보는 방향
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 합성곱 신경망(ConvNet) | 작은 창(필터)을 이미지 위로 밀며 특징을 뽑는 신경망 |
| 필터 · 커널 | 합성곱에서 쓰는 작은 가중치 격자(예: 3×3) |
| 수용 영역(receptive field) | 한 출력 칸이 입력에서 실제로 보는 넓이 |
| 보폭(stride) · 패딩(padding) | 창을 몇 칸씩 옮기나 · 가장자리에 0을 덧대는 것 |
| 최대 풀링(max-pooling) | 작은 구역에서 가장 큰 값만 남겨 크기를 줄임 |
| 완전연결층(FC) | 모든 입력과 모든 출력이 연결된 층 |
| ReLU | 음수를 0으로 바꾸는 활성화 함수 |
| LRN | AlexNet이 쓴 국소 응답 정규화. VGG 실험에선 효과 없음 |
| 스케일 지터링 | 학습 · 시험 때 이미지 크기를 무작위로 바꾸는 증강 |
| 밀집 평가(dense evaluation) | FC를 합성곱으로 바꿔 이미지 전체에 한 번에 적용 |
| top-1 / top-5 오류 | 1등 예측이 틀린 비율 / 정답이 상위 5개에 없는 비율 |
| 앙상블 | 여러 모델의 예측 확률을 평균해 쓰는 것 |
| mAP | 클래스별 평균 정밀도를 다시 평균한 검출 · 분류 지표 |
스스로 점검
1. 3×3 합성곱 세 층과 7×7 합성곱 한 층은 무엇이 같고 무엇이 다른가요? 답: 보는 넓이(유효 수용 영역)는 7×7로 같습니다. 다른 점은 ① 3×3 세 층은 ReLU가 세 번 들어가 판단 함수가 더 복잡하고 ② 파라미터가 로 보다 적다는 것입니다.
2. 구성 C(1×1 포함)가 D(3×3만)보다 나빴다는 결과는 무엇을 뜻하나요? 답: 1×1로 비선형을 늘리는 것도 도움은 되지만(C가 B보다 좋음), 주변 픽셀을 함께 보는 3×3처럼 공간 맥락을 잡는 필터가 더 중요하다는 뜻입니다.
3. VGG 특징을 다른 데이터셋에 옮길 때 무엇을 바꾸고 무엇을 그대로 두었나요? 답: 마지막 1000분류 FC층만 떼고, 끝에서 두 번째 층의 4096차원 값을 특징으로 써서 선형 SVM만 새로 학습했습니다. 합성곱 망의 가중치는 미세조정 없이 그대로 두었습니다.
다음에 볼 것
이 글을 이해했다면 이어서 보면 좋은 항목입니다.
- 잔차 학습으로 깊은 신경망 학습하기 (ResNet) — 층을 건너뛰는 지름길로 '차이만' 배우게 해 152층 망도 쉽게 학습되게 한 논문
출처
- 원문: arxiv.org/abs/1409.1556 (2014 · Karen Simonyan 외)
AI 원리부터 이해하기 · 딥러닝 기초 모듈
딥러닝 기초 모듈 학습
이 글은 딥러닝 기초 모듈의 학습 자료입니다. 전체 29개 자료 중 18번째입니다.
출처·원문
원문 보기요약만