블랙박스(Blackbox)라고?

0
776

소수 (Prime number)가 어떤 규칙을 가지는지, 가장 큰 소수는 얼마인지 등등에 대한 이론 연구를 하는 수학 전공이 있다. 정수론이라고 한다. 수학과 천재들 중에서도 최고들이 도전하는 분야다. 그런 정수론을 자기 평생의 연구 주제로 삼은 장이탕은 베이징대 수학과를 졸업하고, 나이 서른 여섯에 겨우겨우 퍼듀에서 수학 박사 학위 받고나서도 나이 50줄에 들어설 때까지 교수는 커녕 강사자리 하나 못 잡고 마트 캐셔로 살았었다. 그 천재가 쌍둥이 소수 (3과 5, 11과 13등 두 수의 차이가 일정한 소수들의 그룹)가 무한히 존재함을 증명하고, 하버드에서 강연을 한 적이 있었는데, Q&A 시간에 어느 분이 이렇게 질문하더라.

“암호학을 하는 사람 입장에서, 당신의 연구로 앞으로 10년간 암호 체계가 완전히 변할 것 같다는 느낌을 받는다. 그런데 이걸 주변 사람들이 알아듣기 쉽게 설명하기 너무 힘든데, 좀 좋은 아이디어가 있는가?”

보통 사람들은 “그런 2,3,5,7,11 같은 숫자 찾는 것도 연구가 있어?”, “그게 어디 쓰이는거야?”, “그냥 공대 나와서 기계 만드는게 백배 더 효율적인거 아냐?” 라고 할 것이다. 그러나 당신들이 알고 있는 그 공학의 기계 만드는 지식은 모두 수학에 의지하고 있고, 암호학, 슬롯 머신 등등 복잡한 조합으로 기계적인 해독이 불가능하도록 만드는 보안 시스템들은 소수에 규칙이 있다는게 알려지는 순간 원시시대에서 다시 시작해야할 수준으로 어마어마한 지식이다.

참고로, 컴퓨터가 만들어내는 랜덤 데이터는 엄밀히 말하면 랜덤이 아니고 나름대로의 규칙을 따른다. 아니라면 코딩할 때 랜덤 데이터 생성하면서 Seed 정해놓으면 같은 값이 나올 수가 있을까? 이런 약점이 있기 때문에 일본에서는 한동안 동네별 슬롯머신들의 승률 & 패턴을 알아내서 판매하는 잡지도 있었다. (자기들이 실컷 빼먹고 난 다음에 ㅋㅋ) 결국 저런 암호들은 초고난이도의 정수론에 대한 지식을 바탕으로 만들어진다. 기계 만드는 손 기술이 더 인류에게 유용한 지식이라고 판단하시는 분들, 자신만의 세계로 천재들의 연구가 가지는 가치를 함부로 재단하지 말아주셨으면 좋겠다.

아뭏튼, 장이탕 교수님의 그 대답 때문에 아직도 그 날의 Q&A를 생생하게 기억하고 있다.

“사람들은 모르는 이야기를 듣고 이해를 못 하면 자신의 부족함을 탓하는게 아니라, 화를 내더라. 설명하지 않는 걸 추천한다.”

문자로 옮겨놓으니 굉장히 거만해보이는데, 정작 강연 당일은 농담조의, 그렇지만 평생의 연구를 이해 못 해주는 사람들 속에서 좌절했던 천재 수학자의 비애가 느껴지는 말투였었다.

요즘 외부 미팅을 많이 하면서, Neural net 모델을 블랙박스 (Blackbox)라고 주장하는 사람들과 자주 부딪히게 된다. 그런 미팅을 하고 있으면 속이 답답해진다.

“블랙박스란 없습니다. 어떻게 계산되는지 모른다는건 자기가 몰라서 그런거에요. Neural net이 결국은 Logit을 여러개 엮어놓은건데, Logit이 학부시절 배우셨을 회귀분석 식이랑 생긴 형태가 같습니다. 곱하기 계산을 따라가기만하면 다 알 수 있는데, 자기들이 잘 모르는걸 감춘다고 블랙박스라는거에요.”

이런 대화를 할 때, 자기가 잘 몰랐다는 걸 인정하고 물러서는게 아니라, “이건 어떤 학교 교수가 이야기한 내용이다, 너는 교수 아니지 않냐”는 반응부터 시작해서 “나는 무조건 맞다”, “니가 좀 안다고 자랑하는거냐?”는 식의 불편한 표정을 만나게 되면 답답함^2이 된다.

네X버 어느 만화의 댓글을 봤더니 “상대에게 아무리 전달해줘도 변할 가능성이 없으면 더 이상 인생과 감정을 소모하지 않는게 현명하다”고 하던데, 그 장이탕 교수님의 비애 섞인 답변과 오버랩이 퐉~ 되더라. (정작 블랙박스 아니라는 설명은 쌍둥이 소수 무한개 증명과는 비교도 안 될만큼 쉬운 이야기인데도…)

 

1. 블랙박스 vs. 화이트박스

수업 시간에 설명용으로 쓰는 슬라이드 중 하나를 가져와 봤다.

복잡한 줄 알았던 Neural network 계산이 사실은 Logistic regression 몇 개의 결합에 불과하다는 걸 보여주는 슬라이드다. 물론 Neural net을 구성하는 구조, 이걸 응용하는 방식에 따라 다양한 종류의 variation이 생기겠지만, 어쨌건 원리는 크게 변하지 않는다.

수업을 들으신 분들은 알겠지만, 저런 계산 구조를 지탱하기 위해서 어떤 방식으로 컴퓨팅 자원을 활용하고, 계산 효율화를 위해서 어떻게 구조를 수정하는지, 계산 목적에 따라 어떤 타입의 네트워크를 고르는지는 단순한 지식도 아니고, 듣는다고 바로 이해하기도 어렵다는 걸 충분히 공감한다. 하지만, 큰 그림을 하나씩 쪼개보면 Logistic regression 이라는게 눈에 보이고, 그 Logistic regression이 학부 고학년 때 봤을 (쪼끔) 고급 통계학 수업에서 봤던 Linear regression의 응용 버젼인 걸 감안하면, 이걸 블랙박스라고 이야기하는 사람들은 정말 깊이 반성해야한다.

이런 글을 읽고서도 여전히 블랙박스라고 우긴다면, 진짜 “문과” or “코더”라서 저런 Regression을 한번도 해본적이 없거나, 아니면 학부 때 공부를 안 했던 걸 스스로 인증샷 날리는 것 아닌가?

지금도 블랙박스라고 우기고 계신 어느 학교의 교수님, 제가 미팅에서 만났던 어느 개발자가 봤다는 그 글을 쓰신 그 교수님, 지금이라도 글을 내려서 더 이상 쪽팔리는 일이 없으셨으면 좋겠습니다. 당신께서 학부 고학년도 이해할만한 내용도 모르고 쓰신 글 때문에, 연구하느라 고생하는 박사 시절 친구들이 도매금으로 싸잡혀서 무시당하는 걸 보기가 너무 안타깝습니다.

 

2. 연구과제

데이터 사이언스 강의에 학교 연구실에 있다는 학생들이 자주 찾아온다. 박사 연구생부터 석사 들어가서 연구 주제 찾고 있다는 학생, 심지어는 학부 고학년들도 심심찮게 보인다. 이 분들이 학교에서 다들 배우셔야되는 내용일텐데, 왜 외부에서 수업을 들어야겠다는 생각을 하게 되셨을까?

저 위에서 필자가 “깠던” 그 교수님이 특이한 케이스가 아니기 때문이라고 조심스레 짐작해본다.

건축물의 안전성 점검을 지진 측정하듯이 S파, P파 같은거 쏴서 테스트하는게 아니라, 저렴한 센서 몇 개만 설치하고 그 센서들의 정보를 머신러닝으로 처리해서 안전도 여부를 평가할 수 있다며 프로젝트를 땄던 어느 교수님 이야기를 들었다. (학생 당사자 분의 개인 정보 보호를 위해 적용 분야를 약간 바꾸었으니 양해바랍니다. 사실 이런 케이스가 벌써 여러 건 있어서 적용 분야를 바꾸면 자기 이야기처럼 들릴 수강생 분이 많을 것 같기는 하지만…)

  • 처음 수업에 왔을 때만해도, “교수님이 여기서 TensorFlow 쓰는 법 배워와서 적용하라고 하셔서요” 라던 수강생분.
  • 첫 주가 지나고 나니 “그럼 무슨 모델을 쓰는게 좋은건가요? 꼭 딥러닝 안 써도 될 수도 있겠네요?” 라고 질문이 바뀌고
  • 둘째 주가 지나고 나니 “모델을 어떤 걸 쓰느냐가 중요한게 아니네요, 데이터를 어떻게 처리하느냐가 훨씬 더 중요하네요”가 되고,
  • 셋째 주가 지나고 나니 “데이터 전처리가 어떤 모델을 쓰느냐랑 연관되어 있네요, 근데 데이터는 센서를 어디에 설치하느냐로 받는데….”
  • 넷째 주가 지나고 나니 “센서 위치, 데이터 처리, 모델 선정이 전부 다 도메인 지식이 필수인거 같은데, 이건 교수님께 여쭤봐야겠죠?”

수업 끝나고 한 달 쯤 지나고 난 다음에, 뭘해야할지 전혀 감이 잡히질 않는데, 교수님께서 하나도 안 도와주시고, 물어봐도 모르시는거 같고, 메일로 쓰기도 힘들어서 직접 찾아왔다고 연거푸 죄송하다는 말을 하더라. 진짜 안타까워서 아는 만큼 도와줬는데, 필자도 그 분의 전공 분야 지식 없이 데이터 모델링만 하는 사람이라 직접적인 도움이 될 수는 없었다.

왜 이런 이야기를 하느냐?

학교 교수님들이 “머신러닝”이라는 Buzzword를 이용해서 프로젝트를 따지만 정작 본인은 잘 모르는 상태인 경우가 많다는 것도 알고, 수업은 공부하다가 가르치는 상황이고, 그 공부도 통계학 깊이가 얕다보니 제대로 안 된 상태에서 학생들을 방황하게 만드는 경우가 많다는 걸 계속 목격하고 있기 때문이다.

블랙박스라고 언급하는 어느 교수의 글을 봤다는 그 분이 필자에게 우기기를 시전한건, 이런 관점에서 봤을 때 그렇게 놀랄만한 일도 아니다. 지식으로 사람들을 선도해야하는 자리에 계시는 분들이 알지도 못하고 블랙박스라니.

 

나가며 – 사상누각

단순히 데이터로 그래프 그려놓고 “빅데이터 분석”이라고 이름을 다는 신문기사가 은근히 많다. 언젠가 썼던 글처럼 빅데이터가 뭔지에 대한 정의조차도 모르는 상태에서 일단 잘 팔리니까 앞에 “빅”이라는 단어를 붙이고 보는걸로 밖에 안 보인다.

블랙박스라고 우기는 분들도 마찬가지다. 일단 딥러닝이라는 단어, 인공지능이라는 단어가 Buzzword니까, 그런 단어를 이용해서 세일즈를 하지만, 정작 이 계산을 잘 모르니까 그냥 모르는 건 블랙박스라고 퉁치자고 접근하는 것 같다.

친구들과 술자리에서 그런 분들을 “오스트랄로피테쿠스”라고 부른다. 무시하는 격한 표현에 기분 나쁘신가?

“사람들은 모르는 이야기를 듣고 이해를 못 하면 자신의 부족함을 탓하는게 아니라, 화를 내더라. 설명하지 않는 걸 추천한다.”

무시당하고 싶지 않으면 셋(넷) 중 하나를 해야한다.

  • 아는 체를 하지 말거나,
  • 몰랐던 티가 안 나도록 빨리 배우거나,
  • 최소한 모르는 걸 부끄러워 하거나
  • (잘 알고 있는 사람들 눈에 안 띄거나)

단순 이미지 인식, 문자 인식 예제 같은 정형화된 데이터들 말고, 정말 Live 데이터로 모델 만들어보고, 뭔가 부족한 것 같아서 이것저것 고민해본 사람들이라면 누구나 공감할 것이라고 생각한다. 화려해보이는 모델들을 많이 아는게 중요한게 아니라, 통계학이라는 기초 체력이 훨씬 더 중요하다는 걸. 아마 저 위에 나오는 스토리들에 등장하는 공학 교수님들의 문제의 근본 원인은 통계학이라는 기초 체력의 부족일 것이다. Neural net에 Boltzman을 어떻게 활용해서, 계산 알고리즘에 어떤 Monte Carlo를 더 추가해서, 어떤 이미지 인식에서 몇 %의 추가적인 성과를 얻어냈다고 이야기하는 논문을 정리하는 블로깅을 하는게 아니라, 계속해서 수리통계학적인 관점을 강조하는 블로깅을 하는 이유도 여기에 있다. 어차피 기초가 없는 대형 건물은 사상누각에 불과하니까.

아래는 어딘가에서 본 댓글인데, 블랙박스 정도의 하찮은 지식과 급은 다른 이야기지만 어쨌건 이 글 주제랑 참 닮은 것 같아서 긁어왔다. (참고로 필자의 네X버 아이디는 p로 시작하지 않는다. 오해 ㄴㄴ)