학부 3학년 때의 일이다. 둘 중 하나가 되면 그 길로 가야겠다고 결심하고, 외국계 증권사를 노리는 친구들이 들어가는 경영학과 동아리 면접과 박사 유학 가려는 애들을 지원해주는 SK그룹 산하의 고등교육재단 장학생 시험을 봤다. 어쩌다 둘 다 되는 바람에 많은 고민을 했고, 당시엔 동아리를 거쳐서 서울에 있는 외국계 증권사 IBD 에 교포 or 외국 장기 거주 or 아버지 빽이 아닌 희귀별종 한국 토종인 주제에(?) 들어가게 됐는데, 그렇게 힘들게 들어가놓고는 정작 인간의 본질이 박사 유학을 가야되는 놈이었던지 그 술접대 생활, 겉만 화려한 문화를 못 버티고 런던행 비행기를 탔었다.

그 시절에 동아리 친구들이 항상 했던 이야기가, “넌 너무 어렵게 설명해, 니가 경제학 이야기를 하면 무슨 말인지 잘 모르겠어. 그냥 돈 벌었다 이렇게 쉽게 이야기하면 안 되는거야?” 라는 조언 or 불평이었다. 반면 경제학을 위시한 사회과학 전공하던 친구들은 “니가 핵심만 찝어서 설명해 준 덕분에 이번에 XX경제학 A 받았다. 내가 밥 살께.” 같은 응원 or 칭찬을 많이 해 줬었다.

겉 껍데기를 그럴듯하게 포장하기 바빴던 역겨운 뱅커의 삶을 뒤로하고 유학을 떠나기 전까지는 항상 “내가 정말로 현학적인 인간인가?”에 대한 깊은 의구심을 갖고 있었다. 스스로에 대한 그 자뻑(?)은 석사 공부하던 첫 해, 아니 첫 달에 산산조각 나버렸다. 현학적인 친구들이 프로그램 안에 얼마나 많았는데, 나 주제에 현학은 무슨 얼어죽을… 동아리 친구들이 깊이가 얕은 친구들이다보니 내 설명에 휙휙 등장하는 논리들을 따라오지 못했던 것이다.

“깊이가 얕은”이라는 표현에 학부 시절 동아리 친구들이 무시당했다고 화날 것 같기는한데, 필자가 수학 중에 제일 어려운 과목이라는 Stochastic Calculus를 학부 수학 출신이 아닌 석사 애들한테 그것도 non-native의 영어로 강의하고는 Best TA of the Year를 받았던 사실을 증거로 제시해보고 싶다. 그렇게 어려운 수학 과목도, 심지어 내 모국어가 아닌 언어로 설명했는데도, 단순히 Best TA 상이 아니라, 학교 105년 역사상 처음있는 Landslide 투표였다는 큰 칭찬까지 들었다.

한참 써놓고 보니 좀 자랑같아 보이는데, 요지는 깊이가 얕은 사람에게는 아무리 쉽게 설명해줘도 답이 없다는 거다. 너무 심하게 경영학과 친구들을 무시하는 것 같지만, 학부 1학년 때부터 Demand-Supply 함수로 사치재와 Giffen재를 논리적으로 증명할 수 있는 툴을 배우는 경제학과와 “가격을 올리면 잘 팔리는 경우도 있어요~ 재미있죠?”라는 마케팅 수업을 듣는 경영학과 사이의 지식의 깊이에서 나오는 격차는 어쩔 수 없는 부분이다.

 

데이터 사이언스 출강 요청들

기업들에서 데이터 사이언스 주제로 출강해 달라는 요청을 종종 받는다. 내 사업이 우선인 사람이라 어지간하면 거절하고, 보통은 조건을 내건다.

  • 깊이있는 지식을 이해할 수 있는 사람들을 대상으로 한 수업인가?
  • 배운 내용을 써 먹을 수 있는 빅데이터를 보유하고 있는가?

빅데이터가 없으면 당연히 무의미한 지식이기 때문이기 때문에 두번째 포인트는 쉽게 이해될텐데, 첫번째 포인트는 너무 “현학적”인거 아니냐고 반박을 하실 수도 있겠다. 나보다 잘난 사람 수도 없이 많으니 까불지말자는 생각이 항상 머리 속에 박혀 있기 때문에, 귀국 초기만해도 사람이 쬐끔 더 배웠다고 거만 떨지말고, 겸손하게 최대한 성심성의껏 가르쳐드리자고 생각했었다.

그런데, 딱 학부시절 경영학과 친구들한테 설명할 때랑 똑같은 상황이 벌어지더라.

개념 설명하고, 예제 코드 하나 던져주면 딴데는 못 쓴다고 불평하면서 정작 개념 이해도가 낮은 사람들에 대한 불평은 이미 여러번 썼으니 패스한다. 몇 번은 실리콘밸리에서 자주 언급되고, 수백억 ~ 수천억의 가치를 인정받는 기술들을 최대한 단순화시켜서 설명해줬는데, 너무 “현학적”이고, “이론적”이어서 실제로 적용하는데는 아무런 도움도 안 될 것 같단다. 갔던 기업체들마다 반응이 공통적이었다.

좀 허탈하고 씁쓸한 마음에, 학부 동기들이나 필자의 데이터 사이언스 수업에 찾아온 수강생 분들께 똑같은 설명을 다시 한번 시도해봤다. 보통 반응은 어떠냐고? “정말 저런식으로 Data Science가 쓰인다는 걸 알게되어서 깜놀했다. 단순히 이미지 인식에만 쓰이는 줄 알았는데 이런게 Data Science구나. 데이터를 그냥 Regression하는게 모델링이 아니구만. pabii에서도 이런식의 모델 쓰냐?” 같은 반응들이다.

(물론 깊이 얕은 수강생들이 “저걸 어떻게 써먹냐, 딱 코드로 복붙해넣을 수 있도록 해 줘야지” 같은 반응을 보이는 경우도 있다. 그럴꺼면 그냥 저급 코딩 강좌 찾아가실 것을 추천한다.)

몇 번 유사한 사건을 겪으면서 출강 요청에 대한 대답은 더더욱 확고해졌다. 경영학과, 컴퓨터 공학과 등등 수학과 통계학을 이용해서 모델링을 하는걸 학부 시절에 구경했던 적이 없는 분들에게 강의할 생각은 없다고 딱 잘라 말한다.

그 경영학과, 컴퓨터 공학과 출신들이 보통 Data Analyst나 Data Engineer라는 타이틀을 들고 필자의 출강 수업에 나타난다. 그 분들이 못 알아들을 가능성이 매우 높다는 걸 일찌감치 알고 있기 때문에 보통 강의 기획하시는 분들께 미리 엄포를 놓는다. 통계학 훈련이 된 분들 위주로 모으는게 피차간에 불편한 일이 적을꺼라고.

그런데 회사 일이라는게 그렇게 뜻대로 될리가 있으랴. 통계학 학부에 해당하는 과정을 정상적으로 마치고 대기업에 앉은 분들의 비율이 몇 프로일 것이며, 또 관련 전공 아니라고 엄포를 놔도 큰 상관없겠지라고 찾아오시는 분들도 많다. 그럼 그냥 시간만 날리는거다.

 

데이터 사이언스 컨설팅이 필요한 이유

얼마전에 강의 요청에 답변했던 이메일이다. (일부러 좀 수위가 쎈 걸 골랐다 ㅋ)

외람된 표현일지 모릅니다만, 개발 인력과 BI인력들로만 구성된 상태라면, Data Science 사업 모델의 시작은 커녕, 인력 구성도 안 된 상황이라고 판단됩니다. 그 분들은 Data Science 업무를 하시는 분들이 아닌데, Data Engineer, Data Analyst들만 모아놓고 Data Science 발전 방향을 설명해달라니요? Data Science 시스템 구축을 무슨 X 넣으면 Y 나오는 공학 계산 프로젝트처럼 오해하시는 것 같은데, 개발 인력과 BI인력들로는 기본 DB 만들고, 1차원 그래프 그리는 일 밖에 할 수 없습니다. 말씀주신 내용들은 데이터 사이언스 모델링을 어느정도라도 이해하시는 분들이어야 따라올 수 있는 지식입니다.

그 메일을 보내주신 회사는 일단 DB를 먼저 갈아엎어야되는 상황인데, 도대체 뭘 어떻게 갈아엎어야하고, 데이터를 어떻게 분석해야할지, 도대체 데이터 사이언스란 뭔지 감이 없는 상태에서 이런저런 “찌라시”들만 보고 들은 상태였다.

회사 상황에 대한 설명을 들으면서 “데이터 사이언스를 당신네 사업에 이렇게, 저렇게, 요렇게 적용하면 x년 안에 대박이 납니다~” 같은 (경영학과 친구들스러운) 강의를 요구하는 것 같아서 굉장히 불편했고, 자기들이 뭘 모르는지도 모르면서 강의 비용만 조금 쓰면 데이터 사이언스 전문 인력이 양성되는거라고 or 회사 발전 방향을 잡을 수 있을거라고 착각하는 것 같아서 안타까웠다. (무X하면 용감…. 아니 그만하자)

그 회사는 자기네 사업에서 뽑아낼 수 있을만한 데이터 목록을 추려내고, 그걸 어떻게 DB에 찍어넣을 수 있는지 고민해야하는 업무 1개, DB에 찍힌 데이터로 단순한 그래프성 “분석”을 할 수 있는 앵글을 고민하는 업무 1개, 그리고 그런 데이터를 가공해서 회사가 궁극적으로 하고 싶은 주제들을 Tackle 해보는 여러 시도를 하는 업무 N개가 눈 앞에 놓여있는 상태라고 생각한다. 앞의 2개는 지금 인력으로도 어떻게 해 볼 수 있겠지만, 뒤의 N개 업무는 미안하지만 그 분들의 영역이 아니다.

단순히 순차적으로 진행하면 되겠지라고 생각하시는 분들께 한 말씀 올리면, 처음에 데이터 목록을 추려내는 자리부터 이게 왜 필요한지를 따지는 Domain knowledge와 데이터 모델링 스킬을 갖춘 Data Scientist가 설계를 해야한다. 그렇게 필요할성 싶은 데이터를 추려내고, Data Engineer가 DB를 만드는 동안, 간단한 처리로 활용할 수 있는 Stream성 데이터를 보는 Data Analyst 팀이 Front-end 개발팀과 Visualization에 대한 고민을 해야한다. 그런 스테이지가 지나고나서야 Data Scientist가 뭘 해줄 수 있는지가 좀 더 구체화될 것이다. 데이터 사이언스라는게 단순하게 그래프 그려서 Insight 뽑아내는 일이 아니라, 데이터들을 가공해서 특정한 패턴을 잡아내는 작업이기 때문에, 데이터가 없는 상태에서 나온 아이디어는 모두 가설에 불과하기 때문이다.

말을 바꾸면, DB설계부터 뒤에 따라올 N개 업무에 대한 생각을 미리 깔고 시작해야한다. 나중에 Data Scientist 뽑으면 되겠지라고? DB 새로 만들어야되겠지라고 대답하겠다.

 

강의 vs. 컨설팅

기업에 출강 온 데이터 사이언스 강의들을 들어보신 분들은 입을 모아 공감하실 것이다. 보통 그렇게 강의 가신 분들이 깊이있는 모델링을 깊이있게 한 적이 없는 사람들이기 때문에 “A 모델을 쓰니까 85% 정도의 정확도를 확인할 수 있었습니다” 같은 수준의 강의만 하고 갈 것이다. 그래서 뭔가 좀 제대로 된 일처리를 해 보자고 데이터 컨설팅을 써 보면, 통계학 모델링으로 짬밥이 굵은 사람이 Domain Knowledge를 갖춘 사람과 이야기하면서 데이터로 찾아낸 내용들을 하나하나 확인해가는 절차를 거치며 모델을 쌓아 올리는게 아니라, “모델 A, B, C, D… Z를 써 본 결과 D 모델이 제일 좋으니까 앞으로 D 모델을 쓰십시오.” 같은 이야기만 할 것이다.

데이터 컨설팅으로 돈 버는 사업을 하고 있지 않았기에 망정이지, 그게 밥 줄이었으면 저런식으로 데이터 사이언스 이미지 망치고 시장 망가뜨리는 사람들에게 느끼는 분노는 지금보다 더 했을 것이다.

왜 이런 일이 발생할까? 왜 깊이도 없는 사람들이 저렇게 저가 수주로 데이터 사이언스 시장을 망치는 상황이 지속되는걸까?

가장 큰 이유는 “갑”들이 “바보”이기 때문이다. “갑”들이 똑똑하면 “을”이 절대로 대충 일을 할 수가 없다. 당장 결과물 발표 때 질문이 폭풍같이 쏟아질텐데?

데이터 사이언스라는게 결국은 통계 모델링의 업그레이드 판이고, 통계학 내공이 꽉 들어찬 사람들에게 의뢰를 해야하는데, 자기 내공이 충만한 사람이 그런 저가 프로젝트에 뛰어들기에는 너무 재능이 아깝고, 가격을 높여 부르면, 이걸 무슨 리모델링 건축 프로젝트인 줄 아는 “바보 갑”들이 돈 적게 쓰고 비슷한(?) 결과물을 얻으면 된다고 생각하는 것이다.

집 리모델링에 쓴 돈 차이가 결과물에 어떤 영향을 미치는지는 비전문가인 필자가 할 말이 아니므로 패스하지만, 데이터 사이언스 모델링은 필자의 눈에 정말 0과 1의 게임이다. “돈을 싸게하겠다고 0의 결과물을 얻을래, 아니면 돈 좀 쓰고 1의 결과물을 얻을래”의 게임이라는 뜻이다. 마치 썩은 대들보를 100만원주고 살래, 30년은 끄떡없을 고급 대들보를 500만원주고 살래라는 질문을 받았을 때, 요즘 Data Science 적용해 보겠다는 시장 상황이 내일모래 썩어 부스러질지도 모르는 썩은 대들보를 고르는 모습같아 보인다. 조금씩 배워서 실력을 올리겠다는 관점이 이해가 안 되는건 아니지만, 금융권에서 검증 안 된 어설픈 모델 쓰는거 본 적 있나? 0하나만 빼거나 더해도 회사 망할지도 모르는데?

건물도 설계도가 잘못되었으면 보수 하자 공사가 아니라 새로 지어야한다. 위에 언급했던 그 회사는 어설픈 Data Scientist가 DB 설계를 이끌고나면 데이터 모델링을 다시해야하는 것은 차치하고, 나중에 DB를 처음부터 다시 만들어야할 수도 있다. 회사들이 DB 새로 엎는다는 소리들 자주 들어보지 않았나? 다시 만들어야한다는 이야기 해 준 곳 참 많은데, 개발자들 표정 썩어들어가더라. 완성된 건물에서 썩은 대들보 빼고 새 대들보 넣는데 집 형태는 그대로 유지하면서 작업하려면 얼마나 힘들까?

 

나가며 – 진짜 Data Science

학부 동기 중에 계량경제학은 커녕 선수과목이었던 경제 통계도 겨우 낙제점을 면하고 졸업한 녀석이 있다. 매번 자기가 통계학과보다 “데이터를 잘 본다”고 주장하는데, 미안하지만 필자의 눈에 그 친구는 딱 경영학과 수준으로 데이터 “분석”이라는 걸 바라보고 있다. 매출액 그래프 그려놓고, “남들은 매출액만 보는데 나는 마진율도 보면서 무조건 외형 성장이 좋은게 아니라는 걸 증명했다, DuPont analysis로 마진율이 나빠진 원인이 무엇인지 구체적으로 분석해볼 수 있었다”고 주장하던 경영학과 친구들 수준.

빅데이터 모델링이라는건 그렇게 데이터를 “잘 본다”와는 그닥 큰 관련이 없다. 이 동네는 수학과 통계학을 이용해서 모델링을 하는 동네니까.

수학 & 통계학 기반이 아니라 직관 기반의 Data Analyst가 Data Scientist 업무를 하는 건 불가능하다. 수학 공부 안 한 경영학과는 수학 쓰는 Hard Science 전공 박사 학위에 Admission을 받을 수가 없다. (반대의 경우는 매우 자주 일어난다.) 제발 좀 Data Analyst 팀한테 Data Science 강의해주면 우리회사 Data Science 역량이 비약적으로 올라가는거 아니냐고 묻지 말아주셨으면 좋겠다. 그런 질문하지 마시고, 데이터 모델링 할 줄 아는 Quantitative 대학원 출신 뽑거나, 실력있는 외주 컨설팅 업체 부르시는게 어떨까?

요약: 비트메인 IPO에 관한 저희의 2018년 8월 보고서에 이어 2부에서는 몇일 전 공개된 비트메인 IPO 투자 설명서를 통해 새로운 정보를 살펴보겠습니다. 새로운 문서 즉, 투자 설명서는 비트메인이 2018년 2분기에 미화 3억 9천 5백만 달러의 순손실로 최근 막대한 손실을 내고 있다는 의혹이 사실임을 확인시켜주었습니다. 이 문서를 통해 낭비되는 생산 비용의 규모도 밝혀졌는데, 지난 18개월 동안 실패한 칩에 미화 약 5억 달러가 사용되었습니다. 반면, 이 문서는 비트메인이 2018년 8월 투자자들로 부터 미화 4억 4천 2백만 달러를 성공적으로 모금하며 대차대조표를 탄탄하게 강화했다는 사실을 보여주며 동시에 이는 IPO를 더 가깝게 만듭니다. 이것은 비트메인과 경쟁사들이 관심을 가져야 할 좋은 소식입니다.

2018년 6월까지의 손익계산서

비트메인은 투자 설명서를 통해 이전보다 1분기치 정보를 더 제공하며 2018년 6월까지의 재무 정보를 공개했습니다. 새롭게 공개된 손익계산서는 비트메인이 최근 손실을 입고 있다는 (판매가를 낮추면서) 저희의 추측을 사실로 확인시켜주었습니다. 아래의 표가 보여주듯 비트메인은 2018년 2분기에 미화 3억 9천 5백만 달러의 순손실을 기록했습니다. IPO 투자 설명서는 2018년 상반기의 순이익이 미화 7억 4천 2백만 달러임을 보여주지만, 저희는 “유출된” 사전 IPO 문서를 본 이후 비트메인이 1분기에 미화 11억 3천 7백만 달러의 순이익을 기록했고, 2분기에는 손실이 발생했음을 알 수 있었습니다.

2015년 2016년 2017년 2018년 1분기 2018년 2분기
판매량 137.3 277.8 2,529.3 1.896.4 949.1
총 이익 71.5 158.1 1,447.1 1,137.3 (107.3)
순 이익 48.6 118.9 1,249.4 1,137.7 (395.0)

(출처: 비트메인 IPO 투자 설명서, BitMEX Research)

그러나 손실은 단지 한 분기 동안의 기간과 관련이 있을 뿐이며, 사업 환경은 언제든 변할 수 있습니다. 1분기 동안의 손실은 특히 암호화폐 마이닝과 같은 변동성 높은 사업의 장기 투자자들에겐 심각한 걱정거리가 아닐 수도 있습니다. 채굴기 가격이 낮은 곳에서 제자리 걸음 중이고 Q3 모델이 손실을 발생시키고 있으므로 제자리로 돌아가는 것은 어려운 일일지도 모릅니다. 그러나 저희는 비트메인이 수익성 회복을 위해 제품 가격을 올릴 필요가 있다고 생각합니다.

이 문서에서 비트메인은 손실을 야기할 수 있는 잠재적인 전략적 실수를 인정하고 향후 이러한 문제를 어떻게 해결할 것인지 계획하고 있습니다:

2018년 초, 저희는 2018년이 암호화폐 마이닝 하드웨어 분야의 엄청난 시장 성장율을 기록할 한 해가 될 것이라 기대했습니다. 왜냐하면 2017년 4분기 이후로 암호화폐 가격이 줄곧 상승세였기 때문입니다. 그래서 저희는 엄청난 판매량을 기대하며 생산 파트너사에게 대량 주문을 요청했습니다. 그러나 2018년 상반기에 암호화폐 시장 가격의 엄청난 시장 변동성이 있었습니다. 이러한 변동성의 결과 암호화폐 마이닝을 통한 예상 수익은 부정적인 영향을 끼쳐 마이닝 하드웨어의 판매량은 줄어들고 재고 물품은 늘어났으며, 2018년도 상반기 고객들의 선행 투자는 감소했습니다. 앞으로 저희는 지속가능한 사업 성장률과 건전한 현금 유동성 포지션을 확보하기 위해 적극적으로 사업 성장 전략과 재고품 그리고 암호화폐 자산 규모 간의 균형을 맞추기 위해 노력할 것입니다. 이를 통해 저희는 자금 조달과 적절한 유동성 수위를 유지하기 위한 생산 계획을 조정할 수 있을 것입니다.

(출처: 비트메인 IPO 투자 설명서, BitMEX Research)

현금 투입

2018년 2분기의 대차대조표는 새로운 투자자들로부터의 현금 투입 (cash injection)으로 인해 눈에 띌 만큼 개선되었습니다. 2분기 순 현금 잔고는 미화 1억 5백 9십만 달러에서 미화 3억 3천 4백만 달러로 증가했습니다. 투자자들이 현금 부족 위기에 직면하면서 회사를 구해낸 것입니다. 아래의 표가 보여주듯 비트메인은 3분기에 현금 포지션이 개선되면서 훨씬 더 많은 자금을 모금했습니다.

비트메인의 주식 발행

일시 모금액
2017년 8월 미화 5천만 달러 (US$50.0m)
2018년 6월 미화 2억 9천 2백 7십만 달러 (US$292.7m)
2018년 8월 미화 4억 4천 2백만 달러 (US$442.0m)
총액 미화 7억 8천 4백 7십만 달러 (US$784.7m)

(출처: 비트메인 IPO 투자 설명서, BitMEX Research)

재고

비트메인의 재고는 2018년 1분기 미화 12억 4천 3백 8십만 달러에서 2분기 미화 8억 8천 7백 2십만 달러까지 감소했습니다. 이러한 현상은 주로 자본 잠식에 의해 발생합니다. 2018년 상반기에 비트메인은 미화 3억 9천 1백 3십 달러의 재고 감가상각을 겪었습니다. 따라서 과잉 생산과 관련된 문제의 상당 부분이 이미 진행되었을 수도 있습니다.

TSMC에 대한 선납금 & 현 마이닝 산업의 전망 

우려스럽게도 TSMC에 대한 선납금 상황은 1분기 잔고가 미화 6억 6천 6백만 달러에서 2분기에 미화 6억 5천 2백 9십만 달러로 약간 감소한 상태에서 운영 자본까지 소모되며 실질적으로 해결되지 못했습니다. 이는 최근 출시된 비트메인의 신제품 7나노미터 마이닝 제품과도 관련이 있을 수 있습니다. 비트메인은 공식적으로 이 제품이 시장에서 긍정적인 반응을 얻었다고 발표했습니다. 반면, 좋은 반응을 얻지 못한 칩들은 발표하지 않았기 때문에 이 제품이 결과적으로 성공을 거둔 제품이 된 셈입니다. 이는 비트메인을 험난한 비즈니스 환경으로부터 구출해냈지만, 회의론자들은 다음 사항들을 지적합니다:

  • 7나노미터 프로젝트 또한 실패일 가능성이 있습니다. 비트메인 측이 압박에 시달려 성공이라고 발표한 것 뿐입니다. (저희 비트멕스는 이러한 가능성은 매우 낮다고 생각합니다)
  • 7나노미터 칩으로 생산 방향을 바꾸는 것은 매우 어려운 일이며, 7나노미터 칩이 시장에서 14 혹은 10나노미터 제품만큼의 신뢰도를 얻으려면 약 12개월에서 18개월이 걸립니다
  • 7나노미터 수준의 칩을 생산하는 데는 매우 많은 비용이 들며, 비트멕스의 경쟁사인 Innosilicon, Ebang, Bitfury사는 몇 주 전 출시된 신제품에 더 저렴하고 큰 조각을 장착함으로써 비트메인을 앞질렀습니다.

실패한 칩과 관련된 자본 잠식 

이전 보고서에서 말씀드렸듯 “비트메인은 효율성 높은 3개의 비트코인 마이닝 칩 출시에 심혈을 기울였습니다. 각각 16나노미터, 12나노미터, 가장 최근인 2018 3월에 출시된 칩은 10나노미터였습니다. 미화 수억 달러의 개발 비용을 쏟아부었지만 3개의 칩 모두 좋은 반응을 얻지 못했습니다.” 문서에 적힌 이 사실은 저희의 평가가 정확했고 이 실패 비용의 규모가 이제야 결정될 수 있음을 드러냅니다.  

TSMC사 선납금과 재고 감가상각 관련 자본 잠식 대비 공급액

기간 금액 (가치)
2017년 미화 2억 4천 4십만 달러 (US$240.4m)
2018년 상반기 미화 2억 4천 2백 7십만 달러 (US$252.7m)
총계 미화 4억 9천 3백 1십만 달러 (US$493.1m)

(출처: 비트메인 IPO 투자 설명서, BitMEX Research)

위의 표는 새로운 칩을 생산하는 것이 얼마나 위험하고 잠재적, 경제적으로 많은 비용이 드는 일인지를 보여줍니다. 비트메인은 몇 번의 실패에 대한 댓가로 엄청난 비용을 지불했습니다

비트코인 캐시와 암호화폐 보유 현황 

저희의 이전 보고서와 비교하여 비트메인 투자 설명서에는 중요한 정보가 공개되지 않았으며, 개별 암호화폐 보유액 (individual holdings by coin) 또한 공개되지 않았습니다. 대차 대조표 상 암호화폐의 가치는 1분기 미화 11억 7천 2백 4십만 달러에서 2분기 미화 8억 8천 6백 9십만 달러로 하락했습니다. 비트메인은 2분기에 미화 1억 2백 7십만 달러에 달하는 암호화폐 보유액 손실을 공개했고, 손실은 3분기에 더욱 가속화될 것으로 보입니다.

결론 

이번 투자 설명서를 통해 저희는 앞서 추측했던 비트메인이 저지른 실수의 재정적 영향력을 수치화 할 수 있었습니다.

  • 비트메인은 실패한 칩 (혹은 재고 감가 상각)과 관련해 미화 5천만 달러의 생산 비용 손실을 입었습니다
  • 비트메인은 긍정적인 현금 포지션을 유지하기 위해 새로 유입된 투자액인 미화 7억 8천 4백 7십만 달러에 의존하고 있습니다
  • 재고가 너무 많아 판매가를 낮추면서 비트메인은 최근 분기에 미화 약 4억 달러의 순손실을 낳았습니다

분명 이러한 실수의 대부분은 피할 수 있었던 것들입니다. 하지만 실제로 비트메인이 보여준 건 그들이 위험을 감수하고 있다는 것입니다. 만약 비트메인이 이러한 위험성을 감수하지 않았다면, 지난 몇 년 동안 미화 16억 1천 7백만 달러에 달하는 주주지분을 구축할 수 없었을 것이며 2017년 가장 수익성 높은 최대 규모의 마이닝 업체가 될 수 없었을 것입니다.

저희 모두는 IPO가 그리 먼 얘기가 아니며, 몇 달 안에 일어날 수 있는 일이라는 것을 이제 알고있습니다. 비트메인은 IPO를 통해 상당한 현금 운영자금을 확보할 수 있을 것입니다. 비트메인의 경쟁사들은 최근 보다 효율적인 마이닝 신제품을 출시하는 데 성공했지만, 비트메인의 새로운 대량 현금 보유고는 걱정거리가 될 것입니다. 비트메인이 잉여 현금 흐름 (free cash flow)으로 부터 이를 생성했기 보다는 투자자들의 자금으로 얻어진 것임에도 불구하고 말입니다.

(IPO의 타임라인 혹은 판매 예정인 주식의 수는 본 문서에 공개되지 않았습니다)

2018년 9월 26일 12:00 UTC부터 12월 알트코인 / 비트코인 선물 계약 상품 지수에는 비트멕스 참조 가격의 안정성을 강화하기 위해 바이낸스 (Binance)와 크라켄 (Kraken)의 최종 가격이 (가능한 경우) 포함될 예정입니다. 현재 알트코인 / 비트코인 9월 선물 계약 상품에는 만기일까지 기존 지수가 그대로 반영됩니다.

적용 대상 상품

ADAZ18

BCHZ18

EOSZ18

ETHZ18

LTCZ18

XRPZ18

적용 대상 상품의 지수 변경

.BADAXBT의 지수는 (0.5 * 비트렉스 + 0.5 * 바이낸스)로 계산됩니다.

.BBCHXBT의 지수는 (⅓ * 폴로닉스 + ⅓ * 크라켄 + ⅓ * 바이낸스)로 계산됩니다.

.BEOSXBT의 지수는 (⅓ * 폴로닉스 + ⅓ * 크라켄 + ⅓ * 바이낸스)로 계산됩니다.

.BETHXBT의 지수는 (⅓ * 폴로닉스 + ⅓ * 크라켄 + ⅓ * 바이낸스)로 계산됩니다.

.BLTCXBT의 지수는 (⅓ * 폴로닉스 + ⅓ * 크라켄 + ⅓ * 바이낸스)로 계산됩니다.

.BXRPXBT의 지수는 (⅓ * 폴로닉스 + ⅓ * 크라켄 + ⅓ * 바이낸스)로 계산됩니다.

소수 (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로 시작하지 않는다. 오해 ㄴㄴ)

 

요즘 데이터 사이언스를 독학으로 하고 있는데, 혹은 수업에서 들은 것보다 더 깊은 내용으로 도전해보고 싶은데 좋은 교재를 추천해줄 수 없냐는 요청을 많이 받는다. 불행히도 그런 질문을 하시는 분들 대부분이 수학 & 통계학을 필자 스타일로 공부하신 적이 없는 분들이다. 당장 데이터 사이언스 책을 추천하기 전에 수학과 통계학을 추천해야할 판국인 셈이다. 그 중에는 데이터 사이언스 공부를 하는 이유가 최소한 어떤 스토리가 돌아가고 있는지는 알고 싶은 분도 있을 것이고, 또 컴퓨터 과학 (컴퓨터 공학, 전자 공학), 산업 공학, 경제학 등등의 유사학문을 하신 분들이 수리통계학을 다 까먹었다가 직장 생활 중에 복구시키고 싶은 경우도 있을 것 같아, 아래에 짧게나마 괜찮아 보이는 교과서들을 추천한다.

참고로 많은 교과서들이 대학원 수업 교재 수준으로 어려워서 읽기를 포기하고 싶어지거나, 반대로 지나치게 코드 Copy & Paste 위주여서 추천할 교재 구하기가 쉽지 않다. 최근 읽은 책 중 Kalman Filter 설명하는 책에서 저자가 비슷한 고민을 했던 후기를 봤다.

There are classic textbooks in the field, such as Grewal and Andrew’s excellent Kalman Filtering. But sitting down and trying to read many of these books is a dismal experience if you do not have the required background. Typically the first few chapters fly through several years of undergraduate math, blithely referring you to textbooks on topics such as Itō calculus, and present an entire semester’s worth of statistics in a few brief paragraphs. They are good texts for an upper undergraduate course, and an invaluable reference to researchers and professionals, but the going is truly difficult for the more casual reader. Symbology is introduced without explanation, different texts use different terms and variables for the same concept, and the books are almost devoid of examples or worked problems. I often found myself able to parse the words and comprehend the mathematics of a definition, but had no idea as to what real world phenomena they describe. “But what does that mean?” was my repeated thought.

 

1. 선형대수

가장 좋은 학습법은 이과 1학년 애들이 듣는 선형대수학 수업 교실에 앉아서, 같은 교재로 증명도 따라가고, 숙제로 제출하고, 시험도 치면서 온 몸에 선형대수학을 내재화시키는 것이다. 솔직한 심정으로는 그렇게 한 학기를 보냈다고해서, 그 수업에서 A+를 받았다고해서 선형대수학 마스터라는 칭호를 달아주고 싶은 생각도 없을만큼 부족하다.

하지만, Top class의 Data Scientist가 목표가 아니라면 굳이 그렇게까지 깊에 선형대수학을 알아야할 것 같지는 않고, 또 좋은 수학 교과서는 대부분 영어라서 힘들테니 번역이 잘 된 직장인 버젼 책 하나를 추천한다.

프로그래머를 위한 선형대수

링크를 따라가보면 온라인 버젼을 확인할 수 있다. 이 책을 기획하셨던 출판사 담당자 분과 한번 이야기를 나눈 적이 있었는데, 책의 수준에 자신감이 넘치기 때문에 온라인으로 공개해도 결국은 책을 살 것이라고 생각한다고 하셨다. 저 책이 잘 팔리는 것과 필자의 주머니 사정에는 아무런 관계가 없지만, 그 담당자 분의 말씀에 99.99% + 0.01% 공감할 수 있을만큼 좋은 책이다.

책 이름에 “프로그래머”를 넣어놓은 이유는 아마 책을 좀 잘 팔기 위해서인 것 같고, 정작 책 내용 중에 프로그래머를 위한 배려는 생각보다 많지 않다. 굳이 따지면 “‘수학을 잘 모르지만 알아야하는 사람들을 위한‘ 선형대수”인 책인데, N차원으로 확장되는 일이 허다한 선형대수의 개념을 2, 3차원의 그래프를 이용해서 굉장히 쉽게 설명을 해 놨다. 실제로 머신러닝을 현장에서 활용할 때, 물론 대학원 수준의 고급 수학 지식을 갖고 있으면 좋겠지만, 최소한 위의 책에서 등장하는 개념을 쉽게쉽게 소화할 수 있어야 Professional하게 모델링을 할 수 있을 것이라고 생각한다.

 

2. 회귀분석

선형대수학을 어느 정도 알고 있다면, 0차원은 점, 1차원은 선, 2차원은 평면, 3차원은 공간 같은 개념을 쉽게 받아들이게 될 것이다. 그런 측면에서 학부 기초 통계학은 1개의 평균, 1개의 분산을 찾는 0차원의 지식이고, 회귀분석은 데이터를 설명해내는 직선을 찾는 1차원의 지식이라고 보면 된다. (참고로, 학부 수준 회귀분석과 같은 논리를 확장해서 평면, 공간을 찾아내는 작업도 대학원 회귀분석 때 배운다.)

따라서 회귀분석을 이해하려면 기본적인 통계학과 선형대수를 이해해야한다. 필자는 경제학과에서 회귀분석을 공부하다보니, 계량경제학이라는 이름의 수업만 들었다. 딱히 통계학 전공자 분들이 어떤 회귀분석 책을 보시고, 공학 전공자 분들이 유사한 내용을 어떤 책으로 배우시는지 잘 모르기 때문에 잘 모르는 책들을 함부로 추천할 수는 없고, 경제학 side에서 회귀분석을 공부하겠다는 분께 가장 괜찮은 교재는 (전) 고려대학교 경제학과의 김창진 교수님 강의 노트다. (모교 교수님들 죄송합니다 ;;;;)

대학원 유학 중 고대 출신인 친구들이 갖고 있어서 봤던 노트 필기인데, 공부 좀 했다고 까불며 모교의 석, 박 대학원 계량경제학 수업 기출문제들을 웃으며 풀 수 있게 된 시점에도 여전히 존경심이 우러나는 노트였었던 걸로 기억한다. 수식과 해석, 직관과 응용이 매우 높은 수준으로 정리되어 있던데, 그 노트에 있는 회귀분석을 다 이해한다면 어지간한 머신러닝에 쓰이는 모든 수학 & 통계학이 하나도 어렵게 느껴지지 않을 것이라는데 매우 강한 확신을 갖고 있다. (실제로 계량경제학 잘하는 경제학과 출신들이 필자의 수업을 “편안하게” 듣는다 ㅋㅋ)

어디서 구하냐고? 고대 출신이 아니라서 잘 모르겠는데, 친구들 말에 따르면 고대 안암 캠퍼스 정경대 쪽에 있는 후문 복사집들에서 구할 수 있단다. 최근 수강생 한 분이 거기서 복사본을 구하셨다고 들었다.

그런데, 학부 고학년 수준의 통계학 기반 지식이 전혀 없이 독학하시는 분들이 그 노트를 보고 뚝딱 이해하기는 좀 어려울 것 같다. 요즘 뒤져보니 Youtube 동영상 중에 계량경제학 수업들이 괜찮은게 몇 개 있던데, 그 수업들 좀 들으면서 보조 교재 정도로 쓰시는건 어떨까?

(출처: 9gag.com)
– 자매품: “머신러닝에 수학 & 통계학이 필요한가요?”,
“개발 경력 X년인데, 데이터 사이언티스트 될 수 있나요?”

 

3. 머신러닝

우선 대단히 미안한 말이지만, 국내에 나와있는 거의 대부분의 ‘머신러닝 쉽게 따라하기’ 같은 종류의 책들은 불쏘시게 종이 이상의 가치가 없다. 너무 대담한 표현인가? 필자도 자주 유사한 기획을 가진 출판사들에게서 연락을 받기 때문에, 어떤 생각을 갖고 저런 책들을 기획하고 있는지, 그리고 정작 그런 기획에 팔려서 책을 쓰는 사람들이 어떤 사람들인지 상당히 많은 정보가 있다. 결국 팔려야된다는 경제논리를 갖고 출판되는 책이, “수학”이라는 장벽을 달고 나오면 아무래도 출판사들의 호응을 받기가 쉽지 않은게 냉정한 현실이다. 그런데 정작 머신러닝을 수박 겉핡기가 아니라 제대로 공부하겠다고 위의 수학 & 수리통계학 지식을 쌓는 공부를 했는데, 이걸 좀 활용해서 머신러닝 이해도를 깊게하면 좋지 않을까?

아래의 2개 책을 추천한다.

ISLR, 따라하며 배우는 데이터 사이언스

사실 이미 추천했던 책인데, 입문자에게 다른 더 좋은 책을 아직 딱히 만나본 적이 없다. 혹시나 이미 두 권 다 봤는데, 아직 수준이 낮은 것 같고, 더 높은 수준을 원한다고? 꼭 저 위의 두 권이 아니더라도, 서평 중에 “수학이 너무 많이 나와서 어려웠다”는 류의 평이 들어가 있는 머신러닝 교과서라면 대부분 괜찮은 책일 것이다. 반대로 “코드가 환상적으로 잘 돌아간다”와 같은 평이 달려있으면 무조건 멀리해라. 당신을 개발자로 만들어주지 Data Scientist로 만들어줄 책은 아니니까.

데이터 사이언스 수업 커리큘럼을 짜면서, 계속 강의를 하면서 항상 부족한 지식을 더 채워넣어야 수강생 분들께 많은 내용을 전달해드릴 수 있다는 생각으로 나름대로 시간을 내서 공부를 계속하고 있다. 그런데, 내용의 깊이가 더해질수록 수학적인 훈련이 없으면 이해하기 어려워 보이는 자료들이 참 많다. (수학 공부 좀 많이할껄ㅠㅠ) 수업에는 이해한 내용을 바탕으로 최대한 수식을 개념과 직관과 그림으로 바꿔서 설명하고 있지만, 누군가의 필터를 거치지 않고 직접 이해하고 싶은 욕구가 있으신 분들은 더더욱 수학 지식이 간절하지 않을까 싶었다. 글 첫머리에 언급한 Kalman Filtering 교재 저자의 후기에 나왔던 저 고민은 학부 고학년 수준을 넘어간 지식을 습득하고 활용하려는 사람들 모두가 느끼는 공통적인 “괴로움”이 아닐까?

 

나가며 – 실력있는 Data Scientist는?

마음에 드는 개발자 뽑기가 참 어렵다. 돈 많이 주면 실력있는 개발자 구할 수 있는거 아니냐고들 하는데, 돈 문제는 둘째고, 그 전에 실력있는 개발자에 대한 기준도 사람마다 참 다른 거 같다. 대부분의 개발자들은 “뭘 빨리 만들어낸다”, “빨리 코드를 친다”, “복잡한 걸 구현해낸다”는 쪽에서 개발자의 실력을 따지는 것 같은데, 짧은 기간 개발자를 설득, 이해, 공유하는 시간을 거치면서 느낀바는, 비지니스의 스토리를 잘 이해하고 처음 개발하는 순간부터 어떤 스펙으로 접근해야할지 큰 그림을 그릴 수 있는 개발자들이 진짜 “실력있는” 개발자인 것 같다.

같은 맥락에서 괜찮은 Data Scientist 는 코드를 잘 치거나, 수학을 잘 하는 사람이 아니라, 필요한 이론을 적재적소에 잘 활용할 수 있는 “머리가 말랑말랑”한 사람이 아닐까 싶다. 위에서 언급한 책들에 있는 내용들은 굳이 따지자면 (기초) “이론”이다. 수학(Math)과 통계학(Stat)은 과학(Science)을 하기 위한 “언어”니까. 저런 언어에 익숙해지고, 그걸 머신러닝이라는 과학을 이해하는데 쓸 수 있게 되었다고 끝나는 것이 아니다. 정말 “실전”에서 지식이 쌓이려면 어떤 데이터는 어떻게 전처리를 하고, 그래서 무슨 모델링을 해 볼 수 있겠다는 그림을 머리 속에 그릴 수 있어야 한다. 그런 “그림”이 지식의 범위가 성장하면서 점점 다르게 그려지기는 했지만, 필요한 상황에 맞게 적절한 모델을 만드는건 정말 힘든 일이더라. 공부하시는 분들 모두의 건투를 빈다.

 


Full disclosure. 위에서 추천한 그 어떤 책도 저와 개인적인 관련이 없음을 밝힙니다. 다만 언젠가 “따라하며 배우는 데이터 과학” 책을 쓰신 권재명 박사님을 뵙게되면 제 홍보로 책 좀 팔렸으면 밥 한끼 사달라고 부탁은 드리고 싶습니다 ㅋㅋ

몇 달전의 일이다. 경제학 석사까지 공부하고 모 통신사에서 Data Analysis 팀에 재직하시는 분이 데이터 사이언스 강의를 들으러 오셨다. 수업이 진행되면서 수식 하나 놔 두고 여러가지 직관을 설명하고, 그게 데이터 사이언스에 어떤 방식으로 적용되는지, 어떤 주의 사항이 있는지를 계속 설명했더니만, “유학가면 보통 이렇게 수식 속에 숨겨진 직관적인 내용을 파보는 교수님들이 많냐?”고 질문하시더라.

학부 시절, 혹은 고교 시절로 돌아가보면 아무래도 지식 흡수에 바쁘다보니 수식 받아적기 바쁘고, 선생님의 생각을 따라가기 정신 없는 수업만 들었던 것 같다. 숙제들도 계산 위주로 나오고, 시험전날 벼락치기 공부하기 전까지는 특별히 논리를 따져가며 공부했던 적이 드물었던 것도 사실이다.

그렇게 교육받아놓고 언제부터 직관, 적용, 주의 사항  같은 부분에 신경쓰는 사람이 되었는지 곰곰하게 생각해보다가, 문득 경제학 석사 들어갔던 첫 해의 쓰리쓴 공부가 떠올랐다 ㅠㅠ

 

1. 문제를 풀어나가는 방식

그 동네라고 수업 내내 직관을 계속 강조하는 수업만 하는 건 아니었다. 우리나라에서 듣던 수업이랑 별 차이가 없었는데, 정작 시험 문제는 참 요상(?)하게 나오더라. 아래를 보자.

석사 때 봤던 기말고사 문제다. N 명의 학생이 T번의 시험을 친 결과값을 바탕으로 학업 성취도 평가를 하는 작업인데, 학업 성취도가 제대로 측정되었는지 확인하려고 데이터에 Jump in 하기 전에 혹시 학생들이 “베끼기”를 하지 않았나 확인하겠다는 작업이다.

보통의 한국식 교육을 받은 사람이면 위의 “구질구질”한 설명은 과감하게 패스하고, 데이터가 N개가 있고, y_i가 y_(i-1)이랑 상관관계가 있을지도 모르는 경우군. 저기 있는 theta 때문에 계산이 복잡해질텐데, i랑 t가 다 있는 패널 데이터니 t = 1 ~ T 까지 평균을 내서 t 항목을 없애버리자… 같은 생각을 하고 접근할 것이다.

시험 문제를 풀어나가는 측면에서는, 빨리 풀고 금메달로 시험장을 나왔다고 자랑하기 위해서는 매우 타당한 전략이다. (남들은 손도 못 댄걸 나만 풀었다 정도여야 자랑할만하지…. 에효~ 그 땐 금메달이라고 왜 그렇게 까불었을꼬 ㅋㅋ)

그런데, theta 값이 무슨 뜻인지 한번이라도 고민해본적이 있나?

애시당초 theta 를 왜 모델에 넣어놨는지는 이해가 되는가?

그 전에 i와 i-1로 식을 만들어 놨는데, 왜 하필 몰래 훔쳐보기 하는 이야기를 i, i-1로 표현된 식으로 묶어냈을까?

당연하겠지만, 처음 저 문제를 시험장에서 봤을 때는 이런 생각을 할 수 있는 사람이 아니었다. (바보였다 ㅠㅠ)

 

2. 문제를 설계하는 방식

학생 배치

박사들어가서 TA도 하고, 시험문제도 내고, 채점도 하면서 남들의 지식 수준을 테스트해야하는 자리에 가니 갑자기 저 문제가 다르게 보이더라. 몰래 훔쳐보기 하는 학생들이 있어서 시험 점수에 실제 실력이 제대로나타나지 않는 경우는 얼마든지 있을 수 있다. 그걸 어떻게 통계 모델로 추려낼 수 있을까?

저 문제에서는 자기 앞 자리 학생의 문제만 볼 수 있다고 단순 가정을 잡고, i와 i-1로 식을 세웠다. 혹시 자기 옆 자리 학생의 문제만 볼 수 있다면? 시험장에 10명씩 앉을 수 있다고 하면 i-10인 학생과 i+10인 학생들의 점수가 i번 학생의 점수에 영향을 줄 수 있다는 식으로 변형하면 된다.

문제 3번째 줄에 Random 이라는 단어가 보이는가? 학생을 random 하게 배치하지 않고, 시험 점수 높은 순 or 낮은 순 등으로 특정 조건에 따라 배열했으면 y값 추정 오차도 당연히 영향을 받을 것이다. 통계학은 언제나 오차가 모델을 잡아먹는 경우를 피하기 위해서 최대한 랜덤 오차 형태로 모델을 만들어낸다.

학생 배치와 Random 이라는 두 아이디어가 문제 속 모델링의 곳곳에 이미 숨겨져 있는 것이다.

 

Theta 값

위에 Theta_t는 왜 넣었을까? 왜 저 변수는 시간에만 영향을 받고, 학생들 특징에는 영향을 안 받을까? 보통 패널 데이터를 만들면 사람의 특징을 잡아내는 변수를 추가하는 경우는 있어도, 시간적인 변화에 따르는 변수를 정의하지는 않는다.

theta_i가 아니라 theta_t인게 정말 이상하다고 생각하고 있었는데, 문제 하단에 theta_t는 time-invariant effect라고 적혀있더라. Time-invariant면 시간에 따라 값이 바뀌면 안 되는데???

교수님이 시험 문제를 잘못내신거다. 시험 당일 학생들 몇 명이 질문하니 결국 문제가 수정되었던 기억이 난다.

자, 그럼 theta_t랑 theta_i는 각각 무슨 이야기를 하고 있는걸까?

theta_t라면, 학생들간의 차이는 고려하지 않고, 시간이 지나면서 값이 바뀌는 경우를 말한다. 예를들면 시험 평균 점수 Swing이 엄청나게 심하다고 쳐 보자. 성취도를 잘 측정하는 시험 점수를 기대했는데, 시험 때 마다 들쭉날쭉하니 쉽게 판단하기 어렵다.

theta_i라면, 시험 마다 평균 점수 Swing은 고려치 않고, 학생들마다 다른 점수 레벨을 잡아내는 변수가 된다. 좀 더 정확하게는 그 i번째 학생의 (숨겨진) 진짜 실력을 잡아내는 변수라고 보면 된다. T번의 시험 동안 학생들 전체의 평균 점수가 비슷했다면, 그 i번째 학생도 항상 비슷한 점수를 받았을텐데, i-1번째 학생 시험지를 훔쳐봐서 더 잘 쳤다면, 시험 점수가 좀 더 올랐지 않을까?

 

다른 변수들

만약에 theta_i를 안 넣었다면 어떻게 될까? 그 학생의 진짜 실력을 잡아내지 못하고 y_i랑 y_(i-1)이 얼마나 연관관계가 있는지만 보는 작업을 하면 서로 베끼기를 하지 않은 경우에는 별 의미없는 Regression이 되어버린다. 오차항 u만 엄청나게 크게 나올 것이다. (Omitted variable)

만약 서로 베끼기를 했다면? Gamma값이 0보다 큰 양수 값이 나올텐데, 저 Gamma값을 믿을 수 있는 숫자일까? 그 해답은 y_(i-1)과 오차항 (theta_i + u_i)가 서로 아무런 관련이 없는 독립적인 관계에 있냐는 질문과 같은 맥락이다. 앞에 앉은 학생이 뒤에 앉은 학생의 시험지도 볼 수 없고, 뒤에 앉은 학생의 진짜 실력에 따로 영향도 안 받는다고 하면 별로 고려할 필요가 없어보인다. 서로 독립일테니까. 근데 학생 배치는 랜덤이었다며? 올~ 랜덤이라는 가정이 여기에 쓰이네? (사실 이 계산에 더 큰 문제가 있는데, 하단에 Gamma 값 계산 부분에 추가한다.)

혹시 theta_i 말고 다른 변수들을 더 추가해야되는건 아닌가? 글쎄다. T번의 시험 동안 평균 점수가 비슷했으면 굳이 시간 요소를 고려할 필요는 없는 것 같고, theta_i 대신 다른 특성(ex. zeta_i)을 더 추가하면 같은 변수를 2번 써 버리는 꼴이 되니 모델을 되려 엉망으로 만드는 것 같다. Theta_i 라는 변수 하나에 학생 i의 모든 개인적 특성을 싹 담아놨다고 생각하면 된다. 실제로 그런 변수가 어딨냐고? 저 theta_i는 그렇게 쓰는 “가상변수”다. 참고로, 그런 가상변수가 유의미하다고 가정하는 모델을 Fixed Effect (FE), 그런 가상변수가 주는 영향이 없다고 가정하는 모델을 Random Effect (RE)라고 한다.

 

만약에 Gamma > 0 이라면?

정말로 앞에 앉은 학생 베끼기가 있었다면 저 Gamma 값이 양수로 나올 것인데, 그 다음은? 그냥 베끼기 확인하고 끝냈을까?

아마 저 문제에 나온 내용은 교육부 같은 곳에서 시험 점수 데이터로 모델을 만들기 전에 데이터 전처리를 하는 과정이었을 것이다. 그렇게 전처리가 끝나고나면 당연히 집안 배경, 소득 수준, 성장 정도 등등의 다양한 사회경제적인 요소들을 측정한 변수를 이용해서 학생들의 성취도에 어떤 영향을 주는지도 살펴보고, 과거 시험 점수와 현재 시험 점수간의 상관관계를 보고 성취도가 얼마나 올라오고 있는지, 교육 정책 변화의 효과가 얼마나 뛰어난지도 측정할 수 있다. (우리나라에서는 감독관 선생님들 승진평가 점수에 영향을 줄지도 ㅋㅋㅋ)

요컨데, 저 시험 문제는 큰 데이터 사이언스 프로젝트에서 데이터 전처리하는 여러가지 step 중 하나였다.

 

실제로 Gamma 값 계산은 어떻게 할까?

패널 데이터를 공부하신 분들은 잘 아시겠지만, E(theta * u )  가 0이 아니라는 저 조건 때문에 위의 문제는 First Difference나 De-mean을 해서 theta 값을 계산 식에서 지워야 한다. 그런데, 그렇게 지우고나면 y_i, y_(i-1)와 u_i, u_(i-1)가 모두 y_i 계산에 필요한 것처럼 되어서 Gamma 값을 정확하게 계산할 수 없게 된다. (Endogeneity)

이래서 Fixed Effect 모델 계산할 때 Generalized Method of Moments (GMM)을 응용하는 Arellano-Bond 를 활용한다고 수업 시간에 배웠었는데, 그게 그대로 시험 문제에 나와있다. 더 궁금하신 분들은 A-B의 논문을 읽어보시거나, Wooldridge 교수님의 교과서를 읽어보시기 바란다. 궁금하신 분들을 위해서 덧붙이면, Random Effect인 경우에는 Bhargava-Sargan 의 모델을 활용해서 계산하고, 둘 중 어느 Regime이 맞는지 테스트하는데는 Hausman test를 활용한다. 구체적인 내용은 이 블로그의 취지와 이격이 심한 관계로 생략하니 궁금하신 분들은 통계학 대학원 교과서들을 참조하시기 바란다.

실생활에서는 Gamma값이 좀 부정확하게 측정되면 뭐 큰 문제가 되냐고 생각하시는 분들도 있을텐데, 저 Endogeneity를 고려하지 않았기 때문에 Gamma 값이 양수임에도 0으로 측정되면, 당연히 데이터 전처리가 실패하고, 그 이후에 나오는 모델링 작업들은 오염된 데이터로 만들어낸 모델이 되어 버린다. 쉽게 말해서 통계학 무시하고 데이터 작업하다가 시간 낭비를 한 셈이다. (무식은 언제나 어디에서나 “죄”다.)

 

나가며 – 데이터 모델링

석사 1학년 수준에서 볼 만한 통계 모델링을 간단하게 정리해봤다. 패널 데이터를 이해해야 따라올 수 있는 설명 부분, 그렇게 하는 데이터 전처리 작업이 얼마나 중요한지에 대한 강조점도 있었지만, 윗 글에서 필자가 전달하고 싶었던 포인트는 시험 문제를 바라보는 자세의 극명한 차이였다.

문제를 풀기 급급했던 시절에는 보이지 않았던 전체 구조를 이해하고나니, 시험 문제 접근법 뿐만 아니라 평소의 데이터 작업을 어떻게 해야겠다는 생각이 바뀌었다. 누가 데이터 뭉치를 휙 던져주고, “XX, YY, ZZ 결과값을 도출해!” 라는 식으로 “문제 풀이식” 모델링을 하는게 아니라, 내 데이터는 어떻게 측정되었을까, 혹시 측정상에 무슨 문제가 있지는 않았을까를 곰곰하게 따져보는데서 시작해, 모델링이라는 건 어떤 큰 그림 속에서 통계학 지식을 적재적소에 활용하는 것이라는걸 그대로 시험 문제로 옮겨놨다는게 눈에 들어왔기 때문이다.

머신러닝은 알아서 저런 “이상한 거” 정리해주는 “요술봉” 아닌가요? 쩝~ 머신러닝은 그냥 Non-linear 패턴 찾는 응용통계학이라니까 ㅋㅋ

석사 1학년 수준의 이야기도 무슨 말인지 모르면서 자칭 Data Scientist 인 분들 은근히 있을 것이다. (어차피 시장 수준이 올라오면 퇴출되시겠지.) 그런 분들이 보시라고 쓴 글은 아니고, 윗 맥락을 이해하지만 평소에 Data Science가 코딩 or 그래프 그리기와 도대체 뭐가 다른거냐고 묻는 사람들에게 답변하기 힘드셨던 분들이 예제로 쓰시라고 써 봤다.

참고로 런던에서 공부하던 내내 조교들한테 매일같이 들었던 단어가 Economic Intuition이었다. 수식만 보지말고, 수식은 맥락을 표현한 방식에 불과하니, 맥락을 이해하고, 왜 저런 수식으로 표현했을까를 먼저 고민해라고. 그래서 저 수식이 무슨 경제학적 함의를 가지는지 설명해내는 훈련을 반복해라고.

유학가면 그런 교수님들 수업만 있는거냐는 질문에 이렇게 대답하겠다. 교수님들 가르치는 내용은 (거의) 똑같던데, 학풍이 다르고, 시험도 다르게 나오고, 한국에서처럼 수식만 나열하면서 시험치면 망하더라고. 근데, 나중에 일하러 나와보니 진짜 Intuition 투성이더라고. (어쩌면 학부 시절에 너무 공부를 안 해서 몰랐을 수도 있다 ㅎㅎ)

Data Science 공부하실 분들에게 도움이 되었으면 한다.

암호화폐 거래 업계의 시장 주도기업으로써 저희 비트멕스는 신규 상품과 기존 상품의 개선과 혁신방안을 끊임없이 강구하고 있습니다.

저희는 XBT/USD 상품 거래를 더욱 활성화시키기 위한 노력의 일환으로 크라켄 (Kraken) 거래소의 XBT/USD 상품 가격을 비트멕스 .BXBT 지수에 반영하게 된 것을 발표하게 되어 매우 기쁘게 생각합니다.

변경된 지수는 2018년 9월 16일 12:00 UTC 부터 적용되며, 적용 대상은 XBTUSD 무기한 스왑 상품, 신규 선물 상품과 비트멕스의 옵션 상품입니다. 결산되지 않은 기존의 XBT/USD 선물 상품에는 기존 지수가 그대로 적용됩니다.

신규 지수 변경 사항 (New Index Change)
.BXBT 지수는 기존의 (0.5 * Bitstamp + 0.5 * Coinbase Pro)에서 (⅓ * Bitstamp + ⅓ * Coinbase Pro + ⅓ * Kraken)으로 변경됩니다.

적용대상 상품:
– XBTUSD
– XBT7D_D95
– XBT7D_U105
– XBTH19

 

기존 지수 변경 사항 (Old Index Change)
신규 지수인 .XBT는 기존 .BXBT 지수: (0.5 * Bitstamp + 0.5 * Coinbase Pro)를 기반으로 형성될 것입니다.

이렇게 형성된 신규 지수는 적용대상 상품의 결산이 완료되면 사라집니다 (2018년 12월 28일 12:00 UTC).

적용대상 상품:
– XBTU18
– XBTZ18