머신러닝에서의 데이터 유출

데이터 유출은 예측 모델을 개발할 때 머신러닝에서 큰 문제입니다. 데이터 유출은 학습 데이터 세트 외부의 정보를 사용하여 모델을 만드는 경우입니다. 이 게시물에서는 예측 모델링에서 데이터 유출 문제를 발견합니다.

이 게시물을 읽은 후 다음을 알게 될 것입니다.

  • 데이터 유출이란 예측 모델링에 있습니다.
  • 데이터 유출의 징후와 그것이 문제가 되는 이유.
  • 예측 모델링 문제에 대한 데이터 유출을 최소화하는 데 사용할 수 있는 팁과 요령입니다.


예측 모델링의 목표

예측 모델링의 목표는 학습 중에 볼 수 없는 새로운 데이터에 대해 정확한 예측을 수행하는 모델을 개발하는 것입니다. 이것은 어려운 문제입니다. 우리가 가지고 있지 않은 것에 대해 모델을 평가할 수 없기 때문에 어렵습니다. 따라서 우리가 가지고 있는 일부 데이터에 대해서만 모델을 훈련하고 나머지 데이터에 대해 평가하여 보이지 않는 데이터에 대한 모델의 성능을 추정해야 합니다. 이것은 교차 검증과 이 추정치의 분산을 줄이려는 더 정교한 기술의 기초가 되는 원칙입니다.


머신러닝에서 데이터 유출이란 무엇입니까?

데이터 유출로 인해 완전히 유효하지 않은 예측 모델은 아니더라도 지나치게 낙관적인 예측 모델을 만들 수 있습니다. 데이터 유출은 학습 데이터 세트 외부의 정보를 사용하여 모델을 만드는 경우입니다. 이 추가 정보를 통해 모델은 다른 방법으로는 알 수 없는 것을 학습하거나 알 수 있으며 결과적으로 생성 중인 모드의 예상 성능을 무효화할 수 있습니다. 


“모델을 사용하여 예측을 수행하려는 시점에 실제로 값을 사용할 수 없는 다른 기능이 모델에 누출을 일으킬 수 있는 기능”

— 데이터 회의론자


“머신러닝 알고리즘을 학습시키는 데 사용하는 데이터에 예측하려는 정보가 있는 경우”

— 다니엘 구티에레즈, 데이터 과학자에게 물어보기: 데이터 유출


컴퓨터 보안에는 데이터 유출 및 데이터 손실 방지라는 주제가 있는데, 이는 관련이 있지만 우리가 말하는 것은 아닙니다.


데이터 유출이 문제입니다

적어도 3 가지 이유로 심각한 문제입니다.

  1. 머신러닝 대회를 운영하는 경우 문제가 됩니다. 상위 모델은 근본적인 문제에 대한 좋은 일반적인 모델보다는 누출 된 데이터를 사용합니다.
  2. 데이터를 제공하는 회사 일 때 문제가 됩니다. 익명화 및 난독화를 되돌리면 예상하지 못한 개인 정보 침해가 발생할 수 있습니다.
  3. 자체 예측 모델을 개발할 때 문제가 됩니다. 실제로 쓸모없고 프로덕션에서 사용할 수없는 지나치게 낙관적 인 모델을 만들 수 있습니다.

머신러닝 실무자로서 우리는 주로 이 마지막 사례에 관심이 있습니다.


데이터 유출이 있습니까?

데이터 유출이 있음을 쉽게 알 수있는 방법은 사실이라고 하기에는 너무 좋아 보이는 성능을 달성하는 것입니다.

복권 번호를 예측하거나 높은 정확도로 주식을 선택할 수 있는 것처럼.

“사실이라고 하기에는 너무 좋은” 성과는 사실 쓸모 없는 것이다.”

— 13장, 데이터 과학 수행: 최전선에서 솔직한 대화


데이터 유출은 일반적으로 다음과 같은 복잡한 데이터 세트에서 더 큰 문제입니다.

  • 훈련 및 테스트 세트를 만들 때 시계열 데이터 세트는 어려울 수 있습니다.
  • 무작위 샘플링 방법을 구성하기 어려울 수 있는 그래프 문제.
  • 샘플이 크기와 타임스탬프가 있는 별도의 파일에 저장되는 소리 및 이미지와 같은 아날로그 관찰.


모델을 구축할 때 데이터 유출을 최소화하는 기술

예측 모델을 개발할 때 데이터 유출을 최소화하는 데 사용할 수 있는 두 가지 좋은 기술은 다음과 같습니다.

  1. 교차 검증 폴드 내에서 데이터 준비를 수행합니다.
  2. 개발된 모델의 최종 온전성 검사를 위해 유효성 검사 데이터 세트를 보류합니다.

일반적으로 이러한 기술을 모두 사용하는 것이 좋습니다.


1. 교차 검증 폴드 내에서 데이터 준비 수행

머신러닝을 위해 데이터를 준비할 때 정보를 쉽게 유출할 수 있습니다.

그 효과는 학습 데이터를 과적합하고 보이지 않는 데이터에 대한 모델 성능을 지나치게 낙관적으로 평가하는 것입니다.

예를 들어 전체 데이터 세트를 정규화하거나 표준화한 다음 교차 검증을 사용하여 모델의 성능을 추정하면 데이터 유출의 과오를 범한 것입니다.

수행한 데이터 크기 조정 프로세스에는 배율 인수(예: 최소 및 최대 또는 평균 및 표준 편차)를 계산할 때 학습 데이터 세트의 전체 데이터 분포에 대한 지식이 있었습니다. 이 지식은 재조정된 값에 스탬프 처리되었으며 교차 검증 테스트 프로그램의 모든 알고리즘에서 악용되었습니다.

이 상황에서 머신러닝 알고리즘에 대한 누출 없는 평가는 교차 검증의 각 접기 내에서 데이터 크기를 조정하기 위한 매개 변수를 계산하고 해당 매개 변수를 사용하여 각 주기에서 홀드아웃 테스트 접기에 대한 데이터를 준비합니다.

“현실은 데이터 과학자로서 준비하고, 데이터를 정리하고, 누락된 값을 대체하고, 이상값을 제거하는 등의 작업을 수행할 때마다 데이터 유출 상황을 생성할 위험이 있다는 것입니다.”

— 페이지 313, 데이터 과학 수행: 최전선에서 솔직한 대화


보다 일반적으로, 누설되지 않는 데이터 준비는 교차 검증 주기의 각 폴드 내에서 이루어져야 합니다.

예를 들어 다른 도메인 지식이 있기 때문에 데이터 분포를 자신 있게 예측할 수 있는 경우와 같은 일부 문제에 대해 이 제약 조건을 완화할 수 있습니다.

그러나 일반적으로 교차 유효성 검사 폴드 내에서 기능 선택, 이상값 제거, 인코딩, 차원 축소를 위한 기능 크기 조정 및 프로젝션 방법 등과 같은 작업을 포함하여 필요한 데이터 준비를 다시 준비하거나 다시 계산하는 것이 좋습니다.

모든 데이터에 대해 기능 선택을 수행한 다음 교차 검증하는 경우 교차 검증 절차의 각 접기에 있는 테스트 데이터도 기능을 선택하는 데 사용되었으며 이것이 성능 분석을 편향시키는 것입니다.”

— Dikran 유대류, 교차 검증에 대한 “기능 선택 및 교차 검증“에 대한 답변.


Python의 R 및 scikit-learn과 같은 플랫폼은R의 캐럿 패키지 및 scikit-learn의 파이프라인을 사용하여 이 모범 사례를 자동화하는 데 도움이 됩니다.

2. 유효성 검사 데이터 세트 보류

더 간단한 또 다른 방법은 학습 데이터 세트를 학습 및 유효성 검사 집합으로 분할하고 유효성 검사 데이터 세트를 저장하는 것입니다. 모델링 프로세스를 완료하고 실제로 최종 모델을 만든 후에는 유효성 검사 데이터 세트에서 평가합니다.

이렇게 하면 성능 평가가 지나치게 낙관적이고 누출되었는지 확인하기 위한 온전성 검사를 제공할 수 있습니다.

본질적으로이 문제를 실제로 해결하는 유일한 방법은 독립적 인 테스트 세트를 유지하고 연구가 완료 될 때까지 유지하고 최종 검증에 사용하는 것입니다.”

— Dikran Marsupial, Cross Valided에서 “테스트 데이터가 학습 데이터로 유출되지 않도록 하려면 어떻게 해야 합니까?“라는 질문에 대한 답변


데이터 유출 방지를 위한 5가지 팁

  • 시간적 컷오프. 관심 있는 이벤트 직전의 모든 데이터를 제거하여 관찰이 발생한 시간이 아닌 사실이나 관찰에 대해 학습한 시간에 초점을 맞춥니다.
  • 노이즈를 추가합니다. 입력 데이터에 무작위 노이즈를 추가하여 누출 가능성이 있는 변수의 영향을 완화합니다.
  • 새는 변수를 제거합니다. 계정 번호 및 ID 등과 같은 변수를 사용하여 OneR 라인에 간단한 규칙 기반 모델을 평가하여 이러한 변수가 새는지 확인하고 누출되는 경우 제거합니다. 변수가 누수가 의심되는 경우 제거하는 것이 좋습니다.
  • 파이프라인을 사용합니다. R의 캐럿 패키지 및 scikit-learn의 파이프라인과 같이 교차 유효성 검사 폴드 내에서 일련의 데이터 준비 단계를 수행할 수 있도록 하는 파이프라인 아키텍처를 많이 사용합니다.
  • 홀드아웃 데이터 세트를 사용합니다. 보이지 않는 유효성 검사 데이터 세트를 사용하기 전에 모델의 최종 온전성 검사로 보류합니다.

데이터 유출에 대한 추가적인 글

응용 머신러닝의 데이터 유출에 대한 다음 논문과 블로그 게시물은 꼭 읽어볼 필요가 있습니다.


요약

이 게시물에서는 예측 모델을 개발할 때 머신러닝에서 데이터 유출을 발견했습니다.

학습한 내용:

  • 예측 모델을 개발할 때 데이터 유출이란 무엇입니까?
  • 데이터 유출이 문제가되는 이유와 이를 감지하는 방법.
  • 예측 모델을 개발할 때 데이터 유출을 극복하는 데 사용할 수 있는 기술입니다.
네피리티
No Comments

Sorry, the comment form is closed at this time.