상세 컨텐츠

본문 제목

[데이터가 뛰어노는 AI 놀이터, 캐글] ch.4 모델 구축-4.1 모델의 기본 이해

외부활동/동아리

by lyricalh 2024. 4. 15. 01:46

본문

4.1.1 모델이란?

모델

: 특징을 입력 데이터로 하여 예측값을 만들어내는 것

하이퍼파라미터

: 학습 방법과 속도, 얼마나 복잡한 모델로 만들 것인지를 결정

< 머신러닝의 학습 >

  • 지도 학습: 목적변수가 있는 데이터에서 모델을 학습하여 목적변수가 없는 데이터에 대해 예측
  • 준지도 학습: 목적변수가 있는 데이터뿐만 아니라 목적변수가 없는 데이터도 모델 학습에 활용
  • 비지도 학습: 목적변수가 없는 데이터에서 데이터 내부 패턴을 추측

4.1.2 모델 구축의 흐름

모델 학습과 예측

< 모델 학습과 예측 순서 >

  1. 모델 종류를 선택하고 하이퍼파라미터를 지정
  2. 학습 데이터와 목적변수를 제공하여 학습 진행
  3. 테스트 데이터를 제공하여 예측

학습 데이터 행 개수= Ntr개

테스트 데이터의 행 개수= Nte개

특징의 열 개수= Nf개

  • 학습 데이터 = Ntr * Nf 행렬
  • 목적변수 = Ntr개의 배열
  • 테스트 데이터 = Nte * Nf 행렬
  • 예측값 = Nte개의 배열

모델 검증

검증

: 학습 데이터 전체로 학습시키면 모델을 평가할 데이터가 사라져버리므로 일부 데이터를 평가용 데이터로 분류해두는 식으로 모델을 평가하는 것

홀드아웃

: 일부 데이터를 검증용으로 나누는 방법

→ 모델의 학습이나 평가에 사용할 수 있는 데이터가 그만큼 줄어듦

→ 교차 검증 (보통 홀드아웃보다 교차 검증 실시)

< 교차 검증 순서 >

  1. 학습 데이터를 여러 개로 분할 (각각 폴드(fold)라고 부름)
  2. 그중 하나를 검증 데이터, 나머지를 학습 데이터로 삼아 학습 및 평가를 실시하고 검증 데이터에서의 점수를 구함
  3. 분할한 횟수만큼 검증 데이터를 바꿔가면 2.의 내용을 반복하여 점수를 구함
  4. 검증 데이터의 평균 점수로 모델의 좋고 나쁨을 평가

경진 대회에서의 학습, 검증, 예측

< 모델 구축부터 평가까지의 사이클 >

  1. 모델 종류를 선택하고 하이퍼파라미터를 지정하여 모델을 구축
  2. 학습 데이터를 제공하여 모델을 학습시킴과 동시에 검증 데이터로 모델을 평가
  3. 학습한 모델로 테스트 데이터를 예측하고 예측값을 제출
  • 특징 추가 및 변경
  • 하이퍼파라미터 변경
  • 모델 종류를 변경

위 내용을 반영하며 반영하여 사이클을 반복하고 검증에서의 평가를 참고하여 더 좋은 모델을 찾아야

검증에서의 평가뿐만 아니라, 예측값을 제출함으로써 public leaderboard의 점수도 참고할 수 있음

※ public leaderboard의 점수에 지나치게 의지하면 leaderboard에 과적합됨→ private leaderboard 순위 하락

< 교차 검증으로 모델을 학습시키고 평가한 뒤 테스트 데이터를 예측하는방법>

  • 각 폴드에서 학습한 모델을 저장해두고 해당 모델들의 예측값 평균 등을 구하는 방법
  • 학습 데이터 전체로 다시 모델을 학습시킨 뒤 해당 모델로 예측하는 방법

<예측값의 평균을 구하는 방법 vs 학습 데이터 전체로 모델을 학습시키는 방법>

예측값의 평균을 구하는 방법 장단점

  • 추가 학습이 필요 없고 검증으로 점수가 짐작된다는 점에서 알기 쉬움
  • 각 폴드에서 학습에 사용한 데이터를 합치면 결국 전체 학습 데이터이므로, 처음부터 학습 데이터 전체에 모델을 학습시킨 경우와 다름없는 성능을 기대
  • 앙상블 효과가 있음(단, 하이퍼파라미터와 특징을 바꾼 여러 모델에서의 평균을 구하는 과정에서 그 효과는 사라짐)
  • 폴드 개수만큼 예측을 반복하므로 테스트 데이터의 크기가 클 때는 시간이 걸림

학습 데이터 전체로 모델을 학습시키는 방법 장단점

  • 학습 데이터 전체에 대해 학습시키는 편이 더 정확하다는 의견
  • 학습 데이터 전체에 대해 재학습하는 시간이 걸림
  • 교차 검증할 때와 학습 데이터 수가 다른데도 같은 하이퍼파라미터를 그대로 사용해도 될지 우려되는 부분

4.1.3 모델 관련 용어와 팁

과적합

: 학습 데이터의 랜덤함 노이즈까지 과하게 학습되어 학습 데이터에서는 점수가 좋지만 그 외의 데이터에서는 점수가 좋지 않은 현상

↔ 과소적합

학습 데이터의 점수 ↔ 검증 데이터의 점수,

문제x, 그 차이를 바탕으로 모델이 과적합인지 과소적합인지를 확인하고 하이퍼파라미터 조정에 참고

검증 데이터의 점수 ↔ 테스트 데이터의 점수,

문제o, 데이터의 분포가 다르고 테스트 데이터의 행 개수가 적다는 등의 특별한 이유가 아니면 검증이 제대로 이루어지지 않았을 가능성 높음

정규화

: 학습 모델이 복잡할 때 제약(벌칙)을 부과하는 것

대부분의 모델에는 정규화항이 포함, 정규화 강도를 지정하는 하이퍼파라미터 조정을 거치면 일정 수준으로 모델의 복잡도가 줄어들어 과적합 억제

조기 종료

: GBDT와 신경망 등의 라이브러리에 있는 학습 시 검증 데이터의 점수를 모니터링하다가 일정 시간 동안 점수가 오르지 않으면 중간에 학습을 자동중단하는 기능(과적합 방지)

<여러 모델을 조합하여 모델을 구축하는 방법>

배깅

: 같은 종류의 모델을 여러 개 병렬로 구축하고, 이들 예측값의 평균 또는 최빈값을 이용해 예측

랜덤 포레스트

부스팅

: 같은 종류의 모델을 직렬 조합하고, 학습을 통해 예측값을 보정하면서 순서대로 하나씩 모델을 학습시킴

GBDT

4.2 경진대회에서 사용하는 모델

< 표 형태의 정형 데이터를 다루는 경진 대회에서 사용하는 모델 >

  • 그레이디언트 부스팅 결정 트리 (GBDT)
  • : 모델 성능과 계산 속도, 사용 편의성 모두 뛰어나므로 보통 가장 먼저 만들어지는 모델
  • 신경망
  • 선형 모델
  • 기타 모델 :주로 다양성에 공헌하여 앙상블에서 모델 성능을 올리는 게 목표
    • K-최근접 이웃 알고리즘(KNN)
    • 랜덤 포레스트(RF)
    • 익스트림 랜덤 트리(ERT)
    • RGF (regularized greedy forest)
    • FFM (field-aware factorization machines)

결정 트리에 기반을 두는 모델

: GBDT, 랜덤 포레스트, 익스트림 랜덤 트리, RGF

(결정 트리로 학습하고 예측할 때 하나의 결정 트리만으로는 충분한 예측이 어려우므로 여러 개를 조합하지만, 그 조합의 구조나 학습 알고리즘은 각각 다름)

< 경진대회에서는 다음과 같은 관점에서 모델 선택 >

  • 모델 성능
  • 연산 속도
  • 사용 편의성
  • 다양성으로 앙상블에서의 모델 성능 향상에 기여하는지 여부

ex) 지도 학습 모델로서 자주 소개되는 모델 중 하나인 서포트 벡터 머신(SVM)은 모델 성능과 계산 속도가 떨어지므로 자주 사용X

관련글 더보기