경사 하강법(Gradient descent)
손실 함수(loss function)의 기울기(그래디언트, gradient) 반대 방향으로 조금씩 내려가며 낮은 곳을 찾는 방법. 걸음 크기(학습률, learning rate)가 너무 크면 튀고, 너무 작으면 느리며, 볼록 함수(convex function)가 아니면 가장 낮은 곳에 닿는다는 보장이 없다.
안개 낀 산에서 가장 낮은 골짜기를 찾는다고 해 봅시다. 발밑의 경사만 느낄 수 있다면, 가장 가파르게 내려가는 쪽으로 한 걸음 옮기고 다시 경사를 재기를 되풀이하면 됩니다. 이것이 경사 하강법입니다. 두 변수 함수(function) f(x, y)를 각 변수로 미분(differentiation)한 값을 모은 벡터(vector)
η는 걸음의 크기를 정하는 학습률입니다. 아래는
지금
일반적으로 매끄러운 함수는 극소점 근처에서 이차함수처럼 생겼고, 그 모양은 두 번 미분한 값들을 모은 행렬(헤세 행렬(Hessian matrix), 독일 수학자 오토 헤세의 이름)이 정합니다. 그 고유값(eigenvalue)들은 고유벡터(eigenvector) 방향으로 그릇이 얼마나 가파르게 휘었는지, 곧 방향마다의 곡률입니다. 길쭉한 골짜기에서는 x 방향 곡률(curvature)이 1, y 방향 곡률이 6입니다. 가장 큰 곡률
'두 개의 골짜기'에서는 출발점에 따라 도착하는 곳이 다릅니다. 처음 자리에서 출발하면 얕은 오른쪽 골짜기에서 멈춥니다. 그곳도 기울기가 0이어서, 발밑만 보는 경사 하강법은 더 낮은 왼쪽 골짜기가 있는지 알 수 없습니다. 최적화(optimization)에서 기울기가 0인 점은 극소일 수도, 한쪽으로는 오르고 다른 쪽으로는 내려가는 안장점(saddle point)일 수도 있고, 극소라 해도 최소라는 보장이 없습니다. k-평균 군집(k-means clustering)이 나쁜 시작에서 멈추는 것도 같은 모양입니다. 경사 하강법이 보장하는 것은 이 정도입니다. 기울기가 갑자기 바뀌지 않는 함수에서 η를 충분히 작게 잡으면 f가 걸음마다 줄어들고, 아래로 끝없이 내려가는 함수가 아닌 한 기울기가 0에 다가갑니다. 그릇처럼 어디서나 위로 휜 함수(볼록 함수)라면 극소가 곧 최소라서, 이때는 가장 낮은 곳에 다가간다고 말할 수 있습니다.
곡률까지 쓰는 뉴턴 방법(Newton's method)은 이차함수라면 한 걸음에 바닥에 닿지만, 변수가 n개면 n × n 헤세 행렬을 만들고 연립방정식을 풀어야 합니다. 변수가 수백만에서 수십억 개인 신경망(neural network)에서는 그럴 수 없어서, 기울기만 쓰는 경사 하강법과 그 변형을 씁니다. 그 기울기는 역전파(backpropagation)로 구합니다. 데이터가 많을 때의 손실은 예 하나하나의 손실의 평균(mean)이고 기울기도 평균입니다. 매번 전부 계산하는 대신 무작위로 고른 몇 개(미니배치, minibatch)로 기울기를 어림하는 것이 확률적 경사 하강법(SGD)입니다. 그 어림은 기댓값(expected value)이 참 기울기와 같은 잡음 섞인 추정이라 걸음이 조금씩 비틀거리지만 훨씬 쌉니다. 지난 걸음의 방향을 관성(inertia)처럼 이어 가는 모멘텀(momentum), 변수마다 걸음 크기를 따로 맞추는 Adam 같은 변형도 널리 쓰입니다. 방법 자체는 1847년 코시가 연립방정식을 풀려고 제안한 것으로 흔히 꼽힙니다.
이어지는 곳. 최소제곱 회귀(least-squares regression)의 오차 제곱합은 그릇 모양이라 공식으로 바로 풀 수 있지만, 자료가 아주 크면 경사 하강법으로 풀기도 합니다. 퍼셉트론(perceptron)의 학습 규칙도 점 하나씩 밟는 경사 하강으로 볼 수 있습니다. 학습 데이터(training set)의 손실을 끝까지 줄이는 것이 늘 좋지는 않아서, 따로 떼어 둔 검증 데이터(validation set)의 오차가 오르기 시작하면 멈추는 조기 종료(early stopping)로 과적합(overfitting)을 막기도 합니다. η를 한없이 작게 하면 경로는 미분방정식
이 개념이 나오는 긴 글
이 개념 위에 세워진 것
이 개념을 언급하는 페이지
- 뉴턴 방법
… 개인 신경망에서는 너무 비쌉니다. 그래서 신경망 학습에는 주로 기울기만 보고 내리막으로 조금씩 걷는경사 하강법을 씁니다. 한 걸음에 드는 계산이 훨씬 적기 때문입니다. 실제로는 기울기마저 자료 전체 대신 무작위로 …
- 최적화
… 변수가 아주 많아 도함수가 0인 곳을 직접 풀 수 없을 때는 기울기 벡터의 반대쪽으로 조금씩 내려가는경사 하강법으로 골짜기를 찾습니다. 변수들이 일차식으로만 얽힌 제약(예: 재료가 이만큼만 있다) 아래서 이익을 최대로 …
- 최소제곱 회귀
… 변수가 수백만 개인 모형에서는 정규방정식을 푸는 대신, 오차 제곱 합의 기울기 반대쪽으로 조금씩 내려가는경사 하강법으로 같은 바닥을 찾습니다. 세로 오차 대신 직선에 수직으로 잰 거리(점에서 직선까지의 가장 짧은 거리)를 …
- k-평균 군집
… 같은 방법을 씁니다. 이것도 최적화에서 흔히 만나는 함정입니다. 손실을 줄이는 쪽으로만 조금씩 움직이는경사 하강법도 같은 국소 최솟값에 걸릴 수 있습니다. 배경의 영역은 중심들이 만드는 보로노이 다이어그램입니다. …
- 퍼셉트론
… 틀린 만큼만 고치는 이 규칙은 손실 \max(0, -y(\vec w\cdot\vec x + b)) 에 대한경사 하강법을 점 하나씩 적용한 것으로 볼 수 있습니다. 0에서 1로 뚝 끊어 오르는 계단 함수를 매끄러운 S자 …
- 신경망
… 무작위 가중치에서 출발합니다. H = 2의 XOR에서는 가끔 한쪽 무리를 놓친 채 더 나아지지 않는데,경사 하강법이 국소 최솟값이나 거의 평평한 곳에 빠진 것입니다. 단위를 넉넉히 두면 이런 일이 드물어집니다. 가중치는 …
- 역전파
신경망을경사 하강법으로 학습시키려면 손실 L을 가중치 하나하나로 미분한 값이 모두 필요합니다. 가중치가 수십억 개여도 …
- 과적합
… 다시 과소적합입니다. 신경망에서는 같은 벌점을 가중치 감쇠라 부르고, 검증 오차가 오르기 시작할 때경사 하강법을 멈추는 조기 종료, 학습 중 단위를 무작위로 끄는 드롭아웃도 씁니다. 과적합은 여러 모습으로 …
- 욕심쟁이 알고리즘
… 가장 가파른 쪽으로만 가다가 가까운 봉우리(국소 최적)에 갇히는 것과 닮았습니다. 연속적인 최적화에서경사 하강법이 빠지는 함정도 같은 모양입니다. 이어지는 곳. 1, b, b², …처럼 진법의 자릿값으로 된 …
- 쿨백–라이블러 발산
… 모형이 내놓는 분포 q 사이의 교차 엔트로피 -\sum p_i \log q_i 를 줄이도록 역전파와경사 하강법으로 학습합니다. H(p)는 모형과 무관하니 교차 엔트로피를 줄이는 것은 D(p‖q)를 줄이는 것과 …
- 고정점
… 흐름에서는 고정점을 평형점이라 부르며, 선형 미분방정식의 고윳값이 그 안정성을 정합니다. 최솟값을 찾는경사 하강법도 기울기가 0인 곳을 고정점으로 삼는 되풀이입니다. 복소평면에서 되풀이의 고정점과 주기점을 따라가면 …
- 동역학계
… 로 바꾸면 r = 1 + a인 로지스틱 사상과 똑같습니다. 너무 큰 걸음이 흔들림을 부른다는 교훈은경사 하강법에서 학습률을 고를 때도 그대로 통합니다. 상태 공간, 고정점, 안정성 상태를 좌표로 놓으면 가능한 모든 …
- 변분법
… 떨리는 줄의 파동방정식은 줄의 작용을 정류하게 하는 운동입니다. 컴퓨터는 곡선을 점 몇 개로 바꾼 뒤경사 하강법으로 범함수를 줄여 답을 찾습니다. 흙더미를 가장 싸게 옮기는 최적 수송, 20세기 중반에 자란 ⟦선형 …
- 최대가능도법
… 줄이는 손실 함수인 교차 엔트로피가 됩니다(쿨백–라이블러 발산). 그러니 교차 엔트로피를 줄이도록경사 하강법으로 학습하는 것은 최대가능도 추정을 하는 것과 같습니다. n-그램 언어 모형에서 '이 낱말 다음에 저 …
- 기계 학습
… 점수)로 적혀 있다면 학습은 그 수들을 맞추는 최적화입니다. 손실을 매개변수로 미분해 내려가는경사 하강법(실제로는 자료 일부로 기울기를 어림하는 확률적 경사 하강법), 층이 깊은 신경망에서 그 미분값을 싸게 …
- 선형 계획법
… 부등식 대신 등식 제약만 있으면 연립일차방정식이 되고, 목표가 매끄러운 곡면이면 기울기를 따라 내려가는경사 하강법과 제약마다 승수를 붙이는 라그랑주 승수법이 같은 역할을 합니다. 영역과 목표가 모두 볼록하다는 점에서 …
- 로지스틱 회귀
… 않습니다. 곧 L은 볼록 함수이고, 볼록 함수에서는 기울기가 0인 곳이 곧 가장 낮은 곳입니다. 그래서경사 하강법이든 뉴턴 방법이든 엉뚱한 골짜기에 갇히지 않습니다. 둘째 그림은 (w, b) 평면에 그린 L의 …
- 특잇값 분해
… \vec b|^2 을 가장 작게 하는 x 가운데 길이가 가장 짧은 것입니다(최소제곱법, 정사영).경사 하강법이 길쭉한 골짜기에서 느린 까닭도 같은 종류의 수, 곧 이계도함수를 모은 헤세 행렬의 조건수입니다. …
- 기울기 벡터와 야코비 행렬
… 보라 점선이 P에서 그은 그 접선인데, P를 어디로 옮겨도 청록 ∇f 화살표가 이 점선과 수직을 이룹니다.경사 하강법이 -\nabla f 쪽으로 걸음을 내딛고, 그 걸음이 등고선에 수직으로 출발하는 까닭입니다. 오른쪽 …
- 볼록 함수와 볼록 최적화
… 점선이 그것입니다. 그러니 \nabla f(x) = 0 이면 모든 y에서 f(y) \ge f(x) 입니다.경사 하강법문서의 '두 개의 골짜기'에서처럼 얕은 골짜기에 갇히는 일은 볼록 함수에서는 생기지 않습니다. 흔한 오해가 …
- 확률적 경사 하강법과 Adam
… = \frac1N\sum_i \ell_i(\theta) 이고, 기울기도 평균입니다. 그래서경사 하강법의 한 걸음을 내딛으려면 기울기 N개를 모두 계산해야 합니다. N이 수백만이면 한 걸음이 너무 비쌉니다. …
- 인공지능
… 신경망의 기초. 가장 단순한 학습 기계 퍼셉트론에서 여러 층의 신경망으로, 그것을 학습시키는경사 하강법과 역전파로. 자료의 모양에 맞춘 신경망. 그림을 읽는 합성곱 신경망, 순서가 있는 자료를 읽는 …
- 강화 학습
… 몬테카를로 방법과 큰 수의 법칙: 겪은 표본으로 기댓값을 대신하는 생각의 근거. 신경망,경사 하강법, 확률적 경사 하강법: 값을 신경망으로 어림하고 기울기로 고치는 부분. 게임 트리 탐색: 상대가 …
- 전문가 혼합
… 전문가가 모두 가져가면 N이 됩니다. '보조 손실로 5걸음'은 이 손실(α를 뺀 부분)만으로 라우터 벡터를경사 하강법으로 다섯 번 고칩니다(f는 1순위로 셉니다). 처음 값 1.299가 한 번 누르면 1.040으로 …
- 역문제와 잘 놓인 문제
… 버리는 잘라 낸 특잇값 분해, 반복법을 일찍 멈추는 방법도 같은 일을 합니다. 최소제곱을 0에서 출발한경사 하강법으로 풀면서 k걸음에서 멈추면, 성분마다 1-(1-\eta\sigma_i^2)^k 가 곱해집니다(η는 걸음 …