brunch

You can make anything
by writing

C.S.Lewis

by GyuhoLee Mar 05. 2020

컴퓨터가 숫자를 그리는 이유

왜 머신러닝에서 시각화가 중요해 졌을까?

데이터는 많아도 사람은 그대로

우리는 참 말이 많은 시대에 살고 있다. 원하면 한없이 파고들 수 있는 세상에 살고 있는 셈인데, 그러다 보니 우리가 하루에 접하는 정보의 양은 상상을 초월한다.


필자가 미디어 수업을 들을 때, 사람이 하루에 평균 접하는 "광고만" 몇천 개가 넘는다는 이야기를 듣고 강사에게 의심의 눈길을 보낸 적이 있다. 하지만, 최근의 인터넷 광고, 이메일, 바이럴 등 여러가지 미디어 채널을 생각해 보면, 눈을 뜨면서 감을때까지 정보에 샤워하는 마당인데 광고 몇천 개쯤은 그럴 수도 있지 않나 싶다.


물론, 사람의 인지라는 것은 꽤나 한정되어 있어서 과거와 비교해 현재 받아들이는 데이터량이 엄청나게 증가했다고 해도, 사람들이 처리 가능한 데이터 양에는 한계가 존재한다. 한 예를 들자면, 던바의 수(Dunbar's number) 라는 개념이 있다. 그래프 이론(간단히 설명하자면 사회나 정보 등 여러 개념의 '관계'를 수학적으로 풀어내는 학문)을 공부하면 흥미삼아 초반에 등장하는 개념인데, 어떤 도구를 사용하더라도 사람들이 관계를 유지할 수 있는 사람의 숫자는 정해져 있다는 것이다. 보통 100에서 200사이를 기본 범위로 치는데, 흔히 말하는 "인싸"들의 친구 목록과 비교하면 말이 안된다고 생각되지만 그 많은 목록 중  "실제로 연락"하는 사람의 수를 생각하면 크게 틀린 것도 아닌것이 현실이다. *


* 실제 그래프 이론 연구에서는 이런 모호한 개념을 깔끔하게 수학적 정리로 증명하고 있다. 그래서 흔히 그래프 이론을 "천재들의 학문"으로 부르기도 한다.


아무리 SNS를 많이 깔아도 친구 수에는 한계가 있다

어쨌튼, 중요한 것은 정보가 아무리 많아도 사람들이 받아들이는 양은 한계가 있는 법이고, 그렇기 때문에 "사람이 이해할 수 있도록" 대용량의 데이터를 정리하는 과정이 필수적이라는 사실이다.


통계학의 역사에 대해 다룬 스티븐 스티글러의 책 "통계학을 떠받치는 일곱 기둥 이야기"를 보면 최초로 나오는 챕터가 표, 평균, 최소제곱법에 관련된 이야기인데 이는 "사람들이 거대한 수"를 어떻게 받아들이는지 구체적으로 고민한 시기가 바로 통계학의 중요한 순간 중 하나임을 보여준다.


구체적으로 말하자면, 수백 명에서 수만 명의 정보가 평균이라는 "하나의 숫자"로 표현됨에 따라 사람들이 거대한 사건들을 하나의 간단한 생각으로 압축할 수 있게 됐다는 의미다.


평균이 중요하지만, 평균만 보면 안되는 이유

어쨌든, 사람들은 자신의 한계(?)에 맞춰 거대한 자료를 한 줄로 줄여서 보는 법을 알게 됐다. 하지만, 이런 "추상화" 능력은 정보가 가지고 있는 여러가지 문제점을 감추고 속이는데 이용됐다. 많은 자료를 줄여서 본다는 것은 다른 말로 하자면, "중요한 정보"를 제외한 다른 정보가 사라진다는 이야기와 동일하기 때문이다.


이를 보여주는 흥미로운 개념이 "심슨의 역설"이라는 개념인데, 간단히 보자면 "전체 지표가 세부적인 특징을 모두 보여주지는 못한다"라는 것이다. 복잡하게 생각할 필요가 없이 간단한 통계를 생각해 보자.


한 도시에 A, B라는 병원이 있다고 생각해 보자. 각 병원의 환자에 대해 다음과 같은 통계가 존재한다


A병원은 "90명의 환자에 대해서 50명이 완치됐다. (56%)"

B병원은 "100명의 환자에 대해서 60명이 완치됐다. (60%)"


아마도 대부분의 사람들은 B병원이 훌륭하다고 생각할 것이다. 하지만, 이것을 세부적으로 나눠보자. 만약 질병 A,B가 있다고 할때 아래와 같이 치료됐다고 생각해 보자. 오히려 A병원이 질병에 대해서 더 치료를 잘 했음에도 불구하고, B 병원보다 전체 완치 비율이 낮아졌다!


물론, 이런 종류의 병원은 실존할 수 없다(...). 위 내용은 필자의 강의 자료로 만든 가짜 데이터이다

물론, 이런 식의 논리 전개는 "닭이 먼저냐 알이 먼저냐"라는 식의 전개가 되는데, 데이터 크기 한계상 정보를 다 볼 수 없는 노릇이고, 반대로 정보를 압축만 해서 볼 수는 없기 때문이다. 뛰어난 상상력을 보여준 아르헨티나의 소설가 보르헤스는 이런 식의 문제에 대해 매우 직관적이며 재미있는 비유를 보여줬다(아마 이 구절을 앞으로도 많이 인용할텐데, 사회과학에서 예측모델에 대한 비유로 정말 탁월한 메타포이기 때문이다!).


제국의 지도학은 너무 완벽해 한 지역의 지방이 도시 하나의 크기였고, 제국의 지도는 한 지방의 크기에 달했다. 하지만 이 터무니없는 지도에도 만족 못한 지도제작 길드는 정확히 제국의 크기만 한 제국전도를 만들었는데, 그 안의 모든 세부는 현실의 지점에 대응했다. 지도학에 별 관심이 없었던 후세대는 이 방대한 지도가 쓸모없음을 깨닫고, 불손하게 그것을 태양과 겨울의 혹독함에 내맡겨버렸다. - 보르헤스, "과학적 정확성에 관하여(On Exactitude in Science)"


시각화가 떠오르는 이유

이런 맥락에서 "빅데이터"를 다루는 데이터 사이언스는 "데이터에 대한 시각화"를 중요하게 다룬다. 데이터가 어떻게 생겼는지 직관적으로 파악할수 있으면서 동시에 디테일한 분포를 살펴볼 수 있기 때문이다. 즉, 디테일과 트렌드를 동시에 잡을 수 있는 효율적인 도구로써 시각화를 사용하는 셈이다.


예를 들어 서울시 지하철 역의 이동인원을 파악한다고 해 보자. 가장 간단한 방법은 승하차 인원의 차를 통해 들어온(혹은 나간)인원이 얼마나 차이가 나는지 확인해 보는 것이다. 그렇다면 그대로 차이를 표로 만들면 정보의 전체를 파악할 수 있을까? 아마 특징적인 역의 분포는 파악해도 전체 역의 분포를 파악하기에는 조금 무리가 있을 것이다.


하지만, 이것을 시각화 해보면 어떨까? 필자의 강의했던 수업에서 예시를 들기 위해 간단히 만든 아래 인터렉티브(사용자 행동에 반응하는) 시각화 결과물을 확인해 보자. 아래 자료를 확인하면 우리는 1) 노선별로 특징적인(큰값) 역명을 쉽게 확인하고 2) 전체 분포가 어떻게 될지 빠르게 이해할 수 있으며 3) 중간에 있는 값이 필요할 경우 값을 선택해서 세부 내용을 확인할 수 있다. 수업 중 바로 제작한 시각화라 지적할 부분이 많지만(사실 세부적인 면에서는 조금 끔찍한 면들이 있다), 간편하게 보기에는 큰 무리가 없는 수준이며, 장문의 보고서보다는 직관적이고 효율적이다.


크게/자세히 보고 싶은 사람은 (링크 클릭). 


컴퓨터도 시각화가 필요할까?

그렇다면 컴퓨터도 시각화가 필요할까? 컴퓨터는 그냥 데이터를 받아들이면 되지 않을까? 놀랍게도 이 질문에 대한 대답은 "컴퓨터야말로 시각화 기술/접근이 활발하게 이뤄지는 분야 중 하나"라는 것이다. 특히, 현대 머신러닝 분야에서 시각화는 "정보 전달에 효율적"이라는 이유와 더불어 "효율적으로 데이터를 요약하는 방법"과 관련해서 "머신러닝", "딥러닝"과 연결되는 부분이 많이 존재한다. 이것은 기본적으로 "빅데이터", "머신러닝", "딥러닝"이 높은 차원의 복잡한 계산을 바탕으로 만들어졌기 때문이다.


구체적으로 말하자면 컴퓨터가 데이터를 처리하는 방식이 "높은 차원(큰 공간)의 데이터를 낮은 차원(좁은 공간)으로 보내거나, 반대의 작업을 반복"하는 것이기 때문에 복잡한 시각화 처리 방식(조금 고급진 말로 시각화 알고리즘이라고 한다)은 현대 데이터 사이언스에서 중요한 부분을 차지하고 있다. *


* 일단 여기서는 더 복잡한 이야기를 안하겠지만, 흥미가 생긴 사람은 PCA나 T-SNE와 같은 키워드로 검색하면 불면증 치료에 아주 효과적인 많은 글을 읽을 수 있다.


물론, 컴퓨터에서 시각화라는 용어와 접근법 사람과 다르지만(이 부분은 나중에 다루겠다), 이전 글(링크)에서 말했듯이 현대의 머신러닝(에 대한 화제)은 결국 "사람을 위한 이야기"이며, AI 기술을 사람과 이어준다는 측면* 에서 다차원의 복잡한 계산을 사람에게 쉽게 이해시킬 수 있는 시각화는 현대 머신러닝에서 빼놓고 이야기해서는 안될 부분중 하나이다. 


* 이를 설명 가능한 인공지능 (eXplainable AI, XAI)이라고 부르며, 최근 인공지능 분야에서 많은 관심과 투자를 받고 있는 분야이다


시각화는 AI와 인간을 이어주는 역할을 할 수 있다!

이런 배경에서 구글의 Tensorflow와 같은 라이브러리는 TensorBoard라는 도구를 통해 "고차원의 데이터를 손쉽게 시각화"하는 방법을 제시하고 있고(물론, 차원 계산에 대한 이해가 조금 있어야 하기 때문에 아주 쉬운 편은 아니다), 페이스북의 PyTorch의 경우도 Visdom같은 도구를 제공하고 있다(다만, TensorBoard에 비하면 조금 인지도가 떨어지는 편이다). *


* 지금 TensorFlow나 PyTorch와 같은 용어를 이해하지 못한다면, "딥러닝"이라는 고차원 연산을 쉽게 해주는 컴퓨터 프로그램(보조 도구) 정도로 단순하게 생각하면 된다. 이 부분은 나중에 다룰 예정이다.


결국 사람에 관한 이야기

이전 글(링크)에서 언급한 바와 같이 현대의 머신러닝은 어쨌든 "사람에 관한 이야기"이다. AI는 이해 불가능한 고고한 존재가 아니라 사람들의 상상력과 같이 발전하는 존재일 수 밖에 없기 때문이다. 이런 흐름에서 숫자를 그리는 컴퓨터를 상상하며 기술에 대한 공포/신비를 버리고 데이터 과학을 친밀하게 생각해 줬으면 하는 것이 나름의 바람이다. 데이터 과학, 머신러닝은 결국 불가해한 존재가 아니라 인간의 지평을 넓혀주는 도구이기 때문에.

매거진의 이전글 데이터 과학은 세상을 바꿀까?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari