본문 바로가기
C.W.K.
Stream
Lesson 06 of 08 · published

너비, 깊이, 표현력

~18 min · capacity, depth, scaling

Level 0호기심
0 XP0/73 lessons0/11 achievements
0/120 XP to next level120 XP to go0% complete

비슷해 보여도 다른 두 축

너비는 층마다 은닉 유닛을 더 두어, 각 추상화 수준에서 신경망이 병렬로 계산할 수 있는 특징의 수를 늘려. 깊이는 층을 더 쌓아, 단순한 특징을 복잡한 특징으로 조합하는 단계의 수를 늘리고.

보편 근사 정리에 따르면, 은닉층이 하나뿐이어도 너비가 충분하면 모든 연속 함수를 근사할 수 있어. 하지만 비전, 텍스트, 코드처럼 계층적 구조를 지닌 문제에서는 깊은 신경망이 넓고 얕은 신경망보다 매개변수를 지수적으로 효율 있게 사용해. 그래서 매개변수 수가 같다면 깊은 신경망이 넓고 얕은 신경망을 이기는 경우가 많아.

팁: 하나만 고를 수 있다면, 조합적 구조가 있는 자연 데이터에는 보통 깊이를 늘리는 편이 가장 도움이 돼. 너비는 하나의 추상화 수준에서 더 다양한 특징을 다룰 때 가장 유용하고. 현대적인 설계는 대부분 적당한 너비를 유지하면서 깊게 쌓지, 그 반대로 만들지 않아.

주의: 깊다고 저절로 학습되진 않아

현대적인 학습 도구가 나오기 전에는 50층을 단순히 쌓으면 신경망이 좋아지기는커녕 오히려 나빠졌어. 기울기 소실, 죽은 뉴런, 불안정한 활성화가 모두 학습을 망쳤거든. ResNet, 배치 정규화, 세심한 초기화, 건너뛰기 연결이 등장한 이유도 하나야. 깊이를 늘린 만큼 성능으로 보답하게 만들기 위해서지.

너비에도 주의할 점이 있어. 어텐션에서는 은닉 차원의 제곱에 비례해 VRAM 사용량이 늘고, MLP 층에서는 은닉 차원에 선형으로 비례해 늘어나. 너비가 4096인 층은 실현 가능하지만, 16384인 층은 단일 H100에서도 구현하기 어려운 경우가 많아.

실전에서는 무엇이 중요할까

연구와 본격적인 운영 환경에서는 규모 확장 법칙에 따라 매개변수와 토큰을 늘릴수록 알려진 곡선을 따르며 안정적으로 손실이 줄어들어. 학습자라면 검증된 아키텍처와 매개변수 수를 골라 다루기 쉬운 문제부터 학습해 봐. 그런 다음 너비와 깊이를 한 번에 하나씩 조절하며 실험하는 게 올바른 순서야.

원칙: 모델 용량은 공짜가 아니야. 어느 축을 먼저 키울지는 조합 단계가 부족한지, 병렬로 다룰 특징의 수가 부족한지에 따라 달라져.

Code

동일한 매개변수 예산에서 너비와 깊이 비교·python
import torch.nn as nn

def make_mlp(in_dim, widths, out_dim):
    layers, prev = [], in_dim
    for w in widths:
        layers += [nn.Linear(prev, w), nn.ReLU()]; prev = w
    layers += [nn.Linear(prev, out_dim)]
    return nn.Sequential(*layers)

wide_shallow = make_mlp(784, [512, 512],   10)
deep_narrow  = make_mlp(784, [128]*16,     10)

def n_params(m): return sum(p.numel() for p in m.parameters())
print("wide_shallow:", n_params(wide_shallow))
print("deep_narrow: ", n_params(deep_narrow))

External links

Exercise

매개변수 수가 같은 MLP 두 개를 만들어 봐. 하나는 넓고 얕은 구조([512, 512]), 다른 하나는 좁고 깊은 구조([128]*16)로 구성해. 두 모델을 모두 단순하지 않은 데이터셋으로 학습한 다음, 어느 쪽이 더 빨리 수렴하고 어느 쪽이 더 잘 일반화하는지 비교해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.