본문 바로가기

SK네트웍스 Family AI캠프 10기/Weekly 회고

[플레이데이터 SK네트웍스 Family AI 캠프 10기] 6주차 회고

5주 차 학습

 

 

Supervised Learning - Regression

평가 지표

  • R2(Coefficient of Determination)
    • 회귀식이 얼마나 정확한지를 나타낸다.
  • MSE(Mean Squared Error
    • 실제값과 예측값의 차이의 제곱의 평균을 나타낸다.
    • 이상치에 민감하며, 직관적이지 못하다.
  • RMSE(Root Mean Squared Error)
    • MSE의 제곱근을 나타낸다.
    • 이상치에 민감하다.
  • RMSLE(Root Mean Squared Logarithmic Error)
    • 실제값과 예측값의 로그 차이의 제곱의 평균의 제곱근을 나타낸다.
    • 값이 작을수록 오류가 적다.
  • MAE(Mean Absolute Error)
    • 실제값과 예측값의 차이의 절댓값의 평균을 나타낸다.
    • 손실함수로 사용한다.
  • MAPE(Mean Absolute Percentage Error)
    • 실제값에 대한 절대오차 비율의 평균을 백분율로 표현한다.
    • 0에서 1 사이의 값을 가지며, 0에 가까울수록 학습이 잘 됐다는 것을 의미한다.
  • SMAPE(Symmetric Mean Absolute Percentage Error)
    • 실제값에 0이 존재해도 계산이 가능하다.

 

경사하강법

  • 가중치와 절편을 MSE를 최소화하는 방법으로 구한다.
  • 모델 학습은 손실함수의 값을 작게 변하도록 학습을 진행하는 것이다.
  • Learning Rate가 작을 경우, 학습이 오래 걸리며, Learning Rate가 클 경우, 학습이 되지 않을 수 있다.

 

정규화

  • L1 정규화
    • 가중치의 합을 더한 값에 Learning Rate를 곱하여 오차에 더한다.
    • 특정 Feature 없이도 같은 값을 낼 수 있기 때문에, Feature Selection이 가능하다.
  • L2 정규화
    • 각 가중치 제곱의 합에 Learning Rate를 곱한다.
    • Learning Rate가 크면 가중치가 감소하고, Learning Rate가 작으면 가중치가 증가한다.
    • L1에 비해 더 안정적이다.

 

 

Supervised Learning - Classification

 

Confusion Matrix

  • 예측과 실제값 사이의 관계를 행렬로 표현한다.
  • Sensitivity(Recall)
    • 실제로 참인 것들 중에 예측이 참인 비율
    • TP / (TP + FN)
    • FN(예측이 거짓인데 실제로는 참인 경우)을 줄이는 것이 목표일 때 사용한다.
  • Precision
    • 예측이 참인 것들 중에 실제로 참인 비율
    • TP / (TP + FP)
    • FP(예측이 참인데 실제로는 거짓인 경우)를 줄이는 것이 목표일 때 사용한다.

 

Binary Classification

  • ROC(Receiver Operating Characteristic) Curve
    • FPR(FP / (FP + TN))을 x축으로, TPR(TP / (FN + TP))을 y축으로 정의하여 둘 간의 관계를 표현한 그래프
  • AUROC(Area Under ROC Curve)
    • ROC Curve의 밑부분 면적
    • 넓을수록 모형 성능이 좋다.

 

Multiclass Classification

  • 가능도(Likelihood)
    • 관측되는 사건이 고정된 상태에서, 확률 분포가 변화되는 경우
  • 최대가능도 추정량(MLE; Maximum Likelihood Estimator)
    • 주어진 관측값에 대한 총 가능도를 최대로 하는 확률 분포를 찾는다.

 

 

Supervised Learning - Ensemble

 

Bagging

  • Bagging
    • 데이터로부터 복원추출을 통해 n개의 Bootstrap Sample을 생성한다.
    • 해당 Sample에 대해 모델(Decision Tree) 학습을 진행한다.
    • 위 과정을 반복하여 최종 Bagging 모델을 정의한다.
  • Random Forest
    • 임의로 일부 Sample과 Feature를 뽑아 여러 개의 Tree를 만들어 Ensemble 한다.
    • Decision Tree는 overfitting 될 확률이 높기 때문에, Random Forest를 통해 이를 회피한다.

 

Boosting

  • Boosting
    • Weak Learner를 생성한 후, Error를 계산한다.
    • Error에 기여한 Sample마다 다른 가중치를 주고 해당 Error를 감소시키는 새로운 모델을 학습한다.
    • 위 과정을 반복하여 최종 Boosting 모델을 정의한다.
  • Gradient Boost
    • max_depth를 1과 5 사이로 설정하여 약한 Tree를 만들어 학습한다.
  • XGBoost
    • Gradient Boost를 병렬 학습이 지원되도록 구현한다.
  • Light GBM
    • Tree의 균형을 맞추지 않고 최대 손실 값을 갖는 Leaf Node를 지속적으로 분할하면서 깊고 비대칭적인 Tree를 생성한다.
    • XGBoost에 비해 빠르며, 예측 오류 손실을 최대화할 수 있다.
  • CatBoost
    • 범주형 Feature가 많을 때 사용한다.

 

Voting

  • Hard Voting
    • 모델들의 예측 결괏값을 다수결을 통해 최종 Class를 결정한다.
  • Soft Voting
    • 모델들의 예측 결괏값의 평균으로 최종 Class를 결정한다.

 

Stacking

  • Traning Dataset을 이용하여 예측 결과를 생성한다.
  • 위의 예측 결과를 Traning Dataset으로 사용하여 Meta Learner 모델을 생성한다.

 

 

Unsupervised Learning - Dimensionality Reduction

 

주성분 분석(PCA; Principal Component Analysis)

  • 데이터의 분산을 최대화하는 주성분을 찾는다.

 

특이값 분해(SVD; Singular Value Decomposition)

  • 임의의 m × n 차원의 행렬에 대하여 세 개의 행렬로 분해한다.
  • 복원이 필요한 데이터를 분석할 때 사용한다.

 

비음수 행렬 분해(NMF; Non-negative Matrix Factorization)

  • 음수를 포함하지 않는 행렬을 음수를 포함하지 않는 두 행렬의 곱으로 분해한다.
  • 추천 시스템을 구현할 때 사용한다.

 

 

Unsupervised Learning - Clustering

 

K-Means

  • k개의 임의의 중심점으로부터 가까운 데이터들을 묶는다.
  • 이상치에 민감하며, Scaling을 필수로 한다.
  • Cluster가 둥근 형태이면서 데이터가 밀집되어 있어야 한다.

 

군집 타당성 평가

  • 사전에 정의된 그룹이 있는 경우
    • Homogeneity: 각 군집이 동일한 클래스로 구성되어 있는 정도
    • Completeness: 각 클래스에 대하여 동일한 군집으로 구성되어 있는 정도
    • V-Measure: Homogeneity와 Completeness의 조화 평균
  • 사전에 정의된 그룹이 없는 경우
    • Silhouette Coefficient(실루엣 계수)

 

 

Overfitting and Underfitting

 

Overfitting

  • 모델이 학습 데이터에 필요 이상으로 적합한 것을 말한다.
  • 데이터 내의 존재하는 규칙뿐만 아니라 불완전한 Sample도 학습한다.

 

Underfitting

  • 모델이 학습 데이터에 제대로 적합하지 못한 것을 말한다.
  • 데이터 내에 존재하는 규칙도 제대로 학습하지 못한 상태이다.

 

 

Imbalanced Data

 

Imbalanced Data

  • Target이 범주형 데이터일 경우, 범주별로 관측치의 개수와 비율의 차이가 많이 나는 데이터를 말한다.

 

Imbalanced Data 처리 방법

  • 평가 기준 변경
    • Confusion Matrix
    • Precision
    • Recall
    • F1 Score: Precision과 Recall의 가중 조화 평균
    • ROC Curves
  • Resampling
    • Under Sampling
      • Random Under Sampler
        • 무작위로 데이터를 없앤다.
      • One Sided Selection
        • Tomek Links: 서로 다른 클래스에 속해있지만 가장 가까이 붙어있는 한 쌍의 데이터 중 다수 클래스에 속해있는 데이터를 삭제한다.
        • CNN(Condensed Nearest Neighbour): 다수 클래스의 데이터 포인트와 가장 가까운 데이터가 소수 클래스인 다수 클래스 데이터 외에는 모두 삭제한다.
        • OSS(One-Sided Selection): Tomek Links와 CNN을 같이 수행한다.
      • Neighbourhood Cleaning Rule
        • CNN(Condensed Nearest Neighbour) 방법과 ENN(Edited Nearest Neighbours) 방법을 섞는다.
    • Over Sampling
      • Random Over Sampler
        • 소수 클래스의 데이터를 반복해서 넣는다.
      • ADASYN(Adaptive Synthetic Sampling)
        • 소수 클래스 데이터와 그 데이터에서 가장 가까운 k개의 소수 클래스 데이터 중 무작위로 선택된 데이터 사이의 직선상에 가상의 소수 클래스 데이터를 만든다.
      • SMOTE(Synthetic Minority Over-Sampling Technique)
        • ADASYS 방법과 동일하게 데이터를 생성하지만, 생성된 데이터를 분류 모형에 따라 분류한다.

 

 

Cross Validation

 

Cross Validation

  • K-Fold
    • 데이터를 k개의 Data Fold로 분할하고, 각 Iteration마다 Valid Set을 다르게 할당하여 총 k개의 Data Fold Set를 구성한다.
    • 각 Data Fold Set에 대해 나온 검증 결과들을 평균 내어 최종적인 검증 결과를 도출한다.
  • Stratified K-Fold
    • Classification 문제에서 사용한다.
    • Label의 분포가 각 Class별로 불균형을 이룰 때 사용한다.
    • 각 Valid Set의 분포가 전체 데이터 세트가 가지고 있는 분포에 근사하게 된다.

 

 

Auto ML

 

Auto ML

  • Machine Learning을 데이터에 적용하는 프로세스를 자동화하여, 최상의 모델을 선택할 수 있다.

 

 

(HPO)Hyper Parameter Optimization

 

Parameter

  • Model Parameter
    • 모델 학습을 통해서 최종적으로 찾게 되는 Parameter
    • 모델이 학습을 통해 Parameter 값을 변경한다.
  • Hyper Parameter
    • 모델 학습을 효율적으로 할 수 있게 사전에 정의하는 Parameter
    • 최적의 학습 모델을 구현하기 위해 사용자가 지정할 수 있다.

 

HPO 탐색 방법

  • Manual Search
    • 사람이 수동으로 Hyper Parameter를 변경한다.
  • Grid Search
    • 특정 Hyper Parameter 구간에서 일정 간격으로 값을 선택하여 선택된 모든 값을 탐색하여 최적의 Parameter를 찾는다.
  • Random Search
    • 탐색 구간 내에서 임의로 Parameter 값을 선택한다.
  • Bayesian Search
    • 이전 Hyper Parameter 조합의 적용 결과를 기반으로 더 높은 성능 점수를 얻는 Hyper Parameter 조합을 예측한다.

 

 

XAI

 

XAI

  • 인공지능의 행위와 도출한 결과를 사람이 이해할 수 있는 형태로 설명한다.

 

SHAP

  • 각 특성이 모델의 예측에 기여한 정도를 계산한다.

 

SAGE

  • 각 특성이 모델 성능에 영향을 끼친 정도를 계산한다.

 

 

Pipeline

 

Pipeline

  • Machine Learning의 과정(데이터 수집, 데이터 전처리, 모델 학습, 예측 등)을 순차적으로 처리하는 일련의 프로세스

 


 

Keep

 

규칙적인 생활 패턴

 아침에 일찍 나오다 보니 아침에 전철이 조금 지연되더라도 늦지 않을 수 있어서 좋았다.

 

주간 회고 작성

 그 주에 배운 내용을 다시 정리하며 복습할 수 있어서 내가 배운 내용을 더 잘 이해할 수 있게 되어서 좋았다.

 

 

Problem

 

시간 관리 문제

 토이 프로젝트를 그만두었지만 그만큼 할 일이 많아졌다고 생각한다. 자격증 시험이 일주일도 남지 않았고, 수업을 따라가고 복습을 하는 것만으로도 시간을 많이 할애해야 할 것 같다.

 

 

 

Try

 

데이터 분석 및 머신러닝 추가 공부

 데이터 분석과 머신러닝 부분의 수업이 매우 빠르게 지나가서 다시 복습하면서 정리할 시간을 가져야겠다.

 

계획 수립 및 일정 관리

 해야 할 일이 많지만 생각만큼 따라주지 않아서 좀 더 세부적으로 계획을 세우는 것을 목표로 해야겠다.