티스토리 뷰

국가수리과학연구소에서 병역특례로 근무하는 동안 (2011-2014) 다양한 수학자들을 만나 수 있었습니다. 그 중에서 위상수학(Topology)를 공부하신 박사님과 한 팀에서 일을 할 수 있게 되었는데, 이때 처음으로 토폴로지 데이터 분석 (Topological Data Analysis, TDA)라는 방법을 알게 되었습니다.

토폴로지 데이터 분석의 핵심은 고차원 위상공간의 매니폴드에서 얻은 포인트 클라우드 데이터를 간단하게 추상화 하여 그래프의 형태로 표현하는 것입니다. Filtration에 의해서 샘플된 데이터는 Simplicies를 구성하기 위해 사용되고, 이거한 simplicies들을 선으로 연결하여 매니폴드를 추상화 합니다. 

또한, 대수적 토폴로지(Algebraic Topology)를 이용하면 여러 매니폴드로부터 대수적으로 동일한 해석을 주는 그룹을 찾을 수 있습니다. 가령, 다양한 차원의 매니폴드에서 홀Holes 의 갯수를 알고 있다면 매니폴드의 토폴로지를 특징화 할 수 있습니다. 가령 컵과 도너츠는 홀Hole이 하나라는 점에서 토폴로지가 같다고 할 수 있습니다. 이렇게 토폴로지가 같은 특성을 갖는 것을 호몰로지 그룹이라고 하는데, 고차원 데이터에서 이러한 호몰로지 그룹의 특성을 파악 한다면 다양한 분야의 사람들이 데이터에 대해서 새로운 시각을 얻을 수 있을 것입니다.

지금까지는 대수적 위상수학의 기본에 대한 것만 설명했습니다. 위상수학이 실제 데이터 분석 분야에서 혁명적인 진보를 이를 수 있었던 것은 ‘Persistent Homology’ 때문이 아닐까? 생각해 봅니다. Persistent 호몰로지 알고리즘은 토폴로지적인 불변량을 다양한 스케일에서 볼 수 있게 해 준다. 여기에서는 특정 스케일에서의 Hole의 갯수가 중요하기 보다는 Hole의 갯수가 동일하게 유지되는 스케일의 구간이 어디인지? 가 더 중요한 질문입니다. 

바코드 형태의 그래프는 호몰로지 그룹을 계산함과 동시에 시각화가 가능합니다.바코드 그래프에서 주요한 관심은 x축 선상에서 길게 유지되는 그래프입니다. Bar의 길이가 짧은 것은 대부분 토폴로지 잡음에 해당되는 경우 입니다. Bar의 길이가 길게 유지되는 bit이 데이터의 특징을 설명해 줄 수 있는 호몰로지 그룹입니다. 다음의 코드는 R의 phom packages를 이용하여 iris data의 바코드를 그려줍니다.

install.packages("phom") # phom 설치   library(phom) # phom 설치 확인 data = as.matrix(iris[,-5]) head(data) max_dim = 0 max_f = 1 irisInt0 = pHom(data, dimension=max_dim, # maximum dimension of persistent homology computed max_filtration_value=max_f, # maximum dimension of filtration complex mode="vr", # type of filtration complex metric="euclidean") plotBarcodeDiagram(irisInt0, max_dim, max_f, title="H0 Barcode plot of Iris Data")

위에 그림으로부터 3~4개 정도로 iris 데이터를 클러스터링 할 수 있을 것으로 생각할 수 있을 것이다. Filtration value가 0에서 1로 변하는 동안 계속해서 유지 되는 클러스터가 2개이고 0-0.7 동안 유지되는 바코드는 4개 정도이기 때문이다.


댓글
  • 프로필사진 비밀댓글입니다 2015.03.31 00:29
  • 프로필사진 경성현 앗. 덧글 감사합니다^^ 그런데 토폴로지로 어떤 연구를 하고 계신가요? algebraic topology 쪽이신지 geometric topology 쪽이신지도 궁금합니다^^ 2015.03.31 00:32 신고
  • 프로필사진 김희은 어머나! 리플이 달린 것을 이제 확인했네요!
    원 댓글을 다시 보니 제가 연구를 하고 있다고 써봤네요 ㅎㅎ
    정정할게요 ㅎㅎ 연구하는 단계는 아니고,관심 분야라서 열심히 알아가고 있는 단계에요 ㅎㅎ
    요즘은 여러 종류의 오픈데이터에 적용해보면서 결과를 분석해보고 있어요!

    여기는 석사는 한국하고는 다르게, 3번째 학기 까지는 수업 열심히 듣고 시험 열심히 치다가, 마지막 학기에 관심 분야 정해서, 연구하고 논문을 쓰는 스타일이거든요. 저는 코스웤 수업이 다 전자통신이랑 컴퓨터 프로그래밍 수업이었는데, 개인적인 관심 분야가 데이터 관리 및 분석 쪽이라서, 데이터 분석 및 TDA에 대해 리서치하기 시작하게 되었어요 ㅎㅎ 그래서 석사 논문 준비하면서 TDA 로직 이해하고, 공공데이터에 적용해보고, 마지막으로 하둡 환경에서 돌려보는게 목표에요 ㅎㅎ
    2015.05.20 17:24 신고
  • 프로필사진 경성현 공공데이터는 어떤 것을 생각하시는지도 궁금합니다. 나중에 연구 결과 나오면 저도 소개해주세요^^ 2015.05.20 20:54 신고
  • 프로필사진 김희은 공공데이터는 많은데 주제가 analysis for social good 으로 너무 구체적이라서 애를 먹고 있어요. 현재는 지진 관련 데이터 분석해서 상관성을 찾고 있는 중인데 결과가 나오면 꼭 소개해드릴게요!!! 저도 도움받은 만큼 온라인에 공개해서 다른 분들께도 도움드리고 싶어요~~~ ^^ 2015.06.07 08:43 신고
댓글쓰기 폼