ML Workflow

Inki Park·2024년 2월 13일

머신 러닝 과정에서 거치는 전반적인 과정을 나타내 보려고 한다.

해당 내용은 "PyTorch로 시작하는 딥 러닝 입문"이라는 위키독스에서 참고로 하여 내 나름 정리한 내용이다.
PyTorch로 시작하는 딥 러닝 입문

1. 머신러닝 workflow


데이터를 수집하고 머신 러닝을 하는 과정을 크게 6가지로 나누면, 다음 그림과 같다.

1) 수집(Acquisition)

ML을 하기 위해서는 기계에 학습시켜야 할 데이터가 필요하다. 자연어 처리의 경우, 자연어 데이터를 말뭉치 또는 코퍼스(corpus) 라고 부른다.

코퍼스란?

  • 조사나 연구 목적에 의해 특정 도메인으로 부터 수집된 텍스트 집합

텍스트 데이터의 파일 형식은 txt파일, csv파일, xml파일 등 다양하며, 그 출처도 음성 데이터, 웹 수집기를 통해 수집된 데이터, 영화 리뷰 등 다양하다.

2) 점검 및 탐색(Inspection and exploration)

데이터가 수집되었다면, 이제 데이터를 점검하고 탐색한다. 여기서는 데이터의 구조, 노이즈 데이터, ML 적용을 위해서 데이터를 어떻게 정제해야 하는지 등을 파악해야 한다.

이 단계를 탐색적 데이터 분석(Exploratory Data Analysis, EDA)단계 라고도 한다.

  • 이는 독립변수, 종속변수, 변수유형, 변수의 데이터 타입 등을 점검하며 데이터의 특징과 내재하는 구조적 관계를 알아내는 과정을 의미한다.

이 과정에서 시각화와 간단한 통계 테스트를 진행하기도 한다.

3) 전처리 및 정제(Preprocessing and Cleaning)

데이터에 대한 파악이 끝났다면, ML workflow에서 가장 까다로운 작업 중 하나인 데이터 전처리 과정에 들어간다.

  • 가령 자연어 처리라면 토큰화, 정제, 정규화, 불용어 제거 등의 단계를 포함
  • (원래는 많은 단계를 포함한다!)

빠르고 정확한 데이터 전처리를 하기 위해서는 사용하고 있는 tool에 대한 다양한 라이브러리에 대한 지식이 필요하다.
정말 까다로운 전처리의 경우에는 전처리 과정에서 머신러닝이 사용되기도 한다.

4) 모델링 및 훈련(Modeling and Training)

데이터 전처리가 끝났다면, ML에 대한 코드를 작성하는 단계인 모델링 단계에 들어간다. 적절한 머신러닝 알고리즘을 선택하여 모델링이 끝났다면, 전처리가 완료된 데이터를 머신러닝 알고리즘을 통해 기계에게 학습(training)시킨다.

기계가 데이터에 대한 학습을 마치고나서 훈련이 제대로 되었다면 그 후에 기계는 우리가 원하는 태스크(task)인 기계번역, 음성인식, 텍스트 분류 등의 자연어 처리 작업을 수행 할 수 있게 된다.

주의!
대부분의 경우에서 모든 데이터를 기계에게 학습시켜서는 안된다 !!

데이터 중 일부는 테스트 용으로 남겨두고 훈련용 데이터만 훈련에 사용해야 한다. 그래야만 기계가 학습을 하고나서, 테스트용 데이터를 통해서 현재 성능이 얼마나 되는지를 측정할 수 있으며 과적합(overfitting) 상황을 막을 수 있다.

  • 사실 best는 훈련용, 검증용, 테스트용 이렇게 3가지로 나누고 훈련용 데이터만 훈련에 사용하는 것이다.

검증용과 테스트용의 차이?

  • 수능 시험에 비유하자면 훈련용-학습지, 검증용-모의고사, 테스트용-수능시험 이라고 볼 수 있다.
  • 현업이라면 검증용 데이터는 거의 필수 !

검증용 데이터는 현재 모델의 성능. 즉, 기계가 훈련용 데이터로 얼마나 제대로 학습이 되었는지 판단하는 용으로 사용되고, 모델의 성능을 개선하는데 사용된다.

테스트용 데이터는 모델의 최종 성능을 평가하는 데이터로 모델의 성능을 수치화하여 평가하기 위해 사용된다.

5) 평가(Evaluation)

기계가 다 학습이 되었다면 테스트용 데이터로 성능을 평가하게 된다.

  • 평가 방법은 기계가 예측한 데이터가 테스트용 데이터의 실제 정답과 얼마나 가까운지를 측정

6) 배포(Deployment)

평가 단계에서 기계가 성공적으로 훈련이 된 것으로 판단된다면 완성된 모델이 배포되는 단계가 된다.

다만, 완성된 모델에 대한 피드백으로 모델을 업데이트 해야하는 상황이 온다면 다시 수집 단계로 돌아갈 수 있다...


긴 글 읽어주셔서 감사합니다 !

profile
내 자신이 인공지능 그 자체

0개의 댓글