경사 하강법은 손실 함수의 기울기, 즉 손실의 가장 가파른 증가 방향을 가리키는 편미분 벡터의 반대 방향으로 모델의 매개변수를 반복적으로 조정하여 손실 함수를 최소화하는 반복적 최적화 알고리즘이다. 이는 대부분의 현대 머신 러닝 및 딥 러닝 시스템이 데이터로부터 학습하는 기본 메커니즘으로, 단순한 선형 회귀에서부터 수천억 개의 매개변수를 가진 모델에 이르기까지 모든 훈련의 기반이 된다.
역사
이 방법은 컴퓨팅 이전부터 존재했다. 프랑스 수학자 오귀스탱 루이 코시는 1847년에 경사 기반 최소화의 한 버전을 기술했다. 통계적 형태인 확률적 근사법은 1951년 허버트 로빈스와 서튼 먼로에 의해 공식화되었다. 경사 하강법은 1980년대에 역전파와 결합되어 다층 신경망을 통해 기울기를 효율적으로 계산하는 표준 방법이 되면서 AI의 핵심이 되었고, 대규모 데이터셋과 이 방법이 요구하는 많은 작은 업데이트 단계를 실행할 수 있는 GPU 하드웨어의 가용성이 증가함에 따라 실용적 지배력도 함께 커졌다.
변형
배치 경사 하강법은 각 업데이트 전에 전체 데이터셋에 대한 기울기를 계산하는데, 이는 정확하지만 대규모 데이터셋에서는 느리고 메모리를 많이 사용한다. 확률적 경사 하강법(SGD)은 한 번에 하나의 예제, 또는 더 일반적으로는 작은 "미니 배치"를 사용하여 매개변수를 업데이트하며, 단계당 정확도 일부를 훨씬 더 빈번한 업데이트와 더 나은 확장성으로 맞바꾼다. 모멘텀 방법은 과거 기울기의 이동 평균을 축적하여 노이즈가 있는 업데이트를 완화하고 일관된 방향으로의 수렴을 가속화한다. 적응형 방법, 특히 2014년 디더릭 킹마와 지미 바가 도입한 Adam은 기울기의 1차 및 2차 모멘트 추정에 기반하여 매개변수별 학습률을 유지하며, Adam 또는 그 변형은 거의 모든 현대 대규모 언어 모델 훈련의 기본 최적화기이다.
실용적 고려 사항
각 업데이트 단계의 크기를 조정하는 학습률은 경사 하강법에서 가장 중요한 하이퍼파라미터이다. 너무 높으면 훈련이 발산하거나 진동하고, 너무 낮으면 훈련이 비현실적으로 느리거나 손실 지형의 나쁜 영역에 갇힌다. 현대 훈련 실행은 일반적으로 점진적으로 워밍업된 후 훈련 과정에 걸쳐 감소하는 학습률 스케줄을 사용한다. 심층 네트워크의 손실 표면은 매우 고차원적이고 비볼록하기 때문에, 실제로 경사 하강법은 진정한 전역 최소값을 찾지 못한다. 대신 과매개변수화된 네트워크에서 경사 하강법이 찾는 많은 지역 최소값이 잘 일반화된다는 경험적 관찰에 의존하는데, 이 현상은 이론적으로 아직 완전히 설명되지 않았다. 경사 하강법은 또한 매우 깊거나 순환적인 아키텍처에서 기울기 소실 및 기울기 폭발과 같은 문제에 취약하며, 이는 LSTM의 게이팅 메커니즘과 나중에 트랜스포머 아키텍처 전반에 사용되는 잔차 연결과 같은 혁신을 촉발했다.
다른 개념과의 관계
경사 하강법은 네트워크의 손실 함수를 최소화하는 데 사용되는 도구이지만, 그 자체만으로 유용한 모델을 생성하기에는 충분하지 않다. 정규화와 같은 기술이 없으면 경사 하강법은 훈련 세트를 암기하여 훈련 손실을 기꺼이 0으로 만들 것이며, 이는 과적합으로 알려진 실패 모드이다. 강화 학습에서는 경사 기반 방법이 고정된 레이블 손실 대신 에이전트의 기대 보상을 최적화하도록 적응되며, 이는 RLHF로 훈련된 시스템과 같은 정책 경사 알고리즘의 기초를 형성한다.