콘텐츠로 이동

P2-6.1 최적화(optimization)는 무엇을 찾는가

Section ID: P2-6.1 Version: v2026.09.15

최적화(optimization)는 정해진 조건 안에서 목적 함수(objective function)를 최소화하거나 최대화하는 값을 찾는 문제입니다. 바꿀 수 있는 값, 비교 기준, 지켜야 할 제약을 정해야 무엇이 더 좋은 선택인지 판단할 수 있습니다.

공부 시간과 점수 예측

네 학생의 공부 시간과 퀴즈 점수를 다음과 같이 가정합니다.

학생 공부 시간 x 퀴즈 점수 y
A 1 55
B 2 65
C 3 80
D 4 90

이제 질문은 공부 시간을 넣으면 점수를 예측하는 직선 y = ax + b를 어떻게 고를까?입니다. 여기서 a와 b를 직접 정답으로 쓰는 대신, 여러 후보 직선을 비교해 더 나은 쪽을 찾는 문제가 바로 최적화입니다.

여기서 공부 시간 x와 실제 점수 y는 이미 관측한 데이터로 고정합니다. 바꾸는 값은 직선의 기울기 a와 절편 b입니다. a는 공부 시간이 1 늘 때 예측 점수가 얼마나 늘어나는지, b는 공부 시간이 0일 때 직선이 예측하는 점수를 정합니다.

  • a = 10, b = 45도 하나의 후보입니다.
  • a = 12, b = 40도 다른 후보입니다.
  • 무엇이 더 나은지는 실제 점수와 얼마나 잘 맞는지라는 기준이 있어야 판단할 수 있습니다.
  • 예측과 실제 점수의 차이를 숫자로 요약한 기준을 손실(loss)이라고 합니다.

두 후보의 예측값은 다음과 같습니다.

공부 시간 실제 점수 a = 10, b = 45 a = 12, b = 40
1 55 55 52
2 65 65 64
3 80 75 76
4 90 85 88

예측 오차를 제곱해 평균내는 기준으로 비교하면 첫 후보는 (0 + 0 + 25 + 25) / 4 = 12.5, 두 번째 후보는 (9 + 1 + 16 + 4) / 4 = 7.5입니다. 첫 후보는 두 점을 정확히 맞히지만, 이 기준에서 네 점을 종합하면 두 번째 후보가 더 좋습니다.

flowchart TD
    accTitle: 두 직선 후보 비교
    P["1. 파라미터 조합<br/>후보 1: a = 10, b = 45<br/>후보 2: a = 12, b = 40"]
    Y["2. x = 1, 2, 3, 4에서의 예측<br/>후보 1: 55, 65, 75, 85<br/>후보 2: 52, 64, 76, 88"]
    L["3. 제곱 오차의 평균<br/>후보 1: 12.5<br/>후보 2: 7.5"]
    S["4. 두 후보 중 더 나은 선택<br/>a = 12, b = 40<br/>7.5 &lt; 12.5"]
    P --> Y --> L --> S
    classDef selected fill:#f0fdf4,stroke:#16a34a,color:#14532d
    class S selected

도식은 같은 데이터에 두 파라미터 조합을 적용해 손실을 비교하는 흐름입니다. 두 번째 후보를 골랐다는 것은 비교한 두 후보 중 더 낫다는 뜻이며, 가능한 모든 직선 중 최선임을 뜻하지는 않습니다.

최적화의 구성 요소

요소 직선 예측 사례에서의 의미
변수(variable) 바꾸는 파라미터 a, b
후보(candidate) a=10, b=45처럼 변수 값의 한 조합
목적 함수(objective function) 네 점의 예측 오차를 제곱해 평균낸 값
최소화(minimization) 이 평균 손실이 작은 후보를 찾는 방향
제약(constraint) 이 사례에서는 a, b를 실수로 두고 추가 제한은 두지 않음

제약이 없는 최적화 문제도 있습니다. 반면 광고 예산처럼 반드시 지켜야 하는 한도를 정했다면, 목적 함수값이 좋아도 그 한도를 넘는 후보는 선택할 수 없습니다.

분야별 최적화 문제

최적화는 AI에서만 쓰이는 사고가 아닙니다. “좋은 선택을 하고 싶은데 기준과 제약이 있다”면 비슷한 문제가 생깁니다.

분야 찾고 싶은 것 기준 제약
물류 배송 경로 이동 거리, 시간, 비용 차량 수, 시간 제한, 배송 순서
제조 생산 계획 생산량, 불량률, 비용 설비 용량, 재고, 납기
광고 예산 배분 전환율, 매출, 클릭률 예산, 노출 제한, 정책
서비스 운영 서버 자원 배치 응답 속도, 안정성, 비용 서버 비용, 트래픽 변동
검색/추천 결과 순서 클릭, 만족도, 관련성 다양성, 안전성, 정책
머신러닝 모델 파라미터 손실, 정확도, 평가 점수 데이터, 계산량, 시간

자원 배분과 선형계획법

선형계획법(linear programming)은 목적 함수와 제약을 변수의 선형식으로 표현하는 최적화입니다. 각 변수에 일정한 계수를 곱해 더하며, 변수끼리 곱하거나 제곱하지 않습니다. George Dantzig의 심플렉스법(simplex method)은 이런 문제를 푸는 대표적인 방법입니다.

예를 들어 두 액상 제품의 생산량을 u, v리터라고 하겠습니다. 리터당 이익은 각각 3천 원과 2천 원이고, 원료는 각각 2kg과 1kg이 필요합니다. 사용할 원료는 8kg이며, 첫 제품은 최대 3리터까지만 판매할 수 있다고 가정합니다. 생산량은 소수 리터도 허용합니다.

요소 계산식 뜻
목적 3u + 2v 최대화 총이익, 단위는 천 원
원료 제약 2u + v ≤ 8 원료 사용량이 8kg 이하
판매 제약 u ≤ 3 첫 제품은 최대 3리터
생산량 조건 u ≥ 0, v ≥ 0 음수 생산량은 불가능

u=3, v=2는 원료 8kg을 사용하고 이익은 13천 원입니다. u=0, v=8도 원료 8kg을 사용하지만 이익은 16천 원입니다. 첫 제품의 리터당 이익이 높아도 원료를 두 배 사용하므로, 원료 한도 아래에서는 두 번째 계획이 더 유리합니다. u=3, v=3은 이익이 15천 원이어도 원료가 9kg 필요해 제외됩니다.

최소화와 최대화

최적화 문제는 보통 두 방향으로 표현됩니다. 작을수록 좋은 값을 줄이는 쪽은 최소화(minimization)이고, 클수록 좋은 값을 키우는 쪽은 최대화(maximization)입니다.

예를 들어 이동 시간, 비용, 오차, 손실은 보통 줄이고 싶습니다.

반대로 정확도, 수익, 만족도 같은 값은 보통 키우고 싶습니다.

AI 학습에서는 “줄이고 싶은 값”이 자주 등장합니다. 예측이 실제와 얼마나 다른지를 숫자로 만들고, 그 값을 줄이는 방향으로 모델의 값을 조정합니다. 이 기준이 손실 함수(loss function)입니다.

목적과 범위에 따른 최적값

최적(optimal)이라는 말은 조심해서 읽어야 합니다. 이름만 보면 완벽한 답처럼 들리지만, 실제로는 그렇지 않을 때가 많습니다.

전역 최적해는 제약을 만족하는 모든 후보 중 목적 함수값이 가장 좋은 후보입니다. 일부 후보만 비교해 얻은 최선의 결과가 전역 최적해인지는 별도 확인이 필요합니다.

원료 배분 예시는 가능한 모든 후보에 대한 상한도 확인할 수 있습니다. 총이익을 3u+2v = 2(2u+v)−u로 다시 쓰면, 원료 제약 2u+v≤8과 u≥0 때문에 이익은 최대 16천 원입니다. u=0, v=8이 실제로 그 이익을 내므로 이 조건에서는 전역 최적해입니다. 최적해는 생산량의 조합 (0, 8)이고, 최적값은 그때의 목적 함수값 16입니다.

따라서 최적화 결과를 볼 때는 다음 질문을 함께 해야 합니다.

  • 무엇을 기준으로 최적이라고 했는가?
  • 어떤 후보 범위에서 찾았는가?
  • 어떤 제약을 반영했는가?
  • 현실의 다른 조건은 빠지지 않았는가?

이 관점은 AI 모델 평가에도 그대로 이어집니다. 어떤 모델이 특정 벤치마크에서 높은 점수를 얻었다고 해서 모든 현실 문제에서 최적이라는 뜻은 아닙니다. “어떤 기준에서 좋았는가?”를 계속 물어야 합니다.

파라미터를 바꾸면 손실이 어떻게 달라지는가

앞의 두 번째 후보 a=12, b=40은 점수를 52, 64, 76, 88로 예측합니다. 실제 점수보다 각각 3, 1, 4, 2만큼 낮습니다. 네 점 모두 낮게 예측하므로 기울기 a=12를 그대로 두고 절편 b를 올려 볼 수 있습니다. 절편을 2 올리면 네 예측값도 모두 2씩 올라갑니다.

고정한 기울기 a 바꾼 절편 b 예측값 제곱 오차의 평균
12 40 52, 64, 76, 88 7.5
12 42 54, 66, 78, 90 1.5
12 42.5 54.5, 66.5, 78.5, 90.5 1.25
12 43 55, 67, 79, 91 1.5
12 45 57, 69, 81, 93 7.5

b=42.5일 때 실제값에서 예측값을 뺀 오차는 0.5, −1.5, 1.5, −0.5이고, 제곱 평균은 (0.25 + 2.25 + 2.25 + 0.25)/4 = 1.25입니다. 절편을 올리는 변화가 처음에는 손실을 줄였지만, 계속 올리면 다시 커집니다. 최적화는 값을 무조건 크게 만들거나 같은 방향으로 계속 바꾸는 일이 아닙니다.

여기서 a, b는 학습으로 조정하는 모델 파라미터(parameter)입니다. 관측 데이터는 그대로 두고 파라미터를 바꾸어 예측과 손실을 다시 계산합니다. 후보 표는 비교 결과를 보여 주지만, 다음 후보를 자동으로 정하는 규칙까지 제공하지는 않습니다. 어떤 값을 찾을지 정하는 최적화 문제와 그 값을 찾아가는 최적화 알고리즘을 구분해야 합니다.

또한 이 비교에서 줄어든 것은 네 학생의 데이터에 대한 손실입니다. 새로운 학생의 점수도 더 잘 예측하는지는 별도 데이터로 확인해야 합니다. 모델 파라미터라는 표현은 모집단 평균 같은 특성을 뜻하는 통계의 모수(parameter)와 문맥을 구분합니다.

광고 예산과 전환 수

광고 계획의 목적을 예상 전환 수 최대화, 제약을 총비용 1,000만 원 이하로 정했다고 가정합니다. 다른 조건은 같고 선택 가능한 계획은 아래 세 개뿐입니다.

계획 총비용 예상 전환 수 예산 제약 충족
A 980만 원 1,200건 충족
B 900만 원 1,150건 충족
C 1,050만 원 1,260건 미충족

C는 예상 전환 수가 가장 많지만 예산을 넘으므로 제외합니다. A와 B 중에서는 A의 전환 수가 더 많아 선택됩니다.

목적을 전환 한 건당 비용 최소화로 바꾸면 A는 약 8,167원/건, B는 약 7,826원/건이므로 B를 선택합니다. 같은 후보와 예산이라도 목적이 바뀌면 최적의 선택도 달라집니다. 이 비교는 자체 구성한 예상 수치에 근거하며 실제 전환 성과를 보장하지는 않습니다.

조건을 바꾸어 다시 선택하기

다음 조건을 바꾸어 후보를 다시 계산하거나 선택해 봅니다. 예산이나 판매 한도를 바꾸면 기존 선택을 그대로 유지할 수 있는지 확인해야 합니다.

  1. 직선의 a=12를 고정하고 b=41로 바꾸면 예측값과 평균 손실은 얼마인가요? b=40보다 나아졌나요?
  2. 액상 제품의 두 번째 제품에도 v≤4라는 판매 한도를 추가하면, 원료 8kg 아래에서 어떤 생산량이 최대 이익을 내나요?
  3. 광고 예산을 900만 원으로 낮추면 어떤 계획을 선택하나요? 850만 원으로 더 낮추면 선택 가능한 계획이 있나요? 후보는 본문의 세 계획으로 제한합니다.

풀이: ① 예측값은 53, 65, 77, 89, 평균 손실은 (4+0+9+1)/4=3.5로 7.5보다 작습니다. ② u=2, v=4에서 이익은 14천 원입니다. 3u+2v = 1.5(2u+v)+0.5v ≤ 12+2=14이므로 이 값보다 큰 이익은 낼 수 없습니다. ③ 900만 원에서는 B만 가능하고, 850만 원에서는 가능한 계획이 없습니다. 제약을 만족하는 후보가 없을 때는 ‘가장 덜 초과하는 후보’를 최적해로 선택할 수 없습니다.

체크리스트

  • 최적화(optimization)를 정답을 바로 쓰는 일이 아니라 더 나은 후보를 찾아가는 과정으로 설명할 수 있다.
  • 후보(candidate), 기준(criterion), 제약(constraint)을 구분할 수 있다.
  • 최소화(minimization)와 최대화(maximization)를 예로 설명할 수 있다.
  • 최적(optimal)이 항상 완벽한 현실 답을 뜻하지 않음을 설명할 수 있다.
  • AI 학습을 모델 파라미터를 조정해 기준을 개선하는 과정으로 설명할 수 있다.
  • 학습을 단순 계산이 아니라 더 나은 값 찾기 문제로 다시 읽을 수 있다.
  • 후보, 기준, 제약이 섞여 보일 때 무엇을 비교하고 무엇을 지켜야 하는지 분리할 수 있다.

  • 고정 데이터와 조정할 파라미터를 구분하고, 후보의 예측값과 손실을 계산할 수 있다.

  • 조건을 바꾸어 최적해·최적값·선택 가능한 후보가 없는 경우를 구분할 수 있다.

출처와 참고 자료

  • Stephen Boyd, Lieven Vandenberghe, Convex Optimization, Cambridge University Press, 2004, 확인 날짜: 2026-09-15. §1.1–1.2의 최적화 문제 형식과 선형 목적·제약, 심플렉스법 설명을 확인했다. 액상 제품의 원료 배분 수치는 자체 구성한 예시다.
  • SciPy Developers, Optimization and root finding, SciPy API Reference, 확인 날짜: 2026-07-20. 목적 함수를 최소화하거나 최대화하고, 제약을 포함할 수 있는 최적화 도구의 실제 API 맥락 확인에 사용했다.
  • Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, Chapter 8: Optimization for Training Deep Models, MIT Press, 2016, 확인 날짜: 2026-07-20. 딥러닝 학습에서 비용 함수(cost function)를 줄이는 방향으로 파라미터를 조정한다는 설명 확인에 사용했다.
  • Gary Wolf, The Optimizer, Wired, 2001-12-01, 확인 날짜: 2026-07-20. George Dantzig와 simplex method가 물류·일정·네트워크 최적화 같은 실제 문제와 연결되어 설명되는 역사적 맥락 확인에 사용했다.