딥러닝이 제일 열등한 모델인데 몰랐어?

18060

공학도들, 특히 AI 마니악들을 만나면 공통적으로 느끼는 것들이 있다.

딥러닝이 제일 우월하다

는 (초대형) 착각이다.

  • 왜 구글이 적용하고 있는 초특급 모델,
  • 그래픽 카드를 수백개씩 써야하는 모델,
  • 배우기가 어려운 모델,
  • 모든 곳에 다 쓸 수 있는 모델

이 우월하다는게 착각이냐고? 하나씩 하나씩 지적해보자.

1. 구글이 적용하고 있는 초특급 모델?

구글이 적용하고 있는 모델이라고 하면 너무 광범위한데, 블로거나 유튜버들이 중간중간에 광고 끼워서 돈 벌고 있는 애드센스(AdSense)에 쓰이는 알고리즘은 뭘까?

여기에 쓰이는 알고리즘에 대한 좋은 설명으로 이 논문을 추천하는데, 믿을 수 없겠지만 가장 단순하게 생긴 Logistic regression을 쓰고 있다. (구글이 이런 “열등한” Logit을 쓰고 있다고? 라고 생각하시겠지만, 저 링크의 2011년 논문 이후로 계속 나오는 모든 관련 연구들은 이미 2000년대 초반부터 적용하고 있는 Logit을 조금씩 변형해가며 쓰고 있다. 왜? 유연성이 좋으니까, 계산비용이 저렴하니까, 추적이 가능하니까, 주어진 데이터 셋에서 정확도가 더 높으니까 등등… 아래에 하나씩 나눠서 설명한다.)

몇 가지 더 추가하면, 시간에 따라 트래픽이 달라지고, 신규 유저가 들어오고, 신규 블로거/유튜버가 들어오는 상황이 시계열(Time-series)에서 전형적인 자기상관성(Auto-correlation)이 있는 상황이기 때문에, 거기에 맞춰 모델이 변형되어 있다. 자기상관성이 있는 부분을 독립된 변수들의 조건식으로 빼내지 않으면 효과가 (운이 좋으면) 과다/과소 계상되거나 (보통은) 아예 답을 얻을 수가 없다.

통계학이 다룰 수 있는 시계열 데이터는 (Weakly) Stationary한 데이터 밖에 없기 때문인데, 애드센스가 다뤄야하는 데이터는 (거의 100%) 자기상관성을 갖는다.

머신러닝, 딥러닝이라는건 우월해서 굳이 통계학 안 배워도 된다고 하던데요?

딥러닝이라고 불러놓고 Logistic regression 수십개를 뭉쳐놓은 모델 (Nested model)이라고 부르는건 알고 있나?

1개 특이한 케이스에 맞춘 Neural Net 모델로 Non-stationary 한 부분을 제거할 수 있을 것 같기는 한데, Graph model들은 언제나 확장성이 빵점이다. 데이터 형태가 바뀌고, 시장 상황이 바뀌면 Graph model은 그에 맞춰 계속 바꿔줘야한다. 새 모델을 만드는데 걸리는 시간은? NN모델 하나 돌아가는데 얼마나 길게 걸리지?

NN이 모든 것을 알아서 해줄거라고 생각하지만, Graph model을 제대로 이해하면 깨달을 것이다. 데이터 바뀔때마다 모델이 바뀌는, 어디에 어떻게 갖다 붙여야되는지 모르는 모델이라는 사실을.

꼭 구글이 아니더라도 NN같은 모델은 누구나 쓸 수 있지만, 쓸 자리가 정해져있다. 그리고 구글도 필요한 곳에 필요한 모델을 쓴다. 무조건 NN을 쓰는 무식한 짓은 안 한다.

글로벌 IT회사들 대부분, 아니 모두가 애드센스와 비슷한 종류의 데이터를 다루는 곳에 NN이 아니라 Logit을 쓰는 이유다. 단순하지만 수학 지식을 잘 이용하면 1-model로 많은 대응을 할 수 있으니까.

기본적으로 유연성이 없는 모델은 열등한 (Inferior) 모델이다.

 

2. 그래픽카드를 수백개씩 써야하는 모델

2가지 경우를 보자

  1. 김 실장, 이렇게 계산하면 얼마나와? K는 37% 효과, M은 25% 효과? 오케이. 고마워.
  2. 박 실장, 이렇게 계산하면 얼마나와? 뭐? 딥러닝은 한 달 후에 결과 나온다고? 이거 대충 감으로 35, 25% 나오는거 아냐?

당신은 어떤 선택을 하고 싶으신가?

반드시 Neural Net 같은 계산비용을 많이 써야하는 작업들이 있다. 그게 아닌 작업에 굳이 NN을 써서 한 달을 기다려야하고, 옆 사람은 간단한 회귀분석으로 37%, 25%라는 숫자를 바로 얻어낸다면? 감으로 얻은 숫자보다 조금 더 정확한 숫자를 거의 바로 계산할 수 있다면?

공학도들 대부분이 “자동화”를 너무 좋아해서, 그래픽 카드 수십개를 넣은 “계산기”가 한 달 동안 계산을 돌리고 있으면 너무너무 행복해한다.

수학 모델러는 그 상황에 가장 적합한 모델을 하나 찾아서 “공식”에 대입해서 바로 문제를 풀어버리고 있는 동안.

저 위의 애드센스 케이스를 들면, 계산비용이 너무 많이 드니까 그래픽카드를 수백개씩 써도 불가능하고, 그래봐야 4시간 업데이트하는 애드센스 모델 주기를 못 맞춘다.

그래픽 카드가 많이 있으면 속도가 빨라질테니 결국은 수학이 무의미해질거라고 하던데, 공식이 숫자를 받아서 계산하는 CPU 계산 속도를 어떻게 따라갈려고? 그래픽 카드 속도만 빨라지고 CPU의 집적률, 계산 속도는 가만히 멈춰있나?

그래픽카드 수백개가 들어가야만 하는 계산이 아닌데 그걸 쓰고 있으면 바보짓 아닌가?

기본적으로 계산비용이 많이 들어가는 모델은 열등한 (Inferior) 모델이다.

 

3. 배우기 어려운 모델

딥러닝 마니아들의 가장 궁극적인 착각이 딥러닝은 배우기 어렵고, 그래서 “배우기 쉬운” 통계학보다 우월하다는 착각이다.

참고로 딥러닝이 제일 배우기 쉽다. 그래프 모델들이 기초 지식만 놓고보면 훠얼씬 더 쉽다. 수리통계학으로 박사 2학년 수준의 공부를 하고 있으면 그 때 그래프 기반의 Non-parametric 모델들을 배우는데, 그 땐 일반에 알려져있는 딥러닝 수준의 얕은 지식을 배우는게 아니라, Graph 모델로 수리통계학의 모든 지식을 풀어내는 이야기를 하면서 난이도가 기하급수적으로 올라간다. 그 쯤되면 그래프 모델 배우기가 어렵다는 표현이 이해가 되는데, 일반인이 알고 있는 “딥러닝”이라는 Neural Network 모델은 계산 따라가기 제일 만만한 모델이다.

근데 그동안 왜 안 썼냐고? 근데 왜 박사 2학년 때 배우냐고?

통계학의 모든 작업은 기본적으로 변수의 효과 추적이다. 근데 NN모델을 비롯한 Graph 모델 대부분은 그 추적이 굉장히 귀찮게 되어 있다. 추적을 위한 기본적인 테크닉들을 다 배우고나야 제대로 모델을 쓸 수 있기 때문에 박사 코스웍 마지막 과정에 그 내용을 배우는 것이다.

그 전엔 결과값이 60% 맞았네, 70% 맞았네 같은 피상적인 이야기 밖에 못한다.

당신들은 가장 쉬운 지식을 배워놓고, 가장 어려운 지식을 배웠다고 우기는 것이다.

기본적으로 변수 효과 추적이 힘든 모델은 열등한 (Inferior) 모델이다.

 

4. 모든 곳에 다 쓸 수 있는 모델

파비클래스의 모든 수업에서 강조한다. 우리가 알고있는 데이터의 9할은 정규분포를 따르고, 그런 데이터에는 인류역사 최고의 수학자 가우스님께서 가르쳐주신 최소자승법 (Least Square) 계산법이 가장 우월한 계산법이라고. (폰 노이만을 최고의 수학자라고 인정하면 할 말 없는데, 그 분은 인류 역사 최고의 천재…라는 호칭이 더 적절할듯)

분산이 가장 작고, 그래서 오차가 가장 작을 확률이 높고, 공식이 있어서 계산결과를 최단시간에 볼 수 있고, 변수별 효과를 눈으로 바로 확인할 수 있는데, 모델 자체를 잘못 만들었을 때 이것저것 수정하기 너무 쉽다.

이걸 무조건 우월한 줄 착각하는 “딥러닝”으로 작업하게 되면 어떻게 되느냐? 데이터 셋이 바뀔 때마다 모양 (즉 모델)이 달라지는 Tree model의 문제점을 그대로 안고 있고, 그래서 데이터 셋에 따라 오차가 생길 확률이 엄청 높고, 계측형 데이터 계산에 열등한 Tree라서 계측형 데이터의 장점을 못 살리고, 공식이 없어서 계산결과를 컴퓨터의 속도에만 전적으로 의존해야하고, 변수별 효과를 보겠다고 Variable Importance를 그려보면 구간별로 다른 효과가 있는 경우를 뭉뚱그려놨는데, 모델을 바꾸려고 해 보니 다시 엄청나게 긴 시간을 기다려야 차이를 눈으로 확인할 수 있다.

“딥러닝”이 가장 우월한 데이터가 뭔지 판단하려면 “딥러닝”이라는 모델의 구조부터 이해해야 한다. Layer를 하나씩 더 추가하는건 일종의 위상공간을 계속 더 만들어가는 관점이고, Node를 하나씩 더 추가하는건 Taylor’s Expansion에서 고차항을 하나씩 더 추가해서 non-linearity를 만드는 작업인데, 당장 이미지 인식이 여기에 해당할지도 모른다는 걸 직관적으로 이해할 수 있다. 이미지는 다양한 형태의 곡선을 갖고 있고, 눈, 코, 입 같은 높이가 다른 (그래서 2차원 사진값의 음영이 바뀌는) 데이터이기 때문이다.

일반적인 계측형 데이터는 N차원 공간에 유클리드 좌표값을 갖는 우리의 평범한 지식으로 그려내는 위상 공간에 뿌려진다. X, Y, Z 축 좌표로 고교시절에 배운 그 좌표값 공간에. 그런 데이터는 (거의 예외없이) 회귀분석에서 쓰는 최소자승법이 가장 우월한 계산법, 가장 효과적인 계산법이다. 당장 그런 데이터에 Tree와 Logit으로 결과 비교해보면 Tree에 엄청난 계산비용을 들여가며 변형을 가하지 않는 이상 결과물이 안 좋을 수 밖에 없다.

모든 곳에 다 쓸 수 있는 모델? 실제로는 계산비용도 비싸고, 문제도 많아서 쓸 곳이 거의 없는 모델이다.

계산비용이 비싸서 이미지 인식을 포기했던 시절에 썼던 모델이 PCA이고, PCA를 중첩형으로 묶어놓은게 Neural Net이라고 하면 알아먹는 사람이 과연 몇 명이나 될까? 이런 기본지식이 없는 상태에서 Neural Net이라는 모델을 적절한 데이터에 제대로 쓸 수 있는 확률은 랜덤보다 나을까?

기본적으로 데이터 셋에 맞지 않는 모델은 열등한 (Inferior) 모델이다.

자, 정리하면 딥러닝이 열등한 모델인 이유는, (Logistic) Regression 같은 단순 모델이 아래의 장점을 가진 것과 같은 이유다

  • 유연성이 좋으니까,
  • 계산비용이 저렴하니까,
  • 추적이 (매우 쉽게) 가능하니까,
  • 우리가 흔히 가진 데이터 셋에서 정확도가 제일 높으니까

오잉? 그럼 Regression이 제일 좋은 모델인가요? 아니. 자기가 가진 데이터 셋에 가장 맞는 모델들은 다 따로 있다. 특정 모델을 쓰려면 내 데이터를 변형시키는 작업이 우선이다. 이걸 이렇게 표현하면 될 것 같다.

모델은 사람이 아니라, 데이터가 고르는거다

 

정부 프로젝트는 무조건 “딥러닝”을 써야 됩니다

한국 정부가 정말 심각한 잘못을 저지르고 있다. AI관련 정부 프로젝트를 하겠다고 찾아가면, 무조건 “딥러닝”이라는 4차원의 “인공지능”을 쓰지 않으면 안 된단다. 정작 데이터는 명백하게 정규분포를 따르고 있음에도. 그래서 최소자승법으로 10초만에 답을 얻을 수 있는 그런 프로젝트를 몇 억, 몇 십억짜리 프로젝트로 만들고 있다.

대형 IT회사들은 마치 자기네가 4차산업 혁신을 주도하는 것 같은 사기 프리젠테이션을 하고는 그 프로젝트를 수주한다.

이게 디지털 뉴딜의 실태다.

국민 세금이 저딴식으로 줄줄줄 흐르고 있는데, 이걸 도대체 어떻게 막아야하나?

수업을 듣고 가시는 분들 대부분이 대충격을 먹고 간다. 처음에는

“수학이 중요하다는 그 말, 이해했다ㅋㅋ 들어줄께”

같은 가벼운 마음으로 왔다가,

“9할의 데이터가 정규분포를 따르고, 단순 회귀분석 계산이 더 우월하다”

는 설명을 받아들이기 힘들어한다. 자기들 머리속에서 NN이 더 복잡하고 우월하거든. 근데, 가우스가 이미 200년 전에 증명했다니까ㅋ 단순한걸로 되는데 복잡한거 쓰면 열등한 모델인데?

그렇게 받아들이지 않는 분들께 Neural Net의 구조를 설명하고, 쓰이는 방식의 많은 부분에 수리통계학이 나타나는걸 보면서 점점 이 모델이 열등해서 쓰이는 곳이 별로 없겠다는 사실을 깨닫더라.

“평소에 딥러닝 쓰실 일이 거의 없겠네요?”

라는 질문이 나오다가, 종강 무렵이 되면

“딥러닝을 여기쓰는게 틀렸다는건 확실히 알겠는데, 이제 뭘 해야될지 모르겠다.”

라는 식으로 바뀐다.

그리곤 “딥러닝”을 넣은 모델로 정부 프로젝트 결과물을 제출하시더라ㅋㅋㅋ NN 안 쓰면 정부 프로젝트 못 한게 된다며?

가끔 하소연을 한다. 사기꾼이 된 것 같아서 너무 괴롭다며, 차라리 몰랐던 그 때로 돌아가고 싶다며.

 

나가며 – 왜 딥러닝 안 해? 열등하니까

Financial Math 전공하고 한국사회에 소문난 Data Scientist가 왜 복잡한 “딥러닝” 이용해서 자기 전공인 주식 알고리즘 안 만들고 광고 타게팅 사업하냐고들 묻는다. (사실은 딥러닝 모르는거 아니냐는 비아냥도 듣는다.)

자산 수익률은 기본적으로 정규분포를 따른다. 이 명제는 50년 동안 학자들이 쌓아올린 지식이다. 싸우고 싶으면 노벨경제학상 4개와 싸워라.

“딥러닝”이 굳이 필요한 영역이 아니라, 효과적인 투자전략을 통해서 정규분포의 특정 구간을 노리는, 기존의 헷지펀드 스타일의 비지니스가 이 분야에서 할 일이다. 로보 어드바이저 하는 사람들은 끝까지 “딥러닝”이 새로운 시대를 열고 있다고 주장하겠지. 다시 말하지만 일단 금융시장쪽 노벨경제학상 4개와 싸워서 이겨봐라. 난 수상자의 대학원 수업을 들은 적이 있고, 학점을 잘 받은 적도 있지만, 심지어 그들 논문 몇 군데를 비판해서 “You don’t have to be a critic in class”라는 놀림도 들은 적이 있지만, 그들이 쌓은 거대한 논리를 이길 자신은 없다. 차라리 수학 안 쓰고 감으로 투자한다고 하면 믿을까.

광고 타게팅은 실제로도 랜덤 데이터가 아니고, 패턴이 강하게 있는 데이터고, 동적 데이터, 개인 데이터여서 필자가 정의하는 빅데이터의 모든 조건을 다 따르는 데이터다. 적절한 데이터 전처리와 합리적인 모델링, 그리고 남들이 가지지 않은 데이터로 Latent vector space를 그려낼 수만 있으면 가능성이 있는 영역이기 때문에 이 사업을 한다.

사업 그림 그 어디에도 “딥러닝”은 없다. 왜? (내 사업에는) 열등한 모델이니까.


근데, 열등한 모델이 제일 우월한 줄 아는 분들은 뭘까? 열등한 모델이 열등한 줄 모르는 분들이 나더러 “동종업계에서 실력으로 까일정도다”?

잘 모르는 분들의 우월감에 대한 불만사항, 좌절감이 계속 제보로 들어오고 있어서 시리즈 글로 만들어야 될 것 같습니다.

번외