Machine Learning Pipeline: Re-Fit Structure

How to optimize model parameters and hyper-parameters

STAT
Stat-ML
Author

Jeong-Ho SEO

Published

May 2, 2026

Modified

May 2, 2026

안녕하세요. 이번 포스트에서는 데이터의 크기가 작을 때, 효율적으로 머신러닝 모형을 학습하는 방법에 대하여 다룹니다.
서울대학교 통계학과 박태성교수님2025-s 회귀분석 및 실습 강의 내용에서 다룬 내용들을 차용하였습니다.

딥러닝 분야에서는 충분한 데이터셋이 주어지므로, 주로 mini-batch와 epoch을 정한 후 분할하여 학습합니다.
그러나 기존 머신러닝 분야에서는, 데이터셋의 한계가 존재하므로, 데이터셋이 클수록 통계적으로 일치함을 사용합니다.:

\[ \text{Consistency}:\quad\hat{\theta}_n \xrightarrow{p} \theta \]

따라서 title에 언급된 Re-Fit Structure는, test set과 다른 데이터셋을 구분하면서도, 가능한 큰 데이터셋을 사용하여 model training을 하려는 작업입니다.

1 Re-Fit Structure

1.1 Dataset Split

가장 먼저, 주어진 dataset \(\mathcal{D}\)를 6:2:2 정도로 분할합니다. (7:2:1 등 여러 variation이 가능합니다.)
따라서 3개의 dataset을 가지게 되며, 각 dataset은 서로 overlap이 없어야 합니다.

\[ \mathcal{D}_{\text{train}}, \quad \mathcal{D}_{\text{valid}},\quad \mathcal{D}_{\text{test}} \]

1.2 Model Selection

이후, 분석의 목적과 데이터의 특성에 맞는 모형을 선택합니다. 예를 들어, features 수에 비하여 sample size가 작은 경우, Overfitting을 방지하기 위한 Lasso model을 사용할 수 있습니다.
Lasso의 경우 모두 아시다시피, \(L_1\) penalty를 사용하여 feature selection 사용이 가능합니다.

본문의 Re-Fit Structure를 더 효과적으로 다루기 위하여, 두 가지 종류의 모수를 소개하고자 합니다.

  • Model parameter set (weights): \(\Theta = \left\{\theta^{(1)},\ldots, \theta^{(p)}\right\}\)
  • Hyper-parameter set: \(\Lambda = \left\{\lambda^{(1)},\ldots \lambda^{(q)}\right\}\)

Hyper-Parameter은 heuristic way로 정해지는 parameter이기 때문에, 여러 값을 가지고 검증해야 합니다.
아래에서 더 자세히 다루겠습니다.

1.3 Fitting: \(\mathcal{D}_{\text{train}} \to \mathcal{D}_{\text{valid}} \to \mathcal{D}_{\text{train}} \to \mathcal{D}_{\text{valid}} \to \ldots\)

Important

Train set: Model Parameter set \(\Theta\) Optimization
Validation set: Hyper-Parameter set \(\Lambda\) Optimization

  1. Hyper-Parameter의 후보 집합인 Candidate Set \(\mathcal{S}_\Lambda\)을 설정합니다.
  2. 이후 \(\Lambda_1\)을 사용하여, Train set에서 optimal model parameter \(\hat{\Theta}_1\left(\Lambda_1\right)\)를 계산합니다.
  3. 또한 \(\hat{\Theta}_1\)를 사용하여, Validation set에서 \(\mathcal{L}_{valid}\left(\hat{\Theta}_1\left(\Lambda_1\right), \Lambda_1\right)\)을 계산합니다.
  4. 그 다음, 두 번째 \(\Lambda_2\)을 사용하여, Train set에서 optimal model parameter \(\hat{\Theta}_2\left(\Lambda_2\right)\)를 계산합니다.
  5. 마찬가지로 \(\hat{\Theta}_2\)를 사용하여, Validation set에서 \(\mathcal{L}_{valid}\left(\hat{\Theta}_2\left(\Lambda_2\right), \Lambda_2\right)\)을 계산합니다.
  6. \(\ldots\)
  7. (Grid-Search) 위 과정을 모든 \(\Lambda \in \mathcal{S}_\Lambda\)에 대하여 반복합니다.
  8. 모든 \(\mathcal{L}_{valid}\left(\hat{\Theta}_j\left(\Lambda_j\right), \Lambda_j\right)\)가 최소가 되는 Optimal \(\Lambda = \Lambda^*\)를 도출합니다.

전체 과정은 아래의 pseudo code에 정리하였습니다.

1.3.1 Loop

  • Setting for Grid Search
    • \(\mathcal{S}_\Lambda\): Candidate set of hyper-parameter set
    • \(\mathcal{L}\): Loss function for residuals
  • For \(\Lambda \in \mathcal{S}_\Lambda\) do:
    • Initialize
      • \(\Theta \leftarrow \Theta_0\)
    • Step 1. Train set optimization
      • Compute \(\mathcal{L}_{train}\left(\Theta, \Lambda\right)\)
      • \(\hat{\Theta}\left(\Lambda\right) = \arg\min_{\Theta} \mathcal{L}_{train}\left(\Theta, \Lambda\right)\)
    • Step 2. Validation set evaluation
      • Compute \(\mathcal{L}_{valid}\left(\hat{\Theta}\left(\Lambda\right), \Lambda\right)\)
  • For \(\Lambda \in \mathcal{S}_\Lambda\) do:
    • Compare \(\mathcal{L}_{valid}\left(\hat{\Theta}\left(\Lambda\right), \Lambda\right)\)
    • \(\Lambda^* = \arg\min_{\Lambda} \mathcal{L}_{valid}\left(\hat{\Theta}\left(\Lambda\right), \Lambda\right)\)
  • Return \(\Lambda^*\)

1.4 Re-fit: \(\mathcal{D}_{\text{model}} = \mathcal{D}_{\text{train}} + \mathcal{D}_{\text{valid}}\)

Optimal Hyper-Parameter \(\Lambda^*\)가 결정되었다면, 이제 Model Parameter \(\Theta^*\)를 구할 단계입니다.

통계학에서 sample size가 클 수록 parameter estimates \(\hat{\Theta} \xrightarrow{p} \Theta\)로 가는 Consistency가 성립하므로, \(\mathcal{D}_{\text{test}}\)을 제외한 모든 sample에서 학습을 진행하여야 합니다.

이러한 과정을 Re-fit이라 부르고, \(\mathcal{D}_{\text{model}} = \mathcal{D}_{\text{train}} + \mathcal{D}_{\text{valid}}\)에서 model parameter 학습을 진행하게 됩니다.

따라서 Above에서 결정된 \(\Lambda^*\)에 대하여, 1회에 한하여 model parameter을 구합니다.

\[ \Theta^* = \arg\min_{\Theta} \mathcal{L}_{model}\left(\Theta, \Lambda^*\right) \]

Tip

Fitting에서 도출한 hyper-parameter \(\Lambda^*\)을 다시 최적화하지 않습니다. 오직 model parameter \(\Theta\)만 optimization합니다.

1.5 Test set: Model Evaluation

도출한 두 optimal \(\Theta^*, \Lambda^*\)을 사용하여, Model의 performance를 측정합니다.

\[ \text{Performance} = \text{Metric}_{\text{test}}\left[\text{Model}\left(\Theta^*, \Lambda^*\right)\right] \]

Model Performance의 측정은 \(\mathcal{D}_{\text{test}}\)에서만 진행하게 됩니다.