본문 바로가기
TIL _Today I Learned/2024.08

[DAY 34] Machine Learning 심화

by gamdong2 2024. 8. 29.
[천재교육] 프로젝트 기반 빅데이터 서비스 개발자 양성 과정 9기
학습일 : 2024.08.29

📕 학습 목록

  • 데이터 전처리 방법
  • 생존 분석
  • 최적화
  • 스테레오 비전

 

📗 기억할 내용

1. 데이터 전처리 방법

1) 피처 스케일링 (Feature Scaling)

  • 머신러닝 모델의 성능을 향상시키기 위해 변수의 데이터 분포를 조정하는 방법
  • 주요 스케일링 방법 : 표준화(Standardization), 정규화(Normalization)
  Standard Scaling
(표준화)
Min-Max Scaling
(정규화)
정의 데이터를 평균이 0이고, 표준편차가 1인
표준 정규분포로 변환
데이터를 특정 범위(일반적으로 0~1)로 스케일링
목적 데이터를 표준화하여 비교 가능하게 함 피처 간의 크기 차이를 줄여 거리 기반 알고리즘 성능 개선
예시 학생들의 시험 점수를 표준화하여 비교 주택 가격 데이터를 0~1 사이로 변환

 
2) 변수 변환 (Variable Transformation)

  • 데이터의 분포를 더 정규에 가깝게 만들거나, 특정 피처의 영향을 강화하거나 감소시키기 위해 사용
  • 주요 변수 변환 방법 : 제곱근 변환, 로그 변환
  제곱근 변환 로그 변환
정의 데이터에 제곱근을 취해 변환 데이터에 로그를 취해 변환
목적 치우친 분포를 완화하여 정규분포에 가깝게 변환 큰 값과 작은 값 간의 차이를 줄여 비선형성을 감소
예시 [1, 4, 9, 16] -> [1, 2, 3, 4] [10, 100, 1000] -> [1, 2, 3]

 

3) 인코더 (Encoder)

  • 범주형 데이터 → 숫자형 데이터로 변환하여 머신러닝 모델이 이를 이해하고 학습할 수 있도록 하는 방법
  • 주요 인코딩 클래스(함수) : 레이블 인코더, 원핫 인코더, get_dummies
  인코더 클래스(함수) 명
LabelEncoder OneHotEncoder get_dummies
라이브러리 Scikit-learn Scikit-learn Pandas
인코딩 범주형 데이터
→ 고유한 정수
범주형 데이터
→ 이진 값
범주형 데이터
→ 이진 값을 포함하는 딕셔너리
사용 과정 [at 데이터 전처리]
- 타겟변수(종속변수) 인코딩
- 순서형 피처의 인코딩
[at 모델학습]
- 범주형 변수가 모델에 직접 입력될 때, 이를 원-핫 인코딩하여 각 범주를 이진 벡터로 표현
[at 데이터 전처리]
- 특정 컬럼의 범주를 이진 값으로 변환하여 새로운 피처를 생성
- 모델링 전에 데이터를 준비
예시 ['red', 'green', 'blue']
→ [0, 1, 2]
['red', 'green', 'blue']
→ [[1, 0, 0], [0, 1, 0], [0, 0, 1]]
['red', 'green', 'blue']
→ {'red': [1, 0, 0], 'green': [0, 1, 0], 'blue': [0, 0, 1]}

 

2. 생존 분석

  • 시간 경과에 따른 사건 발생(예: 사망, 질병의 재발 등) 확률을 분석하는 통계적 방법
  • 주요 생존 분석 모델 : 단변량 생존 모델, 다변량 생존 모델
  단변량 생존 모델 다변량 생존 모델
Kaplan-Meier 추정법 Cox's Proportional Hazards Model
설명 - 시간 경과에 따른 생존 확률을 추정
- 중도 탈락(censoring)된 경우에도 유용
- 생존에 영향을 미치는 지표가 한 개
- 여러 변수들이 생존에 미치는 영향을 동시에 고려
- 생존에 영향을 미치는 지표가 여러 개
과정 1. 사건이 발생한 시점을 기준으로 생존 확률 계산
2. 사건 발생 시점에서의 생존 곡선 기울기(Slope) 조정
3. 마지막 Slope 확인 → 최종적인 생존 확률 곡선 완성
4. Kaplan-Meier 추정치 : 생존 곡선을 통해 특정 시점까지 생존할 확률 추정
1. 사건 발생 시점에 따라 생존 함수 생성
2. 각 변수에 대해 위험 비율(Hazard Ratio)을 추정
3. 위험 비율을 이용해 변수들이 생존에 미치는 영향을 평가
4. 모델이 제공하는 지표를 사용해 해석 및 예측 수행
핵심
지표
생존 확률, Slope(기울기) 조정 Hazard Ratio (위험 비율)
[TIP] 단변량 생존 모델 비교 : Kaplan-Meier vs Log-rank Test
  - Log-rank Test : Kaplan-Meier 생존 곡선을 두 집단 간에 비교
  - 목적 : 두 집단의 생존 곡선이 통계적으로 유의미하게 다른지를 검정(p-value 사용)

[TIP] 다변량 생존 모델 핵심 지표 : Hazard Ratio "각 변수의 생존에 미치는 상대적인 위험"
  - '+' : 생존에 긍정적인 영향
  - '-' : 생존에 부정적인 영향 

[TIP] 다변량 생존 모델 시각화 : Forest Plot "Cox 모델 결과를 시각적으로 나타내는 그래프"
  - 구성 요소 : Hazard Ratio, 신뢰구간
  - Ex : 연령, 성별, 흡연 여부가 생존에 미치는 영향을 시각화

 

3. 최적화 (Optimization)

  • 머신러닝 모델의 성능을 최대화하기 위해 하이퍼파라미터를 조정하는 과정
  • 하이퍼파라미터 : 학습 과정에서 모델이 스스로 학습하지 않는 매개변수로, 최적의 조합을 찾아 모델의 일반화 성능을 개선하는 것이 목표
  최적화 기법
  GridSearch
Cross Validation
RandomSearch
Cross Validation
Bayesian Optimization Early Stopping Hyperband
정의 가능한 모든 하이퍼파라미터 조합을 체계적으로 탐색 하이퍼파라미터 조합을 무작위로 선택하여 탐색 베이지안 확률 모델을 사용해 하이퍼파라미터의 최적 값을 찾아가는 방법 학습 중에 검증 성능이 향상되지 않으면 학습을 조기에 중단 Random Search와 Early Stopping을 결합한 효율적 하이퍼파라미터 탐색 방법
장점 최적의 하이퍼파라미터 조합을 찾을 가능성이 높음 계산 비용이 낮고 빠르게 최적의 조합을 찾을 가능성 적은 시도로 높은 성능의 파라미터 조합을 찾을 수 있음 과적합 방지, 학습 시간 단축 리소스를 효율적으로 사용하여 높은 성능 모델 찾기
단점 계산 비용이 높아질 수 있음 모든 조합을 시도하지 않기 때문에 최적의 조합을 놓칠 가능성 구현이 복잡하고 계산 비용이 상당할 수 있음 최적의 학습 시점을 결정하기 어려울 수 있음 초기 설정에 따라 성능 차이가 있을 수 있음
예시 SVM 모델에서 C와 gamma 값을 모든 조합으로 시도 SVM 모델에서 C와 gamma 값을 무작위로 시도 베이지안 모델을 사용한 하이퍼파라미터 튜닝 신경망 학습에서 10 에폭 동안 성능이 향상되지 않으면 중단 다양한 하이퍼파라미터 조합을 빠르게 탐색

 

4. 스테레오 비전을 이용한 이미지 깊이(depth) 추정

  • 스테레오 비전 : 두 개의 카메라로 촬영한 이미지를 사용하여 3D 공간의 깊이 정보를 추출하는 기술
  • 두 카메라 사이의 거리(Baseline)와 초점 거리(Focal length)를 알고 있을 때, 이미지 간의 시차(Disparity)를 계산하여 물체까지의 거리를 구할 수 있음

1) 스테레오 비전의 원리

  • 두 개의 이미지 캡처 : 두 대의 카메라로 동일한 장면을 서로 다른 위치에서 촬영
  • 특징점 매칭 : 두 이미지에서 동일한 물체의 특징점을 찾아 매칭
  • 시차 계산 : 매칭된 점들 간의 차이(시차)를 계산
  • 깊이 계산 : 시차, 초점 거리, 베이스라인을 이용해 물체까지의 깊이를 계산

 
2) 스테레오 비전의 시각적 설명

  • 왼쪽 카메라(Ol)와 오른쪽 카메라(Or) : 서로 일정한 간격(Baseline)을 두고 배치
  • 두 카메라의 광학 중심 : 각각 Ol과 Or로 표시
  • 두 카메라는 동일한 3차원 공간의 점 P(X,Y,Z)P(X,Y,Z)P(X,Y,Z)를 촬영
  • P(X,Y,Z)P(X,Y,Z)P(X,Y,Z) : 각각의 이미지 평면에 

        로 투영됨.

  • 이미지 평면은 카메라 렌즈로부터 FFF (초점 거리)만큼 떨어져 있음
  • 깊이(Depth) : 이 두 이미지에서의 차이, 즉 시차(Disparity)를 계산하여 추정됨
  • 시차는 : 두 이미지에서 대응되는 점의 x 좌표 간의 차이

 

📙 내일 일정

  • 머신러닝 실습

 
 

 

 

'TIL _Today I Learned > 2024.08' 카테고리의 다른 글

[DAY 35] Machine Learning 실습  (0) 2024.08.30
[DAY 33] xAI  (0) 2024.08.28
[DAY 32] 머신러닝 모델의 검증  (0) 2024.08.27
[DAY 31] Machine Learning 실습  (0) 2024.08.26
[DAY 30] 추천 시스템, 최적화  (1) 2024.08.23