본 포스팅은 2023년 1월 16일 - 17일 양일간 진행된 부산대학교 수학과 빅데이터 기반 미래 교육 인재 양성 프로그램(주최 : 부산대학교 빅데이터 기반 금융 수산 제조 혁신 산업수학센터)에서 필자가 시연한 TDA 튜토리얼을 기반으로 하고 있습니다.
Python 코드 실습 자료는 필자의 Github repository에서 확인하실 수 있습니다.
이번 포스팅의 프로그래밍 실습 자료는 위 깃허브 저장소에 포함되어 있습니다.
프로그래밍 구현이 궁금하신 분은 깃허브를 참고해주세요
우리가 훈련한 모델은 이미지의 픽셀값만을 입력받기 때문에 아마 픽셀 자리가 많이 겹치는 3이나 5를 각각 8이나 6 따위로 오해했을 가능성이 있습니다.
그러므로, 이미지의 픽셀값뿐만 아니라, 이미지가 가진 구멍의 개수에 대한 정보를 추가적으로 입력하여 학습한다면 모델의 성능이 더욱 향상될 것이라고 기대할 수 있습니다.
호몰로지는 다양체가 가진 구멍의 개수에 대한 정보를 가져다 줍니다.
그러므로 이미지가 가진 PH를 계산하면 이미지가 가진 구멍의 개수에 대한 정보를 추정해낼 수 있습니다.
이 정보를 추가한다면, 호몰로지 클래스 분류 문제를 푸는 데에 도움이 될 것이라 생각할 수 있습니다.
우리의 전략은 기존의 이미지 데이터에 이미지가 가진 구멍의 개수에 대한 정보를 Persistent homology를 이용해 추출하고 데이터에 추가해주는 것입니다.
이처럼 머신러닝에서 문제 해결에 유용할 것이라 생각되는 정보를 추가해 성능을 향상시키는 전략을 Feature addition 이라고 부릅니다.
이미지 데이터는 앞서 소개한 point cloud와는 달리 거리가 아니라 픽셀의 농도를 나타내는 gray scale을 파라미터로 사용하고 있습니다.
이러한 이미지 데이터로부터 위상적인 정보를 표현할 때는 Cubical Complex가 사용됩니다.
Cubical complexCubical complex는 정규화된 그리드 위에 점들이 있다고 생각하고, 점들마다 부여된 gray scale 값을 파라미터로 하여 각 점들을 연결해 나갑니다.
Simplicial complex와의 차이라면, simplicial complex는 삼각형과 정사면체를 기본 단위로 생각하지만, cubical complex는 사각형과 정육면체를 기본단위로 한다는 것입니다.
아래의 그림은 이미지 데이터로부터 PB와 PD를 그려나가는 과정을 보여줍니다.
(1) Cubical filtration 과정 (2) 위 과정을 통해 얻어진 Persistence barcode (3) 동일한 정보를 나타내는 Persistence diagram먼저, 이미지 데이터의 위상적 특징을 분석하기 위해 이미지 데이터로부터 PH를 계산해 관찰합니다.
숫자 9에 대한 Persistence barcode와 Persistence diagram. 우리의 직관과 같이, 연결성분에 대한 지속성이 하나, 구멍에 대한 지속성이 하나 두드러지게 보인다.위 코드를 통해 데이터를 분석해보면 1st Persistent homology가 보여주는 긴 바코드의 개수가 이미지의 구멍의 개수로 근사하는 것을 관찰할 수 있습니다.
이로부터 PH가 이 문제를 해결하는 데에 도움이 되는 정보라는 것을 유추할 수 있습니다.
이제 이 정보를 어떻게 데이터에 추가할 수 있을까요?
일반적인 머신러닝 모델들은 샘플마다 고정된 길이의 벡터를 입력으로 받습니다.
그러나, 샘플의 위상적인 정보를 담고 있는 Persistence barcode 또는 Persistence diagram 자료형은 샘플마다 그 길이(바코드의 개수)가 다릅니다.
따라서, PB의 정보는 최대한 유지하면서 고정된 길이의 벡터 형태로 요약하는 벡터화(Vectorization) 과정이 필요합니다.
여기서는 Persistence Landscape [Peter Bubenik, 2015]를 사용할 것입니다.
간략히 말하자면, Persistence Landscape는 Persistence barcode의 각 바코드를 piecewise linear function들로 변환한 뒤, piecewise linear function들을 고정된 길이의 벡터로 저장하는 것입니다.
Persistence Landscape에 대한 자세한 설명은 다음 영상을 참고해주세요.
우리는 이미지 벡터 뒤에 Persistence Landscape 벡터를 붙여(concatenate) 새로운 입력 데이터로 사용할 것입니다.
데이터 벡터화 과정의 도식화이제 새롭게 얻은 데이터로 학습해 지난 모델에 비해 얼마나 성능이 향상되는지 비교해봅시다.
실험의 형평성을 위해 우리의 모델은 여전히 똑같은 퍼셉트론 모델입니다.
변한 것은 학습 데이터에 위상적인 정보가 추가된 것 뿐입니다.
# model setting model_tda = Perceptron(random_state=seed) # model fitting model_tda.fit(X_train_top, y_train_hom) # model evaluation y_pred = model_tda.predict(X_test_top) accuracy_score(y_pred, y_test_hom) > output 0.9128095238095238
모델 평가 결과, 정확도가 기존의 약 82%에서 약 91%로, 9% 가량 성능이 향상된 것을 확인할 수 있습니다.
이미지에 TDA 정보를 추가하여 학습한 퍼셉트론 모델의 혼동행렬. 이전에 비해 구멍이 없는데 구멍이 있다고 한 케이스가 확연히 줄어든 것을 볼 수 있다.혼동행렬을 관찰하면, 기존의 모델이 구멍이 없는데도 구멍이 있다고 했던 샘플에 대한 오답을 새로운 모델에서 상당히 개선해냈음을 알 수 있습니다.
이로부터 Persistent homology에 대한 정보를 추가하는 것이 머신러닝의 성능을 향상시킬 수 있음을 관찰할 수 있습니다.
지금까지 TDA를 이용해 데이터로부터 기하학적 정보를 추출하는 방법과 이를 머신러닝에 응용하는 방법에 대해 살펴보았습니다.
TDA는 다양한 데이터에 다양한 방식으로 응용될 수 있습니다.
특히, 기존의 여러 머신러닝 방법들은 데이터의 국소적 특징(local feature)을 분석하고 추출하는 방법을 취하곤 합니다.
데이터의 대역적인 특징(global feature)을 추출하는 TDA를 머신러닝과 함께 사용하고자 하는 것은 수학자에겐 자연스러운 아이디어일 것입니다.
이로부터 기존의 머신러닝과 데이터 분석에서 더욱 향상된 성능을 기대할 수 있습니다.
모든 것은 여러분의 아이디어에 달려있습니다.
이 튜토리얼을 통해 여러분의 학습과 연구에 새로운 인사이트가 생기길 바랍니다.
여기까지 학습하시느라 수고가 많으셨습니다.
감사합니다.
References)
- Weinberger, Shmuel. "What is... persistent homology." Notices of the AMS 58.1 (2011): 36-39.
- Carlsson, Gunnar. "Topology and data." Bulletin of the American Mathematical Society 46.2 (2009): 255-308.
- Garin, Adélie, and Guillaume Tauzin. "A topological" reading" lesson: Classification of MNIST using TDA." 2019 18th IEEE International Conference On Machine Learning And Applications (ICMLA). IEEE, 2019.
- Bubenik, Peter. "Statistical topological data analysis using persistence landscapes." J. Mach. Learn. Res. 16.1 (2015): 77-102.
- Maria, Clément, et al. "The gudhi library: Simplicial complexes and persistent homology." International congress on mathematical software. Springer, Berlin, Heidelberg, 2014.
- LeCun, Yann. "The MNIST database of handwritten digits." http://yann. lecun. com/exdb/mnist/ (1998).
- Otter, Nina, et al. "A roadmap for the computation of persistent homology." EPJ Data Science 6 (2017): 1-38.
안녕하세요. TDA에 막 관심이 생겨 여기저기 돌아다니다 이 글을 보고 들어온 수학과 학부생입니다. 현재는 gunner carlsson교수님의 topolgical data analysis with appilcation이라는 책으로 공부를 시작해 볼 계획이며, 이제 4학년이라 이번 해 여름 방학때 학부생인턴 또한 염두에 두고 있습니다. 조금 막막한 상황이라, 혹시 괜찮으시면 몇 가지 궁금한 점 여쭤봐도 될까요. 여기 댓글이나 메일 등 편하신 방법으로 질문 드리고싶습니다. 감사합니다 :)
좋은 강연 잘 들었습니다. persistent homology가 어떻게 쓰이는지 전공도 많이 다를 뿐더러 기초 백그라운드가 없어, 정리하신 글을 차례로 읽고 있는데 많은 도움이 되네요. 특히 강연에서 manifold가 local geometry이고 topology가 global geometry 라고(정확하진 않습니다) 지나치듯 말씀하신 부분은 아직도 조금 궁금하긴 하지만 아마 중요한 얘기는 아닐 듯하여 질문하진 않았습니다.
종종 들러 귀중한 정리자료 잘 참고해보겠습니다 :)