트위티의 열하일기

1. ML 기본 지식 본문

ML & DL

1. ML 기본 지식

예지레슬리초이 2025. 1. 22. 09:11

[데이터셋 수집/정제 시 고려사항]

데이터 수집 단계

1. 데이터 수집

2. 데이터 정제

3. 레이블 지정

4. 데이터 분할

5. 데이터 전처리

6. 클래스 불균형 확인

7. 데이터 섞기

 

*데이터 수집 시, 데이터의 양, 품질, 그리고 샘플링 전략 등을 고려해야 함

- 데이터셋이 크면 클수록 일반화 능력이 좋아지고 모델 성능이 높아짐

- 신뢰할 수 있는 데이터셋을 확보하는 것이 중요

 

[데이터셋의 feature (피처)]

feature 선택과 중요도

- feature  선택: 모델을 구축할 때 전체 피처 집합에서 가장 관련성이 높고 유용한 피처의 하위 집합을 찾아내는 과정

- 목표: 모델의 예측 성능을 향상하고 복잡성과 과접합을 줄이는 것, 필요한 feature만 활용하여 파이프라인의 작업을 간소화하고 효육적으로 학습을 진행하는 것

 

feature 선택의 방식

1. 필터링: 카이제곱 검정, ANOVA, 정보 이득, 상관 계수 등의 통계 테스트를 기반으로 함

2. 내재적 선택 (Intrinsic 선택)

3. 래퍼 (Wrapper): 다양한 피처 부분 집합을 사용해 모델을 여러번 학습시킴

 

[각종 모델링 알고리즘]

1. 로지스틱 회귀 (Logistic Regression)

하나 이상의 입력 변수(feature)를 기반으로 이벤트가 발생할 확률을 모델링

피처들을 선형으로 결합한 다음 로지스틱 함수 (시그모이드 함수)를 사용해 변환, 이벤트의 확률을 모델링

  • binary classification(이진 분류) 문제에서 가장 널리 사용됨
  • 이름에 "회귀"가 포함되어 있지만, 실제로는 회귀(regression)가 아닌 분류(classification)에 사용되는 기법
  • 독립 변수 (입력 데이터 X) 와  종속 변수 (출력값 Y) 사이의 관계를 모델링
  • Y는 discrete value를 가지며, 0 또는 1과 같은 label을 예측함

로지스틱 회귀 작동 방식

로지스틱 회귀는 선형 모델과 시그모이드 함수를 결합하여 입력 데이터를 분류함

a. 선형 모델

: 입력 데이터를 가중치와 곱한 선형 결합 z를 계산

b. 시그모이드 함수

: 선형 결합 결과 z를 시그모이드 함수에 전달하여 0과 1 사이의 확률 값으로 변환

c. 예측된 확률을 특정 임계값 (기본적으로 0.5)과 피교하여 클래스를 예측

 

로지스틱 회귀 손실 함수

로지스틱 회귀는 모델의 오차를 줄이기 위해 손실 함수를 최소화함. 손실 함수는 예측 확률과 실제 정답 간의 차이를 측정.

Maximum Likelihood Estimation 을 통해 최적의 가중치와 절편을 찾음.

이를 위해 로그 손실 (log loss) 또는 이항 교차 앤트로피 (binmary cross-entropy) 손실 함수 사용

 

로제스틱 회귀의 장/단점

장점

  • 빠르게 학습 가능한 간단하고 효율적인 알고리즘
  • 가중치 벡터를 보면 분류 작업에 가장 중요한 feature 파악 가능; 해석이 용이함

단점

  • 입력 변수와 목표 변수 사이에 항상 선형 관계가 있는 것은 아님
  •  feature 가 학습 데이터보다 훨씬 많으면 과적합되기 쉬움

 

2. 그래디언트 부스팅 결정 트리

앙상블 학습 알고리즘 XGBoost (eXtreme Gradient Boosting)

: Decision Tree 기반의 앙상블 모델. 의사 결정 트리를 반복적으로 학습시키는 그래디언트 부스팅 프레임워크 사용, 이전 트리에서 발생한 오류 수정을 위해 모델에 새 트리를 추가함

 

손실함수

a. Training Loss: 예측값과 실제값 간의 차이를 측정

b. Regularization Term: 모델 복잡도를 제어하여 과적합 방지

 

XGBoost 의 장/단점

장점

  • 회귀 및 분류 작업 관련 현시점 최고 성능 발휘
  • 결측값에 강건함 → 스케일링, 정규화 필요 없음
  • 다양한 크기의 데이터셋에서 우수한 성능 발휘

단점

  • 새 트리가 이전 트리에서 발생한 오류를 수정하도록 학습되므로 이상치에 민감함
  • 다른 모델링 알고리즘과 함께 학습 및 서빙을 통합하는 작업이 깔끔하지 않을 수 있음

 

3. 심층 신경망 DNN (Deep Neural Network)

: 상호 연결된 뉴런의 레이어들로 구성된 모델링 알고리즘 클래스. 

입력과 출력 간의 복잡하고 비선형적인 관계를 학습할 수 있어 광범위한 작업에 적합함

 

DNN의 구조

- 데이터가 입력층에서 시작해 은닉층을 거쳐 출력층까지 전달됨

- 각 층의 노드에서 가중치(weight)와 편향(bias)을 적용한 연산이 이루어짐

a. 입력층 (Input Layer)

  • 모델에 데이터를 입력하는 층
  • 각 입력 노드는 데이터의 하나의 feature을 나타냄

b. 은닉층 (Hidden Layer)

  • 입력 데이터를 처리하고 변환하는 층
  • 각 은닉층은 확렁화 함수를 통해 비선형 변환을 수행함
  • 층이 많을수록 심층 모델이 되며, 데이터의 고차원적 특성을 더 잘 학습할 수 있음 (딥러닝 모델)

c. 출력층 (Output Layer)

  • 모델의 최종 결과를 출력하는 층
  • 회귀 문제: 1개의 노드 (연속값 출력)
  • 이진 분류 문제: 1개의 노드 (0~1개의 확률 출력)
  • 다중 클래스 분류 문제: 클래스 개수만큼의 노드

신경망 활성화 함수

a.  시그모이드 (Sigmoid)

: 입력 값을 0과 1 사이의 값으로 변환하여 확률처럼 해석할 수 있게 하는 함수

  • 이진 분류 문제에서 로지스틱 회귀나 신경망의 출력층에서 사용됨

b. 소프트맥스 (Softmax)

: 여러 클래스 간의 확률 분포를 계산하기 위해 사용됨. n 개의 클래스에 대해 입력 벡터 z가 주어지면, 각 클래스 i의 확률을 주어진 공식에 맞게 계산.

  • 주로 다중 클래스 분류 문제에서 출력층에서 사용됨
  • 신경망에서 각 클래스에 속할 확률을 계산할 때 유용

c. 하이퍼탄젠트

: 입력 값을 -1과 1 사이의 값으로 변환하는 비선형 활성화 함수

  • 출력이 0을 중심으로 대칭적
  • 중심이 0인 데이터에서 학습을 더 잘 수행할 수 있음

d. 소프트사인 함수

: 입력 값을 부드럽게 (-1, 1) 사이로 스케일링

  • 나 x→−∞일 때, 출력이 점진적으로 1 또는 로 수렴
  • 학습 속도를 안정화해야 하는 상황에서 사용될 수 있지만, 흔히 사용되지는 않음

오차 역전파

- 모델의 예측값과 실제값 간의 손실(loss)을 계산하여 가중치와 편향을 업데이트

- 손실 함수의 기울기(gradient)를 계산하고, 이를 기반으로 경사하강법(Gradient Descent)을 사용해 가중치를 조정

 

손실 함수

- 손실 함수가 최소화되도록 학습

  • 회귀: 평균 제곱 오차 (MSE)
  • 이진 분류: 이상 교차 엔트로피 (Binary Cross-Entropy)
  • 다중 클래스 분류: 다항 교차 엔트로피 (Categorical Cross-Entropy)

 

[과적합과 그에 대처하는 방법]

과적합 (Overfitting)

모델이 학습 데이터를 너무 자세하게 맞추도록 학습되는 현상. 이 경우, 새 데이터에 일반화될 수 있는 원리 패턴을 학습하기 어려워지고, 새 데이터에는 성능이 좋지 않게 나올 수 있음.

 

과적합 상황 감지하는 징후 및 기법

1. 학습 데이터에 대한 모델 정확도 >>> 검증 데이터에 대한 모델 정확도

2. 학습 손실은 급격히 ↓ but 검증 손실은 느리게 또는 제자리 (또는 줄었다가 다시 증가)

 

 

과적합을 줄이는 방식

1. 입력의 전체 범위를 포함하는 완전한 데인터 사용

2. 정규화

- L1 정규화 (Lasso 정규화) 

  • 가중치의 절댓값에 비례해 손실 함수에 패널티 항을 추가
  • 일부 가중치가 정확히 0이 되는 희소 모델 생성
  • 결과적으로 모델이 사용하는 피처 개수가 줄어듦

- L2 정규화 (Ridge 정규화) 

  • 가중치 값의 제곱에 비례해 손실 함수에 패널티 항을 추가
  • 0은 아닌 작은 가중치들이 생성
  • 모델을 희소하게 만들지 않으면서 모델 복잡도를 낮춤

3. 모델 용량 축소

4. 앙상블: 배깅, 부스팅

  • 배깅 (Bagging) : 데이터를 여러 샘플로 랜덤하게 분할한 뒤, 각 샘플에 개별 모델을 학습시키고, 이 모델들의 예측 결과를 평균(회귀)하거나 투표(분류)하여 최종 결과 도출
  • 부스팅 (Boosting) : 약한 학습기를 순차적으로 학습시키면서, 이전 모델이 학습하지 못한 오류들을 점진적으로 줄여나가는 ㅂ아법. 모델의 가중치를 조정하여 최종적으로 강한 학습기를 만듦