노트와 노트

모델 성능 최적화 방법들 본문

Machine Learning & DeepLearning

모델 성능 최적화 방법들

gellygelly 2023. 9. 18. 22:08

1. 데이터 조작

1-1. 데이터 정제(Data Cleansing) 

 

데이터 정제란 데이터셋에 존재하는 결측값 및 이상값을 처리하여 데이터의 신뢰도를 높이는 작업이다. 

낮은 신뢰도를 가진 데이터로는 높은 성능을 기대하기 어렵다. 모델이 결측값, 이상값을 학습하며 제대로 된 예측 결과를 도출할 확률이 낮아지기 때문이다. 따라서 데이터 정제를 통해 이러한 데이터들을 적절히 처리하여 데이터의 신뢰도를 높여야 한다. 

 

데이터 정제 절차

1) 데이터의 오류 원인 분석

원인 설명 오류 처리 방법
결측값(Missing Value) 데이터가 입력되지않고 누락된 값 -경향값으로 대체(평균값, 중앙값, 최빈값 등)
-확률 분포 기반 랜덤값으로 대체
잡음(Noise) 실제는 입력되지 않았지만 입력되었다고 잘못 판단한 값 -일정 규칙을 가지고 평균값으로 대체
이상값(Outlier) 데이터의 정상적인 범위에서 많이 벗어난 아주 크거나 작은 값 -하한값 또는 상한값으로 대체

2) 정제 대상 선정

기본적으로 모든 데이터를 대상으로 하는 것이 원칙이다. 

 

3) 데이터 정제 방법 결정

데이터 정제는 데이터 왜곡이 발생하지 않게 신중하게 고려해서 적용한다. 

방법 설명
삭제 -오류 데이터에 대한 부분/전체 삭제
-무작위적인 삭제는 데이터 활용에 문제를 일으킬 수 있으므로 주의
대체 -오류 데이터를 평균값, 최빈값, 중앙값으로 대체
-오류 데이터가 수집된 다른 데이터와 관계가 있는 경우에 유용
예측값 -회귀식 등을 이용한 예측값을 생성하여 삽입
-예측값을 적용하기 위해서는 정상 데이터 구간에 대해서도 회귀식이 잘 성립해야 함

정형 데이터의 경우 위와 같은 방법을 사용할 수 있고, 비정형 데이터의 경우에는 별도 검토 과정을 거치거나 혹은 정형 데이터로 변환한 후 정제 기법을 적용하면 된다. 

 

4) 데이터 정제 기법 적용

데이터에 대한 일관성을 부여하기 위해 데이터 정제 기법을 적용한다. 

기법 설명 사례
변환(Transform) 다양한 형태·형식의 값을 일관된 형태·형식으로 변환하는 작업 -코드 변환
-형식 변환
파싱(Parsing) 데이터 정제 규칙 적용을 위해 유의미한 최소 단위로 분할하는 작업 -이메일 -> 아이디/주소
-주민등록번호 -> 생년월일/성별
보강(Enhancement) 변환, 파싱, 수정, 표준화 등을 통한 추가 정보를 반영하는 작업 -변환과 파싱을 거친 데이터 추가 보강

 

1-2. 피처 스케일링(Feature Scaling)

피처 스케일링이란, 서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업으로 대표적으로 표준화(Standardization)와 정규화(Normalization)가 있다.

 

https://gellygelly0808.tistory.com/21

 

데이터 전처리(Data Preprosessing) - 데이터 인코딩(Encoding), 피처 스케일링과 정규화(Feature scaling and No

※ 본 글은 책 내용을 공부하고 정리한 글입니다! 피처 스케일링과 정규화 피처 스케일링(Feature Scaling): 서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업. 대표적인 방법으로 표준화(Stan

gellygelly0808.tistory.com

 

1-3. 데이터 증강

데이터 증강이란 새로운 데이터를 추가로 수집하지 않고 기존 데이터를 이용하여 새로운 데이터를 만들어내는 것을 말한다. 

 

데이터 증강의 필요성

1) 데이터 편향

데이터가 전체 경향성을 포함하지 못하고 일부만을 표현하는 것으로, 클래스별 데이터가 불균형할 때에 발생된다. 

 

퇴사 전 진행했던 프로젝트에서도 이러한 데이터의 편향성 때문에 문제가 됐던 적이 있다. 분류해야 하는 클래스가 A, B, C, D, E로 총 5개일 때 A, B, C는 이미지 데이터를 수십만 장 수집 가능했는데 D, E는 고작 천 장 언저리가 한계였다. 

학습에 적합하지 않은 이미지들을 정제하고 나면 남는 건 칠 백 장 수준이었는데, 이 경우 모델에 각 클래스의 학습 데이터들을 그대로 집어넣게 되면 문제가 발생한다. 모델은 D, E 데이터의 개수가 적으므로 아예 D, E로 분류 결과를 도출하지 않는 방향으로 학습을 할 것이고, 이러한 모델은 실제로 성능 평가 지표로만 판단했을 때는 높은 성능을 가지게 된다. 

 

2) 데이터 수집의 어려움

1)번 사례에 적었던 것처럼 일부 유형의 데이터는 수집하기가 쉽지 않으므로 (특히 이상치 데이터) 데이터를 수집하는 데에 한계가 있다. 

 

3) 과적합

규모가 작은 데이터셋으로 훈련을 시키게 되면 모델이 다양한 케이스가 아닌 특정 케이스에 대한 학습만을 하게 되므로 실제 테스트 데이터서의 정확도가 떨어질 수 있다. 

 

이미지 데이터 보강 방법

  • Resize(사이즈 조절)
  • Rotate(회전)
  • Flip(상하, 좌우 반전)
  • Crop(특정 부분만 확대)
  • Brightness(밝기 조정)
  • Shift(이동)
  • Channel Shift(RGB 값 변경)

 

텍스트 데이터 보강 방법 

  • 변역 후 역변역(Back Translation): 문장을 하나 이상의 다른 언어로 번역한 다음, 다시 원래 언어로 번역하는 것. 이는 의미는 같지만 다른 표현으로 이루어진 문장을 생성할 수 있음.
  • 동의어 대체(Synonym Replacement): 문장에서 특정 단어를 동의어로 대체하는 방법.
  • 임의 삽입(Random Insertion): 문장에 기존 단어의 동의어를 무작위로 삽입하는 방법. 

※데이터 증강 실습: https://www.tensorflow.org/tutorials/images/data_augmentation?hl=ko 

 

데이터 증강  |  TensorFlow Core

데이터 증강 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 개요 이 튜토리얼은 이미지 회전과 같은 임의의(그러나 현실적인) 변환을 적용하여 훈련 세트의

www.tensorflow.org

2. 하이퍼 파라미터 최적화

하이퍼파라미터란, 모델 학습 과정에 반영되는 값으로 학습 시작 전에 직접 설정해야 하는 변수이다. 아래 값들의 조정 값에 따라 모델 성능이 상이하므로 하이퍼파라미터 튜닝을 통해 모델 성능을 제어할 수 있다. 

하이퍼 파라미터의 종류

  • Learning Rate
  • Cost Function
  • Epochs
  • Hidden Units
  • Regularization Strength
  • Batch size
  • Dropout rate
  • Optimizer