주뇽's 저장소

11. GNN 학습(4) Dataset split CS224W: Machine Learning with Graphs 정리 본문

GNN/CS224

11. GNN 학습(4) Dataset split CS224W: Machine Learning with Graphs 정리

뎁쭌 2024. 5. 1. 22:26
728x90
반응형

 

https://web.stanford.edu/class/cs224w

목차

1. GNN 학습(4) Dataset split

- 고정 분할(Fixed Split)
- 랜덤 분할(Random Split)

- Transductive 설정
- Inductive 설정

 

 

그래프 신경망 모델을 학습하고 평가할 때, 데이터를 적절히 분할하는 것이 중요하다. 이는 모델의 일반화 성능을 정확히 측정하고, 과적합을 방지하기 위함이다.

👉 1. GNN 학습(4) Dataset split

- 고정 분할(Fixed Split)

고정 분할은 데이터셋을 한 번 분할하고, 이를 고정해서 사용하는 방식이다. 데이터셋은 학습 데이터(Training Set), 검증 데이터(Validation Set), 테스트 데이터(Test Set)로 나뉜다.

학습 데이터는 모델의 파라미터를 학습하는데 사용된다.
검증 데이터는 모델의 하이퍼파라미터를 조정하고, 모델의 성능을 평가하는데 사용된다.
테스트 데이터는 최종 모델의 성능을 평가하는데 사용되며, 모델 개발 중에는 사용하지 않는다.

 

예시
의료 영상 분류 모델을 개발한다고 가정

  • 전체 데이터셋을 학습 데이터 70%, 검증 데이터 15%, 테스트 데이터 15%로 고정 분할할 수 있다. 학습 데이터로 모델을 학습시키고, 검증 데이터로 모델의 구조와 하이퍼파라미터를 튜닝한다. 최종적으로 테스트 데이터로 모델의 성능을 평가한다.

영화 평점 데이터셋을 사용하여 추천 시스템을 만든다고 가정

  • 데이터셋을 사용자 기준으로 학습 데이터 80%, 검증 데이터 10%, 테스트 데이터 10%로 고정 분할한다. 학습 데이터로 모델을 학습시키고, 검증 데이터로 모델의 성능을 평가 및 조정한다. 마지막으로 테스트 데이터로 최종 모델의 성능을 측정한다.

고정 분할의 단점은 테스트 데이터가 완벽히 미래의 데이터를 대표한다고 보장할 수 없다는 점이다. 하지만 데이터셋의 크기가 충분히 크고, 데이터의 분포가 안정적이라면 고정 분할도 신뢰할 만한 결과를 제공할 수 있다.

- 랜덤 분할(Random Split)

랜덤 분할은 데이터셋을 매번 랜덤하게 분할하여 사용하는 방식이다. 서로 다른 랜덤 시드(Random Seed)를 사용하여 여러 번 분할을 수행하고, 각 분할에서의 성능을 평균내어 최종 성능을 평가한다.

 

예시

신용카드 사기 거래 탐지 모델을 만든다고 가정

  • 전체 데이터셋을 랜덤하게 학습 데이터 80%, 검증 데이터 10%, 테스트 데이터 10%로 분할한다. 이 과정을 다른 랜덤 시드를 사용하여 여러 번 반복하고, 각 분할에서 모델을 학습 및 평가한다. 최종 성능은 각 분할에서의 성능을 평균내어 계산한다.

음성 인식 모델을 학습시킨다고 가정

  • 전체 음성 데이터셋을 랜덤하게 학습 데이터 75%, 검증 데이터 15%, 테스트 데이터 10%로 분할한다. 이 과정을 여러 번 반복하여 각 분할에서 모델을 학습 및 평가하고, 최종 성능은 각 분할에서의 성능을 평균내어 계산한다.

랜덤 분할을 통해 모델 성능의 통계적 신뢰도를 높일 수 있다. 또한 고정 분할에 비해 데이터셋의 편향(Bias)에 덜 민감할 수 있다. 하지만 랜덤 분할은 계산 비용이 더 높다는 단점이 있다.

 

그래프 데이터의 경우, 데이터 포인트 간 독립성 가정이 성립하지 않는다는 점에서 일반적인 데이터셋과는 다른 분할 방식이 필요하다.

- Transductive 설정

Transductive 설정은 모든 데이터셋 분할(학습, 검증, 테스트)에서 전체 그래프 구조를 사용할 수 있는 방식이다. 단, 각 분할은 노드 레이블만 나눠가진다.

학습 시에는 전체 그래프를 사용하되, 학습 노드의 레이블만 사용한다. 검증 및 테스트 시에도 전체 그래프를 사용하되, 각 분할에 해당하는 노드의 레이블을 사용하여 평가한다.

 

예시

소셜 네트워크에서 사용자의 투표 성향을 예측하는 문제를 가정

  • Transductive 설정에서는 전체 소셜 네트워크 그래프를 모든 데이터셋 분할에 사용한다. 학습 시에는 일부 사용자의 투표 성향 레이블만 사용하고, 검증 및 테스트 시에는 해당 분할의 사용자 레이블을 사용하여 모델을 평가한다.

논문 인용 네트워크에서 논문의 주제를 분류하는 태스크를 가정

  • Transductive 설정에서는 전체 인용 네트워크 그래프를 항상 사용한다. 학습 시에는 일부 논문의 주제 레이블만 사용하고, 검증 및 테스트 시에는 해당 분할의 논문 주제 레이블을 사용하여 모델의 성능을 평가한다.

Transductive 설정은 노드 분류, 링크 예측 등의 태스크에 적용될 수 있다.

-  Inductive 설정

Inductive 설정은 각 데이터셋 분할(학습, 검증, 테스트)이 서로 다른 그래프를 가지는 방식이다. 분할 간 엣지를 제거하여 독립적인 그래프를 생성한다.

학습 시에는 학습 그래프만 사용한다. 검증 및 테스트 시에는 각 분할의 그래프를 사용한다.

 

예시

화학 물질의 분자 구조를 그래프로 표현하고, 각 물질의 특성을 예측하는 문제를 가정

  • Inductive 설정에서는 전체 데이터셋을 분자 그래프 단위로 분할한다. 학습 시에는 학습 분할의 분자 그래프만 사용하고, 검증 및 테스트 시에는 각 분할의 분자 그래프를 사용하여 모델의 성능을 평가한다.

단백질 상호작용 네트워크에서 단백질의 기능을 예측하는 문제를 가정

  • Inductive 설정에서는 전체 단백질 상호작용 네트워크를 독립적인 하위 그래프로 분할한다. 학습 시에는 학습 분할의 하위 그래프만 사용하고, 검증 및 테스트 시에는 각 분할의 하위 그래프를 사용하여 모델의 성능을 평가한다.

Inductive 설정을 통해 모델이 완전히 새로운 그래프에 대해서도 잘 작동하는지 평가할 수 있다. 이는 노드 분류, 링크 예측, 그래프 분류 등 다양한 태스크에 적용될 수 있다.

 

📝 정리

이번 포스팅에서는 그래프 신경망 모델의 학습과 평가를 위한 데이터셋 분할 방법에 대해 알아봤다.

데이터셋 분할은 모델의 일반화 성능을 정확히 측정하고 과적합을 방지하기 위해 중요하다. 일반적인 데이터셋에서는 고정 분할과 랜덤 분할 방식이 사용된다.
고정 분할은 데이터셋을 학습, 검증, 테스트 세트로 한 번 나누고 고정하여 사용하는 방식이고, 랜덤 분할은 매번 무작위로 데이터를 나누어 여러 번 학습 및 평가를 수행한 후 평균 성능을 계산하는 방식이다.
그러나 그래프 데이터는 데이터 포인트 간 독립성 가정이 성립하지 않기 때문에, 일반 데이터셋과는 다른 분할 방식이 필요하다.
Transductive 설정에서는 모든 분할에 전체 그래프 구조를 사용하되 각 분할의 노드 레이블만 달리 사용한다. 반면 Inductive 설정에서는 각 분할이 서로 다른 독립적인 그래프를 가지도록 한다.
Transductive 설정은 주로 노드 분류, 링크 예측 등의 태스크에, Inductive 설정은 노드 분류, 링크 예측뿐만 아니라 그래프 분류 등 보다 다양한 태스크에 적용될 수 있다.
그래프 신경망 모델을 학습하고 평가할 때에는 태스크의 종류와 데이터의 특성을 잘 고려하여 적절한 데이터셋 분할 방식을 선택해야 한다. 이를 통해 모델의 성능을 보다 정확히 검증하고, 실제 응용에서의 성능을 높일 수 있을 것이다.