BioPlayground

🧬
목록으로

신경망은 어떻게 배우는가 — 자유 에너지 지형을 굴러 내려가는 경사하강법

효소 최적 조건 탐색으로 이해하는 경사하강법. 비용 함수·기울기·학습률·로컬 미니마의 관계를 자유 에너지 지형 관점에서 정리합니다. Adam·SGD 등 실전 옵티마이저까지.

입문
|
18
|
검증 완료 (2026-07)
진행률0/15 (0%)

신경망은 어떻게 배우는가 — 자유 에너지 지형을 굴러 내려가는 경사하강법

이 토픽을 마치면

편 #2에서 본 3,362만 개의 다이얼(가중치·편향)이 어떻게 자동으로 조정되어 훈련이 완성되는지를 이해하게 됩니다. 비용 함수·기울기·학습률이라는 세 부품의 관계, 그리고 이 과정이 왜 자연에서 흔한 자유 에너지 최소화 과정과 개념이 정확히 같은지를 하나의 이야기로 연결합니다.

이 편은 편 #4(역전파)의 밑판이자, 편 #11(정렬)에서 다룰 RLHF의 근본 원리이기도 합니다.


새 효소를 발견한 대학원생의 딜레마

여러분이 실험실에서 새로 발견된 효소를 특성 분석하고 있다고 해봅시다. 이 효소는 특정 대사 반응을 촉매하는데, 아직 최적 반응 조건이 알려져 있지 않습니다. 여러분의 임무는 이 효소가 언제 가장 활성이 높은지 실험적으로 찾아내는 것.

효소 활성에 영향을 미치는 조건이 딱 두 개만 있다고 우선 가정합시다 — 온도pH. 다른 조건(기질 농도, 이온 강도, 보조 인자 유무)은 모두 고정.

여러분에게 시간과 자원이 무한하다면 어떻게 할까요? 온도를 4℃부터 60℃까지 1℃ 간격, pH를 4.0부터 10.0까지 0.1 간격으로 모든 조합을 다 시험하면 됩니다. 57 × 61 = 3,477개 조건. 각 조건마다 세 번씩 반복 실험하면 약 10,000회. 몇 달이 걸리겠지만 언젠가는 최적점을 찾습니다.

그런데 실제 상황은 훨씬 나쁩니다. 파라미터가 두 개가 아니라 다섯 개, 열 개, 백 개 정도 있다면? 각 파라미터에 대해 격자 탐색을 하면 조합의 수가 지수적으로 폭발합니다. 파라미터 100개에 각 10단계씩만 잡아도 10^100 조합. 우주의 원자 수(약 10^80)보다 많은 실험이 필요하고, 당연히 불가능합니다.

지금 우리가 훈련시키려는 신경망의 파라미터는 편 #2에서 봤듯이 3,362만 개입니다. 격자 탐색은 물리적으로 불가능. 훨씬 영리한 방법이 필요합니다.

여기서 우리가 배울 방법이 경사하강법(Gradient Descent) 입니다. 사실 이 방법은 신경망 훈련만의 특수 기법이 아니라, 자연이 화학 반응·단백질 접힘·생태계 균형에서 오래전부터 사용해온 원리입니다. 자연이 어떻게 다차원 조건 공간을 뒤지지 않고도 최적 상태로 굴러 내려가는지 — 그 원리를 신경망이 그대로 빌린 것.


자유 에너지 지형 — 자연의 최소화 문제

여러분은 학부 화학·생화학에서 자유 에너지 지형(free energy landscape) 개념을 어디선가 마주친 적이 있을 것입니다. 화학 반응의 진행 정도를 x축에, 자유 에너지를 y축에 그린 곡선. 산·계곡·안장점이 있는 굴곡 지형.

이 지형에서 반응이 어떻게 진행되는가. 자유 에너지가 낮아지는 방향으로 굴러갑니다. 활성화 에너지 장벽을 넘어야 하는 경우도 있지만, 그 뒤에는 결국 자유 에너지가 더 낮은 안정 상태로 정착. 이 원리가 유기 반응·산화 환원·단백질 접힘·자기 조립 등을 모두 설명합니다.

핵심은 이겁니다. 지형의 전체 그림을 미리 몰라도, 각 지점에서 "어느 방향으로 가면 자유 에너지가 낮아지는지"만 알면 최소점을 향해 갈 수 있습니다. 굴러 내려가는 공은 지형 전체를 미리 보지 않습니다. 발밑의 기울기만 감지하면 됩니다.

신경망 학습이 이 과정과 개념이 정확히 같습니다.

우리에게는:

  • 자유 에너지 지형 대신 비용 함수(cost function)의 지형이 있고,
  • 반응 진행 좌표 대신 파라미터 공간(수백만~수천억 차원) 이 있고,
  • 최소 자유 에너지 상태 대신 최소 비용(가장 정확한 예측) 이라는 목표가 있습니다.

이 관점을 붙잡고 시작하면 이후 모든 개념이 자연스럽게 연결됩니다.


비용 함수 — 모델의 형편없음을 정량화하기

먼저 비용 함수부터. 비용 함수(cost function) 또는 손실 함수(loss function) 는 신경망의 현재 예측이 정답과 얼마나 다른지를 수치로 표현하는 함수입니다. 값이 클수록 예측이 정답에서 멀고, 0에 가까울수록 정답에 근접.

편 #2의 병리학 슬라이드 예시로 돌아갑시다. 신경망이 어떤 슬라이드에 대해 정상 확률 0.7, 양성 확률 0.2, 악성 확률 0.1을 출력했는데, 실제 정답은 "악성"이라고 합시다. 이 예측은 얼마나 형편없을까요?

교차 엔트로피(Cross-Entropy) 라는 비용 함수를 쓰면 이 값은 대략 -log(0.1) ≈ 2.30. 만약 신경망이 정답인 악성에 확률 0.9를 배정했다면 -log(0.9) ≈ 0.11로 매우 낮음. 정답에 확률 1을 배정하면 정확히 0.

이걸 훈련 데이터셋의 모든 예시에 대해 계산하고 평균을 냅니다. 훈련 데이터 전체에 대한 평균 비용이 우리가 최소화하려는 목표. 이 평균 비용을 훈련 손실(training loss) 이라 부릅니다.

수식으로는 부록 A.1에서 정확히 다루지만, 여기서는 핵심 감만 잡읍시다. 비용 함수는 두 가지 성질을 가집니다.

첫째, 파라미터에만 의존합니다. 데이터셋과 신경망 구조를 고정하면 비용 함수의 값은 파라미터(가중치·편향)의 값들이 결정합니다. 파라미터를 조금 바꾸면 비용도 조금 바뀝니다.

둘째, 미분 가능합니다. 파라미터가 연속적으로 변하면 비용도 연속적으로 변합니다. 즉 "이 파라미터를 조금 크게 하면 비용이 얼마나 변할까?"라는 질문에 답할 수 있습니다. 이 편미분이 다음에 나올 기울기의 실체입니다.

비유 하나. 새 효소의 예에서 여러분이 정의하는 비용은 "최대 활성 값 - 현재 조건에서의 활성 값". 최적 조건이면 이 값이 0. 최적에서 멀어질수록 커짐. 온도·pH의 값이 조금 변하면 활성이 조금 변하고, 비용도 조금 변합니다. 신경망의 비용 함수도 정확히 이 구조입니다. 단지 파라미터가 두 개가 아니라 3,362만 개일 뿐.


기울기 — 어느 방향으로 이동해야 낮아지는가

지형에서 굴러 내려가는 공의 문제로 돌아옵시다. 공이 발밑의 기울기만 감지하면 된다고 했습니다. 파라미터 공간에서 이 "기울기"에 해당하는 게 무엇일까요.

기울기(gradient) 는 각 파라미터에 대한 비용 함수의 편미분을 모아놓은 벡터입니다. 즉 3,362만 개 파라미터가 있으면 기울기 벡터도 3,362만 차원.

기울기 벡터의 각 원소가 뜻하는 바는 이렇습니다. "이 파라미터를 아주 살짝 크게 하면 비용이 얼마나 늘어나는가(양수) 또는 줄어드는가(음수)".

  • 원소 값이 크게 양수: 이 파라미터를 크게 하면 비용이 빠르게 늘어남 → 작게 해야 함
  • 원소 값이 크게 음수: 이 파라미터를 크게 하면 비용이 빠르게 줄어듦 → 크게 해야 함
  • 원소 값이 0에 가까움: 이 파라미터는 근처에서 비용에 별 영향 없음 → 그대로 둬도 됨

이걸 파라미터 3,362만 개 모두에 대해 계산한 벡터가 바로 기울기.

기울기의 방향은 "비용이 가장 빠르게 증가하는 방향"을 가리킵니다. 그러니 우리는 그 반대 방향으로 이동해야 합니다. 이것이 경사하강법의 이름이 유래한 지점 — 하강(descent)은 상승(ascent)의 반대.

이제 다차원 자유 에너지 지형에서 굴러 내려가는 공의 이미지가 이렇게 구체화됩니다:

  1. 현재 파라미터 위치에서 기울기를 계산.
  2. 기울기의 반대 방향으로 파라미터를 조금 이동.
  3. 새 위치에서 다시 기울기 계산.
  4. 반복.

한 번의 이동은 한 스텝(step) 이고, 여러 스텝을 거쳐 파라미터가 점점 좋은 값(비용이 낮은 값)으로 수렴하는 전체 과정을 훈련(training) 이라 부릅니다.

그런데 기울기는 어떻게 계산하는가? 파라미터가 3,362만 개인데, 각각에 대해 편미분을 어떻게 구할까요. 여기서 편 #4의 주인공인 역전파(backpropagation) 알고리즘이 등장합니다. 편 #4에서 자세히 다룹니다. 지금은 "기울기가 어떻게 계산되는지는 편 #4로 미루고, 계산 가능하다는 가정 아래" 이야기를 이어갑시다.


학습률 — 얼마나 크게 이동할까

기울기의 반대 방향을 알았으면 다음 질문. 얼마나 크게 이동해야 할까.

이 크기를 조절하는 값이 학습률(learning rate) 입니다. 그리스 문자 η(에타) 또는 α(알파)로 표기.

파라미터 업데이트 공식은 아주 단순합니다.

text
새_파라미터 = 현재_파라미터 - 학습률 × 기울기

학습률이 크면 한 스텝당 크게 이동하고, 작으면 조금씩 이동합니다.

학습률이 너무 작으면 훈련이 지루하게 느립니다. 최적점 근처에 도달하는 데 몇 시간이 걸릴 훈련이 며칠이 걸릴 수도 있습니다.

학습률이 너무 크면 지형의 계곡 아래로 지나쳐 반대편 언덕에 올라갑니다. 다음 스텝에서 반대 방향으로 다시 이동하지만 또 지나칩니다. 이걸 진동(oscillation) 이라 부릅니다. 극단적으로는 계곡에서 튀어 나와 훨씬 나쁜 곳에 가 있는 상태로 훈련이 발산(diverge)하기도 합니다.

적절한 학습률은 지형의 곡률에 따라 다릅니다. 계곡이 좁고 깊으면 작은 학습률, 넓고 얕으면 큰 학습률. 실무에서는 훈련 초기에는 학습률을 크게 두고 (빠른 대략 접근) 훈련 후반에는 학습률을 작게 낮춰가는 학습률 스케줄링(learning rate scheduling) 이 표준입니다.

바이오 매핑. 편 #1에서 언급한 지향성 진화 스크리닝을 다시 떠올리면, 학습률은 돌연변이율(mutation rate) 에 정확히 대응합니다. 돌연변이율이 너무 낮으면 원래 서열에서 못 벗어나 진화가 진행되지 않고, 너무 높으면 유용한 조합이 유지되지 않고 무너집니다. 최적 돌연변이율은 문제와 라운드에 따라 다르고, 후반부에는 대개 낮춥니다 — 신경망 학습의 학습률 스케줄링과 개념이 동일합니다.


로컬 미니마 — 지형의 함정

자유 에너지 지형에는 반응이 자주 갇히는 두 종류의 최소점이 있습니다.

전역 최소점(global minimum): 지형 전체에서 자유 에너지가 가장 낮은 지점. 열역학적으로 가장 안정한 상태.

국소 최소점(local minimum): 주변보다는 낮지만 전역 최소는 아닌 지점. 반응이 여기 갇히면 활성화 에너지 장벽을 넘지 못하고 안 좋은 상태에서 정착.

신경망 훈련에서도 정확히 같은 문제가 있습니다. 파라미터 공간에서 굴러 내려가다가 국소 최소에 갇힐 수 있습니다. 훈련 손실이 어느 정도 낮아진 상태에서 더는 안 낮아지는 상황.

흥미로운 사실. 실제 대형 신경망(파라미터 수억~수천억)의 훈련 손실 지형은 이론적으로 예상되는 것보다 국소 최소가 훨씬 적다는 것이 실증적으로 밝혀져 있습니다. 왜냐하면 파라미터 차원이 매우 높으면, 한 방향에서 최소여도 다른 방향에서는 대개 내려갈 여지가 있기 때문. 즉 진짜 국소 최소보다는 안장점(saddle point, 한 방향에서는 최대·다른 방향에서는 최소) 이 훨씬 흔합니다. 안장점은 다행히 조금 흔들면 벗어날 수 있습니다.

그럼에도 실무에서 훈련이 종종 "훈련 손실이 어느 지점에서 정체된다"는 문제를 겪습니다. 이를 완화하는 몇 가지 트릭이 이후 옵티마이저 이야기에서 나옵니다.

바이오 비유. 단백질 접힘 문제가 같은 구조입니다. 폴리펩티드 사슬이 접힐 때 국소 최소에 갇혀 잘못 접히면 응집체가 형성됩니다 — 편 #1에서 언급한 알츠하이머의 아밀로이드 베타·파킨슨의 알파-시누클레인 응집이 그런 사례. 자연은 이 문제를 샤페론(chaperone) 단백질과 열충격 반응으로 해결합니다. 신경망 훈련의 옵티마이저가 이 샤페론 역할을 합니다.


확률적 경사하강법 — 배치의 통찰

여기서 실용적 문제 하나가 등장합니다. 훈련 데이터셋 전체에 대해 비용 함수를 계산하고 기울기를 얻으려면 매 스텝마다 모든 훈련 예시를 신경망에 통과시켜야 합니다. 데이터셋이 수백만~수억 예시라면 한 스텝에만 몇 분에서 몇 시간이 걸립니다. 이런 속도로는 훈련이 실용적이지 않습니다.

해결책은 매 스텝마다 데이터셋의 작은 부분(minibatch) 만 사용하는 것. 예를 들어 200만 예시의 데이터셋에서 매 스텝마다 무작위로 256개 예시를 골라 그 배치에 대한 비용과 기울기를 계산해 파라미터를 업데이트합니다.

이걸 확률적 경사하강법(Stochastic Gradient Descent, SGD) 이라 부릅니다. "확률적"인 이유는 매 스텝의 기울기가 전체 데이터에 대한 진짜 기울기의 근사이기 때문. 배치가 무작위로 선택되어 그때그때 조금씩 다른 기울기 방향을 얻습니다.

이 노이즈가 오히려 축복입니다. 완벽한 전체 기울기를 따라 굴러가면 안장점에 정확히 도착해서 갇힐 수 있지만, 확률적 노이즈가 있으면 안장점을 자연스럽게 벗어나기 쉽습니다. 이 이유로 SGD가 이론적 순수 경사하강법보다 실제로 더 잘 작동합니다.

배치 크기의 트레이드오프.

  • 작은 배치(예: 32~256): 노이즈 크고 훈련이 흔들리지만 안장점 탈출이 잘 되고 GPU 메모리 절약
  • 큰 배치(예: 4096~32768): 노이즈 작고 안정적이지만 안장점에 갇힐 위험, GPU 메모리 많이 필요

실무에서는 하드웨어 예산 안에서 가장 큰 배치를 쓰거나, 학습률과의 조합을 튜닝합니다.


옵티마이저의 진화 — 순수 SGD에서 Adam까지

순수한 SGD는 매 스텝마다 기울기의 반대 방향으로 학습률만큼 이동합니다. 이 단순함이 오히려 여러 문제를 만듭니다.

문제 1: 방향 진동. 계곡의 한쪽 벽면에서 반대 벽면으로 진동하며 아래로 잘 못 내려가는 경우.

문제 2: 학습률 튜닝의 어려움. 파라미터마다 최적 학습률이 다를 수 있는데 모두에게 같은 학습률.

문제 3: 사라지는 그래디언트. 훈련 후반에 기울기가 아주 작아지는 파라미터가 생기면 이 파라미터의 업데이트가 사실상 멈춤.

이 문제들을 완화한 옵티마이저들이 개발되었습니다.

Momentum. 물리학의 관성 개념을 도입. 이전 스텝의 이동 방향을 일부 유지해서 진동을 억제하고 계곡 방향으로 가속. 마치 굴러가는 공에 마찰이 있는 대신 관성이 있는 것처럼.

RMSprop. 각 파라미터의 최근 기울기 크기 평균을 추적해서 자동으로 파라미터별 학습률을 조정. 기울기가 큰 파라미터는 학습률을 자동으로 줄이고, 작은 파라미터는 유지.

Adam (Adaptive Moment Estimation). Momentum과 RMSprop을 결합한 것. 오늘날 신경망 훈련의 사실상 표준 옵티마이저. 대부분의 논문·실무 코드가 Adam(또는 그 변형인 AdamW)을 기본값으로 사용.

AdamW. Adam에 가중치 감쇠(weight decay)를 분리해 넣은 개선판. 대형 언어 모델 훈련에서 사실상 표준.

편 #1의 사전 학습·미세 조정에서 사용된 옵티마이저가 대부분 AdamW입니다. 부록 A.4~A.7에서 각 옵티마이저의 정확한 수식과 하이퍼파라미터를 다룹니다.


훈련의 실제 진행 그림

지금까지의 조각을 하나로 이어봅시다. 신경망 훈련의 전체 순환은 이렇습니다.

text
초기 파라미터 랜덤 설정
반복 (수십만~수백만 번):
    미니배치 무작위 선택 (예: 256개 예시)
    미니배치에 대해 전방 전파 (편 #2) → 예측 얻기
    예측과 정답으로 비용 계산
    역전파 (편 #4) → 기울기 계산
    옵티마이저(Adam)로 파라미터 업데이트
훈련 손실이 만족스러운 수준이 되면 종료

각 스텝이 밀리초초 단위이고, 이런 스텝을 **수십만수백만 번** 반복해야 대형 모델이 수렴합니다. 대형 신경망(GPT급) 훈련이 몇 주~몇 달이 걸리는 이유가 여기 있습니다.

바이오 매핑으로 다시 보기. 편 #1에서 이 전체 순환을 지향성 진화 사이클로 매핑했었습니다.

  • 초기 파라미터 = 초기 무작위 항체 라이브러리
  • 미니배치 = 이번 라운드에 시험할 시료
  • 비용 계산 = 표적 결합력 측정
  • 파라미터 업데이트 = 선호되는 방향으로 라이브러리 재구성 (돌연변이 + 선택)
  • 수백만 스텝 반복 = 여러 라운드의 스크리닝

흥미로운 관점. 우리는 지향성 진화가 자연 진화보다 훨씬 빠른 이유를 압니다 — 선택 압력이 명시적이고 강하기 때문. 신경망 훈련도 마찬가지 이유로 빠릅니다 — 비용 함수라는 명시적 선택 압력이 매 스텝마다 방향을 알려주기 때문. 자연 진화가 무작위 표류에 크게 의존하는 데 반해 신경망 훈련은 그래디언트라는 정보가 있어서 훨씬 방향성이 있습니다.


파라미터의 진화 — 훈련 중 무엇이 변하는가

훈련 중에 실제로 무엇이 변하는지 시각화해봅시다. 병리학 신경망의 예로.

훈련 시작 시: 파라미터가 무작위. 신경망 판정은 완전 무작위(정상·양성·악성 확률이 각각 대략 33%). 훈련 손실이 매우 높음.

훈련 초기 (수천 스텝): 파라미터가 조금씩 조정되며 신경망이 대략적인 패턴을 잡기 시작. 예를 들어 "이미지에 어두운 지점이 많으면 종양 확률 상승" 같은 아주 저수준 패턴. 훈련 손실이 급격히 떨어짐.

훈련 중기 (수만 스텝): 은닉층 뉴런들이 더 정교한 특징을 잡기 시작. 편 #2에서 이야기한 세포 경계·핵 이상 검출기가 형성됨. 훈련 손실이 완만하게 감소.

훈련 후기 (수십만 스텝): 파라미터가 미세 조정되며 어려운 경계 사례(예: 초기 종양 vs 정상 조직) 판정 정확도가 개선됨. 훈련 손실 감소 속도가 매우 느려짐.

과적합 지점: 어느 시점부터 훈련 손실은 계속 떨어지는데 검증 손실(훈련에 사용되지 않은 데이터에 대한 손실)은 오히려 올라가기 시작. 이건 신경망이 훈련 데이터의 특이한 노이즈까지 외우기 시작한 신호. 이 시점 전에 훈련을 멈춰야 실전 성능이 좋습니다. 이를 조기 종료(early stopping) 라 하며, 검증 손실 모니터링이 표준 관행.


바이오 응용 시나리오

이 편의 개념이 실무에 어떻게 이어질까요.

시나리오 1 — 세포 유형 분류기 훈련

편 #2에서 이야기한 scRNA-seq 세포 유형 분류기를 실제로 훈련시킬 때, 여러분은 이 편의 개념을 그대로 씁니다.

  • 비용 함수: 각 세포에 대해 예측 확률 분포와 정답 세포 타입 사이의 교차 엔트로피
  • 미니배치: 훈련 데이터셋의 128~1024개 세포씩
  • 옵티마이저: 대개 Adam 또는 AdamW
  • 학습률: 초기 1e-3에서 시작해 10 epoch 후 1e-4로 감소
  • 조기 종료: 검증 데이터셋의 정확도가 5 epoch 동안 개선 없으면 중단

Scanpy·scVI 같은 라이브러리가 이 훈련 루프를 내부에서 처리하지만, 사용자가 옵티마이저와 학습률을 조정할 수 있는 API를 제공합니다.

시나리오 2 — AlphaFold의 훈련도 같은 원리

DeepMind의 AlphaFold(단백질 구조 예측)의 훈련도 이 편의 원리를 그대로 씁니다.

  • 비용 함수: 예측 구조와 실제 구조 사이의 좌표 오차 (여러 성분)
  • 미니배치: 훈련 데이터베이스(PDB)의 단백질 128개씩
  • 옵티마이저: AdamW
  • 학습률 스케줄: 워밍업 후 코사인 감소
  • 훈련 규모: 128 TPU 몇 주

파라미터는 수천만~수억 개. 편 #2에서 본 규모에 부합합니다.

시나리오 3 — 실험 조건 최적화 (베이지안 최적화 대안)

역방향으로도 씁니다. 실험 조건 최적화(효소 활성, 세포 배양 조건, 유전자 편집 효율)를 위해 신경망을 훈련시켜 조건 → 결과의 매핑을 배운 후, 이 신경망 안에서 최적 조건을 경사하강법으로 찾을 수 있습니다.

전통적으로 이런 문제는 베이지안 최적화(Bayesian Optimization)로 풀지만, 데이터가 충분하면 신경망 기반 접근이 더 효율적일 수 있습니다. 특히 파라미터 공간이 고차원(수십 개 이상)일 때.


핵심 정리

  • 신경망 학습은 비용 함수의 최소점을 찾는 최적화 문제입니다. 자연의 자유 에너지 최소화 과정과 개념이 정확히 같습니다.
  • 비용 함수의 기울기(gradient) 는 파라미터 공간에서 "비용이 가장 빠르게 증가하는 방향". 그 반대로 이동하면 비용이 낮아짐.
  • 이동 크기는 학습률(learning rate). 지향성 진화의 돌연변이율과 개념 정합.
  • 실제로는 데이터의 미니배치만 사용하는 확률적 경사하강법(SGD). 노이즈가 안장점 탈출을 돕는 축복.
  • Adam·AdamW 같은 정교한 옵티마이저가 순수 SGD보다 훨씬 실용적. 오늘 표준.
  • 국소 최소·안장점 이 함정이지만, 고차원 공간에서는 안장점이 더 흔하며 SGD 노이즈로 대개 벗어남.
  • 훈련 후반에 과적합이 시작되므로 검증 손실 모니터링 + 조기 종료가 표준 관행.

다음 개념


📐 부록 — 전문가를 위한 수학 공식

난이도: 매우 어려움 (Very Hard) 대상: 대학원 수준의 선형대수·미적분·최적화 이론을 아는 독자

A.1 비용 함수 정의

평균 제곱 오차 (MSE) — 회귀 문제 표준:

text
L_MSE(θ) = (1/N) · Σ_{i=1}^{N} (y_i - f_θ(x_i))^2
  • x_i: i번째 입력
  • y_i: i번째 정답
  • f_θ(x_i): 신경망 예측
  • θ: 파라미터 전체

교차 엔트로피 (Cross-Entropy) — 분류 문제 표준:

text
L_CE(θ) = -(1/N) · Σ_{i=1}^{N} Σ_{c=1}^{C} y_{i,c} · log(f_θ(x_i)_c)
  • C: 클래스 수
  • y_{i,c}: 원-핫 정답 (정답 클래스 c는 1, 나머지 0)
  • f_θ(x_i)_c: 신경망이 클래스 c에 배정한 확률

편 #1 부록 A.3에서 정의한 형태와 같습니다.

A.2 기울기 (Gradient) 정의

파라미터 θ에 대한 비용 함수의 기울기는:

text
∇_θ L = [ ∂L/∂θ_1, ∂L/∂θ_2, ..., ∂L/∂θ_P ]

P는 총 파라미터 수 (수백만~수천억).

각 편미분 ∂L/∂θ_i는 "파라미터 θ_i를 아주 살짝 크게 하면 비용이 얼마나 변하는가"의 극한:

text
∂L/∂θ_i = lim_{ε → 0} [L(θ_1, ..., θ_i + ε, ..., θ_P) - L(θ)] / ε

이 편미분들을 효율적으로 계산하는 알고리즘이 역전파(편 #4).

A.3 순수 경사하강법 업데이트 규칙

한 스텝의 파라미터 업데이트:

text
θ_{t+1} = θ_t - η · ∇_θ L(θ_t)
  • θ_t: 스텝 t에서의 파라미터
  • η: 학습률
  • ∇_θ L(θ_t): 스텝 t에서의 기울기

이걸 반복하면 국소 최소에 수렴 (수렴 보장은 몇 가지 조건 하에만).

A.4 SGD의 미니배치 근사

전체 데이터셋 대신 미니배치 B_t ⊂ D(무작위 샘플, 크기 |B|)로 기울기 근사:

text
∇̂_θ L(θ_t) = (1/|B|) · Σ_{i ∈ B_t} ∇_θ ℓ(θ_t, x_i, y_i)

는 개별 예시에 대한 손실. 이는 전체 기울기의 불편 추정량(unbiased estimator):

text
E[∇̂_θ L] = ∇_θ L (전체)

A.5 Momentum

이전 스텝의 이동 방향(velocity)을 관성처럼 유지:

text
v_t = β · v_{t-1} + ∇̂_θ L(θ_t)
θ_{t+1} = θ_t - η · v_t
  • β: 관성 계수 (일반적으로 0.9)

이는 마치 물리 시뮬레이션에서 마찰 계수 (1 - β)인 공의 움직임과 같습니다.

A.6 RMSprop

각 파라미터의 최근 기울기 크기 제곱 평균으로 학습률 자동 조정:

text
s_t = ρ · s_{t-1} + (1 - ρ) · [∇̂_θ L(θ_t)]^2
θ_{t+1} = θ_t - η · ∇̂_θ L(θ_t) / (sqrt(s_t) + ε)
  • ρ: 지수 이동 평균 계수 (일반적으로 0.999)
  • ε: 수치 안정성용 작은 값 (예: 1e-8)

기울기가 큰 파라미터는 sqrt(s_t)가 커서 실질 학습률이 자동으로 줄어듭니다.

A.7 Adam (Adaptive Moment Estimation)

Momentum과 RMSprop을 결합:

text
m_t = β_1 · m_{t-1} + (1 - β_1) · ∇̂_θ L(θ_t)          (첫 번째 모멘트)
v_t = β_2 · v_{t-1} + (1 - β_2) · [∇̂_θ L(θ_t)]^2      (두 번째 모멘트)
m̂_t = m_t / (1 - β_1^t)                                (편향 보정)
v̂_t = v_t / (1 - β_2^t)                                (편향 보정)
θ_{t+1} = θ_t - η · m̂_t / (sqrt(v̂_t) + ε)

기본 하이퍼파라미터:

  • β_1 = 0.9
  • β_2 = 0.999
  • ε = 1e-8

편향 보정은 훈련 초기(t가 작을 때) 모멘트가 0에 편향되는 문제를 해결.

A.8 AdamW (Adam with Decoupled Weight Decay)

가중치 감쇠(weight decay)를 Adam 안에 얹지 않고 별도 항으로 분리:

text
θ_{t+1} = θ_t - η · m̂_t / (sqrt(v̂_t) + ε) - η · λ · θ_t
  • λ: 가중치 감쇠 계수 (일반적으로 0.01)

이는 L2 정규화와 다르며 정확히 가중치를 축소하는 효과. 대형 언어 모델 훈련의 표준.

A.9 학습률 스케줄

Cosine annealing:

text
η_t = η_min + (1/2) · (η_max - η_min) · (1 + cos(π · t / T))

T는 전체 훈련 스텝 수. 학습률이 코사인 곡선을 따라 부드럽게 감소.

Warmup: 훈련 초기 몇 스텝 동안 학습률을 0에서 목표 값까지 선형 증가. 대형 모델에서 초기 불안정성 완화.

One-cycle policy: warmup → cosine decay → 매우 낮은 값에서 짧게 유지. 실용적으로 널리 쓰임.

A.10 안장점 분석

파라미터 공간에서 헤시안 H = ∇^2 L(θ)의 고유값 부호로 임계점 분류:

  • 모든 고유값 > 0: 국소 최소 (모든 방향에서 볼록)
  • 모든 고유값 < 0: 국소 최대
  • 부호가 섞임: 안장점
  • 일부 고유값 = 0: 평평한 지점 (분석 어려움)

고차원 신경망 손실 지형은 안장점이 국소 최소보다 훨씬 많음. 이론적으로 파라미터 차원 P에서 임의 임계점이 국소 최소일 확률은 대략 2^{-P}로 지수적으로 작음. 따라서 3,362만 차원에서 실제로 만나는 임계점은 거의 항상 안장점.


참고 자료

본 편의 콘텐츠·시나리오·비유·수치는 모두 BioPlayground 자체 개발이며, 아래는 개념 학습에 도움이 되는 외부 참고 자료입니다.

  • Adam 원 논문: Kingma & Ba, "Adam: A Method for Stochastic Optimization" (ICLR 2015)
  • AdamW 원 논문: Loshchilov & Hutter, "Decoupled Weight Decay Regularization" (ICLR 2019)
  • 딥러닝 표준 교재: Goodfellow et al., "Deep Learning" Chapter 8 (최적화)
  • 손실 지형 시각화: Li et al., "Visualizing the Loss Landscape of Neural Nets" (NeurIPS 2018)
  • 경사하강법 수렴 이론: Nocedal & Wright, "Numerical Optimization" (Springer)
  • 딥러닝 시각화 교육: 3Blue1Brown "Deep Learning" Ch 2 (YouTube) — 페다고지 참고
  • AlphaFold 논문: Jumper et al., "Highly accurate protein structure prediction with AlphaFold" (Nature 2021)

이 편은 원리 편의 두 번째 편이자 편 #4(역전파)의 밑판입니다. 다음 편에서 이 편에서 "계산 가능하다고 가정"한 기울기를 실제로 어떻게 3,362만 개 파라미터 모두에 대해 효율적으로 얻는지 파헤칩니다.