1. 데이터 수집(Data Collection)
모델 훈련의 첫번째 단계는 데이터 수집입니다. 이 데이터는 신경망이 학습할 내용이며, 모델의 성능에 큰 영향을 미칩니다. 데이터는 여러 출처에서 수집될 수 있으며, 웹 크롤링, 데이터베이스에서의 추출, 센서 데이터, 또는 공개 데이터셋 등이 사용될 수 있습니다.
2. 데이터 전처리(Data Preprocessing)
수집된 데이터는 그대로 사용할 수 없을 때가 많습니다. 데이터 전처리 단계에서는 데이터를 신경망이 잘 학습할 수 있는 형태로 변환합니다. 이 과정은 다음 단계를 포함합니다:
- 데이터 정제(Data Cleaning): 결측값(missing value)을 처리하고, 이상치(outlier)를 제거하거나 수정합니다. 예를 들어, 평균값으로 결측값을 대체하거나, 이상치를 제거하는 등의 작업을 수행합니다.
- 데이터 정규화 및 표준화(Normalization and Standardization): 입력 데이터의 범위를 조정하여 모델의 학습 효율성을 높입니다. 예를 들어 모든 값을 0과 1 사이로 정규화 하거나, 평균이 0이고 분산이 1이 되도록 표준화 할 수 있습니다.
- 범주형 데이터 인코딩(Categorical Encoding): 범주형 변수를 수치형으로 변환합니다. 대표적인 방법으로는 원-핫 인코딩(One-Hot-Encoding)과 라벨 인코딩(Label Encoding)이 있습니다.
- 데이터 분할(Data Splitting): 데이터를 훈련 데이터셋(training set), 검증 데이터셋(validation set), 그리고 테스트 데이터셋(test set)으로 나눕니다. 일반적으로 70~80%는 훈련, 10~15%는 검증, 10~15%는 테스트에 사용됩니다.
3. 모델 선택(Model Selection)
이 단계에서는 문제에 적합한 모델을 선택합니다. 예를 들어, 이미지 분류 문제라면 합성곱 신경망(CNN), 자연어 처리 문제라면 순환 신경망(RNN)이나 트랜스포머(Transformer)모델을 선택할 수 있습니다. 또한 모델의 구조(예: 레이어 수, 뉴런 수, 활성화 함수 등)도 결정해야 합니다.
4. 모델 초기화(Model Initialization)
모델의 가중치와 편향을 초기화합니다. 일반적으로 가중치는 작은 랜덤값으로 초기화되고, 편향은 0으로 초기화됩니다. 초기화 방식은 모델의 학습 효율에 영향을 미칠 수 있습니다.
5. 모델 컴파일(Model Compilation)
모델을 훈련하기 전에, 컴파일 과정이 필요합니다. 이 과정에서는 다음 요소를 정의합니다:
- 손실함수(Loss Function): 모델이 얼마나 잘 작동하는지를 평가하는 함수입니다. 회귀 문제에서는 평균 제곱 오차(MSE), 분류 문제에서는 교차 엔트로피(Cross-Entropy) 손실이 자주 사용됩니다.
- 최적화 알고리즘(Optimizer): 모델의 가중치를 업데이트하는 알고리즘입니다. 일반적인 선택으로는 경사하강법(Gradient Descent)의 변형인 Adam, RMSprop, SGD 등이 있습니다.
- 평가지표(Metrics): 모델의 성능을 평가하기 위한 지표입니다. 예를 들어, 분류 문제에서는 정확도(Accuracy)를 사용할 수 있습니다.
6. 모델 훈련(Model Training)
이 단계에서는 모델이 데이터를 학습합니다. 훈련 과정은 다음 단계로 구성됩니다:
- 순전파(Foward Propagation): 입력데이터를 모델에 주고, 순전파를 통해 예측값을 계산합니다.
- 손실계산(Loss Caculation): 예측값과 실제값 사이의 차이를 손실 함수로 계산합니다.
- 역전파(Back Propagation): 손실을 줄이기 위해 가중치와 편향을 조정합니다. 이 과정에서 손실 함수의 기울기(Gradient)를 계산하여 가중치를 업데이트 합니다
- 에포크(Epoch): 훈련 데이터 전체를 모델에 한 번 학습시키는 과정을 에포크라고 합니다. 일반적으로 여러 에포크 동안 훈련이 이루어지며, 각 에포크 후 손실과 성능 지표를 기록합니다.
- 미니배치(Mini-Batch): 에포크 내에서 데이터를 여러 미니배치로 나누어 학습합니다. 이는 모델의 학습 속도를 높이고, 메모리 효율성을 향상시킵니다.
7. 모델 검증(Model Validation)
훈련 데이터에 대한 과적합(Overfitting)을 방지하기 위해, 검증 데이터셋을 사용하여 모델을 평가합니다. 매 에포크마다 검증 데이터셋에서의 성능을 확인하여 학습이 잘 진행되고 있는지 모니터링합니다. 만약 검증 성능이 떨어지기 시작하면 조기 종료(Early Stopping) 등을 통해 훈련을 중단할 수 있습니다.
8. 하이퍼파라미터 튜닝(Hyperparameter Tuning)
모델 성능을 최적화하기 위해 하이퍼파라미터를 조정합니다. 하이퍼파라미터는 모델의 구조, 학습률, 배치 크기, 에포크 수 등을 포함합니다. 그리드 서치(Grid Search)나 랜덤 서치(Random Search)와 같은 기법을 사용하여 최적의 하이퍼파라미터를 찾습니다.
9. 모델 테스트(Model Testing)
최종 모델을 테스트 데이터셋으로 평가하여 실제 성능을 확인합니다. 이 단계에서 얻은 성능 지표는 모델이 실제 환경에서 얼마나 잘 작동할지를 나타냅니다.
10. 모델 배포(Model Deployment)
모델이 만족스러운 성능을 보이면, 실제 애플리케이션에 배포합니다. 배포된 모델은 새로운 데이터를 입력받아 예측을 수행합니다.
11. 모델 모니터링 및 유지보수(Model Monitoring and Maintenance)
배포된 모델의 성능을 지속적으로 모니터링하고, 필요에 따라 모델을 재훈련하거나 업데이트합니다. 데이터 분포의 변화(데이터 드리프트)나 새로운 요구사항에 따라 모델을 유지보수 합니다.
'■ 공부 > ML DL' 카테고리의 다른 글
| [DL] ResNet (0) | 2024.08.14 |
|---|---|
| [DL] CNN 정리 (0) | 2024.08.14 |
| 딥러닝 학습순서 (0) | 2024.07.02 |
| 머신러닝 알고리즘 정리 (0) | 2024.06.22 |
| 4. 타이타닉 데이터 셋 (1) | 2024.06.13 |