NVIDIA NCA-GENL 시험 노트개념 정리16 MIN
신경망 순전파와 역전파
퍼셉트론 한 칸의 계산에서 시작해 ReLU·시그모이드·소프트맥스가 앉는 자리, 순전파와 연쇄법칙 역전파, 기울기 소실, 그리고 SGD와 Adam·학습률·배치 크기·에폭을 정리합니다.
트랜스포머도 결국 신경망입니다. 어텐션이라는 부품이 특별할 뿐, 값을 앞으로 흘려 답을 내고 오차를 뒤로 흘려 가중치를 고치는 뼈대는 같습니다. 그 뼈대를 이 노트에서 세웁니다 — 한 칸의 계산부터 층을 쌓는 이유, 오차가 뒤로 흐르는 방식, 그리고 학습을 굴리는 설정값들입니다.
퍼셉트론에서 은닉층까지
한 칸의 계산
퍼셉트론(perceptron)은 입력에 가중치를 곱해 더하고 편향을 보탠 뒤 활성화 함수를 통과시키는 계산 한 칸입니다.
가중치 는 「이 입력을 얼마나 믿을지」이고, 편향(bias) 는 「아무 입력이 없어도 기본으로 얼마나 켜져 있을지」입니다. 편향이 없으면 결정 경계가 항상 원점을 지나야 해서 표현할 수 있는 함수가 줄어듭니다.
, , 이면 입니다. 이 한 줄이 수십억 번 되풀이되는 것이 LLM의 연산량입니다.
은닉층이 여는 비선형
층 하나짜리 퍼셉트론은 직선(정확히는 초평면)으로 가를 수 있는 문제만 풉니다. XOR처럼 직선 하나로 못 가르는 배치는 아무리 학습해도 못 맞힙니다.
그래서 입력과 출력 사이에 은닉층(hidden layer)을 넣습니다. 다만 층을 쌓는 것만으로는 부족합니다 — 활성화 함수 없이 선형 변환만 겹치면 그 합성도 결국 하나의 선형 변환이라 층을 쌓은 효과가 사라집니다. 비선형 활성화 함수가 층 사이에 끼어야 비로소 깊이가 표현력이 됩니다.
층과 파라미터 수
파라미터 수를 세는 법은 시험에 계산 문항으로 나옵니다. 완전연결층 하나의 파라미터는 (입력 차원 × 출력 차원) + 출력 차원입니다. 뒤의 항이 뉴런마다 하나씩 붙는 편향입니다.
입력 4, 은닉 8, 출력 3인 신경망이면 과 을 더해 67개입니다.
import torch.nn as nn
model = nn.Sequential(
nn.Linear(4, 8), # 4*8 + 8 = 40
nn.ReLU(),
nn.Linear(8, 3), # 8*3 + 3 = 27
)
print(sum(p.numel() for p in model.parameters())) # 67
활성화 함수 셋
ReLU
ReLU는 음수를 0으로 자르고 양수는 그대로 두는 함수 입니다. 계산이 비교할 것 하나뿐이라 빠르고, 양수 구간의 기울기가 항상 1이라 층을 깊게 쌓아도 기울기가 잘 살아남습니다. 그래서 은닉층의 기본값입니다.
약점은 음수 구간에서 기울기가 0이라 한번 죽은 뉴런이 되살아나지 못한다는 점입니다(dying ReLU). 음수 쪽에 작은 기울기를 남기는 Leaky ReLU나, 트랜스포머가 즐겨 쓰는 GELU가 그 자리를 메웁니다.
시그모이드
시그모이드는 어떤 실수든 과 사이로 눌러 주는 함수입니다.
출력을 확률로 읽을 수 있어 이진 분류의 출력층에 씁니다. 반대로 은닉층에는 잘 쓰지 않는데, 입력이 조금만 크거나 작아지면 곡선이 평평해져 기울기가 0에 가까워지기 때문입니다. 도함수의 최댓값이 라는 사실이 다음 절의 기울기 소실로 이어집니다.
소프트맥스
소프트맥스는 여러 값을 한꺼번에 받아 전부 더하면 1이 되는 확률 분포로 바꾸는 함수입니다.
갈래가 셋 이상인 다중 클래스 분류의 출력층이 제자리이고, LLM이 어휘 수만 개짜리 점수(로짓)를 다음 토큰의 확률로 바꿀 때 쓰는 함수도 이것입니다. 시그모이드는 각 출력이 독립이라 합이 1이 아니고, 소프트맥스는 서로 경쟁해 합이 1이 됩니다 — 「여러 라벨이 동시에 참일 수 있는가」가 둘을 가르는 질문입니다.
순전파와 역전파
순전파의 흐름
순전파(forward propagation)는 입력을 첫 층에 넣어 층마다 를 계산하고 활성화 함수를 통과시키기를 되풀이해 출력까지 가는 과정입니다. 출력이 나오면 손실 함수가 정답과 비교해 손실 하나를 냅니다. 여기까지는 값이 앞으로만 흐릅니다.
연쇄법칙과 기울기
역전파(backpropagation)는 그 손실을 파라미터마다의 기울기로 되돌려 나눠 주는 계산입니다. 원리는 미적분의 연쇄법칙입니다 — 합성 함수의 미분이 각 단계 미분의 곱이라는 규칙입니다.
출력 쪽에서 계산한 기울기를 뒤로 넘기며 각 층에서 자기 몫을 곱해 나가면, 층 하나하나가 손실에 얼마나 기여했는지가 나옵니다. 역전파는 기울기를 구하는 방법이고 그 기울기로 실제 값을 고치는 것은 옵티마이저의 일입니다 — 시험에서 이 둘을 바꿔 놓은 보기가 자주 나옵니다.
기울기 소실
연쇄법칙이 곱셈인 것이 문제가 됩니다. 1보다 작은 수를 계속 곱하면 앞쪽 층에 닿을 즈음에는 기울기가 0에 가까워집니다. 이것이 기울기 소실(vanishing gradient)이고, 앞쪽 층이 사실상 학습되지 않는 상태입니다.
시그모이드 도함수의 최댓값이 이므로 여섯 층만 지나도 로 줄어듭니다. 막는 길은 셋입니다 — 기울기가 1인 구간을 가진 ReLU 계열을 쓰고, 기울기가 층을 건너뛸 통로인 잔차 연결을 넣고, 값의 분포를 다시 맞추는 정규화 층을 둡니다. 트랜스포머 블록이 이 셋을 모두 갖고 있고, 그 구조는 03편에서 봅니다.
옵티마이저와 학습 설정
SGD와 모멘텀
옵티마이저(optimizer)는 역전파가 구한 기울기로 파라미터를 실제로 고치는 규칙입니다. 가장 단순한 SGD는 기울기의 반대 방향으로 학습률만큼 갑니다.
여기에 모멘텀(momentum)을 더하면 이전 걸음의 방향을 관성처럼 일부 이어받습니다. 좁고 긴 골짜기에서 좌우로 튀는 대신 골짜기를 따라 미끄러지므로 수렴이 빨라집니다.
Adam
Adam은 파라미터마다 학습률을 다르게 조절하는 옵티마이저입니다. 기울기의 이동평균(1차 모멘트)으로 방향을 안정시키고, 기울기 제곱의 이동평균(2차 모멘트)으로 자주 크게 흔들리는 파라미터의 보폭을 줄입니다.
손이 덜 가고 대체로 잘 수렴해 딥러닝과 LLM 학습의 기본값이 되었습니다. 가중치 감쇠를 따로 떼어 낸 AdamW가 트랜스포머 학습에 흔히 쓰이는 변형입니다. 대신 파라미터마다 상태 둘을 들고 있어야 해서 메모리를 파라미터의 몇 배로 먹습니다 — 큰 모델을 파인튜닝할 때 GPU 메모리가 터지는 이유의 상당 부분이 이 옵티마이저 상태입니다.
학습률·배치 크기·에폭
셋은 서로 다른 것을 정합니다. 학습률은 한 걸음의 보폭, 배치 크기는 한 걸음을 계산하는 데 쓰는 샘플 수, 에폭은 학습 데이터 전체를 몇 번 훑는가입니다.
한 에폭의 스텝 수는 샘플 수 ÷ 배치 크기입니다. 5만 건을 배치 250으로 10에폭 돌리면 에폭마다 200스텝, 모두 2,000스텝입니다.
배치를 키우면 기울기가 덜 흔들려 학습이 안정되고 GPU를 채워 쓰지만, 메모리를 더 먹고 지나치게 크면 일반화가 나빠지는 것으로 알려져 있습니다. 배치를 키울 때 학습률도 함께 올리는 관행이 여기서 나옵니다. 시험은 이 셋을 「무엇을 바꿔야 하는가」 형태로 묻습니다 — 손실이 발산하면 학습률, 메모리가 터지면 배치 크기, 아직 손실이 내려가는 중인데 학습이 끝났으면 에폭입니다.
연습 문제
, , 인 뉴런에 ReLU를 씌운 출력은?
①
②
③
④③. 이고 양수이므로 ReLU를 지나도 그대로 입니다.입력 4 → 은닉 8 → 출력 3인 완전연결 신경망의 파라미터 수는? (편향 포함)
①
②
③
④③. 첫 층이 , 둘째 층이 이므로 합쳐 입니다. 편향을 빼먹으면 56이 나옵니다.학습 데이터 50,000건을 배치 크기 250으로 10에폭 학습합니다. 총 파라미터 갱신 횟수는?
①
②
③
④③. 한 에폭은 스텝이고, 10에폭이면 스텝입니다. 스텝마다 한 번씩 갱신합니다.문서를 「스포츠·정치·경제·연예」 중 하나로 분류하는 모델의 출력층에 알맞은 것은?
① 시그모이드 4개
② 소프트맥스
③ ReLU
④ 활성화 함수 없음②. 갈래가 넷이고 하나만 참이므로 서로 경쟁해 합이 1이 되는 소프트맥스가 맞습니다. ①은 라벨이 동시에 여럿 참일 수 있는 다중 라벨 문제의 방식입니다.시그모이드를 은닉층에 쓴 깊은 신경망에서 앞쪽 층의 가중치가 거의 변하지 않습니다. 도함수 최댓값이 일 때 여섯 층을 지난 기울기 배율은?
① 약
② 약
③ 약
④ 약②. 입니다. 1보다 작은 수가 층마다 곱해져 앞쪽에 닿을 즈음 사라지는 기울기 소실입니다.역전파가 하는 일을 바르게 적은 것은?
① 손실을 최소화하는 파라미터 값을 직접 계산한다
② 연쇄법칙으로 파라미터마다의 기울기를 구한다
③ 학습률을 자동으로 조정한다
④ 입력을 층마다 통과시켜 출력을 낸다②. 역전파는 기울기를 구하는 계산까지입니다. 그 기울기로 값을 고치는 것은 옵티마이저, ④는 순전파, ③은 Adam 같은 옵티마이저나 학습률 스케줄의 몫입니다.학습을 시작하자마자 손실이 크게 튀며 발산합니다. 가장 먼저 조정할 값은?
① 에폭 수
② 학습률
③ 은닉층 수
④ 드롭아웃 비율②. 보폭이 너무 커서 골짜기를 건너뛰는 전형적인 증상입니다. ①은 학습을 더 오래 하는 것이고 ③·④는 발산과 직접 관계가 없습니다.70억 파라미터 모델을 Adam으로 파인튜닝하다 GPU 메모리가 부족합니다. 이 현상과 가장 관계 깊은 것은?
① Adam이 파라미터마다 모멘트 두 개를 더 들고 있다
② Adam은 기울기를 계산하지 않는다
③ Adam은 학습률을 고정한다
④ Adam은 배치 크기를 자동으로 늘린다①. 1차·2차 모멘트를 파라미터마다 유지하므로 옵티마이저 상태가 파라미터 자체보다 큰 메모리를 차지합니다. ②·③·④는 Adam의 동작과 다릅니다.

