오늘 아침에 SNS 친구분을 통해서 통계학적(?) 사고가 중요하다는 류의 글을 보게 되었다. 이 글의 주요 골자는, 통계적 사고를 바탕으로 한 컴퓨터적 사고를 가져야 한다는 것이다.
여기서 소개한 통계적 사고(Think Stats)를 보면, 통계과 전산을 이용해 다양한 통계 활용 예제들을 다루고 있다. 이에 대해서 하고 싶은 이야기가 있는데, 본 이야기와 더불어 빅데이터·데이터 과학·통계학 등과 관련하여 예전부터 써보고 싶었던 것들을 이번 기회를 빌려 풀어볼까 한다.
0. 오늘 이야기 들어가기
한창 빅데이터가 이슈되면서 데이터 과학(Data Science)을 기반으로 해야 된다는 이야기 나온 적이 있다. 빅데이터는 엄밀한 의미로 마케팅적인 요소가 강하고, 사실상 빅데이터는 데이터 과학(일부 분야)가 기반이 된다는 측면에서 이러한 인사이트는 상당히 설득력이 있다.
위에 소개한 글처럼 그보다 중요한 통계학이 기반이 된다고 말하는것은 당연한(?) 이야기이지만, 세상의 모든 것이 데이터(혹은 컴퓨터)가 만병통치약인 것처럼 이야기하는 많은 글에 비해서는 상당히 고무적인 인사이트라 하겠다. 이러한 인사이트는 사실상, 아이들이 자라면서 진로를 결정하는데도 영향을 미친다.
즉 앞으로 유망한 분야인 빅데이터에 관련한 직장을 구하기 위해서는 빅데이터 자체를 전공하는 것이 아니라, 데이터 과학(혹은 전산학)을, 데이터 과학을 전공하기보다는 통계학을 전공하는 것이 보다 도움이 된다는 것이다.
다만, 이러한 논제의 가장 큰 문제점은 글쓴이의 논조가 꼭 자기가 아는 만큼만 글을 쓴다는 거다. 빅데이터가 중요하다 하는 이들은 대부분은 경영이나 비즈니스 쪽에서 Business Analytic을 전공한 경우가 많다. 이쪽 부류의 논조는 빅데이터가 조만간 세상을 지배할 것이며 모든 비즈니스는 빅데이터를 기반으로 하여야지만 성공할 수 있다고 말한다. 그리고 빅데이터를 이용한 성공기업들의 사례를 예를 들면서, 이러한 주장을 뒷받침하려 한다.
하지만 빅데이터는 데이터의 범주를 벗어날 수 없다. 데이터 과학(혹은 전산학)을 하는 사람 입장에서는 말 그대로 Big data는 까탈스러운 큰(?) 데이터일 뿐이다.
1. 데이터 과학의 태생적 한계
데이터 과학을 신봉하는 부류는 주로 전산학 쪽에서 데이터를 다루던 분들이 많다. 데이터가 커지면서 전산적으로 생기는 문제들이 무엇이며, 보다 효과적인 분석을 위해서는 어떤 알고리즘, 어떤 언어를 사용하는 것이 유용한지 잘 알고 있다. 빅데이터를 기반으로 하는 비즈니스를 실제로 구현하는 데 있어서 자료상의 구조들이 얼마나 중요한지도 잘 알고 있다. 그리고 빅데이터를 제대로 하기 위해서는 이러한 전산 자료 자체에 대한 이해도가 있어야지만 제대로 구현할 수 있다고 주장한다.
이러한 주장도 일리가 있다. 빅데이터를 이용한 비즈니스를 발굴하기 위해서는 반드시 알아야 하는 부분이기도 하다. 하지만 컴퓨터에서 사용하는 데이터는 이산성(Descrite)을 가지며, 이러한 이유로 인해 연속성을 가질 수 없다. 즉 수학적으로 봤을 때, 데이터 과학은 연속적인 수치나 함수를 그대로 다룰 수 없다는 것이다.
컴퓨터에서 연속성을 가진 수치나 함수를 다룰 수 있는 최선은 모사(Simulation)이다. 간단히 예를 들어 보겠다. f(x)=x^2, 단, x=[0, +inf]라는 연속 수에 대한 그래프를 컴퓨터로 구현한다고 하자. 여기서 정작 문제는 x에 대한 표현이다. 연속적인 수를 컴퓨터로 표현할 수 있는 유일한 방법은 잘게 쪼게어 불연속적으로 저장하는 방법밖에 없다. Matlab 형식을 빌리자면,
x=0:0.00001:999999999(엄청 큰 수)
이렇게 넣는 방법밖에 없다는 것이다. 하지만 이러한 표현으로는 해석적인 의미의 연속된 수를 표현할 수가 없다. 수학적으로는 아무리 잘게 쪼개더라도, 잘게 쪼갠 그 사이의 수가 반드시 존재하기 때문이다.
이러한 이유로 인해, 이론적으로는 컴퓨터(혹은 데이터)를 이용한 f(x)=x^2 함수의 미분이나 적분과 같은 해석적 해(Analytical solution)를 구하는 것은 불가능하다.
다시 한번 강조하겠다. 컴퓨터(혹은 컴퓨터 속의 데이터)를 이용하여 미/적분과 같은 해석적인 해를 구하는 것은 ‘불가능’하다. 컴퓨터가 줄수 있는 것은 입력한 숫자(x)에 대한 값(숫자; y=f(x))을 계산해 줄 뿐이지, 함수 자체에 대한 해석을 해주지는 못한다.
미/적분에 해당하는 것은 아니다. 0+, 0-도 구별할 수 없으며, Limit에 대한 해석 또한 불가능하다. 물론, 모사(Simulation)는 가능하다. 그리고, 요즘 컴퓨터들은 성능들이 좋아서 상당한 정밀도가 요구되는 수치해석에서도 모사된 값들을 사용할 수가 있긴 하다.
그렇지만 여기서 수나 함수의 연속성에 대해서 이러한 모사가 가능한 것은 불연속적임에도 불구하고, 연속적인 것처럼 사용할 수 있도록 ‘허용’을 해 주었기 때문이지, 모사 자체가 실제 함수와 동일해서가 아니라는 것이다. 눈에 보인다고 해서 가짜가 진짜가 될 수는 없다.
2. 내(data)가 니(Bigdata) 애비다
제목처럼, 빅데이터는 데이터라는 모집단에서 나온 새끼(?)이다. 아무리 빅데이터가 날고 기어도 데이터의 범주를 벗어날 수가 없다. 그러한 이유 때문에 빅데이터 또한 데이터(혹은 데이터 과학)가 가지고 있는 태생적인 한계 또한 그대로 가지게 된다.
그리고 이 명제는 서 있는 곳이 바뀌어도 풍경이 바뀌지 않는 ‘절대적’으로 참(True)인 (사회생활에서는 몇 안 되는 하지만, 수학에서는 가끔 일어나는)인 명제이다. 참고로, 위의 명제가 왜 참인지 증명하는 방법은 이전에 이야기했던 집합론을 이용하면 된다. 시간 나면 한번 증명해보시길 바란다.
서두에서도 이야기했지만, 사람들은 자신이 아는 만큼만 본다. 수학적인 이론적 배경이 없이 데이터만 다루던 사람들은 왜 이러한 차이가 중요한지 모른다. 컴퓨터로 구현이 다 되니 심지어 연속적 수나 함수를 100% 구현 가능하다고 이야기하기까지 한다.
더 갑갑한 경우도 있다. 바로 수학적인 배경 없이 데이터 과학자로 구력을 쌓은 경우이다. 예전에 온라인 상으로 빅데이터 전문가라는 나름 구력 빵빵한 엔지니어(혹은 출신 관리자)와 이야기를 나눌 기회가 있었다. 그때 빅데이터가 가지는 태생적 한계에 대해서 이야기를 했는데, 돌아온 대답이 “빅데이터이기 때문에 다 극복 가능하다”였다.
나이도 지긋하게 드신 시니어 분이라 그냥 그렇군요 하고 말았다. 이러한 경우가 바로 수학적 배경 없이 컴퓨터만 디립다 판 대표적인 폐해라 할 것이다.
마무리하며
빅데이터가 중요하다 주장하건, 데이터 과학이 중요하다 주장하건, 통계학이 중요하다 주장하건 정작 중요한 것은 각 주제에 대한 상관관계와 한계점을 명확히 알고 있어야 한다는 것이다. 그리고 사용할 때에도 그런 한계를 알고 조심히 사용해야 한다. 또한 이러한 한계들을 잘 파악하기 위해서는 해당 분야에 기초가 되는 학문들을 심도있게 공부할 필요가 있다.
참고로 ‘데이터’와 관련된 분야를 아우르는 기초 학문은 ‘통계학’이며, ‘컴퓨터이론’과 관련된 분야를 아우르는 기초 학문은 ‘수학’이다. 이렇게 다른 듯 같은 분야를 이해하기 위해서는 기초 학문들을 잘 알아야 한다.
이러한 이유로 SW를 제대로 하려면 기초분야인 수학을 잘해야 한다. 똑같은 이유로 창조적인 인재를 키운답시고 SW만 디립다 파는 SW과정 의무교육화를 반대하는 것이다.
원문 : Amang Kim의 브런치