AI 마니악들의 착각

2055

외부에 회사 소개를 하다보면 파비클래스 운영하는 이야기를 듣고 마케터들 대상의 예쁜 그래프나 그리는 강의로 선입견을 갖는 분들을 자주 만난다. 그게 아니면 코딩 강의하는 줄 안다. 어느 쪽이건 불편하다. 길게 설명하기 뭣해서 넘어가고 마는데, 회사 이미지를 전문가 이미지로 잡자고 만든 강의가 되려 회사를 3류 학원급으로 전락시키고 있는 것 같아서 찜찜함이 남는다.

넥슨 김정주 회장님이 조그마한 게임사 운영 중이라고 했더니, 듣던 어느 정부 고위 공무원이 작은 게임 스타트업 하나 운영하는 줄 알고 무시했더라는 말이 생각나는데, 구멍가게 수준의 쬐끄만한 회사 운영하고 있는 주제에 너무 욕심을 내는걸까? 괜찮다. 알아야하는 사람만 알면 된다고 말은 하지만, 강남 일대의 여느 IT학원 취급 받으려고 시작한 강의가 아니라, 그런 학원들의 잘못된 메세지를 지적하려는 강의인데, 이런 답답함을 어떻게 해결해야할까?

눈 감고 투자하는 VC들, 비지니스 미팅에 Counterparty 회사에 대한 자료 조사도 안 하고 오는 아마추어 회사들에게야 큰 상관없겠지만, 파비블로그 글을 읽고 파비클래스를 찾아오시는 분들이 그런 관점을 가지는 건 좋지 못한 것 같아서, 이번 기회에 지난 몇 달간 만났던 편견 or 선입견들을 공유해본다.

(Note: 이마에 써멀패드는 붙였겠지?ㅋ)

 

1. 나는 이미지 인식하는 (read 어려운거 하는) 전문가인데, 웹사이트 클릭 같은 (read 시덥잖아 보이는) 수준의 수업을 들어야하나?

자칭 AI 전문가, 혹은 AI라는 단어를 자기 입에 올리면서 뭔가 으쓱으쓱하지만, 이게 통계학이라고 지적해주면 딥러닝은 통계학보다 우월하다고 우기는, 수준이 매우 얕은 X돌이들의 전형적인 선입견 + 자만심이다. 그들에 대한 불만 덕분에 악으로깡으로 지난 몇 년간 파비블로그를 운영했으니까.

정작 그래놓고 이미지 인식하는 계산 과정을 설명해라고 하면 제대로 설명하는 분을 여태 만난 적이 없다. 운이 좋으면 질문 한 두 개는 넘어가는 경우가 있긴 하다. 코드만 잘 돌아가면 되는건데 왜 그런걸 묻냐고 화를 내는 사람도 있다.

참고로 이미지 인식하는걸 제대로 배우려면 (다른 수많은 지식을 제쳐놓고) 2가지의 수리통계학 모델링 지식이 필요하다.

  • A. Feature extraction 작업 – PCA/FA
  • B. 이미지 스캔 – 필터(or Matrix) 계산용 선형대수학

이미지 스캔이 된 작은 이미지들 인식을 가르칠 때 첫번째 스텝이 PCA를 이용해서 이미지 인식을 시키는거다. 얼굴 이미지 인식이라고 했을 때 PC1, PC2는 공통적으로 자주 나타나는 부분 (눈, 코, 입, 턱선 등등)이고, PCk 에서 k값이 큰 경우들은 얼굴 이미지마다 독특한 특징들 (눈 밑의 점, 굵은 콧볼 등등)이라는걸 알아야 Feature extraction을 이해할 수 있기 때문에 이걸 먼저 가르친다.

같은 맥락에서 대형 이미지 처리 속도(+다른 여러가지 이유로)를 높이기 위해서 이미지 스캔에 쓰는 필터가 행렬 형태로 되어 있고, 어떤 조건을 만족시켜야하는지를 이해하고 나야 이게 이미지 데이터의 데이터 전처리 작업이구나를 이해하게 된다. 데이터 전처리가 제대로 안 된 Garbage In, Garbage Out을 겪었는데 정작 자기 탓은 안 하고 어느 Library가 안 좋다는 평가나 할 줄 알면 영원히 남의 지식만 베껴쓰는 3류 밖에 안 된다.

대학원 레벨의 수학 모델링 훈련이 안 되어 있는 개발직군만 그런게 아니라, 일부 명문대 공대 교수들도 같은 수준인 경우를 직간접적으로 여러차례 겪었다. 이미지 인식 전공하신 어느 학교 컴공 교수님이 AWS 라이브러리만 써서 졸업논문 제출한 학생에게 코드 베낀거 말고 니가 한게 뭐가 있냐고 엄청나게 꾸중하셨다는 이야기를 들은 적이 있었는데, 같은 사건을 겪은 어느 명문대 데이터 사이언스 대학원 학생이 자기 학교에서는 교수가 놀란 표정으로 학생들 전체에게 기립박수를 시켰다는 이야기도 들었다. (그 교수 수업에서 틀린 내용들 지적하고 싶어하던 파비클래스 수강생 한 분이 기억난다)

전문분야를 단단하게 쌓아올리신 뛰어난 교수님들 입장에서는 “어중이 떠중이”들이 들어와서 망쳐놓는 자기 학문의 현 상황, 학생들이 오염되어 가는 과정이 어이가 없으실듯.

 

2. Neural Network으로 돌리면 다 계산되는데 굳이 통계학 알아야하나?

1번처럼 지식 수준이 매우 얕은 X돌이들이 갖고 있는 왜곡된 자신감을 잘 표현해주는 질문이다.

계산비용 & 설명력 부재

인류가 가진 데이터의 9할은 정규분포를 따른다. 가장 효과적인 계산법은 Neural Network가 아니라 최소자승법이다. 식이 주어져있기 때문에 손으로도 풀 수 있다. 쉽고, 정확하고, 계산에 대한 근거와 논리를 풀어서 설명하는 작업이 직관적이다.

Neural Net을 비롯한 여러 Non-parametric graphical model들이 쓰일 수 있는 영역은 매우매우매우 제한적이다. 아무데나 써도 상관없는게 아니라, 아예 “틀린” 경우가 대부분이다. 운좋게 틀리지 않더라도, 계산비용이 어마아마하게 들어가고, 설령 하드웨어 발전으로 계산 비용이 저렴해졌다고해도 계산에 대한 근거와 논리를 풀어서 설명하기가 힘들다.

기적같이 “틀리지 않은” 결과를 얻었다고 해도, 변수별 효과를 설명하려면 어쩔 수 없이 Non-parametric을 Parametric 모델로 바꿔야한다. 이 개념을 이해할 수 있는 가장 쉬운 예시가 정확하게 형태를 모르는 함수를 Taylor’s expansion으로 근사한 다항식으로 추정하는 작업이라고하면 이해할 수 있으려나?

X돌이들은

  • 계산비용이 비싸다,
  • 논리를 세울 수 없는 모델이다
  • (그래서) 틀린 모델인 경우가 대부분이다

같은 종류의 문제에 전혀 관심이 없는 것 같다. 그들에게 오직 관심사는 한 가지다.

(여기서는) 잘 맞는데요? (딴 데서는 모르겠지만…)

석박시절 우리끼리는 저런 식으로 이야기하는 동료를 바보 취급, 왕따 취급했었는데, 그런 바보가 버젓이 “데이터 사이언티스트”라는 직함을 달고 고액 연봉을 달라고 뻔뻔하게 목소리를 높이는데 어떻게 대접해줘야할까? 대학원 시절처럼 바보, 왕따 취급하면 사회성 없다고 욕하려나?

데이터 전처리

사회과학 연구실(출신은 아니지만)을 들어가면 아무도 구해온 데이터를 그대로 갖다 쓰지 않는다. 그랬으면 논문 발표하기 전에 당장 지도교수한테 Robustness check은 어떻게 했냐는 질문을 받고 정신이 어질어질해질 때 까지 수학적인 공격을 받을 것이다.

실험실에서 제한된 환경을 놓고 결과물 데이터를 그대로 쓰던 사람이 상상할 수 없는 영역이라는 건 공감한다.

그렇지만 클릭 값들을 모은 데이터부터 도로 위에서 얻은 영상 이미지까지 모든 현실 데이터는 수 많은 종류의 오염이 섞여 있는 데이터다.

단순히 NA를 제거하는게 데이터 전처리가 아닌데, 자기들이 모른다는 이유로 필요없다고 우기고는 Neural Network이 무조건 좋은거니까 알아서 “이상한 부분”을 걸러내 줄 것이라고 맹신하는 X돌이들에게 뭐라고 해야할까?

하나로 모든 곳에 다 적용할 수 있는 그런 완벽한 모델 없냐고 계속 묻던데, 매번 하는 이야기지만, 그랬으면 오래전에 인류의 모든 학문이 없어졌을거다.

예를 들어, Measurement error가 있을 때 생기는 작은 Attenuation bias만해도 Neural Net의 Layer가 늘어날수록 과다계상될 수 밖에 없는 구조인 탓에, 결과 모델이 엉망이 된다.

Cross Device Matching에 쓰는 Probability matching 관련된 이야기를 하던 미팅에서, 어느 개발자가 로직만 알면 직접 만들 수 있다면서 로직만 알려달라고, 로직 몰라도 Neural Network로 로직 찾아내면 된다고 뻔뻔하게 주장하는걸 본 적도 있었는데, Neural Network가 요술봉이 아니라 단순히 Non-Parametric graphical model 중 하나일 뿐이라는 걸 이해하고 있으면 그렇게 뻔뻔할 수 있을까?

기초 통계학만 알아도 지적할 수 있는 내용을 모르면서 AI 전문가라고 주장하지는 말자.

 

나가며 – 진짜 전문가, 노력파 분들도 많다

X돌이라는 표현이 멸칭인 줄 잘 안다.

다만 AI 전문가라고 거들먹거리는 X돌이들 중에 그 표현을 쓰지 않고 존중해주고 싶은 공학도들을 만나기 너무 어렵다.

AI 전문가 or 전문가 후보들이라고 생각되던 공대 박사 졸업반 2명이 통계학이 부족한 것 같다며 질문 메일을 보낸 적이 있다. 1명은 Continuous time 모델에서 random 요소 2개 중 1개만 pin-down 할 수 있는 상황을 해결하려고 실험 데이터를 앵커로 삼으려는 분이었는데, 샘플 데이터에서 분산을 어떻게 활용하면 되냐고 질문하더라. 정규분포라고 가정하고 평균/분산이 입력되는 분포함수를 조건식으로 추가하면 2번째 random 요소도 식으로 떨어질 것 같다고 답변했던 적이 있다. 만약 정규분포가 아니면 2차 moment 쓸 수 있는 다른 근사 분포를 찾아보라고 답변을 드렸는데, 어떻게 작업 중일지 모르겠다.

다른 한 분은 비슷한 상황에서 2번째 random 요소의 random process 자체가 다른 경우더라. 그래서 1 poisson, 1 normal로 문제를 풀었던 박사 시절 논문을 공유하며 2번째 random process가 뭔지 정의하고나면 비슷한 방식으로 풀 수 있을 것 같다고 조언해드린 적이 있다.

이런 분들이 AI전문가라고 주장하시면 충분히 공감한다. 자기 학문에 필요한 수학, 통계학이 뭔지 정확하게 알고, 그걸 공부하다가 필자의 논문을 보고 물어보면 알 것 같다는 생각을 하셨기 때문에 그런 질문을 했을테니까.

그런데 위의 1, 2번 꼭지로 예시를 든 분들이 AI전문가라고 주장하면, 정말 도저히 존경심을 갖고 봐 드리기가 힘들다.

요즘 자율주행차 기술 적용 한다던 테슬라의 담당자들이 기술적 한계가 너무 많다는 사실을 알고 발을 뺀다던데, 계산하는 그래픽 카드 성능이 올라가면 다 극복할 수 있다고 악에 받친 메일을 보내던 그 개발자 출신 X돌이들께 다시 한번 묻고 싶다. 야간에는? 안개 끼었을 때는? 다른 차와 Coordination은? 제발 계산기 수준의 시야에서 벗어나서 모델 만드는 사람의 관점으로 당신들이 좋아하는 “기술”이라는 걸 바라봐줬으면 좋겠다. 그게 아니면 전문가 코스프레는 제발 좀 그만하자.

어딘가에 적용하는 Library 하나의 지식을 얻었다고 전문가가 되고, 그 직업으로 취직을 할 수 있는게 아니라, 기초부터 탄탄히 지식이 쌓여야 전문가가 되고, 그 직업으로 밥값하는 직업인이 된다.