다시 이음

알.쓸.데.상(알아두면 쓸데 있는 데이터 상식) -1 (고차원의 문제) 본문

알.쓸.데.상

알.쓸.데.상(알아두면 쓸데 있는 데이터 상식) -1 (고차원의 문제)

Taeho(Damon) 2021. 7. 28. 23:46

일주일에 평일에는 모두 블로그에 그 날 배운 지식을 업데이트하고 있습니다만..

 

평일에 하루는 배운 것에 대한 테스트를 하는 날이라 딱히 스스로 배운 내용 다시 복습밖에 없어서 생각해낸 컨텐츠는 바로?!

 

알아두면 쓸데 있는 데이터 상식 ㅎㅎ

 

비전공자로서 나중에 취직을 하게될 때 배운 지식 말고도 도메인 지식이나 데이터 관련 지식에 대한 관심도 도 충분히 고려할 거 같기에 그걸 충족 시킬 수 있는 컨텐츠를 생각해봤습니다 헿

 

아직 배운 게 티끌이라 전체적인 구도를 못보고 있지만 그래도 차차 질 높은 컨텐츠를 만들 수 있을 거 같아요.

 

오늘의 주제는

고차원의 문제( The Curse of Dimensionality ) 입니다.

 

(cover image edited from the book “The Making of Star Wars: The Empire Strikes Back“)

1) 차원(dimensionality)?

  • 각 샘플을 정의하는 정보의 개수가 차원
  • 좀 더 쉽게 풀이하자면 그동안 보았던 데이터셋에 Feature를 차원이라고 볼 수 있겠죠?
  • 즉, 차원이 많으면 있을 수록 활용할 수 있는 소지가 많아집니다. 이것이 차원이 갖는 힘, 각 샘플에 대해서 더 많은 데이터를 저장함으로서 할 수 있는 것입니다.

하지만, 해석할 수 없는 차원이 많은 것 혹은 기계학습을 통해서 자동화를 시키고 싶다면 이 차원이 크다는 것은 모델 학습에 어떤 영향을 줄까요?

 

2) 차원의 저주

우리가 배웠던 내용중에 큰 수의 법칙( Law of Large numbers )를 기억하시나요?

샘플 데이터의 수가 많을 수록, 샘플의 통계치가 모집단의 모수와 같아진다는 법칙이었는데요.

 

이렇게 생각한다면 데이터가 많을 수록 좋은게 아닐까요?

 

그에 대한 궁금증은 아래의 그래프를 통해서 분석할 수 있을 거 같습니다.

출처)https://thesciencelife.com/archives/1001

 

위의 그래프를 분석하기 위해 설명을 추가하자면 선의 색깔은 차원의 개수, Y축은 알고리즘 성능, X축은 샘플의 개수 입니다.

 

큰 수의 법칙과 같이 샘플의 수가 많으면 성능이 좋아지는 것은 맞습니다. 그러나 차원의 개수에 따라 좋은 성능을 내기 위해선 더 많은 샘플이 필요하다고 볼 수 있습니다.

 

정리해서 이야기하면 우리가 한 샘플을 특정짓기 위해서 많은 양의 정보를 준비할수록 (즉 고차원 데이터일수록) 그 데이터로부터 모델을 학습하기가 훨씬 더 어려워지고 훨씬 더 많은 데이터 양이 필요하게 됩니다. 이것이 바로 차원의 저주 (Curse of dimensionality) 입니다. 

 

 

마지막으로 미국 출신 소프트웨어 엔지니어 벤 딕슨은 테크톡스(TechTalks) 블로그에서 “머신러닝은 인과관계를 이해하지 못하기 때문에 데이터 세트에 제시된 모든 기능을 목표 변수에 매핑한다”며 과도한 정보를 훈련시킬 경우 오히려 “부정확하고 잘못된 모델로 이어질 수 있다”고 지적했다고 합니다.

 

 

오늘은 이렇게 차원의 저주에 대해서 알아보았습니다.

 

중간중간 배우는 곳에서 찝어주는 주제가 있다면 그걸 위주로 포스팅할 예정이지만 그런 게 없다면 어떤 대단한 블로거분이 카이스트 AI 대학원 과정 면접 준비하시면서 질문 리스트를 뽑아두신 걸 봐버린 이상 ㅎㅎㅎ 그걸 위주로 포스팅을 하도록 하겠습니다.

 

참고 자료 - https://thesciencelife.com/archives/1001