정형 데이터
-엑셀 파일 형식이나 관계형 데이터베이스의 테이블에 담을 수 있는 데이터.
-즉, 행과 열로 표현이 가능한 데이터이다.
-하나의 행은 하나의 데이터 인스턴스를, 각 열은 데이터의 특징을 나타낸다.
-사람, 기업, 현상, 사회의 많은 부분들이 정형 데이터로 기록된다. 즉, 정형 데이터는 가장 기본적인 데이터이고,
분야를 막론하고 많은 데이터가 정형데이터로 존재하기에 필수적인 데이터이다.
-정형데이터를 분석하는 능력은 데이터에 대한 상상력과 통찰력에 직결된다.
-즉 다양한 경험을 통해 데이터에 국한되지 않고 범용적으로 쓰일 수 있는 능력이다.
*비정형 데이터 : 이미지, 비디오, 음성, 자연어 등의 정제되지 않은 데이터
평가 지표
1) Accuracy (정확도)
- (TP + TN) / (TP + TN + FP + FN)
-전체 데이터 중 제대로 예측한 비율
-불균형 데이터에 대해서는 믿을 수 없다.
2) Precision (정밀도)
- TP / (TP + FP)
-모델이 P라 예측한 데이터 중 맞는 비율
-N인 데이터가 더 중요하여, N인 데이터를 P라 예측하면 안될 때 사용한다.
-스팸 메일이 대표적인 예시.
스팸 메일을 확실하게 스팸 메일로 분류하는 것보다, 일반 메일을 스팸 메일로 분류하지 않는 것이 더 중요하다.
3) Recall (재현율)
- TP / (TP + FN)
-실제 값이 P인 데이터 중 맞는 비율
-P인 데이터가 더 중요한 경우에 사용한다.
-예를 들어 악성 종양을 음성 종양으로 분류하면 안된다.
4) ROC (Receiver Operating Characteristic, 수신자 조작 특성)
-TPR을 Y축, FPR을 X축으로 한 곡선이다.
-TPR : TP / (TP+FN) : 실제 값이 T인 데이터 중 맞춘 비율
-FPR : FP / (FP+TN) : 실제 값이 0인 데이터 중 맞춘 비율
-AUC : ROC 곡선의 면적으로, 0~1의 값을 가지는데 1에 가까울수록 잘 예측하는 것을 의미한다.
EDA (Exploratory Data Analysis, 탐색적 데이터 분석)
-데이터를 탐색하고 가설을 세워 증명하는 과정
-다양한 시각화를 통해 데이터를 이해하고 특징을 찾아내는 과정이다.
-정형, 비정형의 모든 데이터는 분석에 앞서 EDA 과정을 수반한다.
-종합하면 데이터를 통한 문제를 해결하기 위해 데이터를 이해하기 위해 적절한 방법들을 사용하는 것.
-탐색하고, 생각하고, 증명하는 과정의 반복이다.
-데이터마다 도메인이 상이하고 해결하고자 하는 문제가 다르기에 EDA의 방향성은 그때그때 다르다.
즉, 일반화가 어렵고 정해진 답이 없다.
-그렇기에 많은 가설 혹은 의문을 생각하고 풀어나가는 것이 좋다.
-그렇다고 EDA에 대한 개요가 없다면 비효율적이기 때문에 반드시 시작은
1) 개별 변수의 분포
2) 변수간 분포와 관계
를 파악하며 시작해야 한다.
데이터 전처리 (Preprocessing)
-머신러닝 모델에 데이터를 입력하기 위해 데이터를 처리하는 과정
-EDA에 따라, 그리고 모델과 목적에 따라 전처리 방식은 달라진다.
-EDA처럼 정해진 정답은 없으나, 일단 연속형, 범주형 처리, 결측치 처리, 이상치 처리 등을 수행해야 한다.
1) 연속형 데이터 처리
1-1) Scaling
-데이터의 단위 혹은 분포를 변경
-선형기반의 모델인 경우 변수들 간의 스케일을 맞추는 것이 필수적이다.
-Min-Max Scaling, Standard Scaling, Robust Scaling 등이 있다.
-스케일링을 수행하면 Squared Error가 줄어들어 모델의 성능에 영향을 미친다.
1-2) Scaling + Distribution
-스케일링 뿐 아니라 분포도 바꾸는 것
-Log transformation은 한쪽에 치우친 경우 분포를 정규분포처럼 만들어준다.
-Quantile transformation의 경우 값을 Uniform하게 변화시키거나 정규분포로 바꿔준다.
Log와 차이점은 어떠한 분포가 들어와도 정규분포처럼 만들어줄 수 있다.
-정규의 분포도 바꿔줌으로써 타겟과 관계를 더욱 직접적으로 바꿔준다.
1-3) Binning
-넓고 얇은 다봉분포
-오버피팅을 방지해준다.
2) 범주형 데이터 처리
-대부분 문자형 데이터로 되어있어 수치형으로 바꿔주는 작업이 필요하다.
2-1) One hot encoding
-변수를 1과 0으로 나눈다.
-모델이 변수의 의미를 정확하게 파악할 수 있으나 도메인이 많다면 희소 행렬의 특성상
차원의 저주에 걸릴 수 있다.
2-2) Label Encoding
-특징마다 다른 ID를 부여해 하나의 칼럼으로 표현하는 것.
-메모리를 아낄 수 있으나, 모델이 숫자의 순서를 특징으로 인식할 수도 있다.
2-3) Frequency Encoding
-해당 변수의 값이 몇 번 나왔는지를 사용하는 방식
-값의 의미가 범주형 변수의 빈도수를 의미한다.
2-4) Target Encoding
-각 타겟변수의 평균으로 인코딩
-값의 의미가 타겟변수와 얼마나 연관되어 있는지를 의미한다.
-하지만 타겟인코딩은 타겟변수와 직접적으로 연관되어 오버피팅 될 수 있다.
2-5) Entity Embedding
-Word2Vec등을 활용하여 임베딩을 수행하여 인코딩
3) 결측치 처리
3-1) Pattern 파악
-결측치의 패턴을 파악하여, 어떠한 규칙을 기반으로 발생하는지 혹은 랜덤하게 발생하는지 파악한다.
-랜덤하게 발생하는 결측치 패턴에 대해서는 단변량, 다변량 기법을 활용해 결측치를 채워야 한다.
-규칙적으로 발생하는 결측치 패턴에 대해서는 다른 특징이 같거나 비슷한 다른 데이터의 값으로 채워줄 수 있다.
3-2) 랜덤 패턴 결측치 처리 : Univariate (단변량)
-제거, 평균값 삽입, 중의값 삽입, 상수값 삽입 등으로 처리할 수 있다.
-제거의 경우 데이터가 충분하지 않으면 좋지 않은 방법. 또한 테스트 데이터에 있을 경우 제거가 불가능
-만약 해당 특징의 대부분이 결측값이면, 그냥 그 특징 자체를 삭제해 버릴 수도 있다.
-삽입의 경우에는 결측치가 많으면 삽입한 값에 대한 분포가 많아질 수 있다.
3-3) 랜덤 패턴 결측치 처리 : Multivariate (다변량)
-머신러닝 모델을 활용하여, 주변 데이터를 통하거나 유사한 샘플을 활용해 결측치를 채우는 방법
-회귀분석, KNN nearest등의 방법을 사용할 수 있다.
-결측치가 많다면 시행이 어렵고, 데이터 크기가 크다면 시간이 많이 소모될 수 있다.
-또한 결측지의 값을 변수간의 의미를 파악하여 채울 수도 있다.
ex) 행정구역인구의 경우 => 평균값 대체 / 강수량 => 0으로 대체 / 온도, 습도 => 지역의 해당 일의 평균으로 대체
4) 이상치 처리
-이상치란 일반적인 데이터와 크게 다른 데이터.
-그래프에 표현하면 모여있는 데이터들에 비해 멀리 떨어져있고, x, y의 상관관계에서 상관이 없다.
-이상치를 탐색하는 방법으로는 Z Score, IQR이 있다.
-이상치는 모델의 학습을 크게 방해하기에 반드시 처리해야 한다.
-이상치 처리는 정성적, 성능적으로 나뉜다.
-정성적 측면에서는 이상치가 발생한 이유와 의미를 파악한다. 그리고 이를 토대로 어떻게 처리할지 결정한다.
-성능적 측면에서는 TRAIN-TEST 분포에 이상치의 분포를 확인하는데, 목적에 따라 다르게 접근하여 처리한다.
-대표적으로 학습셋과 테스트셋을 한 그래프 안에 산점도로 표현한 후, 학습셋의 이상치 중 테스트셋과도 멀리
떨어진 이상치들을 제거한다.
Underfitting & Overfitting
-fit이라는 표현은 데이터를 잘 설명할 수 있는 능력을 의미한다.
-Underfitting은 데이터를 잘 설명하지 못하는 현상을, Overfitting은 데이터를 과하게 설명하는 현상을 의미한다.
-모델 학습에 사용된 데이터셋은 전체의 일부분에 불과하다.
-만약 보유한 데이터셋이 전체 데이터를 너무 잘 표현한다면, 오히려 오버피팅 시키는 것이 좋을 수 있다.
-하지만 그런 경우는 거의 없으니, 오버피팅과 언더피팅에 유의해야 한다.
Regularization
-언더 피팅을 방지하는 방법에는 데이터 추가, 특징 추가, 더 좋은 모델 사용등이 있다.
-오버피팅을 방지하는 방법에는 조기종료, Parameter norm 패널티, 데이터 증강 등의 규제가 있다.
-정형 데이터에서는 조기종료, 파라미터 norm 패널티, 데이터 증강, 드롭아웃이 사용된다.
1) Early stopping
-과적합에 걸리지 않게 적당한 학습 단계에서 학습을 종료한다.
2) Parameter norm penalty
-L1 (Lasso), L2 (Ridge) 등을 사용하여 노이즈에 민감하지 않게 모델이 학습하도록 도와준다.
-패널티의 계수를 적절히 선택하여 모델을 학습하면 오버피팅 방지가 가능하다.
3) Data Augmentation
-데이터를 의도적으로 증강시켜 머신러닝 모델에게 다양한 경험을 제공하는 방법
-의미있는 데이터가 많을수록 분석이 용이하다.
4) SMOTE
-모든 데이터에 대해 Augmentation을 하는 것이 아니라, Imbalance한 데이터를 대상으로 Augmentation 수행
-하나의 Imbalance 데이터를 기준으로 설정한 후 근처에 있는 데이터를 검색한다. 그리고 그 사이에 데이터를
생성한다.
5) Dropout
-정형 데이터에서의 Dropout은 모든 데이터가 아닌, 몇몇 데이터를 제외하고 학습을 수행하는 방법
-정형 데이터에서는 프루닝(가지치기)라고 표현하기도 한다.
Validation Strategy
-Valid 데이터셋은 Test 데이터셋과 비슷하면 당연히 좋겠지만, 테스트 데이터셋은 미래에 추가되는 것이기에
현재를 기준으로 볼 수 없어 사실상 불가능하다.
-Valid 데이터셋은 현실 데이터를 잘 표현할 수 있도록 구성하는 것이 중요하다.
-Hold-out Validation은 애초에 Valid 데이터셋을 선정하여 이를 계속 활용한다.
-랜덤으로 선정할 수도 있고, Stratified Split을 활용해 데이터의 클래스간 분포를 일정하게 나눌 수도 있다.
-Cross Validation은 K-Fold라고도 불리며, K개의 valid 셋을 선정하여 각 데이터셋에 대해 K개의 모델을 학습시켜
모델들을 합치는 방법이다.
-마찬가지로 Stratified를 사용하여 분포를 맞춰줄 수도 있고, Group K-Fold를 사용하여 아예 특정 클래스만
검증 셋으로 만들어버릴 수도 있다.
Reproductibility (재현성)
-모델의 성능은 같은 모델이라도 환경에 따라 다를 수 있다. 데이터가 나누어지는 것도, 모델이 학습하는 것도
전부 랜덤성을 가지고 있기 때문.
-그렇기에 그 환경을 동일하게 설정해주어야 하는데, 이를 위해 시드를 고정해야 한다.
*진짜 꼭 시드좀 고정하고 살자... 시드 고정 안해서 날린 모델이 몇개냐... ㅠㅠ
트리 모델의 발전 과정
1) 의사결정나무
-칼럼 값들을 기준으로 그룹으로 나누어 목적에 맞는 의사결정을 만드는 방법
-하나의 질문으로 yes or no로 결정을 내려가며 분류를 수행한다.
2) 배깅과 부스팅
-둘 다 여러 개의 의사결정 트리를 이용하여 모델을 생성하는 방법이다.
-배깅은 데이터셋을 샘플링하여 여러 개의 데이터셋으로 나누어 각 데이터 셋에 맞는 모델들을 만든 후
하나로 취합한다. => 랜덤 포레스트의 구성 방식
-부스팅은 데이터로 학습을 시킨 후 검증을 통해 제대로 파악하지 못하는 데이터 유형에 대해 재학습을 실시하는
방향으로 진행된다.
-배깅은 병렬 모델로 다양한 트리를 생성하고, 부스팅은 순차적 모델로 정밀한 트리를 생성한다.
3) LightGBM, XGBoost, CatBoost
-부스팅 모델들의 대표적인 모델들.
-XGBoost와 CatBoost는 균형적 구조, LightGBM은 한쪽 가지를 먼저 성장시키고 다음 가지를 성장시키는
비균형적 구조로 학습된다.
-LightGBM과 CatBoost는 pandas의 category 데이터 타입만 사용이 가능하고,
XGBoost는 오직 numeric 데이터 타입만 사용이 가능하기에 전처리가 필요하다.
Tree model의 하이퍼 파라미터
-learning rate : 수렴을 하기 위해 이동하는 거리
-depth와 leaves : 트리의 깊이와 잎사귀(마지막 노드) 수
-Column sampling ratio : 특징 중 일부만을 사용하여 트리를 만드는 것 => 특정 특징에 오버피팅 방지
-Row sampling ratio : 데이터 중 일부 데이터만 사용하여 트리 생성 => 특정 데이터에 오버피팅 방지
-lgb.plot_metric(model) : 트레이닝 로그 확인
-lgb.plot_tree(model, tree_index = 50, figsize = (100, 100) : tree의 구조 확인
Feature Engineering
-원본 데이터로부터 도메인 지식 등을 바탕으로 문제를 해결하는데 도움이 되는 특징을 생성, 변환하고
머신 러닝 모델에 적합한 형식으로 변환하는 작업
-pandas의 gropby 함수와 agg 함수를 사용하면
원본 데이터에서 주어진 특징을 바탕으로 새로운 특징 생성이 가능하다.
-이러한 방식은 특징-특징 간 관계를 잘 파악할 수 있게 해줌으로써 효율적인 EDA가 가능해진다.
-위의 방식은 customer_id, year_month, label을 기준으로 quantity, price를 agg한 것.
Cross Validation을 활용한 Out of fold 예측
-Cross Validation은 학습 셋에서 k개의 검증셋을 분할해 여러 모델에 학습을 시키고 통합하는 방식
-Out of fold 예측은 폴드마다 학습한 모델로 테스트 데이터를 예측하고, 이 결과를 평균을 내서 최종 예측을 하는 법.
-그냥 평범한 앙상블처럼 사용하면 된다.
LightGBM의 조기 종료 적용
-LightGBM은 몇 개의 트리를 만들지 n_estimators 하이퍼 파라미터를 적용하지만, 이것이 최적의 값이라고
볼 수는 없다.
-Early Stopping은 Valid 데이터가 있을 경우 early_stopping_rounds를 적절한 값으로 설정하여 사용한다.
-트리를 추가할 때마다 validation 성능을 측정하고 이 성능이 early_stopping_rounds 값 이상 연속으로 성능이
좋아지지 않으면 학습을 종료하고 가장 성능이 좋은 트리 개수를 최종 트리 개수로 사용한다.
피처 중요도
-타겟 변수를 예측하는 데 얼마나 유용한 지에 따라 특징에 점수를 할당하여 중요도를 측정하는 방법
-크게 Model-specific한 방법과 Model-agnostic한 방법이 있다.
-머신러닝 모델 자체에서 피처 중요도를 계산하면 Model-specific
-모델을 학습한 후 적용되는 피처 중요도 적용 방법은 Model-agnostic
LightGBM 피처 중요도
-학습된 모델 클래스에 feature_importance 함수를 사용하면 계산 가능
-파라미터로 importance_type값을 주는데 split (default), gain 값 가능
-split은 트리를 만드는 데 피처가 얼마나 사용되었는가?
-gain은 피처를 사용해 split하는 데 나온 gain 종합
WeightGBM 피처 중요도
-get_score 함수로 계산 가능
-파라미터는 디폴트는 weight
CatBoost 피처 중요도
-get_feature_importance 함수로 계산 가능
-디폴트는 FeatureImportance
Permutation 피처 중요도
-특징의 값들을 랜덤하게 셔플링 한 후 모델의 에러를 측정해서 피처의 중요도를 측정하는 방법
-피처가 중요하면 랜덤 셔플링이 되면 에러가 커지고, 중요하지 않다면 커지지 않는다.
피처 선택
-머신러닝 모델에서 사용할 피처를 선택하는 과정
-머신러닝 모델이 타겟 변수를 예측하는 데 유용한 피처와 유용하지 않은 피처를 구분하여 유용한 피처를
선택하는 과정
-피처 선택을 통해 모델의 복잡도를 낮춰 오버피팅 방지 및 모델의 속도 향상이 가능하다.
-피처 선택의 방법으로는 Filter Method, Wrapper Method, Embedded Method가 있다.
1) Filter Method
-통계적인 측정 방법을 사용해 특징 간 상관관계와 분산을 파악하는 방식
-그러나 특징간 상관관계가 반드시 모델에 적합한 것은 아니라 가장 좋은 방법은 아니지만,
가장 간단하게 사용 가능한 방식
-계산 속도가 빠르고 상관계수를 알아낼 수 있어 Wrapper Method 사용 전 전처리에 사용하기 좋음.
-상관계수가 너무 높으면 사실상 같은 변수라 둘 중 하나 제거 가능.
-분산이 너무 높은 특징은 중요한 특징이 될 가능성이 낮으므로 제거 가능.
2) Wrapper Method
-예측 모델을 사용해 특징의 subset을 테스트하는 방식
-기존 데이터에서 성능을 측정할 수 있는 홀더 데이터셋을 따로 두어 성능을 측정하는 방법 필요
3) Embedded Method
-위의 두 메소드의 장점을 결합한 방식으로 학습 알고리즘 자체에서 수행
하이퍼 파라미터 튜닝
-하이퍼 파라미터란 학습 과정에서 제어 가능한 파라미터들
-반대로 파라미터란 모델이 학습하는 과정에서 계속해서 변화하는 값들
-즉, 하이퍼 파라미터는 모델이 학습하지 않고, 개발자가 미리 설정하는 값들이다.
-하이퍼 파라미터 튜닝이란 이러한 하이퍼 파라미터를 최적화하는 과정이다.
-방법으로는 Manual Search, Grid Search, Random Search, Bayesian optimization이 있다.
1) Manual Search
-자동화 툴을 사용하지 않고 개발자가 직접 테스트 셋을 정하고 일일이 테스트를 해보는 것
2) Grid Search
-테스트 가능한 하이퍼 파라미터를 전부 테스트해보며 성능을 비교하는 방식
-당연히 시간이 많이 걸려서 좋은 방법이라 볼 수는 없다.
-단 실험할 경우의 수가 적으면 좋은 방법일 수 있음.
3) Random Search
-탐색 가능한 하이퍼 파라미터의 영역에서 랜덤하게 하이퍼 파라미터를 정해서 성능을 비교
-Grid Search보다 좋은 하이퍼 파라미터를 찾아낼 수 있는 방식
4) Bayesian Optimization
-대부분의 프레임워크에서 기본적으로 사용하는 방식
-처음에는 랜덤하게 정하다가, 어느정도 기록이 쌓이면 그 기록을 토대로 성능이 잘 나오는 구간에서 테스트를 수행.
-오래하면 오래할수록 좋은 파라미터가 나올 수 있고, 너무 한 쪽으로 쏠리지 않도록 중간중간 계속 랜덤 파라미터
선택 수행
Optuna
-오픈소스 하이퍼 파라미터 튜닝 프레임워크
-Storage API를 사용하면 하이퍼 파라미터 검색 결과를 저장할 수 있다.
-RDB, Redis와 같은 Persistent 저장소에 하이퍼 파라미터 탐색 결과를 저장함으로써 한 번 탐색하고, 다음에 다시
이어서 탐색이 가능하다.
-주요 기능으로는
1) Eager search spaces : 최적화된 하이퍼파라미터를 자동 검색 가능
2) State of the art algorithms : 하이퍼파라미터 탐색의 최신 알고리즘 제공
3) Easy Parallelization : 병렬화가 가능하여 대규모 하이퍼파라미터 탐색 가능.
앙상블
-여러 개의 결정 트리를 결합하여 하나의 결정 트리보다 더 좋은 성능을 내는 머신러닝 기법
-앙상블 학습의 핵심은 여러 개의 약 분류기를 결합하여 강 분류기를 만드는 것이다.
-여러 모델들의 평균치를 내거나, 투표를 통해 다수결에 의한 결정을 하는 등 여러 모델들의 집단 지성을 활용하거나
더 나은 결과를 도출해내는 것이 목적임.
-기법으로는 배깅, 보팅, 부스팅, 스태킹이 있다.
1) Bagging (Bootstrap Aggregation)
-훈련 세트의 중복을 허용하여 샘플링하는 방식.
2) Pasting
-훈련 세트의 중복을 허용하지 않고 샘플링하는 방식.
3) Voting
-투표를 통해 결정하는 방식.
-보팅은 다른 알고리즘 모델을 조합하여 사용하는데, 배깅은 같은 알고리즘 내에서 다른 샘플을
조합하여 사용한다.
-보팅은 서로 다른 알고리즘이 도출한 결과물에 대하여 최종 투표를 하는 방식
-Hard Vote : 다수결의 원칙과 비슷하며, 최종 결과물에 대한 보팅 진행
-Soft Vote : 레이블 값 결정 확률인 softmax 결과를 더한 후 평균을 내어 가장 높은 레이블 값을 선정.
4) Boosting
-여러 개의 분류기가 순차적으로 학습을 수행한다.
-이전 분류기가 틀린 예측에 대해 제대로 예측이 가능하도록 해당 데이터에 대해 학습 재개
-순차적으로 학습이 진행되기에 병렬 학습이 가능한 배깅보다 느리고, 오버피팅 발생 가능성이 높다.
5) Stacking
-여러 모델들로 각각의 예측 결과를 도출한 후 그 예측 결과를 결합해 최종 예측 결과를 만들어내는 것.
-총 두 가지 종류의 모델들이 필요한데, 베이스러너와 모델들의 예측값을 통해 출력을 결정하는 Meta모델이다.
-그러니까 여러 모델들을 만들고 이 모델들의 출력값을 Meta 모델이 활용하여 최종 출력값 결정
-성능은 좋으나 오버피팅이 일어날 수 있다.
Tree Algorithm
1) Decision Tree의 불순도
-노드에 섞여있는 불순도가 많을수록 복잡성이 높아진다.
-그래서 이 불순도를 측정해야 하는데, 측도로는 Entropy와 Gini가 있다.
-지니 계수는 데이터의 통계적 분산정도를 정량화하여 표현한다.
2) XGBoost
-Gradient Boosting에 Regularization term을 추가한 알고리즘.
-다양한 손실 함수를 지원해 task에 따른 유연한 튜닝이 가능하다.
-Level-wise growth라 트리의 깊이를 줄이고 균형있게 만들기 위해 root와 가까운 노드를 우선적으로
순회하며 수평성장한다.
3) LightGBM
-Leaf-wise tree growth라서 LOSS 변화가 가장 큰 노드에서 분할하여 성장하는 수직 성장한다.
-Goss : 기울기가 큰 데이터 개체 정보 획득에 있어 더욱 큰 역할을 한다는 아이디어에 입각해 만들어진 테크닉으로,
작은 기울기를 갖는 데이터 개체들을 일정 확률에 의해 랜덤하게 제거한다.
-EFB : 변수 개수를 줄이기 위해 상호배타적인 변수들을 묶는다.
4) CatBoost
-순서형 원칙을 제시 : Target Leakage를 피하는 표준 그래디언트 부스팅 알고리즘을 수정하고 범주형 특징을 처리하는
새로운 알고리즘이다.
-Random Permutation으로 데이터를 셔플링하여 뽑아낸다.
-범주형 피처를 처리하는 방법으로는 Ordered Target Encoding, Categorical Feature Combinations, One-hot encoding
이 있다.
TabNet
-정형 데이터를 위한 딥러닝 모델
-전처리 과정이 필요하지 않다.
-Feature selection, interpretability가 가능한 신경망 모델. 즉, 설명가능한 모델이다.
-특징 값을 예측하는 비지도 학습 단계를 적용하여 상당한 성능 향상을 보여준다.
-순차적인 어텐션을 사용하여 각 의사 결정 단계에서 추론할 특징을 선택하여 학습 능력이
가장 두드러진 특성을 사용한다.
-기존의 모델과 달리 특징 선택과 모델 학습이 나누어지지 않고, 한 번에 가능하다.
-특징 선택이 이루어지기에 어떠한 특징이 중요한지 설명이 가능하다.
-비지도 사전 학습의 경우 특징 일부에 Mask를 두고 이를 맞추는 방향으로 학습한다.
-비지도 사전 학습으로 weight를 pre training 할 수 있고, 이를 토대로 지도 학습을 진행하면 좋은 성능이 나온다.
-단점으로는 조절해야할 파라미터의 수가 많아 시간이 조금 오래 걸리는 편에 속한다.
'BOOSTCAMP AI TECH > PStage' 카테고리의 다른 글
03-02. MRC (Machine Reading Comprehension, 기계독해) (0) | 2021.04.26 |
---|---|
03-01. Object Detection / Segmentation (0) | 2021.04.26 |
02-01. KLUE (0) | 2021.04.24 |
01. Computer Vision (0) | 2021.04.24 |
00. 시각화 (0) | 2021.04.24 |