본문으로 바로가기

최솟값과 최댓값: 극값을 찾고 해석하는 방법

최솟값과 최댓값의 개념, 국소/전역 극값의 차이, 임계점과 일차/이차 도함수 검사, 닫힌 구간 방법으로 극값을 찾는 법을 알아보세요.
업데이트됨 2026년 8월 13일  · 11분 읽다

AI로 탐색하기

ChatGPTClaudePerplexity

기업이 최적의 이익률을 찾기 위해 가격을 설정할 때나, 모델이 예측 오차를 줄이기 위해 가중치를 조정할 때마다 같은 미적분 문제가 바탕에서 작동합니다. 함수의 최댓값 또는 최솟값을 찾는 일 말이죠. 이것이 바로 최솟값과 최댓값의 주제입니다. 함수가 극값에 도달하는 봉우리와 골짜기입니다.

이 글에서는 극값이 실제로 무엇을 의미하는지부터 시작해, 국소적 거동과 전역적 거동을 구분하고, 도함수를 사용해 극값을 찾는 과정을 살펴본 뒤, 이러한 내용이 최적화와 데이터 과학에서 왜 중요한지까지 연결하겠습니다. 실습으로 개념을 다지고 싶다면 Introduction to Optimization in Python 과정에서 계산적 측면을 다룹니다.

최솟값과 최댓값이란?

함수의 최솟값은 함수가 도달하는 가장 낮은 값이고, 최댓값은 가장 높은 값입니다. 둘을 합쳐 극값(단수: extremum)이라고 부릅니다. 그래프에서 보면 예상대로 골짜기의 바닥과 봉우리의 꼭대기입니다.

처음부터 분명히 해 둘 점이 하나 있습니다. 극값은 함수값(y좌표)이고, 그 값이 발생하는 지점은 x값입니다. "최댓값은 x = 3에서"와 "최댓값은 f(3) = 10"은 다릅니다. 이 구분은 생각보다 자주 사람들을 헷갈리게 하며, 시험 문제와 면접 질문에서 모두 등장합니다.

모든 함수가 최솟값과 최댓값을 모두 갖는 것은 아닙니다. 직선은 둘 다 없습니다. 위로 열린 포물선은 최솟값은 있지만 최댓값은 없습니다. 열린 구간에서 정의된 함수는 극값에 가까워질 수는 있지만 실제로 도달하지 않을 수 있습니다. 극값은 보장되지 않으며, 함수의 모양과 다루는 정의역에 따라 달라집니다.

국소 최솟값/최댓값 vs. 전역 최솟값/최댓값

극값을 찾기 전에, 이후 전반에 걸쳐 중요한 구분을 명확히 할 가치가 있습니다. 즉, 국소적으로 의미 있는 극값과 전역적으로 의미 있는 극값의 차이입니다. 이는 최적화에서 실무적으로 가장 중요한 아이디어 중 하나이며, 동시에 사람들이 가장 많이 혼동하는 부분이기도 합니다.

차이는 범위에 달려 있습니다. 국소 극값은 한 점 주변의 작은 이웃만 보며, 전역 극값은 전체 정의역을 고려합니다.

국소 최솟값과 국소 최댓값

국소 최솟값은 그 점의 함수값이 주변 모든 값보다 낮은 지점입니다. 그래프 어딘가에 더 깊은 골짜기가 있더라도, 지금은 골짜기 바닥에 있는 셈입니다. 국소 최댓값은 주변보다 높은 봉우리입니다. 더 높은 봉우리가 멀리 있을 수 있어도 말이죠.

완만한 언덕이 이어지는 하이킹 코스를 떠올려 보세요. 각각의 정상은 국소 최댓값이고, 언덕 사이의 오목한 곳은 국소 최솟값입니다. 전체 코스를 보지 않아도, 바로 주변과 비교해 식별할 수 있습니다.

전역 최솟값과 전역 최댓값

전역 최솟값(또는 절댓값 최솟값)은 전체 정의역에서 함수가 갖는 단 하나의 가장 낮은 값입니다. 전역 최댓값(또는 절댓값 최댓값)은 단 하나의 가장 높은 값입니다. 전역 극값은 항상 국소 극값이기도 하지만, 그 역은 성립하지 않습니다.

같은 하이킹 코스에서 전역 최댓값은 전체 경로 중 가장 높은 지점입니다. 함수는 여러 국소 극값을 가질 수 있지만, 전역 최솟값과 전역 최댓값은 값의 관점에서 각각 하나씩만 존재합니다(그 값이 여러 지점에서 나타날 수는 있습니다).

이 국소 대 전역의 구분은 이론에만 머물지 않습니다. 머신러닝에서 경사하강법이 전역 최솟값을 찾으려다 국소 최솟값에 갇히는 문제로 직결됩니다. 이에 대해서는 뒤에서 더 다룹니다.

최솟값과 최댓값을 찾는 방법

극값을 찾는 과정은 일정합니다. 본질적으로 묻는 질문은 이렇습니다. 함수가 증가를 멈추고 감소로 전환하는 지점(또는 그 반대)은 어디인가? 도함수가 이를 정밀하게 답할 도구를 제공합니다.

일반적인 접근은 다음과 같습니다.

  1. 일차 도함수 f'(x)를 구합니다.
  2. f'(x) = 0이거나 f'(x)가 존재하지 않는 지점, 즉 임계점을 찾습니다.
  3. 각 임계점을 국소 최솟값, 국소 최댓값 또는 해당 없음으로 분류합니다.
  4. 닫힌 구간에서 작업 중이라면, 양 끝점도 확인합니다.
  5. 모든 후보 값을 비교하여 절댓값 극값을 식별합니다.

구체적으로 보기 위해 한 함수를 계속 사용하겠습니다: f(x) = 2x³ − 9x² + 12x − 4, 구간 [0, 4]에서 정의합니다.

임계점과 극값

f(x)의 임계점은 정의역의 x 중 f'(x) = 0이거나 f'(x)가 정의되지 않는 모든 값입니다. 이들이 극값의 후보이며, 함수가 방향을 바꿀 수 있는 지점입니다.

왜 극값이 임계점에서 나타날까요? 매끄러운 봉우리나 골짜기에서는 접선이 수평이므로 도함수가 0입니다. 하지만 모든 임계점이 극값인 것은 아니며, 이 점이 중요합니다. 고전적인 반례는 x = 0에서의 f(x) = x³입니다. 도함수는 0이지만 함수는 방향을 바꾸지 않습니다. 잠시 평평해졌다가 계속 증가할 뿐입니다. 도함수가 존재하지 않는 지점도 주의해야 합니다. f(x) = |x|의 x = 0 같은 뾰족한 꼭짓점은 도함수가 없지만, 바로 그 지점에 최솟값이 있습니다.

우리 예시에서 f'(x) = 6x² − 18x + 12 = 6(x² − 3x + 2) = 6(x − 1)(x − 2)입니다. 이를 0으로 두면 임계점은 x = 1과 x = 2입니다. 이제 각 지점에서 무슨 일이 일어나는지 파악해야 합니다.

일차 도함수 검사 활용법

일차 도함수 검사는 f'(x)의 부호가 바뀌는지 확인해 임계점을 분류합니다. 증가에서 감소로 바뀌면 봉우리, 감소에서 증가로 바뀌면 골짜기입니다.

양수에서 음수로

임계점을 지날 때 f'(x)가 양수에서 음수로 바뀌면 그 지점은 국소 최댓값입니다. 함수가 그 지점까지 올라갔다가 다시 내려온 겁니다.

음수에서 양수로

f'(x)가 음수에서 양수로 바뀌면 함수가 떨어지다가 다시 상승하기 시작한 것입니다. 그 임계점은 국소 최솟값입니다.

부호 변화 없음

f'(x)가 양쪽에서 모두 양수(또는 모두 음수)로 유지되면 그 임계점은 최솟값도 최댓값도 아닙니다. f(x) = x³의 x = 0처럼 함수가 잠시 멈추었지만 방향을 바꾸지 않은 경우입니다.

우리 함수에서 x = 1과 x = 2 주변 구간을 시험해 봅시다. 시험점: f'(0.5) = 6(0.5 − 1)(0.5 − 2) = 6(−0.5)(−1.5) = 4.5 > 0, f'(1.5) = 6(0.5)(−0.5) = −1.5 < 0, f'(3) = 6(2)(1) = 12 > 0. x = 1에서 도함수는 양수에서 음수로: 국소 최댓값. x = 2에서는 음수에서 양수로: 국소 최솟값. 함수값은 f(1) = 1, f(2) = 0입니다.

일차 도함수 검사는 항상 통하지만, 각 구간에서 시험점을 고르는 일이 빠르게 번거로워집니다. 특정 조건이 충족되면 더 빠른 방법이 있습니다.

이차 도함수 검사 활용법

이차 도함수 검사는 임계점에서 f''(x) ≠ 0일 때 작동합니다. 구간 전반의 부호 변화를 확인하는 대신, 임계점에서 이차 도함수를 직접 평가합니다.

핵심은 오목성(concavity)과 연결됩니다. f''(c) > 0이면 함수는 c에서 위로 볼록(그릇 모양)하므로 임계점은 바닥, 즉 국소 최솟값입니다. f''(c) < 0이면 아래로 볼록(언덕 모양)하므로 임계점은 꼭대기, 즉 국소 최댓값입니다. f''(c) = 0이면 이 검사는 아무것도 알려주지 못하므로 일차 도함수 검사로 돌아가야 합니다.

우리 함수에서 f''(x) = 12x − 18입니다. x = 1에서 f''(1) = 12 − 18 = −6 < 0으로 국소 최댓값을 확인합니다. x = 2에서 f''(2) = 24 − 18 = 6 > 0으로 국소 최솟값을 확인합니다. 앞서와 같은 결론이지만 더 빠릅니다. 이차 도함수 검사는 항상 통하지는 않습니다(변곡점이나 특이한 임계점에서는 실패). 그래도 가능할 때는 시간을 절약합니다.

구간에서 절댓값 최솟값과 최댓값 찾기

연속 함수와 닫힌 구간 [a, b]에서 작업할 때, 극값정리(Extreme Value Theorem)는 절댓값 최댓값과 최솟값이 모두 존재함을 보장합니다. 헛수고가 아닙니다.

방법은 닫힌 구간 방법이라고 합니다.

  1. 구간 (a, b) 내부에서 f(x)의 모든 임계점을 찾습니다.
  2. 각 임계점에서 f(x)를 평가합니다.
  3. 양 끝점 a와 b에서도 f(x)를 평가합니다.
  4. 가장 큰 값이 절댓값 최댓값, 가장 작은 값이 절댓값 최솟값입니다.

f(x) = 2x³ − 9x² + 12x − 4, 구간 [0, 4]에서 이미 임계점이 x = 1과 x = 2임을 알고 있습니다. 필요한 모든 곳에서 평가하면:

f(0) = -4

f(1) = 2 - 9 + 12 - 4 = 1

f(2) = 16 - 36 + 24 - 4 = 0

f(4) = 128 - 144 + 48 - 4 = 28

절댓값 최솟값은 f(0) = −4이고, 절댓값 최댓값은 f(4) = 28입니다. 절댓값 최댓값이 임계점이 아닌 끝점에 있다는 점을 주목하세요. 그래서 끝점 확인을 빼먹을 수 없으며, 이는 사람들이 가장 흔히 저지르는 실수이기도 합니다. 오류 섹션에서 더 다루겠습니다.

지금까지의 내용은 단변수 함수에 해당합니다. 실제 문제의 대부분은 다변수이므로, 이를 어떻게 확장하는지도 볼 가치가 있습니다.

다변수 함수의 최솟값과 최댓값

함수 f(x, y)에 대해 임계점은 두 편도함수를 0으로 두어 찾습니다: ∂f/∂x = 0, ∂f/∂y = 0. 임계점은 이제 단일 값이 아니라 (x, y) 쌍입니다. 분류는 더 까다로워지는데, 새로운 가능성인 안장점이 등장하기 때문입니다. 한 방향으로는 위로, 다른 방향으로는 아래로 굽는 지점입니다. 프링글스 칩의 가운데를 떠올리면 됩니다.

다변수 임계점을 분류하려면 헤시안 행렬을 사용합니다. 이차 편도함수로 이루어진 정방행렬로, 그 행렬식과 부호가 국소 최솟값, 국소 최댓값, 안장점 중 어디에 있는지를 알려줍니다. Hessian Matrix 튜토리얼에서는 기계적 원리를 더 깊이 다루고 고차원에서의 곡률과의 연결을 보여줍니다.

최적화와 머신러닝에서의 최솟값/최댓값

머신러닝을 조금이라도 해 보았다면 이미 최솟값 문제를 풀어 본 것입니다. 모델을 학습한다는 것은 손실 함수를 최소화하는 일이기 때문입니다. 손실 함수도 최솟값과 최댓값을 갖는 또 하나의 함수일 뿐입니다.

경사하강법이 여기서의 일꾼입니다. 현재 파라미터 값에서 손실 함수의 도함수(다변수에서는 그래디언트)를 계산해, 손실을 줄이는 방향으로 한 걸음 내딛습니다. 손실 표면에서 내려가며 최솟값을 찾는 것이죠. Gradient Descent in Machine Learning 튜토리얼에서 알고리즘 전체를 다룹니다.

여기서 국소 대 전역의 구분이 진짜 엔지니어링 문제로 나타납니다. 비볼록 손실 함수(대부분의 신경망이 해당)를 다룰 때 경사하강법은 전역 최솟값 대신 국소 최솟값에 갇힐 수 있습니다. 학습률 스케줄, 모멘텀, 확률적 경사하강법 같은 기법은 얕은 국소 최솟값에서 벗어나는 데 도움을 주지만, 비볼록 문제에서 전역 최솟값을 보장하는 일은 여전히 열린 과제입니다. Cost Functions 튜토리얼은 이러한 목적 함수를 어떻게 구성하고, 모양이 왜 중요한지 설명합니다.

최솟값/최댓값을 찾을 때 흔한 실수

모든 임계점이 극값이라고 가정하기

모든 임계점이 최솟값이나 최댓값을 만드는 것은 아닙니다. f(x) = x³의 x = 0 같은 변곡점은 f'(x) = 0이지만 방향 변화가 없습니다. 반드시 도함수 검사로 확인하세요.

국소 극값과 전역 극값을 혼동하기

국소 최솟값은 이웃한 작은 영역에서만 가장 낮은 지점입니다. 전역 최솟값은 전혀 다른 곳이나 끝점에 있을 수 있습니다. 국소 극값 하나 찾았다고 멈추지 마세요.

끝점을 잊어버리기

닫힌 구간에서는 절댓값 극값이 경계에서 발생할 수 있습니다. 예시에서 절댓값 최댓값은 임계점이 아닌 x = 4였습니다. 끝점을 생략하는 것은 최적화 문제에서 가장 흔한 오류이며, 개념적 오해보다도 더 많은 시험 점수를 잃게 할 것입니다.

이차 도함수가 0이면 극값이 없다고 가정하기

f''(c) = 0일 때 이차 도함수 검사는 결론을 내릴 수 없습니다. 그 지점이 극값이 아니라는 뜻이 아닙니다. f(x) = x⁴의 x = 0을 보세요. f''(0) = 0이지만 x = 0은 분명 최솟값입니다. 이차 도함수 검사가 실패하면 일차 도함수 검사를 사용하세요.

극값의 위치와 값을 혼동하기

극값의 은 c가 아니라 f(c)입니다. "최솟값은 x = 2"라고 말하면서 실제로는 "최솟값은 f(2) = 0"을 의미한다면, 입력과 출력을 혼동하는 것입니다. 보고서와 시험 답안에는 위치뿐 아니라 함수값이 필요합니다.

결론

"도함수가 0인 곳을 찾자"에서 멈추는 방식의 설명이 있습니다. 많은 입문 과정이 정확히 거기서 멈추는데, 실무에서 진짜 중요한 부분, 즉 국소 최솟값을 찾았는지 전역 최솟값을 찾았는지, 그리고 목적에 따라 이 둘이 매우 다르다는 점을 이해하는 데에는 준비가 되지 않게 만듭니다.

여기서의 미적분은 간결합니다. 임계점, 도함수 검사, 끝점 확인. 더 오래 걸리는 것은 그 밑바탕의 기하를 체화하는 일입니다. 오목성이 왜 최솟값의 모양을 결정하는지, 왜 끝점이 임계점을 제치고 극값이 될 수 있는지, 왜 신경망의 경사하강법이 수천 개의 국소 최솟값이 있을 수 있는 표면에서 진짜로 최솟값을 찾는 문제인지를 이해하는 것입니다.

구현 측면에서는 Introduction to Optimization in Python 과정에서 SciPy와 SymPy를 사용해 이러한 문제를 계산적으로 다룹니다. 여기서 미적분과 코드가 구체적으로 맞닿습니다.


Vinod Chugani's photo
Author
Vinod Chugani
LinkedIn

Vinod Chugani는 도쿄에서 JPMorgan의 최연소 헤지펀드 세일즈 데스크 책임자로 커리어를 시작했으며, 이후 리먼 브라더스에서 개인 판매 실적 기록을 세웠고, 이어서 30개국에 걸친 전자제품 유통 사업을 구축하여 매출을 SG$1억을 넘어 성장시킨 뒤 데이터 분야로 방향을 틀었습니다. 듀크대학교 경제학 졸업생이자 NYC Data Science Academy 출신인 그는 Maven의 Hugo Bowne-Anderson가 진행한 Building AI Applications 과정에서 100명+ 지원자 중 세 명뿐인 장학생 가운데 한 명이었습니다. 현재는 DataCamp, KDnuggets, Machine Learning Mastery, Statology에 통계부터 에이전트형 AI까지 폭넓은 주제로 글을 기고하고 있으며, NYC Data Science Academy에서 데이터 전문가들을 멘토링하고 있습니다. 지금까지 1,000회가 넘는 일대일 멘토링 세션을 진행했습니다.

 

FAQs

최솟값과 최댓값의 차이는 무엇인가요?

최솟값은 함수가 어떤 지점에서 도달하는 가장 낮은 값이며, 최댓값은 가장 높은 값입니다. 둘을 합쳐 극값이라고 합니다. 함수는 여러 개의 국소 최솟값과 최댓값을 가질 수 있지만, 전역(절댓값) 최솟값은 전체 정의역에서 단 하나의 가장 낮은 값이고, 전역 최댓값은 단 하나의 가장 높은 값입니다.

함수의 최솟값과 최댓값은 어떻게 찾나요?

일차 도함수를 구해 0으로 두고 x를 풀어 임계점을 찾습니다. 그런 다음 일차 도함수 검사(부호 변화 확인) 또는 이차 도함수 검사(각 임계점에서 f''(x) 평가)를 사용해 각 임계점을 최솟값, 최댓값, 해당 없음으로 분류합니다. 닫힌 구간에서는 끝점에서도 함숫값을 평가하세요.

국소 극값과 전역 극값의 차이는 무엇인가요?

국소 극값은 한 점 주변의 작은 이웃에서 가장 높거나 낮은 값입니다. 전역(절댓값) 극값은 함수의 전체 정의역에서 가장 높거나 낮은 값입니다. 모든 전역 극값은 국소 극값이기도 하지만, 대부분의 국소 극값은 전역 극값이 아닙니다.

함수에 전역 최솟값이 여러 개 있을 수 있나요?

함수는 전역 최솟값 은 하나뿐이지만, 그 값이 여러 지점에서 나타날 수는 있습니다. 예를 들어 f(x) = cos(x)는 전역 최솟값이 −1이며, x = π, x = 3π, x = −π 등에서 그 값이 발생합니다. 최솟값이라는 "값"은 유일하지만, 그 값이 나타나는 위치는 여러 곳일 수 있습니다.

임계점이란 무엇이며, 항상 극값인가요?

임계점은 f'(x) = 0이거나 f'(x)가 정의되지 않는 지점입니다. 극값의 후보이긴 하지만, 반드시 극값인 것은 아닙니다. 예를 들어 f(x) = x³는 x = 0에서 임계점이 있지만(f'(0) = 0), 그 지점은 극값이 아닌 변곡점이며 함수는 방향을 바꾸지 않습니다.

이차 도함수 검사는 언제 실패하나요?

이차 도함수 검사는 임계점 c에서 f''(c) = 0일 때 결론을 내릴 수 없습니다. 이 경우 일차 도함수 검사를 사용하거나 더 고계 도함수를 분석해야 합니다. 고전적인 예는 f(x) = x⁴로, f'(0) = 0이고 f''(0) = 0이지만 x = 0은 최솟값입니다.

절댓값 극값을 찾을 때 끝점이 중요한 이유는 무엇인가요?

닫힌 구간 [a, b]에서는 극값정리에 따라 연속 함수가 절댓값 최댓값과 최솟값을 모두 가집니다. 이는 임계점 또는 끝점에서 발생할 수 있습니다. 끝점을 무시하면 실제 절댓값 극값을 놓칠 수 있으며, 이는 이러한 문제에서 가장 흔한 실수 중 하나입니다.

머신러닝에서 최솟값과 최댓값은 어떻게 활용되나요?

머신러닝 모델 학습은 최적화 문제입니다. 손실 함수를 최소화(또는 성능 지표를 최대화)합니다. 경사하강법과 그 변형들은 음의 그래디언트를 따라 반복적으로 이동하면서 손실 함수의 최솟값을 찾습니다. 국소 대 전역 최솟값의 문제는 매우 밀접합니다. 비볼록 손실 함수는 최적화 알고리즘을 최적이 아닌 국소 최솟값에 가두기 쉽습니다.

주제

DataCamp와 함께 학습하세요

courses

데이터 과학 이해하기

2
866K
코딩 없이 배우는 데이터 과학을 소개합니다.
자세히 보기Right Arrow
강좌 시작
더 보기Right Arrow