2P by GN⁺ 16시간전 | ★ favorite | 댓글 1개
  • 컴퓨터가 통계적 학습(statistical learning) 기법을 이용해 데이터에서 패턴을 자동으로 식별하고 예측을 수행하는 과정을 시각적으로 설명함
  • 주택 데이터셋을 활용해 뉴욕과 샌프란시스코 주택을 구분하는 모델을 만드는 과정을 단계별로 시각화함
  • 결정 트리(decision tree) 를 중심으로, 분기점(split point), 가지(branch), 리프 노드(leaf node) 등의 개념을 통해 학습과 예측 과정을 구체적으로 보여줌
  • 모델의 정확도를 높이는 과정에서 과적합(overfitting) 문제를 시각적으로 드러내며, 훈련 데이터와 테스트 데이터의 차이를 설명함
  • 머신러닝의 핵심 개념을 직관적으로 이해할 수 있도록 설계된 인터랙티브 시각화 학습 자료

머신러닝의 기본 개념

  • 머신러닝은 컴퓨터가 통계적 학습 기법을 적용해 데이터의 패턴을 자동으로 식별하고, 이를 기반으로 정확한 예측을 수행하는 기술임
  • 예시로 주택 데이터를 이용해 뉴욕과 샌프란시스코의 주택을 분류하는 모델을 구축함
  • 이러한 분류 작업은 머신러닝에서 classification(분류) 문제로 불림

직관적 구분과 특징(feature)

  • 샌프란시스코는 지형이 언덕이 많아 고도가 높음
    • 따라서 주택의 고도(elevation) 가 두 도시를 구분하는 유용한 기준이 될 수 있음
    • 예를 들어, 고도 240피트 이상이면 샌프란시스코로 분류 가능
  • 여기에 평방피트당 가격(price per square foot) 을 추가하면 더 정교한 구분 가능
    • 고도 240피트 이하이면서 평당 $1776 이상이면 뉴욕으로 분류됨
  • 데이터의 각 차원은 feature(특징), predictor(예측 변수), variable(변수) 로 불림

경계(boundary)와 모델 학습

  • 고도와 가격을 기준으로 산점도(scatterplot) 상에 경계를 시각화할 수 있음
  • 데이터의 경계를 수학적으로 식별하는 것이 통계적 학습의 핵심
  • 실제 데이터셋은 7개의 차원을 가지며, 이를 기반으로 모델을 훈련(training)
    • 산점도 행렬(scatterplot matrix) 을 통해 각 변수 간 관계를 시각적으로 탐색함

결정 트리(Decision Tree)의 작동 원리

  • 머신러닝은 데이터에서 패턴을 찾기 위해 통계적 학습을 활용하며, 그중 하나의 방법이 결정 트리
  • 결정 트리는 한 번에 하나의 변수를 기준으로 if-then 규칙을 적용해 데이터를 분기함
  • 예: “만약 고도가 일정 수치 이상이면 샌프란시스코”라는 규칙을 적용
  • 이러한 분기점은 split point(분할점) 이라 하며, 트리의 각 가지(branch)를 형성함

분할의 정확도와 트레이드오프

  • 초기 분할(예: 240피트 기준)은 일부 샌프란시스코 주택을 잘못 분류함 (false negatives)
  • 반대로 모든 샌프란시스코 주택을 포함하려 하면 뉴욕 주택도 포함됨 (false positives)
  • 최적 분할(best split) 은 각 가지의 데이터가 가능한 한 동질적(homogeneous) 이 되도록 하는 것임
    • 이를 계산하는 방법으로 지니 지수(Gini index), 교차 엔트로피(cross entropy) 등이 있음

재귀(Recursion)와 트리 성장

  • 알고리듬은 각 하위 데이터셋에 대해 위 과정을 반복하며 재귀(recursion) 적으로 트리를 확장함
  • 낮은 고도에서는 평당 가격이, 높은 고도에서는 전체 가격이 다음 분할 변수로 선택됨
  • 분할을 반복할수록 트리의 예측 정확도(prediction accuracy) 가 향상됨
    • 한 단계 추가 시 84%, 여러 단계 추가 시 96%까지 향상
    • 모든 분기를 추가하면 100% 정확도 달성 가능
  • 최종 분기점은 리프 노드(leaf node) 로, 각 노드는 다수 클래스에 따라 주택을 분류함

예측과 검증

  • 훈련된 결정 트리는 각 데이터 포인트를 트리의 분기를 따라가며 도시를 예측
  • 훈련에 사용된 데이터는 training data, 새로운 데이터는 test data로 구분됨
  • 모델이 훈련 데이터에서는 완벽히 작동하지만, 새로운 데이터에서는 성능이 떨어질 수 있음
  • 이는 과적합(overfitting) 때문이며, 모델이 불필요한 세부사항까지 학습했기 때문임

요약 및 다음 단계

  • 머신러닝은 데이터의 경계를 찾아 패턴을 식별하고 예측을 수행함
  • 결정 트리는 if-then 규칙을 통해 데이터를 분류하는 대표적 방법임
  • 과적합은 의미 없는 구분까지 학습해 일반화 성능이 떨어지는 현상임
  • 다음 글에서는 과적합과 편향-분산 트레이드오프(bias/variance tradeoff) 의 관계를 다룰 예정임
Hacker News 의견들
  • R2D3의 제작자 중 한 명임. 오늘 이 글을 보게 되어 반가운 마음임. 여기나 Bluesky에서 질문을 받겠음

    • 데이터 수집 파이프라인을 이런 식으로 시각화하고 싶은데, 어디서부터 시작해야 할지 조언을 구함. 머릿속에는 그림이 있지만 웹사이트로 구현하려니 막막함
    • 10년이 지난 지금, 새로운 글을 쓸 계획이 있는지 궁금함
  • 이건 정말 걸작임. 머신러닝을 소개할 때마다 이 인터랙티브한 설명을 사용함. 비슷한 자료 모음이 여기에 있음

    • 좋은 리스트임. 예전에 HN에서 Seeing Theory가 화제가 되었는데, 지금은 사이트가 내려간 듯함. 내 데이터 시각화 도구를 이 PR에 추가했음. 수정된 Seeing Theory 링크도 찾아서 반영했음
  • 내가 만든 S-TIER 학습 리소스 리스트에 대해 예전에 언급했음.
    S-TIER는 애니메이션, 시각화, 인터랙티브 요소가 완벽히 조합된 콘텐츠를 뜻함.
    A-TIER는 유익하지만 덜 시각적이고, 의견 중심 블로그는 가장 아래에 둠.
    내가 꼽은 S-TIER 사이트는 다음과 같음:
    growingswe.com/blog, ciechanow.ski/archives, mlu-explain.github.io, seeing-theory.brown.edu, svg-tutorial.com, lumafield.com/scan-of-the-month/health-wearables
    이 기준으로 HN의 모든 블로그 링크를 자동 분류하는 북마크 매니저를 만들고 싶음

    • visxai.io에도 훌륭한 예시가 많음. 하단의 Hall of Fame 섹션을 보면 됨.
      예전에 내가 만든 프로젝트 중 좋아하는 두 개는 Fill in the BlankGrokking
  • 북마크해둠. 대부분의 LLM 설명글에서 이런 시각적 참고자료가 부족함.
    보통은 1만 단어짜리 논문이거나, 트윗 한 줄짜리 요약뿐이라 중간 단계가 없음

    • 3Blue1Brown의 콘텐츠는 정말 훌륭함. 그는 자신만의 시각 언어를 가지고 있음
  • 이건 2015년 작품임. 기술적으로나 개념적으로나 시대를 앞서간 작업이었음

    • Tony Hschu와 Stephanie Jyee의 다른 자료가 없는 게 아쉬움. 혹시 더 아는 사람이 있는지 궁금함
  • 정말 멋짐. 데이터 시각화와 AI/ML의 교차점이라는 흥미로운 분야임.
    참고할 만한 곳으로는 mlu-explain.github.io, visxai.io, Google PAIR의 explorables, GA Tech의 poloclub이 있음

  • 이런 글이 더 많았으면 좋겠음. 나는 시각적 학습을 좋아함.
    Build Your Own React 글이 떠오름. 직접적인 관련은 없지만, 비슷한 스타일로 따라가기 쉬운 블로그임. 이런 형식의 글은 학습 효율이 높음

  • 지금까지 본 의사결정나무 설명 중 최고 수준임.
    스크롤을 내리며 분할 과정을 시각적으로 보여주는 애니메이션이 교과서의 긴 설명보다 훨씬 직관적임

  • 이 인터랙티브한 설명들은 여전히 ML 개념을 직관적으로 이해시키는 최고의 예시임.
    수식부터 시작하는 기술 글보다 이런 접근이 훨씬 효과적임

  • Transformer의 어텐션 메커니즘처럼 고차원적인 개념을 R2D3 스타일로 설명한 자료가 있는지 궁금함