📚 4-1. 비지도학습이란? 왜 필요할까?

📌 비지도학습 (Unsupervised Learning)이란?

  • 학습용 라벨 (정답) 없이 오직 입력 데이터 (X) 만으로 모델을 학습하는 방법
  • Y_train이 없다는 점이 핵심!
  • 평가할 때 Y_test가 있을 수도, 없을 수도 있음. 중요하지 않음!
  • 비지도학습은 입력 데이터 사이의 유사성, 관계를 활용하거나, 행렬 분해와 같은 방법으로 데이터 구조를 분석하기도 함. 심지어 입력값 자체(x)를 라벨처럼 활용하기도!

💡 활용 예시 미리보기: 군집화 (Clustering)

  • 데이터로부터 패턴을 찾아서, 비슷한 데이터끼리 여러 개의 그룹 (cluster) 으로 나누는 것
  • 같은 그룹 안의 데이터는 서로 비슷하고, 다른 그룹의 데이터는 서로 다름

🤔 군집화 vs 분류 모델

특징군집화 (Clustering)분류 (Classification)
학습 방식데이터 자체의 유사성을 기반으로 그룹을 스스로 찾음주어진 레이블과 모델의 출력을 비교하면서 학습
입력 데이터특징 (feature) 만 있음특징 (feature) 과 레이블 (target) 이 함께 주어짐
목표데이터들을 의미 있는 그룹으로 나누는 것주어진 특징을 통해 어떤 클래스에 속하는지 예측하는 것

💡 왜 비지도학습이 필요할까?

  • 데이터 라벨링 비용 문제: 라벨링 작업은 돈도 시간도 많이 듦 😥 비지도학습은 이 과정이 필요 없음! 그래서 라벨링 안 된 많은 데이터를 쉽게 활용 가능
  • 매니폴드 가설 (Manifold Hypothesis) :
    • 고차원 데이터처럼 보이는 것도 실제로는 훨씬 낮은 차원의 어떤 구조 (매니폴드, 곡면 같은 것) 위에 놓여있을 가능성이 높다는 생각.
    • 예시: 3차원 공간의 탁구공 (3차원 좌표) vs 2차원 천 위의 점 (2차원 좌표) vs 휘어진 천 위의 점 (겉보기엔 3차원, 실제론 2차원 구조) .
    • 비지도학습은 이런 데이터의 숨겨진 구조를 파악하는 데 도움을 줄 수 있음 .

✨ 비지도학습의 다양한 활용 예시

  • 차원 축소 (Dimensionality Reduction) :
    • 고차원 데이터의 중요한 정보를 최대한 유지하면서, 훨씬 적은 차원으로 표현하는 방법 .
    • 예시: PCA (주성분 분석) .
  • 시각화 (Visualization) :
    • 고차원 데이터를 차원 축소해서 사람이 이해하기 쉬운 형태 (2D 또는 3D) 로 보여주는 것.
    • 예시: t-SNE
  • 노이즈 제거 (Denoising):
    • 차원 축소 과정에서 덜 중요한 정보를 날리는 원리를 이용해서, 데이터에 섞인 노이즈를 제거하는 데 활용.
  • 군집화 (Clustering):
    • 데이터 유사성을 기반으로 자연스러운 그룹을 찾아냄.
    • 예시: k-Means, DBSCAN. (주의! 차원 축소와 달리 데이터 자체를 변형하진 않음)
  • 이상값 탐지 (Anomaly Detection):
    • 일반적인 데이터와는 완전히 다른 이상한 값을 찾아내는 것 .
    • 예시: 엑스레이 사진에서 판독 불가한 샘플 걸러내기, 공장 불량품 감지.
  • 임베딩 공간 (Embedding Space):
    • 데이터를 의미 있는 벡터 공간으로 표현하는 것.
    • 예시: 자연어 처리에서 단어의 의미를 숫자로 표현해서 연산 가능하게 만들기 (Word to Vector).
  • 생성 모델 (Generative Models):
    • 저차원 공간에서 새로운 특징을 가진 가짜 데이터를 만들어내는 모델.
    • 예시: DALL-E 2 같은 이미지 생성 모델.

📚 4-2. 고차원 데이터의 이해

📊 고차원 (High-Dimensional) 데이터란?

  • 데이터를 구성하는 특징 (feature) 의 개수가 매우 많은 데이터.
  • 차원 (dimension)특징의 수를 의미.
  • 예시:
    • 정형 데이터: 여러 개의 컬럼 (X1, X2, X3, X4...)
    • RGB 이미지 데이터: 높이 x 너비 x 3 (RGB 채널) 만큼의 많은 숫자들로 이루어짐. 엄청나게 많은 차원을 가질 수 있음! (예: 48MP 사진은 1억 4천만 차원!)

🤔 왜 고차원 데이터가 필요할까?

  • 현실 세계는 원래 고차원적! 우리가 다루는 데이터 자체가 점점 더 많은 정보를 담게 됨.
    • 스마트폰 사진, 동영상, 음성 데이터 등.
  • 데이터를 정확하게 표현하고 제대로 분석하기 위해서는 충분한 차원이 필요. 차원을 너무 줄이면 정보 손실 발생 😥.

⚠️ 고차원에서 생기는 문제점들

🗣️ 제프리 힌튼 왈

  • "14차원 공간을 다루려면, 3차원 공간을 상상하고 '열넷'이라고 크게 외치세요. 모두가 그렇게 합니다." 😂 (고차원 공간은 우리가 직관적으로 이해하기 어렵다는 의미)

🤯 차원의 저주 (The Curse of Dimensionality)

  1. 컴퓨터 자원 사용량 증가:
    • 차원이 커질수록 더 많은 정보를 학습해야 하므로 모델 크기도 커짐.
    • 자연스럽게 연산량, 메모리 사용량 등이 늘어나고, 학습 시간이 오래 걸리거나 더 좋은 장비가 필요하게 됨 (💰 증가!).
  2. 데이터 희소성 (Sparsity) 문제:
    • 고차원 공간에서는 데이터 간의 거리가 지수적으로 증가해서, 공간 안에서 데이터가 듬성듬성 (sparse) 해짐.
    • 데이터가 너무 흩어져 있으면 모델 학습이 어려워짐.

😵 직관이라는 이름의 함정

  • 우리가 익숙하다고 생각했던 개념들이 고차원 공간에서는 말도 안 되는 특성을 보이는 경우가 많음.

    • 정규분포 (Normal Distribution) : 저차원에서는 데이터가 평균 근처에 많이 분포하지만, 고차원에서는 원점 주변의 확률 밀도가 거의 0에 가까워짐! 데이터들이 원점에서 멀리 떨어진 껍질 같은 부분에 주로 분포하게 됨 .
    • "평균적인" 외모 찾기 대회 : 1945년에 평균 신체 치수를 가진 조각상 'Norma'를 만들고 가장 닮은 사람을 찾았지만, 모든 치수가 평균에 가까운 사람은 단 한 명도 없었음! 고차원에서는 평균적인 데이터가 오히려 찾기 어려울 수 있다는 예시.
    • 상자와 구 문제: n차원 상자 모서리에 작은 구들을 두고, 중앙에 모든 구와 접하는 구를 놓았을 때, 차원이 높아질수록 중앙의 구 반지름이 점점 커져서 10차원부터는 상자 밖으로 튀어나옴! 우리의 직관과 다른 결과. (중앙 구의 반지름은 n1\sqrt{n}-1 로 계산됨)
profile
20세기소년

0개의 댓글