신경망 교육을 위해 범주 형 및 연속 입력 기능을 결합하는 방법


16

범주 형과 연속 형의 두 가지 입력 기능이 있다고 가정합니다. 범주 형 데이터는 원-핫 코드 A로 표현 될 수있는 반면, 연속 데이터는 N- 차원 공간에서 단지 벡터 B이다. A, B는 완전히 다른 종류의 데이터이기 때문에 단순히 concat (A, B)를 사용하는 것은 좋은 선택이 아닌 것 같습니다. 예를 들어, B와 달리 A에는 숫자 순서가 없습니다. 따라서 제 질문은 이러한 두 종류의 데이터를 결합하는 방법이나이를 처리하는 기존의 방법이 있는지입니다.

사실, 나는 그림에 제시된 순진한 구조를 제안합니다

여기에 이미지 설명을 입력하십시오

보시다시피, 처음 몇 개의 레이어는 연속 공간에서 데이터 A를 중간 출력으로 변경 (또는 매핑)하는 데 사용되며 이후 레이어의 연속 공간에서 새로운 입력 기능을 형성하는 데이터 B와 연결됩니다. 그것이 합리적 일지 아니면 단지 "시련과 오류"게임인지 궁금합니다. 감사합니다.

답변:


5

이를 해결하기위한 세 가지 주요 접근 방식이 있습니다.

  1. 두 개의 모델을 별도로 구축 한 다음 두 모델 의 출력을 입력으로받는 앙상블 알고리즘 훈련
  2. 전처리 단계로 모든 데이터를 단일 벡터 / 텐서로 연결 한 후 간단한 단일 입력 NN 훈련
  3. 제안한 다중 입력 NN 아키텍처

앙상블 접근법은 가장 간단한 옵션이며 적절한 결과를 얻을 수 있지만, 앙상블 네트워크는 두 네트워크에서 클래스 확률을 입력으로 만 받기 때문에 제안한 옵션뿐만 아니라 작동하지 않습니다. 접근 방식은 데이터 유형 간의보다 복잡한 관계를 놓치게됩니다.

두 번째 접근 방식은 이론적으로 제안 된 접근 방식과 다르지 않습니다. 차이는 네트워크가 자체적으로 입력이 두 가지 유형의 데이터로 구성되어 있음을 가정한다는 가정하에 차이가 있습니다 (둘 다 동일한 벡터 / 텐서에 있기 때문에) ). 네트워크가 그것을 배우기까지 많은 훈련 시간이 필요하며 심지어 그 일이 일어나기 전에 지역 최소에 갇힐 수 있습니다.

내 개인적인 경험을 바탕으로 제안한 네트워크는 최선의 선택이며 기차 시간이 가장 짧을 것입니다. 일단 아키텍처를 올바르게 설정하면 프로덕션 및 네트워크에서 네트워크를 쉽게 훈련하고 유지 관리 (재교육) 할 수 있습니다. 하나의 단일 모델 만 재교육하면됩니다.



0

나는 지금까지 당신이 제안한 순진한 구조를 사용하고있었습니다. 잘 짜여진 문제와 충분한 데이터로 인해 이러한 유형의 아키텍처는 매우 잘 작동합니다. 그러나 여기 내가 배운 몇 가지 사항이 있습니다.

  1. 트리 기반 알고리즘 (RF, XGB)은 신경망을 통해 쉽게 구현할 수있는 특정 출력 요구 사항 또는 손실 함수가없는 한 혼합 클래스에서 잘 수행됩니다.
  2. 신경망 사용이 결정되면이 아키텍처는 다른 유형의 문자열 인코딩 방식에 비해 성능이 우수합니다.
  3. 이 방법은 혼합 된 입력 시계열 데이터에서도 작동합니다. 기존 시계열 방식보다 훨씬 뛰어납니다.

핵심 디자인은 연결 레이어이며 아키텍처에서 어디에 배치하고 싶습니까? 또한 임베딩 레이어를 사용하면 다른 작업 / 시각화에서 학습 된 임베딩을 사용하면 추가적인 이점을 얻을 수 있습니다.

이러한 유형의 아키텍처는 Kaggle 대회에서 사용되었으며 [1] 또한 Jeremy Howard 교수 [2]가 Fast.ai 과정에서 가르칩니다.

  1. https://yashuseth.blog/2018/07/22/pytorch-neural-network-for-tabular-data-with-categorical-embeddings/
  2. https://www.fast.ai/2019/01/24/course-v3/
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.