우리는 종종 모델을 만들고 그 모델을 분석 목적에 맞게 최적화해야 하는 상황에 직면하게 됩니다.
예를 들어, 모델1과 모델2는 trade-off 관계라 하나가 증가하면 하나는 감소한다면 두 모델을 동시에 작게 하는 feature의 조합을 찾기란 쉽지 않을 것입니다.
따라서 우리는 이 두가지 모델을 적절하게 작게 하는 타협점을 찾아야 합니다.
여기서 multiple reponse optimization이 출발하게 됩니다.
만약 X1, X2, X3에 따라 움직이는 Y1과 Y2이 있다고 가정했을 때, Y1와 Y2를 동시에 작게 하는 X1, X2, X3의 최적해를 찾을 수 있습니다. (물론 Y를 각각 크게 또는 작게 하는 최적 X1, X2, X3도 찾을 수 있겠죠?!)
만족도함수를 활용한 최적해를 찾기 위한 방법은 아래와 같이 요약할 수 있습니다.
1. 데이터로 Y들을 설명하는 model(Y~Xs)을 만든다.
2. 각 Y에 대해 목적 함수(individual desirability f.)를 정의한다.
3. 전반적인 목적함수(overall desirability f.)를 최대화하는 X들을 찾는다.
우선 Y1과 Y2를 설명하는 아래와 같은 함수가 있다고 했을 때,
$Y_1 = X_1 + X_2 + X_3$
$Y_2 = -X_1 - X_2 - X_3$
두 함수 Y1, Y2가 작아지면 동시에 커지는 목적함수($D$)를 만들어야 합니다.
그렇다면 최적해는 목적함수를 가장 크게 해주는 X1, X2, X3가 되는 것이죠.
목적함수(objective f.)는 다양하게 정할 수 있으며 여기서는 만족도 함수(desirablity f.)이라는 아래와 같은 함수를 목적함수로 정의합니다.
Y 각각의 만족도함수(individual desirability ,$d$)는 Y를 최소화, 최대화하는지 또는 target에 가깝게 하는지에 따라 형태는 달라집니다.
여기서는 Y들을 최소화하는 것이 목적이므로 아래와 같은 individual desirability를 고려합니다.
예를 들어, $Y_1$가 작으면 작을수록 좋은데 50보다 작으면 0이든 10이든 상관없이 좋고, 최대 100까지만 허용할 수 있다면 아래와 같은 individual desirability function이 됩니다(s=1일 때). 만약 $Y_2$도 같은 형태라면 최종 목적함수인 $D$는 $Y_1$과 $Y_2$가 50이 되면 1이 되어 이 값에 해당하는 $X_1, X_2, X_3$이 최적해가 됩니다.
이런 식으로 Multiple response optimization을 할 수 있고 실제 우리가 최적화 문제를 풀기 위해서는 적정한 그리드를 주고 해당 그리드에서 반복을 통해 해를 찾아야 합니다.
해를 찾는 방법으로는 함수의 기울기(경사)를 구하여 기울기가 낮을 쪽으로 이동하는 경사 하강법(Gradient descent)이라는 방법이 있으며, 경사 하강법에 기반한 다양한 방법이 존재합니다.
하용호 님의 슬라이드의 Optimizer 발달 계보에 나와있는 것처럼 다양하며, 링크된 자료 보시면 쉽게 딥러닝 개념을 익히실 수 있어 추천드립니다.
[참고 자료_개념] https://www.itl.nist.gov/div898/handbook/pri/section5/pri5322.htm
[참고 자료_하용호 님 Slideshare] https://www.slideshare.net/yongho/ss-79607172
'Algorithm' 카테고리의 다른 글
Tabular Data 분류, 아직도 Tree모델을 사용하고 있는 이유는?! (1) | 2024.12.16 |
---|---|
추천 시스템 | TensorFlow Recommenders 리뷰 & 실습 (0) | 2023.11.14 |
DBSCAN 차근차근 이해하기 (1) | 2022.10.19 |
모델 앙상블 방법 | Stacking, Blending, Voting (0) | 2022.10.19 |
[데이터 전처리] Yeo Johnson 변환 (0) | 2022.10.19 |