카테고리 없음

머신러닝 5주차 - 차원 축소, 비지도 학습

도지선다형 2025. 2. 18. 01:37

차원의 저주 : 훈련 샘플 각각이 수천 수백만 개의 특성을 가지고 있어서 이런 많은 특성은 훈련을 느리게 할 뿐만 아니라 좋은 솔루션을 찾기 어렵게 만드는 문제

❗차원 축소 전에 먼저 원본 데이터로 시스템을 훈련해보는 것을 권장함. 어떤 경우에는 훈련 데이터의 차원을 축소시키면 잡음이나 불필요한 세부 사항을 걸러내므로 성능이 높아질 수 있다. 일반적으로는 훈련 속도만 빨라진다.

 

8.2 차원 축소를 위한 접근법

차원을 감소시키는 두 가지 주요한 접근법 : 투영, 매니폴드 학습

 

8.2.1 투영

모든 훈련 샘플이 고차원 공간 안의 저차원 부분 공간에 놓여있다.

모든 훈련 샘플을 이 부분 공간에 수직으로 투영하면 2D 데이터셋을 얻을 수 있다.

 

그러나 차원 축소에 있어서 투영이 언제나 최선의 방법은 아니다.

스위스 롤 데이터셋처럼 부분 공간이 뒤틀리거나 휘어 있기도 하다.

 

8.2.2 매니폴드 학습

2D매니폴드 : 고차원 공간에서 휘어지거나 뒤틀린 2D 모양

d차원 매니폴드 : 국부적으로 d차원 초평면으로 보일 수 있는 n차원 공간의 일부

매니폴드 학습 : 훈련 샘플이 놓여 있는 매니폴드를 모델링하는 식으로 작동하는 것

매니폴드 가정 , 매니폴드 가설 : 대부분 실제 고차원 데이터셋이 더 낮은 저차원 매니폴드에 가깝게 놓여있는 것

 

매니폴드 가정은 종종 암묵적으로 다른 가정과 병행되곤 한다. 바로 처리해야 할 작업이 저차원의 매니폴드 공간에 표현되면 더 간단해질 것이란 가정이다.

📌모델을 훈련시키기 전에 훈련 세트의 차원을 감소시키면 훈련 속도는 빨라지지만 항상 더 낫거나 간단한 솔루션이 되는 것은 아니다. 이는 전적으로 데이터셋에 달렸다.

 

8.3 주성분 분석

주성분 분석은 가장 인기 있는 차원 축소 알고리즘이다.

먼저 데이터에 가장 가까운 초평면을 정의한 다음, 데이터를 이 평면에 투영시킨다.

 

8.3.1 분산 보존

저차원의 초평면에 훈련 세트를 투영하기 전, 먼저 올바른 초평면을 선택해야한다.

실선에 투영된 것 : 분산을 최대로 보존

점선에 투영된 것 : 분산을 매우 적게 유지

파선에 투영된 것 : 분산을 중간 정도로 유지

💡다른 방향으로 투영하는 것보다 분산이 최대로 보존되는 축을 선택하는 것이 정보가 가장 적게 손실되므로 합리적

 

8.2.2 주성분

PCA는 훈련 세트에 분산이 최대인 축을 찾는다. 첫 번째 축에 직교하고 남은 분산을 최대로 보존하는 두 번째 축을 찾는다.

i 번째 축을 이 데이터의 i 번째 주성분이라 부른다.

❗각 주성분을 위해 PCA는 주성분 방향을 가리키고 원점에 중앙이 맞춰진 단위 벡터를 찾는다. 하나의 축에 단위 벡터가 반대 방향으로 두 개 있으므로 PCA가 반환하는 단위 벡터의 방향은 일정하지 않다. 주성분의 방향은 일정하지 않다.

 

📌그렇다면 훈련 세트의 주성분을 어떻게 찾을까?

특잇값 분해를 이용한다.

 

8.2.3 d차원으로 투영하기

주성분을 모두 추출해냈다면 처음 d개의 주성분으로 정의한 초평면에 투영하여 데이터셋의 차원을 d차원으로 축소시킬 수 있다. 이 초평면은 분산을 가능한 한 최대로 보존하는 투영임을 보장한다.

 

💡

설명된 분산의 비율 : 각 주성분의 축을 따라 있는 데이터셋의 분산 비율

 

8.3.6 적절한 차원 수 선택

축소할 차원 수를 임의로 정하기보다는

  1. 충분한 분산이 될 때까지 더해야 할 차원 수를 선택한다.
  2. 설명된 분산을 차원 수에 대한 함수로 그리는 것이다.
  3. 지도 학습 작업의 전처리 단계로 차원 축소를 사용하는 경우, 다른 하이퍼파라미터와 마찬가지로 차원 수를 튜닝한다.

 

8.3.7 압축을 위한 PCA

크기 축소는 분류 알고리즘의 속도를 크게 높일 수 있다.

재구성 오차 : 원본 데이터와 재구성된 데이터 사이의 평균 제곱 거리

 

8.3.8 랜덤 PCA

랜덤 PCA라 부르는 확률적 알고리즘을 사용하면 처음 d개의 주성분에 대한 근삿값을 빠르게 찾을 수 있다.

그러려면 svd_solver 매개변수를 "randomized"로 지정해야한다.

 

8.3.9 점진적 PCA

훈련 세트를 미니배치로 나눈 뒤 IPCA 알고리즘에 한 번에 하나씩 주입

훈련 세트가 끌 때 유용하고 온라인으로 PCA를 적용할 수 있다.

수만개 이상의 특성이 있는 데이터셋을 다루는 경우 훈련 속도가 너무 느려질 수 있으므로 이 경우 대신 랜덤 투영을 사용하는 것을 고려해야한다.

 

8.4 랜덤 투영

랜덤 투영 알고리즘은 랜덤한 선형 투영을 사용하여 데이터를 저차원 공간에 투영한다.

  • 실제로 거리를 상당히 잘 보존할 간능성이 매우 높다
  • 투영 후에도 비슷한 두 개의 샘플은 비슷한 채로 남고 매우 다른 두 개의 샘플은 매우 다른 채로 남는다.
  • 간단하고 빠르며 메모리 효율이 높고 강력한 차원 축소 알고리즘
  • 고차원 데이터셋을 다룰 때 염두에 두어야 한다.

더 많은 차원을 삭제할수록 더 많은 정보가 손실되고 더 많은 거리가 왜곡된다.

💡최적의 차원수는 어떻게 선택할까?

거리가 주어진 허용 오차 이상 변하지 않도록 보장하기 위해 보존할 최소 차원 수를 결정

 

8.5 지역 선형 임베딩

  • 비선형 차원 축소 기술이다.
  • 투영에 의존하지 않는 매니폴드 학습이다.
  • 각 훈련 샘플이 최근접 이웃에 얼마나 선형적으로 연관되어 있는지 측정한다.
  • 국부적인 관계가 가장 잘 보존되는 훈련 세트의 저차원 표현을 찾는다.
  • 잡음이 너무 많지 않은 경우 고인 매니폴드를 펼치는 데 좋다.

8.6 다른 차원 축소 기법

  • 다차원 스케일링
  • Isomap
  • t-SNE
  • 선형 판별 분석

 

9 비지도 학습

  • 군집 : 비슷한 샘플을 클러스터로 모음.
  • 이상치 탐지 : 정상 데이터가 어덯게 보이는지 학습, 비정상 샘플을 감지하는 데 사용(정상치 : 정상 샘플)
  • 밀도 추정 : 데이터셋 생성 확률 과정의 확률 밀도 함수를 추정, 이상치 탐지에 널리 사용, 밀도가 매우 낮은 영역에 놓인 샘플이 이상치일 가능성이 높음.

 

9.1 군집

군집 : 비슷한 샘플을 구별해 하나의 클러스터 또는 비슷한 샘플의 그룹으로 할당하는 작업

 

  • 알고리즘이 다르면 다른 종류의 클러스터를 감지한다.
  • 어떤 알고리즘은 센트로이드라 부르는 특정 포인트를 중심으로 모인 샘플을 찾음.
  • 어떤 알고리즘은 샘플이 밀집되어 연속된 영역을 찾음.

 

 

9.1.1 k-평균

k-평균은 반복 몇 번으로 이런 종류의 데이터셋을 빠르고 효율적으로 클러스터로 묶을 수 있는 간단한 알고리즘이다.

레이블 : 군집에서 샘플에 할당한 클러스터의 인덱스

하드 군집 : 샘플을 하나의 클러스터에 할당

소프트 군집 : 클러스터마다 샘플에 점수를 부여

 

k-평균 알고리즘 작동 방식

  1. 센트로이드를 랜덤하게 선정
  2. 샘플에 레이블을 할당하고 센트로이드를 업데이트
  3. 샘플에 레이블을 할당하고 센트로이드를 업데이트하는 식으로 센트로이드에 변화가 없을 때까지 계속

이 알고리즘은 제한된 횟수 안에 수렴하는 것을 보장한다.

샘플과 가장 가까운 센트로이드 사이의 평균 제곱 거리는 각 단계마다 내려갈 수만 있고 음수가 될 수 없기 때문에 수렴이 보장된다.

 

 

이 알고리즘의 수렴은 보장되지만 적절한 솔루션으로 수렴하지 못할 수 있다. 이 여부는 센트로이드 초기화에 달려있다.

 

센트로이드 초기화 개선 방법

  1. 센트로이드 위치를 근사하게 알 수 있다면 init 매개변수에 센트로이드 리스트를 담은 너머파이 배열을 지정하고 n_init을 1로 설정한다.
  2. 랜덤 초기화를 다르게 하여 여러 번 알고리즘을 실행하고 가장 좋은 솔루션을 선택한다.

이너셔 : 각 샘플과 가장 가까운 센트로이드 사이의 제곱 거리 합, 최선의 솔루션인지 알 수 있는 성능 지ㅛ

 

k-평균 속도 개선

  • 클러스터가 많은 일부 대규모 데이터셋에서 불필요한 거리 계산을 피함으로써 알고리즘의 속도를 상당히 높일 수 있다.
  • 이를 위해 삼각 부등식을 사용, 샘플과 센트로이드 사이의 거리를 위한 하한선과 상한선을 유지한다.

미니배치 k-평균

  • 전체 데이터셋을 사용해 반복하지 않고 각 반복마다 미니배치를 사용해 센트로이드를 조금씩 이동
  • 메모리에 들어가지 않는 대량의 데이터셋에 군집 알고리즘을 적용
  • 미니배치 k-평균 알고리즘이 일반 k-평균 알고리즘보다 훨씬 빠르지만 이너셔는 일반적으로 조금 더 나쁘다.

💡최적의 클러스터 개수 찾기

실루엣 점수 : 모든 샘플에 대한 실루엣 계수의 평균

실루엣 계수 : -1에서 +1까지 바뀔 수 있다.

실루엣 계수가 0에 가까우면 클러스터 경계에 위치한다는 의미이고 -1에 가까우면 이 샘플이 잘못된 클러스터에 할당되었다는 의미이다.

실루엣 다이어그램 : 모든 샘플의 실루엣 계수를 할당된 클러스터와 계수 값으로 정렬하여 그린 그래프

수직 파선 : 각 클러스터 개수에 해당하는 평균 실루엣 점수

한클러스터의 샘플 대부분이 이 점수보다 낮은 계수를 가지면 클러스터의 새ㅐㅁ플이 다른 클러스터랑 너무 가깝다는 것을 의미

 

9.1.2 k-평균의 한계

장점 : 속도가 빠르고 확장이 용이

  • 단점
  • 최적이 아닌 솔루션을 피하려면 알고리즘을 여러 번 실행 해야함.
  • 클러스터 개수를 지정해야 함.
  • 클러스터의 크기 또는 밀집도가 서로 다르거나 원형이 아닐 경우 잘 작동하지 않음.

9.1.3 군집을 사용한 이미지 분할

이미지 분할 : 이미지를 여러 개의 세그먼트로 분할하는 작업

여러 변형 있음 > 색상 분할, 시맨틱 분할, 인스턴스 분할

시맨틱 분할 또는 인스턴스 분할에서 최고 수준의 성능을 내려면 합성곱 신경망 기반의 복잡한 모델을 사용해야 한다.

 

9.1.3 군집을 사용한 준지도 학습

군집을 사용하는 또 다른 사례 : 준지도학습

레이블이 없는 데이터가 많고 레이블이 있는 데이터는 적을 때 사용

대표 이미지 : 각 클러스터에서 센트로이드에 가장 가까운 이미지

 

📌능동 학습 : 전문가가 학습 알고리즘과 상호 작용해 알고리즘이 요청할 때 특정 샘플의 레이블을 제공

 

9.1.5 DBSCAN

  • DBSCAN 알고리즘은 밀집된 연속적 지역을 클러스터로 정의함.
  • 모든 클러스터가 밀집되지  않은 지역과 잘 구분될 때 좋은 성능을 냄.
  • 새로운 샘플에 대해 클러스터를 예측할 수 없음. 그러므로 사용자가 필요한 예측기를 선택해야 함.
  • 매우 간단하지만 강력한 알고리즘
  • 클러스터의 모양과 개수에 상관없이 감지할 수 있는 능력이 있음
  • 이상치에 안정적이고 하이퍼파라미터가 두 개분임
  • 대규모 데이터셋에 잘 확장되지 않음

 

9.1.6 다른 군집 알고리즘

  • 병합군집
  • BIRCH
  • 평균-이동
  • 유사도 전파
  • 스펙트럼 군집

9.2 가우스 혼합

가우스 혼합 모델 : 샘플이 파라미터가 알려지지 않은 여러 개의 혼합된 가우스 분포에서 생성되었다고 가정하는 확률 모델

  • 하나의 가우스 분포에서 생성된 모든 샘플은 하나의 클러스터를 형성
  • 일반적으로 이 클러스터는 타원형
  • 타원의 모양, 크기, 밀집도, 방향이 다름
  • 샘플이 주어지면 가우스 분포 중 하나에서 생성되었다는 것은 알지만 어떤 분포인지 도 이 분포의 파라미터는 무엇인지 알지 못함

기댓값-최댓화 알고리즘(EM)

  • 클러스터 파라미터를 랜덤하게 초기화하고 수렴할 때까지 두 단계를 반복함
  • 먼저 새매플을 클러스터에 할당함(기댓값 단계)
  • 클러스터를 업데이트함(최대화 단계)
  • 소프트 클러스터 할당을 사용
  • 책임 : 클러스터에 속할 추정 확률

❗특성이나 클러스터가 많거나 샘플이 적을 땐 EM이 최적의 솔루션으로 수렴하기 어렵다. 이런 경우 알고리즘이 학습할 파라미터의 수를 제한해야 한다. 한 가지는 클러스터의 모양과 방향의 범위를 제한하는 것이다. 공분산 행렬에 제약을 추가해 이렇게 할 수 있다.

 

9.2.1 가우스 혼합을 사용한 이상치 탐지

가우스 혼합 모델을 이상치 탐지에 사용하는 방법 : 밀도가 낮은 지역에 있는 모든 샘플을 이상치로 볼 수 있다. 이렇게 할 때는 사용할 밀도 임곗값을 정해야 한다.

 

특이치 탐지 : 이상치로 오염되지 않은 깨끗한 데이터셋에서 훈련

이상치 탐지 : 데이터셋을 정제하는 데 사용

 

9.2.2 클러스터 개수 선택

가우스 혼합에서는 BIC나 AIC 같은 이론적 정보 기준을 최소화하는 모델을 찾는다.

BIC와 AIC

  • 모두 학습할 파라미터가 많은 모델에게 벌칙을 가하고 데이터에 잘 맞는 모델에게 보상을 더한다.
  • 종종 동일한 모델을 선택한다.
  • 둘의 선택이 다를 경우 BIC가 선택한 모델이 AIC가 선택한 모델보다 간단한 경향이 있다.

 

9.2.3 베이즈 가우스 혼합 모델

  • 최적의 클러스터 개수를 수동으로 찾지 않고 불필요한 클러스터의 가중치를 0으로 만들어줌.
  • 타원형 클러스터에 잘 작동함.
  • 다른 모양을 가진 클러스터에서는 잘 작동하지 않음.

9.2.4 이상치 탐지와 특이치 탐지를 위한 알고리즘

  • Fast-MCD
  • 아이솔레이션 포레스트
  • LOF
  • one-class SVM
  • PCA