VAE를 사용한 오버 샘플링

VAE를 사용하여 사기 거래 생성

나는 꽤 오랫동안 연구 팀의 일원으로 VAE와 함께 일했습니다. 나는 항상 그들이 실제로 언제 어디서 사용되는지 궁금했습니다. 확실히 많은 훌륭한 예가 있습니다. 이 블로그에서는 VAE를 사용하여 신용 카드 사기 탐지 의 매우 불균형 한 데이터에 대해 분류기를 교육하는 방법을 보여 드리고자합니다 .

  • 간단한 VAE를 훈련하는 방법
  • 훈련 된 VAE를 사용하여 데이터 균형을 맞추는 방법은 무엇입니까? (두 가지 전략을 논의하겠습니다)
  • SMOTE와의 논의 및 비교
간단한 프로세스를 사용하여 복잡한 데이터를 생성합니다. 이미지는 [http://phdthesis-bioinformatics-maxplanckinstitute-molecularplantphys.matthias-scholz.de/]에서 가져옵니다.

VAE는 기능을 일련의 잠재 변수에 연결하여 기능의 공동 확률 분포를 캡처하려는 생성 모델입니다.

z간단한 가우스 분포를 가진 변수가 있다고 가정 해 봅시다 . 이 변수를 조밀 한 신경망을 통해 전달하면 z시작 의 다른 차원이 함께 혼합되어 출력 차원 (이 경우 데이터의 특징)간에 매우 복잡한 상관 관계가 생성됩니다.

p(x) = p(x|z)p(z)

제공된 코드 에서 모델을 정의하고 훈련하는 방법을 볼 수 있습니다.

단순화하기 위해 VAE 목표의 재구성 부분에 대한 목적 함수로 MSE를 사용하도록 목표를 수정했습니다. 그래서 우리는 ELBO를 훈련시키는 것이 아니라 의사 ELBO입니다.

저는 소수 계층에 대해서만 VAE를 훈련 시키기로 선택했습니다. 이것은 데이터의 구조를 완전히 무시합니다 (이 경우 일반 트랜잭션의 모습). 하지만 소수 계급이 일반 데이터와 다르기 때문에 괜찮다고 생각합니다.

2. 훈련 된 VAE를 사용하여 데이터 균형을 맞추는 방법은 무엇입니까?

훈련 된 모델이 있으면 원하는만큼 많은 샘플을 생성하는 데 사용할 수 있습니다.

2.1 정방향 패스로 샘플 생성

설명했듯이 VAE의 계층 적 설계를 사용하여 디코더 네트워크를 통해 일반 가우스 분포의 샘플을 간단히 통과하여 모델에서 샘플링 할 수 있습니다. 모델의 힘에 따라 우리는이 분포를 정확하게 포착 할 수도 있고 아닐 수도 있습니다. 이를 분산의 과대 추정이라고합니다.

이 방법을 사용하면 즉시 사용 가능한 XGBoost 분류기는 0.50의 평균 정밀도 재현율 점수를 제공합니다.

2.2 잠복 공간에서 보간하여 샘플 생성

샘플을 생성하는 또 다른 방법은 VAE의 autoencoder 속성을 사용하는 것입니다.

먼저 인코더 네트워크를 통해 기존 데이터를 전달합니다. 최적의 점 (각 잠재 차원의 평균)을 찾으면이를 사용하여 서로 다른 점 사이를 보간 할 수 있습니다. 예를 들어, 다른 두 번째 데이터 포인트를 가져 와서 가장 좋은 잠재 변수 값을 찾은 다음 잠재 공간의 값 사이에 무작위로 보간 할 수 있습니다.

z_1 ~ p (z_1 | x_1), z_2 ~ p (z_2 | x_2)

z = a z_1 + (1-a) z_2

x ~ p (x | z)

사용 가능한 모든 데이터를 인코딩하고 많은 임의 쌍을 보간하면 소수 클래스로 데이터를 보강하기 위해 많은 새 샘플을 생성 할 수 있습니다.

이 방법은 분류 결과를 크게 향상시킵니다. XGBoost와 Random Forest가 거의 동일한 재현율, f1 점수 및 평균 정밀도 재현율 0.65 점을 제공한다는 것을 알았습니다.

결론

데이터 세트를 오버 샘플링하기 위해 VAE를 얼마나 쉽게 사용할 수 있는지 확인합니다. 이 방법은 매우 잘 작동하며 정확도는 거의 동일 (99.98 %로 매우 높음)을 유지하면서 F1 점수와 재현율 점수를 향상시킵니다.

그러나 SMOTE와 같이 더 잘 확립 된 방법 이 오버 샘플링 작업에 더 적합한 것으로 보입니다 . 공정하게 말하면 SMOTE는 우리가 많은 차원을 가지고 있다면 계산적으로 훨씬 덜 요구됩니다. 이것이 더 개선 될 수 있습니까?

마지막 생각들

몇 가지 질문을 남겨 드리겠다고 생각했습니다. 이러한 질문에 답하기 위해 다른 블로그를 만들 수도 있습니다.
-이것이 VAE의 좋은 사용이라고 생각하십니까?
-VAE를 사용하여 오버 샘플링 프로세스를 얼마나 개선 할 수 있다고 생각하십니까?
-VAE의 혜택을받을 수있는 다른 애플리케이션이 있습니까?
-정보를 VAE로 전파하여 분류기의 성능을 향상시킬 수있는 방법이 있습니까?

실제 예제, 코드 및 더 자세한 논의는이 저장소를 참조하십시오.
https://github.com/hosseinsadeghi/oversampling_vae

Suggested posts

기계 학습 워크 플로를 실행하여 데이터를 변환하고 txtai로 AI 기반 텍스트 인덱스를 구축합니다.

데이터 흐름에 NLP 변환 적용

기계 학습 워크 플로를 실행하여 데이터를 변환하고 txtai로 AI 기반 텍스트 인덱스를 구축합니다.

txtai는 기계 학습 워크 플로우를 실행하여 데이터를 변환하고 AI 기반 텍스트 인덱스를 구축하여 유사성 검색을 수행합니다. txtai는 텍스트 스 니펫, 문서, 오디오 및 이미지 인덱싱을 지원합니다.

Python Datetime 모듈에서 반드시 알아야 할 4 가지 객체

포괄적 인 실용적인 가이드

Python Datetime 모듈에서 반드시 알아야 할 4 가지 객체

시간은 많은 데이터 과학 관련 작업에서 중요한 기능입니다. 예를 들어, 일일 판매 및 재고 정보는 소매 분석에 매우 중요합니다.

Related posts

데이터 과학을위한 필수 수학 : 기초 및 기초 변경

데이터 과학을위한 필수 수학 : 기초 및 기초 변경

고유 분해 및 SVD에 유용한 기저의 선형 대수 개념 이해이 기사에서는 고유 분해 또는 특이 값 분해 (SVD)와 같은 행렬 분해 방법을 이해하는 흥미로운 방법 인 기저 개념에 대해 알아 봅니다. 정의 기본은 벡터 공간 (벡터 집합)을 설명하는 데 사용되는 좌표계입니다.

판다와 에라스무스 연구 교환 분석

판다와 에라스무스 연구 교환 분석

Erasmus 프로그램 2011-12에서 발생한 20 만 개의 연구 교환으로 데이터 세트를 분석 한 결과 1987 년 이후 Erasmus 프로그램은 매년 수십만 명의 유럽 학생들에게 한 학기 또는 1 년을 해외에서 보낼 기회를 다른 유럽에서 보낼 수있는 기회를 제공합니다. 경제적 인 지원뿐만 아니라 쉬운 교환 과정을 제공합니다. 유럽의 다양한 사람, 언어 및 문화에 대한 마음과 마음을 열어주는 정말 귀중한 경험입니다.

데이터 과학을위한 8 가지 기본 통계 개념

… 평범한 영어로 설명

데이터 과학을위한 8 가지 기본 통계 개념

통계는 "수량 데이터의 수집, 분석, 해석 및 표현을 다루는 수학의 한 분야"입니다. 프로그래밍과 기계 학습을 혼합하면 데이터 과학의 핵심 기술에 대해 꽤 잘 설명 할 수 있습니다.

데이터 과학의 9 가지 거리 측정

일반적인 거리 측정의 장점과 함정

데이터 과학의 9 가지 거리 측정

감독되거나 감독되지 않는 많은 알고리즘은 거리 측정을 사용합니다. 유클리드 거리 또는 코사인 유사성과 같은 이러한 측정은 종종 k-NN, UMAP, HDBSCAN 등과 같은 알고리즘에서 찾을 수 있습니다.