경사 하강법
목차
소개
경사 하강법은 변수 벡터 \( \mathbf{x} = \begin{pmatrix} x_1 \\ x_2 \\ \dots \\ x_n \end{pmatrix} \)를 조정하여 미분 가능한 함수 \( f(\mathbf{x}) \)의 국소 최소값을 찾는 반복적인 최적화 알고리즘입니다. 초기 추정값 \( \mathbf{x}_0 \)에서 시작하여, 함수의 기울기를 사용해 최소값으로 가는 방향으로 이동하며, 학습률 \( r \)에 의해 이동 크기가 조정됩니다. 이 과정은 \( \mathbf{x} \) 값의 변화가 충분히 작아지거나, 기울기 크기가 거의 0에 가까워지거나, 다른 종료 조건이 충족될 때까지 계속됩니다.
경사 하강법의 업데이트 공식
경사 하강법의 핵심 아이디어는 변수를 반복적으로 조정하여 함수의 최소값을 찾는 것입니다. 이 조정은 다음과 같은 업데이트 공식을 통해 이루어집니다:
\[ \mathbf{x}_{k+1} = \mathbf{x}_k - r \nabla f(\mathbf{x}_k) \]
여기서 \( \mathbf{x} \)는 변수 벡터이며, \( r \gt 0 \)인 학습률 \( r \)과 \( \nabla f(\mathbf{x}_k) \)는 \( \mathbf{x} = \mathbf{x}_k \)에서 함수 \( f \)의 기울기입니다:
\[ \nabla f(\mathbf{x}) = \begin{pmatrix} \dfrac{\partial f}{\partial x_1} \\ \dfrac{\partial f}{\partial x_2} \\ \dots \\ \dfrac{\partial f}{\partial x_n}\\ \end{pmatrix} \]
이 업데이트 공식은 기울기 \( \nabla f(\mathbf{x}) \)가 함수 \( f \)의 가장 가파른 증가 방향을 가리킨다는 개념에서 비롯됩니다. \( f \)를 최소화하기 위해 기울기의 반대 방향으로 이동합니다. 학습률 \( r \)은 이 방향으로 이동할 때의 단계 크기를 결정합니다.
경사 하강법의 자세한 설명
1. 초기화:
- 변수 벡터 \( \mathbf{x} \)에 대한 초기 추정값으로 시작합니다. 이 초기 값을 \( \mathbf{x}_0 \)으로 설정합니다.
- 최소값으로 가는 단계 크기를 조정하는 학습률 \( r \)을 선택합니다.
2. 기울기 계산:
- 함수 \( f(\mathbf{x}) \)에 대해 기울기 \( \nabla f(\mathbf{x}) \)를 계산합니다.
- 현재 값 \( \mathbf{x} = \mathbf{x}_k \)에서 이 기울기를 평가합니다. 반복 \( k \)에서의 기울기를 \( \nabla f(\mathbf{x}_k) \)로 나타냅니다.
3. 업데이트 규칙:
- 업데이트 공식을 사용하여 \( \mathbf{x} \) 값을 조정합니다:
\[
\mathbf{x}_{k+1} = \mathbf{x}_k - r \nabla f(\mathbf{x}_k)
\]
- 여기서 \( \mathbf{x}_{k+1} \)은 한 번의 반복 후 업데이트된 \( \mathbf{x} \) 값입니다.
4. 반복:
- 기울기를 계산하고 \( \mathbf{x} \) 값을 업데이트하는 과정을 종료 조건이 만족될 때까지 반복합니다. 종료 조건은 다음과 같을 수 있습니다:
- 최대 반복 횟수.
- 반복 간의 \( \mathbf{x} \) 값 변화가 미리 정해진 임계값보다 작을 때.
- 기울기 크기 \( \|\nabla f(\mathbf{x}_k)\| \)가 미리 정해진 임계값보다 작을 때.
5. 수렴:
- 종료 조건이 만족되면, \( \mathbf{x} \) 값은 함수 \( f(\mathbf{x}) \)의 최소값에 가까워져야 합니다.
경사 하강법 알고리즘을
시각화하는 계산기
가 포함되어 있으며, 알고리즘을 깊이 이해하는 데 사용될 수 있습니다.
또한 수렴을 조사하기 위한 또 다른 경사 하강법 계산기 도 포함되어 있습니다.