일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Kubernetes
- 파이썬처럼생각하기
- TABNET
- 데이터 아키텍처
- Kibana
- Opensearch
- Kubeflow
- 파이썬
- 쿠버플로
- Minikube
- etl
- 쿠버네티스
- yarn
- mesos
- Spark
- Python
- 데이터 플랫폼
- MLOps
- 리눅스
- elk
- Tabular
- 쿠버플로우
- MachineLearning
- fluentd
- 머신러닝
- hive
- 파이썬답게생각하기
- AWS Glue
- 하이브
- gcp
- Today
- Total
데이터를 걷는 선비
[Google Cloud Machine Learning] TabNet (1/3) 본문
Google Cloud Platform 에서 비즈니스 프로세스로 활용하고 있는 알고리즘을 알아보는 시간!!
이번에는 구글이 정형(Tabular)데이터 Task를 위해 내놓은 TabNet에 대해서 알아보자!!
Google Cloud Vertex AI Tabular Workflows | Google Cloud Blog
Google Cloud announces Vertex AI Tablar Workflows, expanding AutoML and building on research like TabNet.
cloud.google.com
0. 논문 이모저모
https://arxiv.org/abs/1908.07442
※ 논문에 삽입된 이미지는 모두 해당 논문의 이미지를 사용했습니다.
TabNet: Attentive Interpretable Tabular Learning
We propose a novel high-performance and interpretable canonical deep tabular data learning architecture, TabNet. TabNet uses sequential attention to choose which features to reason from at each decision step, enabling interpretability and more efficient le
arxiv.org
논문 구현 코드: https://github.com/google-research/google-research/blob/master/tabnet/tabnet_model.py
GitHub - google-research/google-research: Google Research
Google Research. Contribute to google-research/google-research development by creating an account on GitHub.
github.com
- TabNet은 Google Cloud가 제안하는 정형데이터를 위한 딥러닝 아키텍처이다.
- 좋은 성능, 높은 범용성뿐만 아니라 해석 능력까지 보유하고 있다!!고 구글이 주장하기는 하는데 실제로 구현하기도 쉽고 파워풀한 성능을 보이기에 필자가 프로젝트나 업무할 때 즐겨서 활용하고 있다.
- 2019년 8월 경에 발표되었지만, 당시에는 실험이 부실해 reject 되었다가 다시 2020년 12월 경에 accept되었다.
- LGBM..., CatBoost..., GridSearch... 참신함보다는 근성을 요구했던 정형 데이터 Task에 새로운 바람을 불어왔던 논문!
- 현재 높은 사용률과 인기를 보임을 paperswithcode에서 확인할 수 있다!
1. 논문 개요
- 의문 1) 딥러닝은 왜 그동안 Tabular 데이터를 정복하지 못했나??
- 기존 딥러닝 아키텍처들은 어려운 텍스트, 이미지, 음성, 비디오 태스크에서는 많은 발전을 이룩
- But, 가장 흔하고 자주 쓰이는 Tabular 데이터를 다루는 것에는 애를 먹었음
- Decision Tree 기반 접근들이 Tabular 데이터를 다루는 데에는 더 적합했음
- 의문 2) Decision Tree 기반 방법론들은 무엇이 장점이길래 Tabular 데이터에 적합했나??
- 학습이 빠르고 쉽게 구현될 수 있다는 장점이 있었음
- 변수 중요도를 구할 수 있기 때문에 높은 해석력을 갖추었음
- [중요] 변수 간 연관성이 매우 적은 정형 데이터에 적합했음
- 이미지 데이터는 서로 강한 correlation을 갖고 있고, 텍스트 데이터는 sequential한 특성이 있음
- But, 정형 데이터들은 원-핫 인코딩을 사용한 데이터 등 변수들 간 연관성이 대체적으로 없었음
- [그러나] 정형데이터에서 딥러닝이 가치 있는 이유(딥러닝을 활용해 정형 데이터를 다뤄야 하는 이유)
- Incremental Learning: Streaming Data에서 지속적인 학습이 가능함
- 변수 프로세싱에 용이 (Feature Engineering 간소화)
- 다양한 타입의 변수들을 효율적으로 Encoding할 수 있음
- End-to-End 모델이기에 활용도가 매우 높음(비지도 학습, generative 학습)
2. 모델 구조 :
[TabNet : Main Concept]
- Tree 기반 변수 선택 특징을 네트워크 구조에 반영한 딥러닝 모델
- Sparse Instance-Wise Feature Selection을 사용하여 분명한(영향력이 큰) 변수를 집중적으로 사용해 모델의 성능과 해석 용이성을 향상
- *첫번째 Decision Step에서는 직원과 관련된 변수를 선택해 모델링, 두번째 Decision Step에서는 투자와 관련된 변수 선택해 모델링
- Global한 Feature Importance를 사용하는 Tree 계열과 다르게, Instance-Wise Feaure Selection 이 가능
- => 학습이 종료된 이후 전체적인 변수 중요도를 알 수 있을 뿐만 아니라, 각 데이터(Instance) 별 변수 중요도를 구할 수 있다!!
요약: 입력된 Tabular 데이터에서 Feature를 Making하며 여러 Step을 거쳐서 학습
=> 각 Step별 feature들의 Importance 파악 (해석력)
=> Masking으로 중요한 feature만 선출해서 학습해 성능 향상 (성능)
[TabNet : Architecture]
- Decision Step: 이전 Step이 다음 Step에 영향을 주는 Sequential 구조(마치 Gradient Boost)
- Feature Transformer: 선택된 Feature로 정확히 예측하기 위한 Embedding 기능
- Attentive Transformer: n 번째 Step 에서 변수의 중복 반영 여부 결정(변수 선택 결정)
- Feature masking: 모델링에 사용하는 변수 선택(해석에도 영향)
TabNet은 크게 위와 같은 4단계를 통해서 정형 데이터의 특징을 살린 모델링을 진행하는데, 이렇게 보면 용어가 알듯말듯하지만 사실 뭔소리인지 모르겠으니, 하나하나 자세히 알아보자!!
[Input]
<입력 부분 특징>
- Numeric data 와 Categorical 변수 투입 => 임베딩 레이어를 구성해 Categorical 변수 Embedding
- BatchNorm 레이어 존재 => Min-max or standard scaling 같은 것 대신 Batch Norm레이어로 Normalization
TabNet 학습을 위해서 데이터를 입력할 때 첫번째로 범주형(Categorical) 변수를 단순히 Label Encoding, One-Hot Encoding을 하는 것이 아닌 Embedding 해준다는 특징이 있으며, Batch Norm 레이어로 표준화를 해준다는 특징이 있는데 이러한 점들은 딥러닝을 활용해 정형 데이터를 다뤄야 하는 이유에서 보듯이 딥러닝을 활용했을 때 1)변수 프로세싱에 용이하고 2) 다양한 타입의 변수들을 효율적으로 Encoding할 수 있다는 장점을 살린듯하다.
[Google Cloud Machine Learning] TabNet (2/3) 에서 계속!!
https://semizero.tistory.com/8
[Google Cloud Machine Learning] TabNet (2/3)
Google Cloud Platform 에서 비즈니스 프로세스로 활용하고 있는 알고리즘을 알아보는 시간!! 이번에는 구글이 정형(Tabular)데이터 Task를 위해 내놓은 TabNet에 대해서 알아보자!! https://cloud.google.com/blog/pr
semizero.tistory.com
'Machine Learning > Paper' 카테고리의 다른 글
[Google Cloud Machine Learning] TabNet (2/3) (0) | 2023.01.02 |
---|