Processing math: 100%

상세 컨텐츠

본문 제목

[ML] 최적화란?

테크/ML

by fiftyline 2025. 2. 16. 17:15

본문

 

머신러닝에서 최적화(Obtimization)는 모델이 주어진 데이터에서 최적의 성능을 발휘하도록 손실함수(loss function) 또는 목적 함수(objectibe funtion)을 최소화 또는 최대화하는 과정을 의미한다.

 

minimize f(x)

subject to xS

 

최적화 모델은 S에 속하는 x가운데  f(x)를 최소화하는 x를 찾으라는 의미이다.

최소화하거나 최대화해야 하는 함수 f를 목적함수(objective funtion)라고 하며, 목적 함수의 입력이자 우리가 그 값을 찾아야 하는 변수 x를 결정 변수(decision variable)라고 한다.

또한 x의 범위를 제약하는 식을 제약식이라고 한다. 이 제약식을 만족하는 결정 변수의 값을 실행 가능 해(feasible solution)라고 하며, 실행 가능 해로 구성된 집합을 실행 가능 공간(feasible space)라고 한다.

제약식이 위 처럼 간단하다면, 한 줄로도 표현 가능하다.

 

x=argminxSf(x)

위 식은 S에 속하는 모든 x 가운데 f(x)를 최소화하는 x를 찾아 x*에 저장하라는 의미이다.

 

그러나 최적화 해법 대부분은 특정 문제에만 적합하다. 이러한 이유로 문제 유형에 맞는 적절한 해법이 무엇이고 어떻게 사용하는지 알아야 한다. 그리고 그보다 중요한 것은 현실 문제를 최적화 모델로 표현하는 것이다.

 

 

 

머신러닝 자동화 관점에서의 최적화

머신러닝 자동화의 핵심은 사용자가 입력한 데이터에 적합한 전처리, 모델, 하이퍼파라미터 등을 빨리 찾는 것

이와 관련된 문제로는 하이퍼파라미터 튜닝, 모델 선택과 하이퍼파라미터 최적화, 파이프라인 생성 등이 있다.

 

  • 하이퍼파라미터 튜닝

λ=argmaxλΛP(λ;D)

P(λ;D): 하이퍼파라미터가 λ인 모델을 데이터 D로 학습했을 때 모델의 성능

Λ: λ의 실행 가능 공간

 

한 모델에서 튜닝해야하는 파라미터가 k개이고 그 값을 λ=(λ1,λ2,...λk)라고 하면 하이퍼파라미터 튜닝 문제는 위와 같은 최적화 모델로 표현할 수 있다.

하이퍼파라미터에 대한 실행 가능 공간을 모두 탐색하는 것은 비현실적이고 비효율적이다. 따라서 사용자가 직접 정의하며, 이 과정에서 모델과 하이퍼파라미터에 대한 이해가 필요하다.

 

성능 P(λ;D)는 보통 k-fold 교차 검증을 통해 계산한다.

P(λ|D)=1k×ki=1P(λ;D(i),D(i1))

D(i): i(i=1,2,...,k)번째 폴드 데이터

D(i1): D(i)폴드를 제외한 나머지 데이터

P(λ;D(i),D(i1)): D(i)를 평가 데이터로, D(i1)를 학습 데이터로 사용했을 때의 성능

이를 하이퍼파라미터 튜닝의 목적식과 직결되므로 계산하지 않을 수 없지만, 계산하는 데 오랜 시간이 걸린다. 따라서 Λ를 잘 정의하는 것과 좋을 것이라 예상되는 해를 먼저 탐색하는 것이 매우 중요하다. 여러 해를 평가하고 비교하여 좋은 해를 찾아야 하며, 정확한 의미의 최적해를 찾기는 사실상 불가능하다.

 

  • 모델 선택과 하이퍼파라미터 최적화

$M^,\lambda^ = \underset{M\in \Omega, \lambda\in \Lambda}{argmax} P(M,\lambda;D)$

M: 임의의 모델                    λ: 임의의 하이퍼파라미터

Ω: 선택가능한 모델 집합       Λ: 선택 가능한 하이퍼파라미터 집합

탐색 공간(search space): Ω×Λ

 

위 식은 하이퍼파라미터 튜닝에 모델 선택을 추가하여 성능을 최대화하는 문제이다. 하이퍼파라미터 튜닝의 탐색 공간보다 탐색공간이 더 넓고 복잡하다.

 

  • 파이프라인 생성

모델 선택과 하이퍼파라미터 최적화에 전처리 방법 선택까지 추가한 문제이다.




 

 

 

 

참고

GIL's LAB, 「파이썬을 활용한 머신러닝 자동화 시스템 구축」, 위키북스(2022)

관련글 더보기