AI VIDEO BRIEFING
경사 하강법 vs 진화 알고리즘 — 신경망 학습(최적화)의 원리와 차원의 저주
신경망 학습은 결국 손실 지형에서 가장 낮은 곳을 찾는 탐색이다. 진화(무작위 탐색)와 경사 하강법을 비교하며, 왜 경사 하강법이 대규모 신경망의 표준이 됐는지 설명한다.

핵심 메시지
쉽게 이해하기
영상은 실제로 학습 중인 신경망을 보여주며 시작한다. 여기서 '학습'이란 의식이나 지능이 아니라 '최적화'를 뜻한다. 신경망은 입력을 넣으면 출력이 나오는 함수이며, 어떤 함수든 근사할 수 있는 만능 함수 근사기다. 그 모양은 가중치와 편향, 즉 매개변수 값으로 정해진다. 매개변수가 두 개면 가능한 모든 신경망은 2차원 평면(매개변수 공간)의 점으로 표현된다. 문제는 매개변수가 수백 개만 돼도 이 공간을 눈으로 볼 수 없다는 점이며, 이 한계가 영상 내내 따라다닌다.
어떤 매개변수가 더 좋은지 재려면 평가 기준이 필요하다. 우리는 목표 함수를 모르고 데이터 표본만 갖고 있으므로, 각 입력에 대한 예측과 실제 출력의 차이를 손실 함수(여기서는 평균제곱오차)로 잰다. 손실이 낮을수록 좋은 근사다. 모든 매개변수 조합에 대해 손실을 높이로 그리면 '손실 지형'이 된다. 최적화란 이 지형에서 가장 낮은 점, 전역 최솟값을 찾는 일이다. 여기서 데이터는 상수로 고정되고 매개변수가 변수가 되도록 관점을 뒤집는 것이 핵심이다.
매개변수가 두 개면 지형을 다 그려 눈으로 최저점을 찾을 수 있지만, 좋은 근사는 수백 개 매개변수를 요구하고 그런 고차원 지형은 전부 계산할 수 없다. 그래서 알고리즘은 지형 전체를 보지 못한 채, 눈을 감고 산을 내려가야 한다. 첫 번째 방법인 진화(지역 탐색)는 가장 단순한 유전 알고리즘이다. 무작위 점에서 시작해 복사본의 매개변수를 조금씩 변형(돌연변이)하고, 여러 후보 중 손실이 가장 낮은 것을 다음 세대로 택하길 반복한다. 매개변수가 유전체, 손실 함수가 적합도 함수인 셈이다.
두 번째 방법인 확률적 경사 하강법(SGD)은 발밑 경사를 이용한다. 기울기 벡터는 각 매개변수 방향의 경사를 담은 목록으로, 가장 가파른 오르막을 가리킨다. 음수 부호를 붙이면 가장 가파른 내리막이 된다. 미적분으로 손실 함수의 각 매개변수에 대한 편미분을 구해 기울기를 얻고, 학습률로 보폭을 조절해 매개변수를 한 걸음 옮긴다. 순전파로 손실을 재고 역전파로 기울기를 계산해 걸음을 내딛는 과정을 반복한다. 진화의 '추측하고 확인하기'와 달리 방향을 바로 알 수 있다는 점이 결정적 차이다. 여기에 전체 데이터 대신 작은 무작위 묶음(배치)으로 학습하는 '확률적' 요소가 더해진다.
둘 다 지역 최솟값에 갇힐 수 있다. 이를 완화하려고 모멘텀을 더하고, 더 나아가 SGD의 변형인 Adam을 쓴다. Adam은 기울기의 1차·2차 모멘트를 이용해 학습을 훨씬 빠르고 효율적으로 만든다. 흥미롭게도 매개변수를 더 늘려 차원을 높이면, 한 방향에서 최솟값이던 곳이 다른 방향에서는 최댓값인 안장점이 되어 빠져나갈 길이 생긴다. 고차원에서는 진짜 지역 최솟값이 드물어지고, 경사 하강법은 그 방향을 잘 찾는다. 반면 진화는 어느 방향으로 변형할지 '추측'해야 해서 차원이 커질수록 불리하다. 결국 무한한 시간이 아니라면, 규모에서 앞서는 경사 하강법이 오늘날의 표준이다.
주요 인사이트
- '매개변수 공간의 점'과 '손실 지형의 높이'라는 은유를 잡으면, 학습이 곧 눈을 감고 산을 내려가는 탐색임이 분명해진다.
- 진화와 경사 하강법은 모두 언덕 내려가기(hill climbing)이지만, 진화는 무작위로 발을 디디고 경사 하강법은 경사를 느껴 내려간다는 점이 근본 차이다.
- 경사 하강법이 표준이 된 진짜 이유는 정확도가 아니라 규모다. 매개변수가 수십억 개여도 기울기를 선형 시간에 계산할 수 있어 '차원의 축복'을 누린다.
- 차원을 높이는 것 자체가 지역 최솟값 탈출을 돕는다. 고차원에선 모든 방향이 막힌 지점이 드물고 대개 안장점이라 빠져나갈 길이 있다.
- 경사 하강법에는 손실·신경망이 연속이고 미분 가능해야 한다는 제약이 있다. 계단 함수처럼 미분 불가능한 이상한 망은 진화로만 학습할 수 있어, 진화 방식에도 고유한 쓸모가 남는다.
자주 묻는 질문
'손실 지형(loss landscape)'이란 무엇인가요?
가능한 모든 매개변수 조합에 대해 손실 값을 높이로 표현한 지형입니다. 높은 곳은 나쁜 신경망, 낮은 골짜기는 좋은 신경망이며, 학습의 목표는 가장 낮은 전역 최솟값을 찾는 것입니다.
진화 알고리즘과 경사 하강법의 핵심 차이는 무엇인가요?
둘 다 산을 내려가지만, 진화는 무작위로 여러 걸음을 디뎌 가장 낮은 것을 택하는 '추측·확인' 방식이고, 경사 하강법은 발밑 경사(기울기)를 계산해 곧장 가장 가파른 내리막으로 내려갑니다.
왜 대규모 신경망에는 경사 하강법을 쓰나요?
규모 때문입니다. 매개변수가 수십억 개여도 기울기를 선형 시간에 계산해 한 번에 최적 방향으로 걸을 수 있습니다. 진화는 변형할 방향을 추측해야 해서 차원이 커질수록 성공 확률이 급감합니다.
지역 최솟값에 갇히는 문제는 어떻게 완화하나요?
모멘텀을 더하거나 Adam 옵티마이저를 사용하고, 매개변수를 늘려 차원을 높이는 방법이 있습니다. 고차원에서는 진짜 지역 최솟값이 드물고 대개 안장점이라 빠져나갈 방향이 존재합니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗