경사 하강법
1. 개요
1. 개요
경사 하강법은 함수의 최솟값을 찾기 위해 사용되는 반복적인 최적화 알고리즘이다. 주로 머신 러닝과 딥러닝 모델에서 매개변수를 조정하여 손실 함수를 최소화하는 데 핵심적으로 활용된다. 기본 아이디어는 현재 위치에서 함수의 기울기를 계산하고, 그 기울기의 반대 방향으로 조금씩 이동하여 함수값이 점차 감소하도록 하는 것이다.
이 알고리즘은 편미분을 통해 얻은 기울기 정보를 바탕으로 매개변수를 업데이트한다. 학습의 각 단계에서 모델은 현재 매개변수 설정에서의 오차를 계산하고, 이 오차를 줄이기 위해 매개변수를 조정한다. 이 과정은 사전에 정의된 횟수만큼 반복되거나, 기울기가 0에 가까워질 때까지 계속된다.
경사 하강법은 그 단순함과 광범위한 적용 가능성 때문에 최적화 분야의 기초를 이루는 방법으로 여겨진다. 그러나 학습률 설정, 국소 최솟값 문제, 계산 비용 등 여러 실용적인 고려 사항이 존재한다. 이러한 한계를 극복하기 위해 모멘텀, RMSProp, Adam과 같은 다양한 변형 알고리즘이 개발되었다.
2. 수학적 원리
2. 수학적 원리
경사 하강법의 핵심은 손실 함수의 값을 최소화하는 매개변수를 찾는 과정이다. 이 방법은 함수의 기울기를 계산하여 그 반대 방향으로 매개변수를 조금씩 업데이트한다.
손실 함수는 모델의 예측값과 실제값 사이의 오차를 측정하는 함수이다. 경사 하강법은 이 손실 함수의 기울기, 즉 편미분으로 구성된 그래디언트를 계산한다. 그래디언트는 함수 값이 가장 가파르게 증가하는 방향을 가리킨다. 따라서 반대 방향으로 이동하면 함수 값이 감소하게 되어, 결국 손실이 최소가 되는 지점을 찾을 수 있다.
매개변수 업데이트는 다음의 규칙을 따른다. 현재 매개변수 벡터 θ에서 학습률 η와 손실 함수 J(θ)의 그래디언트 ∇J(θ)를 이용해 새로운 매개변수 θ'를 계산한다. 기본적인 업데이트 공식은 다음과 같다.
θ' = θ - η * ∇J(θ)
여기서 학습률은 매 업데이트 단계의 크기를 결정하는 중요한 초매개변수이다. 학습률이 너무 크면 최솟값을 지나쳐 발산할 수 있고, 너무 작으면 학습 속도가 매우 느려지거나 조기에 멈출 수 있다. 이 업데이트 과정은 그래디언트의 크기가 매우 작아질 때까지, 즉 손실 함수의 최솟값에 근접할 때까지 반복된다.
2.1. 손실 함수와 기울기
2.1. 손실 함수와 기울기
손실 함수는 머신 러닝 모델의 예측값과 실제값 사이의 오차를 정량화하는 함수이다. 이 함수의 값을 최소화하는 모델 매개변수를 찾는 것이 학습의 목표이다. 손실 함수는 주어진 데이터에 대해 매개변수의 함수로 표현되며, 평균 제곱 오차, 교차 엔트로피 등이 널리 사용된다.
기울기(그래디언트)는 손실 함수의 변화율을 나타내는 벡터이다. 각 매개변수 방향으로의 편미분으로 구성되며, 함수 값이 가장 가파르게 증가하는 방향을 가리킨다. 경사 하강법은 이 기울기의 반대 방향으로 매개변수를 조정하여 손실을 점차 줄여나간다.
손실 함수 종류 | 주 사용처 | 수식 (예시) |
|---|---|---|
회귀 문제 | \( \frac{1}{n} \sum (y_i - \hat{y}_i)^2 \) | |
분류 문제 | \( -\sum y_i \log(\hat{y}_i) \) |
기울기를 계산하는 과정은 연쇄 법칙을 통해 이루어지는 역전파 알고리즘의 핵심이다. 고차원 공간에서 손실 함수의 표면은 매우 복잡할 수 있으나, 현재 위치의 기울기는 그 지점에서의 국소적 정보만을 제공한다[1]. 따라서 경사 하강법은 이 국소적 정보를 반복적으로 이용해 전역 최솟값에 근접하려 시도한다.
2.2. 업데이트 규칙
2.2. 업데이트 규칙
경사 하강법의 핵심은 매개변수를 업데이트하는 규칙에 있다. 이 규칙은 현재 지점에서 계산된 기울기의 반대 방향으로 매개변수를 조금씩 이동시켜 손실 함수의 값을 점차 감소시킨다. 기본적인 업데이트 공식은 다음과 같다.
θ = θ - η * ∇J(θ)
여기서 θ는 최적화하려는 매개변수 벡터(예: 가중치와 편향)를, η는 학습률을, ∇J(θ)는 현재 θ에서의 손실 함수 J의 기울기 벡터를 나타낸다. 기울기 ∇J(θ)는 손실 함수가 가장 가파르게 증가하는 방향을 가리키므로, 이에 음의 학습률을 곱해 반대 방향, 즉 손실이 가장 빠르게 감소하는 방향으로 매개변수를 조정한다.
학습률 η는 업데이트의 보폭을 결정하는 매우 중요한 초매개변수이다. 학습률이 너무 크면 최적점을 지나쳐 발산할 수 있고, 너무 작으면 학습 속도가 매우 느려지거나 국소 최솟값에 조기에 갇힐 수 있다. 적절한 학습률을 설정하거나, 학습 과정에 따라 학습률을 동적으로 조정하는 학습률 스케줄링 기법이 자주 사용된다.
이 기본 업데이트 규칙은 다양한 변형의 기초가 된다. 예를 들어, 모멘텀은 과거 기울기의 이동 평균을 반영하여 관성 효과를 주고, Adam과 같은 적응형 알고리즘은 각 매개변수에 대해 개별적인 학습률을 계산한다. 이러한 고급 기법들은 기본 규칙이 가진 진동 문제나 느린 수렴 속도를 개선하기 위해 개발되었다.
3. 경사 하강법의 종류
3. 경사 하강법의 종류
경사 하강법은 사용하는 데이터의 양과 방식에 따라 주로 세 가지 종류로 구분된다.
종류 | 사용 데이터 | 특징 | 장점 | 단점 |
|---|---|---|---|---|
전체 훈련 데이터 | 매 단계(에포크)마다 전체 데이터의 기울기 평균 계산 | 안정적인 수렴, 결정적 업데이트 | 계산 비용 높음, 대규모 데이터 비효율, 국소 최솟값 탈출 어려움 | |
단일 데이터 샘플 | 매 단계마다 무작위로 선택한 하나의 샘플로 기울기 계산 및 업데이트 | 빠른 업데이트, 국소 최솟값 탈출 가능성, 대규모 데이터 효율적 | 업데이트 변동성(노이즈) 큼, 수렴 불안정 | |
작은 데이터 묶음(미니배치) | 전체 데이터를 작은 배치로 나누어, 각 배치의 평균 기울기로 업데이트 | 계산 효율성과 안정성의 균형, GPU 가속화에 적합 | 미니배치 크기 하이퍼파라미터 추가 필요 |
배치 경사 하강법은 매번 전체 데이터셋을 사용해 손실 함수의 기울기를 정확하게 계산한다. 이는 가장 정확한 업데이트 방향을 제공하지만, 데이터셋이 클 경우 한 번의 업데이트에 필요한 계산량과 메모리 사용량이 매우 커진다는 단점이 있다. 또한, 목적 함수의 표면이 복잡할 경우 초기 위치에 따라 특정 국소 최솟값에 쉽게 갇힐 수 있다.
확률적 경사 하강법과 미니배치 경사 하강법은 이러한 문제를 완화한다. 확률적 방식은 단일 샘플의 노이즈가 많은 기울기를 사용해 업데이트하므로 불안정하지만, 이 노이즈가 오히려 국소 최솟값을 탈출하는 데 도움을 줄 수 있다. 미니배치 방식은 일반적으로 32, 64, 128 등 고정된 크기의 샘플 집합을 사용하여, 단일 샘플의 변동성을 줄이면서도 배치 전체보다는 훨씬 빠르게 업데이트를 수행한다. 현대 딥러닝에서는 계산 효율성과 수렴 안정성을 모두 고려한 미니배치 경사 하강법이 가장 널리 사용된다.
3.1. 배치 경사 하강법
3.1. 배치 경사 하강법
배치 경사 하강법은 경사 하강법의 가장 기본적인 형태로, 매 학습 단계에서 전체 훈련 데이터를 사용하여 손실 함수의 기울기를 계산하고 매개변수를 업데이트한다. 이 방법은 모든 데이터 포인트에 대한 기울기의 평균을 취하기 때문에, 각 단계의 파라미터 업데이트 방향이 전체 데이터셋에 대한 진정한 기울기 방향에 가깝다는 장점을 가진다. 이로 인해 업데이트가 매우 안정적이며, 손실 함수의 표면이 볼록한 경우 전역 최솟값으로 수렴할 수 있다.
그러나 이 방법에는 명확한 단점이 존재한다. 가장 큰 문제는 매 반복마다 전체 데이터셋을 처리해야 하므로 계산 비용이 매우 크다는 점이다. 대규모 데이터셋에서는 단일 업데이트를 수행하는 데에도 상당한 시간이 소요되어 학습 속도가 현저히 느려진다. 또한, 전체 데이터셋을 메모리에 한 번에 로드해야 하므로 하드웨어 자원에 대한 요구 사항이 높다.
배치 경사 하강법의 업데이트 과정은 다음과 같은 수식으로 표현된다.
$$\theta = \theta - \eta \cdot \nabla_{\theta} J(\theta)$$
여기서 $\theta$는 모델 매개변수, $\eta$는 학습률, $\nabla_{\theta} J(\theta)$는 전체 훈련 데이터에 대해 계산한 손실 함수 $J$의 기울기를 의미한다. 이 기울기는 각 데이터 포인트에서 계산된 기울기의 산술 평균이다.
특징 | 설명 |
|---|---|
업데이트 안정성 | 전체 데이터의 평균 기울기를 사용하므로 업데이트 방향의 변동성이 매우 낮다. |
수렴 보장 | |
계산 비용 | 매 단계마다 전체 데이터셋을 통과(forward pass)하고 기울기를 계산(backward pass)해야 하므로 계산 부담이 크다. |
메모리 사용 | 한 번에 모든 데이터를 처리해야 하므로 큰 메모리 용량이 필요하다. |
국소 최솟값 |
이 방법은 데이터셋 크기가 비교적 작을 때나, 안정적인 수렴이 가장 중요한 경우에 유용하게 적용된다. 그러나 현대의 대규모 딥러닝 문제에서는 계산 효율성을 위해 확률적 경사 하강법이나 미니배치 경사 하강법이 더 널리 사용된다.
3.2. 확률적 경사 하강법
3.2. 확률적 경사 하강법
확률적 경사 하강법은 배치 경사 하강법의 한계를 보완하기 위해 고안된 변형 알고리즘이다. 배치 경사 하강법은 매 단계에서 전체 훈련 데이터에 대한 기울기를 계산하여 매개변수를 업데이트한다. 이는 정확한 기울기 방향을 제공하지만, 데이터셋이 클 경우 한 번의 업데이트에 필요한 계산 비용이 매우 커지고 메모리 요구 사항이 높아지는 단점이 있다.
확률적 경사 하강법은 이 문제를 해결하기 위해 매 반복마다 단 하나의 훈련 샘플을 무작위로 선택하여 그 샘플에 대한 기울기만을 계산한다. 그 후, 이 하나의 샘플로 계산된 기울기를 사용하여 매개변수를 즉시 업데이트한다. 이 과정은 모든 훈련 샘플이 한 번씩 사용될 때까지, 즉 한 에포크가 완료될 때까지 반복된다. 업데이트 공식은 배치 경사 하강법과 유사하나, 손실 함수 J(θ)가 전체 데이터에 대한 것이 아닌 단일 샘플 (x^(i), y^(i))에 대한 손실로 대체된다.
특징 | 설명 |
|---|---|
업데이트 속도 | 매 반복마다 매개변수가 업데이트되므로 매우 빠르다. |
계산 효율성 | 한 번에 하나의 샘플만 처리하므로 계산 부하가 적고 대규모 데이터셋에 적합하다. |
수렴 특성 | 업데이트의 변동성이 커서 손실 함수의 표면을 불규칙하게 움직이며, 이는 국소 최솟값에서 벗어나게 도울 수 있다. |
그러나 단일 샘플의 기울기는 전체 데이터의 평균 기울기를 대표하지 않기 때문에, 업데이트 경로는 매우 노이즈가 많고 불안정하다. 이로 인해 손실 값이 감소하는 전체적인 추세 속에서도 크게 요동칠 수 있다. 이러한 불안정성은 학습이 끝날 무렵 정확한 최솟값 근처에서 진동을 일으키는 원인이 되기도 한다. 이 문제를 완화하기 위해 학습률을 점차 감소시키는 학습률 스케줄링 기법이 종종 함께 사용된다.
3.3. 미니배치 경사 하강법
3.3. 미니배치 경사 하강법
미니배치 경사 하강법은 배치 경사 하강법과 확률적 경사 하강법의 절충안이다. 이 방법은 전체 훈련 데이터를 한 번에 사용하지도 않고, 단 하나의 샘플만 사용하지도 않는다. 대신, 매 반복마다 전체 데이터셋에서 무작위로 추출한 작은 부분 집합, 즉 미니배치를 사용하여 기울기를 계산하고 매개변수를 업데이트한다.
일반적으로 미니배치의 크기는 32, 64, 128, 256 등 2의 거듭제곱으로 설정하는 것이 일반적이다. 이 크기는 하드웨어의 메모리 아키텍처와 효율적인 병렬 계산에 유리하기 때문이다. 미니배치 크기는 중요한 초매개변수로, 모델의 학습 속도와 안정성에 직접적인 영향을 미친다. 크기가 너무 작으면 확률적 경사 하강법에 가까워져 업데이트의 분산이 커지고 불안정해질 수 있다. 반대로 크기가 너무 크면 배치 경사 하강법에 가까워져 한 번의 업데이트에 필요한 계산량과 메모리 사용량이 급증하며, 국소 최솟값에 빠질 가능성이 높아진다.
미니배치 경사 하강법의 장점은 다음과 같이 요약할 수 있다.
장점 | 설명 |
|---|---|
계산 효율성 | GPU와 같은 병렬 처리 장치를 활용하여 미니배치 내 샘플들의 기울기를 동시에 계산할 수 있어, 단일 샘플 처리보다 훨씬 효율적이다. |
수렴 안정성 | 단일 샘플보다는 노이즈가 적은 기울기 추정치를 제공하여, 확률적 방식보다 안정적인 수렴을 도모한다. |
메모리 효율성 | 전체 데이터셋을 한 번에 메모리에 로드할 필요가 없어, 대규모 데이터셋을 처리하는 딥러닝 모델에서 실용적이다. |
이 방법은 현대 딥러닝에서 사실상의 표준 최적화 절차로 자리 잡았다. 대부분의 딥러닝 프레임워크는 데이터 로더를 통해 미니배치를 자동으로 생성하고 순회하는 기능을 기본으로 제공한다. 한 에포크가 완료되면, 데이터셋은 일반적으로 섞여서 다음 에포크에서 새로운 미니배치 구성을 갖게 된다.
4. 최적화 기법
4. 최적화 기법
경사 하강법의 기본적인 업데이트 규칙을 개선하여 수렴 속도를 높이고 안정성을 강화하는 다양한 최적화 알고리즘이 개발되었다. 이들은 주로 기울기 정보를 활용하는 방식을 보완하여, 특히 딥러닝과 같은 고차원 복잡한 문제에서 더 나은 성능을 보인다.
가장 널리 사용되는 기법 중 하나는 모멘텀이다. 모멘텀은 물리학의 관성 개념을 차용하여, 과거 기울기의 방향을 일정 비율로 유지하며 매개변수를 업데이트한다. 이는 골짜기 모양의 손실 함수 표면에서 진동을 줄이고, 평평한 지역에서도 학습을 가속화하는 효과가 있다. 모멘텀의 변형인 네스테로프 가속 경사는 현재 위치가 아닌 모멘텀 방향으로 예측한 위치의 기울기를 먼저 계산하여 더 정확한 업데이트를 수행한다.
다른 중요한 기법으로는 RMSProp과 Adam이 있다. RMSProp은 각 매개변수마다 적응형 학습률을 조정한다. 과거 기울기 제곱값의 지수 가중 이동 평균을 계산하여, 자주 변화하는 매개변수는 작은 학습률을, 덜 변화하는 매개변수는 큰 학습률을 적용한다. 이는 학습률을 모든 매개변수에 동일하게 적용하는 문제를 완화한다. Adam은 모멘텀과 RMSProp의 아이디어를 결합한 알고리즘이다. 기울기의 일차 모멘트(평균)와 이차 모멘트(분산)의 추정치를 모두 사용하며, 편향을 보정하는 단계를 포함한다. 이로 인해 초기값에 덜 민감하고 실전에서 매우 강력한 성능을 보여주어, 현재 딥러닝 분야에서 사실상의 표준 최적화 알고리즘이 되었다.
기법 | 핵심 아이디어 | 주요 장점 |
|---|---|---|
모멘텀 | 과거 기울기의 방향성을 누적 | 곡면의 진동 감소, 평평한 지역 통과 가속 |
RMSProp | 매개변수별 과거 기울기 크기에 기반한 학습률 조정 | 변화가 적은 매개변수에 더 큰 업데이트 적용 |
Adam | 모멘텀(방향)과 RMSProp(크기)의 결합, 편향 보정 | 빠른 수렴, 강건한 성능, 널리 사용됨 |
이러한 적응형 최적화 기법들은 기본 경사 하강법이 직면하는 학습률 선택의 어려움, 느린 수렴, 진동 문제 등을 효과적으로 해결한다. 그러나 모든 문제에 대해 Adam이 항상 최선의 선택은 아니며, 경우에 따라 기본 확률적 경사 하강법이나 모멘텀이 더 좋은 일반화 성능을 보이기도 한다[2].
4.1. 모멘텀
4.1. 모멘텀
모멘텀은 경사 하강법의 최적화 기법 중 하나로, 물리학의 관성 개념을 차용하여 기울기 업데이트에 이전 업데이트 방향의 일부를 더해주는 방법이다. 이는 손실 함수의 표면이 평탄하거나 곡률이 급격하게 변하는 지형에서 기울기가 진동하거나 수렴 속도가 느려지는 문제를 완화하는 데 효과적이다.
기본적인 경사 하강법의 매개변수 업데이트 공식은 θ = θ - η * ∇J(θ)이다. 여기서 θ는 매개변수, η는 학습률, ∇J(θ)는 현재 기울기를 의미한다. 모멘텀은 여기에 속도(velocity) 항 v를 도입한다. 속도는 과거 기울기들의 지수 가중 이동 평균으로 계산되며, 업데이트 규칙은 다음과 같다.
v_t = γ * v_{t-1} + η * ∇J(θ_t)
θ_{t+1} = θ_t - v_t
여기서 γ는 모멘텀 계수(보통 0.9 근처의 값)로, 이전 속도를 얼마나 유지할지 결정한다. 이는 공이 언덕을 굴러내려갈 때 관성에 의해 평평한 지역을 통과하거나 골짜기 방향으로 가속하는 효과를 모방한다.
모멘텀의 주요 이점은 두 가지이다. 첫째, 목적 함수의 기울기가 한 방향으로 지속적으로 가리키는 경우, 속도가 누적되어 업데이트가 가속화된다. 둘째, 손실 표면이 고원(plateau)이나 골짜기(ravine)처럼 특정 방향으로는 기울기가 작고 다른 방향으로는 큰 경우, 진동을 줄이고 더 직접적인 경로로 최솟값을 향해 나아가게 한다. 이는 배치 경사 하강법이나 확률적 경사 하강법의 단점을 보완하는 데 기여한다. 모멘텀의 변형으로는 속도에 제곱된 기울기를 고려하는 네스테로프 가속 경사(NAG) 방법도 널리 사용된다.
4.2. RMSProp
4.2. RMSProp
RMSProp(Root Mean Square Propagation)은 경사 하강법의 최적화 기법 중 하나로, 적응형 학습률 알고리즘에 속한다. 이 기법은 제프리 힌튼이 강의 노트에서 제안한 방법으로, 각 매개변수에 대해 학습률을 개별적으로 조정하여 효율적인 학습을 가능하게 한다. 특히 기울기의 크기에 따라 학습률을 조정함으로써, 기울기가 큰 방향에서는 학습률을 낮추고 기울기가 작은 방향에서는 학습률을 높이는 방식으로 작동한다.
RMSProp의 핵심은 기울기의 제곱값의 이동 평균을 유지하는 것이다. 알고리즘은 다음과 같은 단계로 진행된다. 먼저, 현재 기울기의 제곱값을 계산한다. 그런 다음, 이 값을 이전까지 누적된 제곱 기울기의 지수 이동 평균에 반영한다. 이 평균값의 제곱근을 분모로 사용하여 현재 기울기를 나누어 실제 업데이트에 사용할 스케일링된 기울기를 구한다. 이 과정은 각 매개변수마다 독립적으로 수행된다.
변수 | 설명 |
|---|---|
$g_t$ | 시간 스텝 $t$에서의 기울기 |
$E[g^2]_t$ | 시간 스텝 $t$에서의 제곱 기울기의 지수 이동 평균 |
$\eta$ | 전역 학습률 |
$\beta$ | 감쇠율(보통 0.9) |
$\epsilon$ | 0으로 나누는 것을 방지하는 작은 상수 |
RMSProp의 업데이트 규칙은 다음과 같이 표현된다.
1. $E[g^2]_t = \beta E[g^2]_{t-1} + (1 - \beta) g_t^2$
2. $\theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{E[g^2]_t + \epsilon}} g_t$
이 방법의 주요 장점은 손실 함수의 곡면이 비등방성일 때, 즉 한 방향의 기울기는 크고 다른 방향의 기울기는 작을 때 효과적이라는 점이다. RMSProp은 이러한 상황에서 진동을 줄이고 보다 안정적으로 최적점을 향해 수렴하도록 돕는다. 또한, 기울기 소실/폭발 문제를 완화하는 데 일부 기여할 수 있다. 그러나 단점으로는 학습률 $\eta$를 수동으로 설정해야 하며, 너무 큰 학습률은 여전히 불안정성을 초래할 수 있다는 점이 있다.
4.3. Adam
4.3. Adam
Adam은 2014년 디데리크 킹마와 지미 바가 제안한 최적화 알고리즘이다. 이는 모멘텀과 RMSProp의 아이디어를 결합한 적응형 학습률 방법으로, 경사 하강법의 변종 중 하나이다. Adam은 각 매개변수에 대해 개별적인 학습률을 계산하며, 이 학습률은 기울기의 첫 번째 모멘트(평균)와 두 번째 모멘트(분산)의 추정치를 기반으로 적응적으로 조정된다.
Adam의 업데이트 규칙은 크게 네 단계로 이루어진다. 첫째, 현재 미니배치의 기울기를 계산한다. 둘째, 이 기울기를 사용하여 기울기의 지수 이동 평균(일차 모멘트 추정치, m_t)과 기울기 제곱의 지수 이동 평균(이차 모멘트 추정치, v_t)을 각각 갱신한다. 셋째, 초기화 편향을 보정하기 위해 이 모멘트 추정치들을 보정한다. 넷째, 보정된 모멘트를 사용하여 매개변수를 업데이트한다. 수식은 다음과 같이 표현된다.
단계 | 설명 | 수식 (요약) |
|---|---|---|
1. 기울기 계산 | t 시점에서의 기울기 g_t를 계산 | g_t = ∇θ f_t(θ_{t-1}) |
2. 모멘트 추정 | 일차 모멘트(m)와 이차 모멘트(v)의 지수평균 갱신 | m_t = β₁·m_{t-1} + (1-β₁)·g_t v_t = β₂·v_{t-1} + (1-β₂)·g_t² |
3. 편향 보정 | 초기 0값에 의한 편향을 보정 | m̂_t = m_t / (1-β₁ᵗ) v̂_t = v_t / (1-β₂ᵗ) |
4. 매개변수 업데이트 | 보정된 모멘트로 매개변수 θ를 갱신 | θ_t = θ_{t-1} - α · m̂_t / (√v̂_t + ε) |
여기서 α는 학습률, β₁과 β₂는 각각 일차 및 이차 모멘트의 감쇠율(보통 0.9와 0.999에 가깝게 설정), ε은 0으로 나누는 것을 방지하는 작은 상수(예: 10⁻⁸)이다.
Adam은 RMSProp이 제공하는 각 매개변수별 적응형 학습률에 모멘텀의 관성 효과를 더한 것으로 해석할 수 있다. 이로 인해 기울기의 방향으로는 가속화되고, 변동이 큰 방향으로는 학습률이 감소하여 안정적인 수렴을 돕는다. 이러한 특성 덕분에 Adam은 심층 신경망 훈련에서 널리 채택되었으며, 비교적 넓은 범위의 하이퍼파라미터에 대해 강건한 성능을 보인다.
5. 학습률
5. 학습률
학습률은 매개변수 업데이트 시 기울기에 곱해지는 계수로, 경사 하강법 알고리즘의 핵심 하이퍼파라미터 중 하나이다. 학습률의 값은 알고리즘의 수렴 속도와 안정성을 결정한다. 너무 큰 학습률은 손실 함수의 값을 발산시키거나 진동하게 만들 수 있으며, 너무 작은 학습률은 학습 속도를 매우 느리게 하여 수렴에 불필요한 시간이 소요되거나 국소 최솟값에 빠질 가능성을 높인다.
적절한 학습률을 선택하는 것은 실험적 과정을 통해 이루어지는 경우가 많다. 일반적으로 0.1, 0.01, 0.001과 같은 10의 거듭제곱 단위로 값을 시도해보는 것이 일반적이다. 학습 과정에서 손실 값의 변화를 모니터링하여 발산하거나 진동하는지, 또는 지나치게 느리게 감소하는지를 확인함으로써 학습률을 조정한다.
학습률 크기 | 일반적인 영향 |
|---|---|
매우 큼 | 발산하거나 진동하여 수렴하지 않음 |
적당함 | 안정적이고 효율적으로 수렴함 |
매우 작음 | 수렴 속도가 매우 느리고, 국소 최솟값에 갇힐 위험이 높아짐 |
학습률을 고정된 상수로 사용하는 것 외에도, 학습이 진행됨에 따라 학습률을 동적으로 변경하는 학습률 스케줄링 기법이나, 각 매개변수에 대해 독립적으로 학습률을 조정하는 적응형 학습률 알고리즘을 사용하는 것이 일반적이다. 이러한 기법들은 고정된 학습률의 단점을 보완하여 더 나은 최적화 성능을 제공하는 것을 목표로 한다.
5.1. 학습률 스케줄링
5.1. 학습률 스케줄링
학습률 스케줄링은 훈련 과정에서 학습률을 동적으로 조정하는 전략이다. 고정된 학습률을 사용할 경우, 최적점 근처에서 진동하거나 수렴 속도가 느려지는 문제가 발생할 수 있다. 학습률 스케줄링은 이러한 문제를 완화하기 위해, 훈련 초기에는 비교적 큰 학습률로 빠르게 진전시키고, 후기에는 작은 학습률로 세밀하게 조정하여 안정적인 수렴을 돕는다.
주요 학습률 스케줄링 방법은 다음과 같다.
방법 | 설명 | 특징 |
|---|---|---|
단계적 감소 | 미리 정해진 에포크 또는 단계마다 학습률을 일정 비율(예: 0.1배)로 감소시킨다. | 구현이 간단하고 널리 사용된다. |
지수적 감소 | 학습률이 지수 함수에 따라 점진적으로 감소한다. | 부드럽게 학습률이 줄어든다. |
코사인 감소 | 학습률이 코사인 함수 곡선을 따라 최댓값에서 최솟값(보통 0)으로 감소한다. | 후반부에 매우 느리게 감소하여 미세 조정에 유리하다. |
1사이클 정책 | 학습률을 먼저 선형적으로 증가시킨 후, 다시 선형적으로 감소시킨다. | 빠른 수렴과 좋은 일반화 성능을 동시에 달성한다는 보고가 있다[3]. |
이러한 스케줄링 기법은 배치 크기나 옵티마이저의 종류와 함께 중요한 하이퍼파라미터로 간주된다. 적절한 스케줄링 전략을 선택하면 모델의 최종 성능과 훈련 시간에 큰 영향을 미칠 수 있다.
5.2. 적응형 학습률
5.2. 적응형 학습률
적응형 학습률은 경사 하강법의 매개변수 업데이트 과정에서 각 매개변수마다 개별적인 학습률을 동적으로 조정하는 기법을 통칭한다. 고정된 학습률을 사용하는 전통적인 방법은 모든 매개변수에 동일한 크기의 업데이트를 적용하지만, 이는 매개변수의 중요도나 변화 폭이 다를 수 있다는 점을 고려하지 않는다. 적응형 학습률 알고리즘은 각 매개변수의 과거 기울기 정보를 활용하여, 기울기가 크게 변동하는 매개변수에는 작은 학습률을, 일관된 방향으로 움직이는 매개변수에는 큰 학습률을 할당함으로써 더 효율적이고 안정적인 최적화를 목표로 한다.
대표적인 적응형 학습률 알고리즘으로는 AdaGrad, RMSProp, Adam 등이 있다. AdaGrad는 각 매개변수의 기울기 제곱값을 누적하여 학습률을 조정한다. 이는 자주 등장하거나 크기가 큰 기울기를 가진 매개변수의 학습률을 빠르게 감소시킨다. 그러나 학습이 진행될수록 누적 제곱합이 지나치게 커져 학습률이 거의 0에 수렴하는 문제가 발생할 수 있다. RMSProp은 AdaGrad의 단점을 보완하여 기울기 제곱의 이동 평균을 사용함으로써 최근의 기울기 정보에 더 큰 가중치를 두어 학습률이 과도하게 줄어드는 것을 방지한다.
Adam은 모멘텀(Momentum)과 RMSProp의 아이디어를 결합한 알고리즘이다. Adam은 기울기의 일차 모멘트(평균)와 이차 모멘트(분산)의 추정값을 모두 사용하여 매개변수를 업데이트한다. 이는 기울기의 방향을 고려하는 모멘텀의 장점과 각 매개변수의 적응형 학습률 조정 능력을 결합한 것으로, 다양한 문제에서 뛰어난 성능을 보여주며 현재 가장 널리 사용되는 적응형 최적화 알고리즘 중 하나이다.
적응형 학습률 기법의 주요 장점은 학습률을 수동으로 튜닝하는 부담을 줄여준다는 점이다. 또한, 희소 데이터를 다루거나 매개변수의 스케일이 매우 다른 경우에 효과적이다. 예를 들어, 자연어 처리에서 단어 임베딩 레이어는 매우 희소한 기울기를 가지는 반면, 완전 연결 레이어는 상대적으로 조밀한 기울기를 가지므로, 각 매개변수에 맞춤형 학습률을 적용하는 것이 유리하다. 그러나 모든 문제에 대해 항상 최적의 선택은 아니며, 때로는 단순한 확률적 경사 하강법이나 모멘텀이 더 나은 결과를 낼 수도 있다[4].
6. 한계와 문제점
6. 한계와 문제점
경사 하강법은 국소 최솟값에 빠질 위험이 있다. 이는 손실 함수의 기울기가 0에 가까워지는 지점으로, 항상 전체 함수에서 가장 낮은 값인 전역 최솟값을 의미하지는 않는다. 특히 복잡하고 비볼록한 함수에서는 여러 개의 국소 최솟값이 존재할 수 있으며, 알고리즘이 초기값에 따라 이 중 하나에 수렴하게 되어 최적이 아닌 해를 찾을 수 있다.
또 다른 주요 문제는 기울기 소실과 기울기 폭발 문제이다. 기울기 소실은 심층 신경망과 같이 많은 층을 가진 모델에서, 역전파 과정에서 기울기가 연쇄 법칙에 따라 여러 번 곱해지면서 0에 가까운 매우 작은 값으로 줄어드는 현상이다. 이는 앞쪽 층의 가중치가 거의 업데이트되지 않아 학습이 제대로 이루어지지 않는 원인이 된다. 반대로 기울기 폭발은 기울기가 지나치게 커져서 가중치 값이 불안정하게 발산하는 현상을 말한다.
문제점 | 설명 | 주로 발생하는 맥락 |
|---|---|---|
기울기가 0인 지점이지만, 함수의 가장 낮은 지점(전역 최솟값)이 아닐 수 있음 | 비볼곡한 손실 함수, 복잡한 모델 | |
역전파 시 기울기가 점점 작아져 앞쪽 층의 학습이 멈춤 | 심층 신경망, 시그모이드 함수 등의 활성화 함수 사용 시 | |
역전파 시 기울기가 지수적으로 커져 가중치가 발산함 | 깊은 네트워크, 초기 가중치 설정 불량 |
이러한 한계를 극복하기 위해 모멘텀, Adam과 같은 고급 최적화 기법이 개발되었으며, ReLU와 같은 새로운 활성화 함수의 도입은 기울기 소실 문제 완화에 기여했다. 또한, 배치 정규화와 같은 기법도 학습 안정성을 높이는 데 널리 사용된다.
6.1. 국소 최솟값
6.1. 국소 최솟값
경사 하강법은 손실 함수의 기울기를 따라 반복적으로 매개변수를 업데이트하여 함수의 최솟값을 찾는 알고리즘이다. 그러나 이 방법은 목표 함수가 볼록 함수가 아닌 복잡한 형태, 특히 여러 개의 골짜기(극소점)를 가진 경우 국소 최솟값에 갇힐 위험이 있다. 국소 최솟값은 함수의 전체 정의역에서 가장 낮은 값을 가지는 전역 최솟값이 아닌, 주변 근방에서는 가장 낮지만 더 낮은 값이 존재할 수 있는 지점을 의미한다. 경사 하강법이 이러한 지점에 도달하면, 해당 점에서의 기울기가 0에 가까워지거나 0이 되어 매개변수 업데이트가 중단되기 때문이다.
국소 최솟값 문제는 특히 고차원의 복잡한 모델, 예를 들어 심층 신경망의 학습에서 더욱 두드러진다. 매개변수 공간이 매우 넓고 비선형적이어서 손실 함수의 표면이 수많은 국소 최솟값, 안장점, 평평한 고원으로 구성될 수 있다. 안장점은 한 방향에서는 극소값이지만 다른 방향에서는 극대값인 지점으로, 기울기가 0이 되어 학습이 정체될 수 있다. 실제로 고차원 공간에서는 안장점이 국소 최솟값보다 훨씬 빈번하게 나타난다는 연구 결과도 있다[5].
이 문제를 완화하기 위한 여러 방법이 개발되었다. 모멘텀 기법은 과거 기울기의 방향을 일부 유지하여 국소 최솟값의 함정에서 벗어나거나 평평한 지역을 가속화하여 통과하도록 돕는다. 확률적 경사 하강법은 매 단계마다 무작위로 선택된 데이터의 잡음을 기반으로 기울기를 계산하여, 결정론적인 경로에서 벗어나 국소 최솟값을 탈출할 가능성을 높인다. 더 발전된 적응형 학습률 알고리즘인 Adam이나 RMSProp은 매개변수별로 학습률을 동적으로 조정하여 보다 효율적으로 최적점을 탐색한다. 또한, 학습 초기에 비교적 큰 학습률을 사용하는 등의 학습률 스케줄링 전략도 국소 최솟값을 빠져나오는 데 도움을 줄 수 있다.
6.2. 기울기 소실/폭발
6.2. 기울기 소실/폭발
기울기 소실 문제는 인공 신경망을 역전파 알고리즘으로 학습시킬 때, 오차 신호가 하위 층으로 전파되면서 기울기 값이 점점 작아져 거의 0에 가까워지는 현상이다. 이는 주로 시그모이드 함수나 하이퍼볼릭 탄젠트 함수와 같은 활성화 함수의 도함수 값이 0에서 1 사이의 매우 작은 범위를 가지기 때문에 발생한다[6]. 여러 층을 거치며 이 작은 값들이 반복적으로 곱해지면, 최종적으로 입력층 근처의 가중치에 대한 기울기가 극도로 작아져 가중치 업데이트가 거의 이루어지지 않게 된다. 결과적으로 네트워크의 앞쪽 층은 학습 속도가 매우 느려지거나 전혀 학습되지 않는 문제가 생긴다.
반대로 기울기 폭발 문제는 기울기 값이 층을 거듭하며 기하급수적으로 커지는 현상이다. 이는 주로 가중치 행렬의 초기값이 너무 크게 설정되었거나, 순환 신경망에서 장기 의존성을 학습할 때 발생한다. 기울기가 폭발하면 가중치 업데이트 값이 지나치게 커져 수치적 불안정성을 초래하고, 가중치 값이 NaN이 되거나 발산하여 학습이 완전히 실패할 수 있다.
이러한 문제를 완화하기 위한 여러 방법이 개발되었다. ReLU 계열의 활성화 함수는 양의 입력에 대해 도함수가 1이므로 기울기 소실 문제를 크게 줄인다. LSTM과 GRU와 같은 게이트 메커니즘을 가진 순환 신경망 구조는 장기 의존성 학습과 기울기 소실 문제를 해결하는 데 효과적이다. 또한, 가중치 초기화 기법인 He 초기화나 Xavier 초기화는 각 층의 출력 분산을 안정화시키려는 목적으로 설계되었다. 심층 신경망에서는 배치 정규화를 적용하여 각 층의 입력 분포를 안정화시킴으로써 기울기의 흐름을 개선하기도 한다.
7. 응용 분야
7. 응용 분야
경사 하강법은 기계 학습과 딥러닝 모델을 훈련시키는 데 가장 핵심적으로 사용되는 최적화 알고리즘이다. 그 응용 범위는 매우 넓어, 인공 신경망의 가중치를 조정하는 기본 메커니즘으로 작동하며, 회귀 분석, 분류, 패턴 인식 등 다양한 문제 해결에 기초를 제공한다.
주요 응용 분야는 다음과 같이 구분할 수 있다.
응용 분야 | 주요 내용 | 대표 예시 |
|---|---|---|
지도 학습 | 레이블이 있는 데이터로 모델 훈련 | |
비지도 학습 | 레이블 없는 데이터에서 패턴 발견 | |
강화 학습 | 환경과의 상호작용을 통해 정책 최적화 | |
자연어 처리 | 단어 임베딩 및 언어 모델 훈련 | |
컴퓨터 비전 | 이미지 인식 및 객체 탐지 모델 훈련 |
구체적으로, 자연어 처리 분야에서는 단어 임베딩 모델인 Word2Vec이나 GloVe를 훈련시켜 단어의 의미적 관계를 벡터 공간에 표현하는 데 경사 하강법이 사용된다. 컴퓨터 비전에서는 수백만 장의 이미지로 합성곱 신경망을 훈련시켜 객체를 인식하거나 분할하는 모델을 만드는 과정의 핵심이다. 강화 학습에서는 에이전트가 보상을 최대화하는 행동 정책을 학습할 때, 정책의 매개변수를 경사 하강법을 통해 조정한다.
또한, 전통적인 통계학 모델인 선형 회귀의 계수를 추정하거나, 로지스틱 회귀에서 최대우도추정을 수행하는 것도 경사 하강법의 일종으로 볼 수 있다. 이처럼 경사 하강법은 단순한 알고리즘에서 출발했지만, 그 변형과 발전된 형태를 통해 현대 인공지능 기술의 거의 모든 분야를 지탱하는 기반이 되었다.
