경사하강법 시뮬레이터
이차함수 f(x)=ax²+bx+c에서 x_(n+1)=x_n-η·f'(x_n)을 반복해 최솟값을 찾는 경사하강법 과정을 단계별로 보여줍니다. 학습률에 따라 수렴·진동·발산이 갈리는 경계를 직접 확인할 수 있습니다.
f(x) = 1x² − 4x + 8
현재 a=1에서 발산 경계는 η=1/a=1입니다.
최솟값으로 수렴합니다
x* = 2
f(x*) = 4 · 마지막 x = 1.9997
| n | x_n | f(x_n) | f'(x_n) |
|---|---|---|---|
| 0 | -6 | 68 | -16 |
| 1 | -2.8 | 27.04 | -9.6 |
| 2 | -0.88 | 12.2944 | -5.76 |
| 3 | 0.272 | 6.986 | -3.456 |
| 4 | 0.9632 | 5.075 | -2.0736 |
| 5 | 1.3779 | 4.387 | -1.2442 |
| 6 | 1.6268 | 4.1393 | -0.7465 |
| 7 | 1.7761 | 4.0502 | -0.4479 |
| 8 | 1.8656 | 4.0181 | -0.2687 |
| 9 | 1.9194 | 4.0065 | -0.1612 |
| 10 | 1.9516 | 4.0023 | -0.0967 |
| 11 | 1.971 | 4.0008 | -0.058 |
| 12 | 1.9826 | 4.0003 | -0.0348 |
| 13 | 1.9896 | 4.0001 | -0.0209 |
| 14 | 1.9937 | 4 | -0.0125 |
| 15 | 1.9962 | 4 | -0.0075 |
| 16 | 1.9977 | 4 | -0.0045 |
| 17 | 1.9986 | 4 | -0.0027 |
| 18 | 1.9992 | 4 | -0.0016 |
| 19 | 1.9995 | 4 | -0.001 |
| 20 | 1.9997 | 4 | -0.0006 |
계산 방법
- 1이차함수 계수 a, b, c와 시작점 x₀을 넣습니다.
- 2학습률 η을 바꿔 가며 수렴·진동·발산이 어떻게 갈리는지 봅니다.
- 3곡선 위에 찍힌 점들이 최솟값으로 다가가는(또는 멀어지는) 경로를 확인합니다.
- 4표에서 각 단계의 x, f(x), 기울기(f'(x))를 확인합니다.
자주 묻는 질문
함수의 기울기(미분값) 반대 방향으로 조금씩 이동하며 최솟값을 찾는 반복 알고리즘입니다. x_(n+1) = x_n - η·f'(x_n)에서 η(학습률)는 한 번에 얼마나 이동할지를 정합니다.
f(x)=ax²+bx+c(a>0)는 최솟값이 x*=-b/(2a) 하나로 정확히 정해지는 볼록함수이기 때문입니다. 갱신식을 정리하면 x_(n+1)=(1-2aη)x_n-ηb라는 선형 점화식이 되고, r=1-2aη라 두면 x_n-x*=r^n·(x_0-x*)라는 닫힌 형태 해가 나옵니다. 이 계산기는 실제 반복 계산과 이 닫힌 형태 해가 항상 일치하는 것으로 정확성을 검증했습니다.
0 < η < 1/a = 2/L(L=2a는 f'의 립시츠 상수)이어야 수렴합니다. η가 정확히 1/a이면 값이 시작점과 그 대칭점 사이를 영원히 오가며 진동만 하고, 1/a을 넘으면 진동하며 발산합니다.
수렴은 하지만 아주 느려집니다. r=1-2aη가 0에 가까울수록(즉 η가 1/(2a) 근처일 때) 한 번에 확 줄어들고, η가 아주 작으면 매 단계 조금씩만 줄어 최솟값까지 도달하는 데 훨씬 많은 반복이 필요합니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 반복 횟수는 200까지 계산합니다.
- a는 0보다 커야 합니다(아래로 볼록해야 최솟값이 하나로 정해집니다).
- 1변수 이차함수만 다룹니다. 실전의 경사하강법은 대개 다변수·비볼록 함수를 다뤄 이 계산기처럼 간단히 정답을 미리 알 수 없습니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.