안녕하세요, 너드팩토리의 테스입니다. 저는 지난달 27일에 한빛미디어에서 주관한 Devground 2019에 다녀왔습니다. Devground는 인공지능과 데이터과학, 블록체인을 주제로 27,28일 이틀에 걸쳐 진행되었는데 저는 인공지능과 데이터과학을 주제로 하는 27일만 참석했습니다. (참고로 이 날은 사전신청 당일 20분만에 티켓이 매진되었다고 합니다.)
이 날 시간표는 아래와 같았습니다.
동그라미가 친 부분은 제가 들은 강연입니다
시간표에서 보시다시피 트랙을 나눠 동시에 두 세션이 진행되었습니다. 올리고 보니 제가 track01에서 진행된 세션들 위주로 들었다는 걸 알게 되었습니다. 보편적으로 들을 수 있는 세션들(저의 주관적인 생각입니다)이 track01에 모여있어서 그랬던 것 같습니다. 서론이 길었습니다. 이제 제가 들은 세션들에 대해 리뷰를 해보기 전에, 이 후기는 저의 주관이 들어가 있음을 미리 알려드립니다.
세션1- 데이터와 머신러닝이 비즈니스와 만날 때 발생할 수 있는 비극들
이 세션의 연사 분은 ‘구슬이 서말이라도 꿰어야 보배다’ 라는 속담으로 데이터가 있는데 성과가 나오지 못하는 이유에 대해 설명하셨습니다.
서말이 안된다
기업의 데이터는 없거나, 쓸 수 없거나 의 두 가지 경우로 나뉜다고 농담 반 진담 반의 얘기를 하셨습니다. 이전에 유사이미지 검색을 위해 열심히 크롤링하던 추억(?)이 떠오르며 공감하게 되었습니다. 내부 데이터를 사용할 수 있는 기업으로 추천 혹은 광고로 잘 나가고 있는 기업들을 예로 들었는데, 마침 너드팩토리에도 인공지능 추천 솔루션이 있어서 추천 쪽을 더 유심히 들었습니다. 추천 쪽은 아마존이나 쿠팡과 같이 회사의 본업이 일치하는 경우와 넷플릭스 처럼 보유한 데이터 볼륨이 엄청난 경우라고 합니다. 너드팩토리는 본업이 일치한다고 위안 생각을 합니다.
꿰는 기술이 없다
데이터 라는 구슬을 꿸 기술자, 즉 데이터 사이언티스트를 구하기 힘들고, 비즈니스와 기술이 꿰어지기도 쉽지 않다고 하셨습니다. 저의 경우는 머신러닝 엔지니어이면서 데이터 사이언티스트 일을 겸해서 하고 있어서 공감이 되었습니다. 저도 데이터를 꿰면서 제 실력이 부족하다는 걸 알고 있답니다. 그리고 사업계획에 빅데이터와 같은 단어를 쓰면 사실은 그 분야를 잘 모르는 사람이라고 하던데, 혹시 이 글을 보고 계신 분들은 아니시겠죠?😎
보배가 뭔지 모른다
망치를 들면 모든 게 못으로 보인다는 말이 있습니다(by 마크 트웨인). 마찬가지로 데이터를 들고 있으면 모든 곳에, 심지어 필요하지 않은 곳에도 머신러닝을 적용하고 싶은 마음이 들게 됩니다. 하지만 머신러닝을 적용하는 일은 쉬운 일이 아닙니다. 머신러닝을 적용하는 다소 복잡한 일을 하기전에 만약 단순하고 빨리할 수 있는 방법이 존재한다면 그 방법을 먼저 시도하는 것이 좋다고 합니다. 예를 들자면 1의 노력과 시간을 들여 6의 성과가 나오는 방법과 2의 노력과 시간을 들여 10의 성과가 나오는 방법이 있다면, 2의 노력과 시간을 들여 10을 내는 동안 1의 노력과 시간을 들이는 방법을 2번하여 12의 성과를 낼 수 있다는 것입니다.
그래서 결론은 회사는 노력을 본질에 집중해야 하고 데이터는 가장 쉬운 방법으로 먼저 적용해야 한다는 것입니다.
세션2- AI 프로젝트 간지나게 잘 진행하는 법
제목부터 간지나는 이 세션에서는 말 그대로 어떻게하면 간지나게 프로젝트를 진행할 수 있는가에 대해 다뤘습니다. 먼저 프로젝트가 실패하는 이유로는 비즈니스 이해 부족, 데이터 품질 저하, 잘못된 머신러닝 사용, 편견, 인프라 부족 등이 있습니다. 실패하지 않기 위해서는 풀어야하는 비즈니스 임팩트가 크고, 비즈니스 도메인 지식도 충분하고, 높은 품질의 데이터를 쉽게 획득할 수 있어야 하고, 그래서 데이터 사이언티스트도 필요합니다. 그래서 팀의 유지비의 10배 정도 규모의 프로젝트를 생각하고 최소 프로젝트 인원은 4명(프로덕트 매니저, 비즈니스 분석가, 데이터 사이언티스트, 머신러닝 엔지니어), 프로덕트 디자인과 마일스톤을 수립하고 ‘데이터=돈’ 이기에 데이터 디자인을 하고 데이터 파이프라인도 구축하고 데이터 분석(EDA)을 한 다음에 머신러닝을 시작해서 모델 학습 및 평가를 통해 피쳐를 선택하고 비즈니스 임팩트를 실현합니다. 이렇게 하면 간지나게 프로젝트를 마칠 수 있습니다.
주절주절 써놔서 보기 힘드신가요? 괜찮아요! 앞의 내용은 다 뇌피셜이었습니다.😆 연사 분께서 앞의 내용은 본인의 뇌피셜이라고 말씀하셨을 때 연사 분 제외하고 모두(심지어 사회 보시던 분도) 통수를 맞았습니다. 이 다음 부분부터 현실상황으로 돌아가 강연을 계속하셨습니다.
사실 AI 프로젝트는 매우 어려워서 10개 중에서 8개 정도가 비즈니스 임팩트를 만드는 데 실패합니다. 그래서 스타트업의 마음으로 프로젝트를 시작하게 됩니다. 또한 팀 전체 연봉의 10배를 벌 수 있을 프로젝트와 그에 앞서, 함께 팀을 꾸릴 좋은 인재를 찾는 것도 힘듭니다. 그리고 프로젝트를 시작했다 하더라도 제 때에 끝나지 않는 경우도 많다고 합니다.
밑 부분이 가려서 안 보이지만 현실의 프로젝트는 힘들다는 내용입니다
중후반부에 거하게 통수를 선사한 이 세션의 결론은 ‘그럼에도 불구하고 AI 프로젝트를 간지나게 진행하자’일 것입니다.
세션3- 데이터로 과학하기
이 세션에서는 데이터 과학과 데이터 과학자(데이터 사이언티스트)를 주제로 진행되었습니다. 먼저 데이터 과학에 대해 설명하기 위해 자연과학과의 차이점을 말씀하셨는데, 자연과학이 자연에 숨겨진 법칙을 찾는 학문이라면 데이터 과학은 데이터에 숨겨진 법칙을 찾는 학문이라 정의하셨습니다. 그래서 현상을 설명하기 힘든 딥러닝은 과학이 아니라는 결과가 나왔습니다. 머신러닝을 하는 사람을 머신러닝 사이언티스트라고 부르는 건 들어본 적 없는데, 아마 이런 이유에서 일까요.
연사 분은 대학원에서 정제된 데이터들을 다루다가 회사에서 실전 데이터를 처음 접하셨을 때 ‘엉망진창이었다’ 라고 하셨습니다. 데이터의 형식이 다 다르고 해석이 이상하게 되는 값들이 존재해서 엉망진창이었다고 하셨는데, 문득 제가 개념 그래프를 만들기 위해 특허와 위키백과를 파싱하던 일이 떠오르면서 공감했습니다. (그 내용이 엉망진창이라는 소리가 아닙니다. 다만 형식이 다소 자유로울 뿐.)
연사 분은 자신이 저 별표에 위치해있다고 하셨습니다. 가려진 밑의 부분은 비즈니스 쪽이었습니다
또한 데이터의 맹점(Simpson’s Paradox)을 설명하기 위해 야구선수를 예로 드셨습니다. 만약 한 경기에서 3점을 내준 A라는 투수가 있고 5점을 내준 B라는 투수가 있다면 A라는 투수가 더 우수한 투수일까요? 꼭 그렇진 않을수도 있다는 것입니다. 알고보니 A라는 투수는 1이닝동안 3점을 연달아 내주고 내려왔을 수도 있습니다. 이렇듯 통계 뒤에 숨은 진실이 있을 수 있기 때문에 실점이라는 숫자 하나만 보고 판단할 수는 없다는 것입니다.
인공지능이 점점 더 발전하면서 데이터를 분석하는 일 또한 인공지능이 하게 될 날이 올 것이라고 하셨습니다. 그 때가 되면 데이터 과학자의 필요성이 없어지는 것이 아니라 역할이 바뀌게 될 뿐이라고 말하셨습니다. 데이터 과학자의 덕목은 잘 설명할 수 있는 포장력 논리력이라는 결론을 내셨습니다.
점심시간
점심은 주최 측에서 미리 준비한 도시락을 나눠줘서 강연 듣던 홀에서 먹었습니다. 점심시간을 네트워킹 시간으로 생각했는데 각자 자리에서 조용히 먹었습니다. 맛은 무난했습니다. 그리고 남은 시간을 활용하여 카페에 차려진 부스들을 방문했습니다. JetBrain 부스에서 퀴즈를 다 맞히면 티셔츠를 주는 이벤트를 해서 참여했습니다. 첫번째 도전에서는 아깝게 1문제를 틀려 두번째 도전에서 티셔츠를 획득했습니다. 저는 JetBrain의 Pycharm만 알고(쓰고) 있었는데 Kotlin에 대해 알게 되는 시간이었습니다.
세션4- 엘라스틱 서치와 파이썬으로 맨땅에서 데이터 분석하기
제가 유일하게 트랙2에서 들은 세션입니다. 엘라스틱 서치에 강의실이 인구폭발할 정도로 관심이 쏠려있다는 걸 알게 해준 세션이기도 합니다. 하지만 저는 여기에서 또 통수의 기운을 느꼈습니다.
오전과 동일한 컨퍼런스 맞습니다
세션이 시작되고 갑자기 튀어나온 경제 상황에 당황했으나 저 자료를 데이터로 쓰기 위한 것이라 생각했습니다. 그리고 실제로 경제 자료를 데이터로 넣으셨습니다.
비트코인?
그리고 그 후로도 비트코인과 블록체인, 그리고 암호화폐에 대한 내용이 이어졌습니다. 후반에 엘라스틱 서치와 파이썬 얘기도 나오긴 했습니다. 연사 분께서 발표자료를 올려두셨으니 궁금하신 분들은 Devground 사이트에 들어가시면 볼 수 있습니다.
세션5- 딥러닝과 자동차 그 머나먼 간극 사이의 최적화 여정기
자동차에 탑재된 딥러닝 기반 알고리즘을 소개하고 임베디드 플랫폼에서 최적화를 다룬 세션입니다. 초반에 SVNet이라는 딥러닝 기반 알고리즘을 사용하여 주행중인 자동차에서 앞에 있는 물체들을 인식하는 영상을 봤습니다. 학부생 때 임베디드 과목을 수강했고 회사에서 컴퓨터 비전을 각각 해봤기에(해본 것과 잘하는 것 사이에는 머나먼 간극이 있지만) 두 가지가 합쳐진 그 영상이 가장 기억에 남습니다.
간단한 구조와 낮은 컴퓨팅 파워가 임베디드 플랫폼의 일반적 특징인데, 이런 환경에서 딥러닝을 접목하려면 고생 노력이 필요합니다. 딥러닝을 사용하지 않는 고전적인 레거시 알고리즘에서는 이미지 피라미드를 생성하고 피쳐를 변환하는 과정을 DMA pingpong(메모리 영역을 둘로 분리하여 왔다갔다 하는 방식)로 최적화하여 threshold를 비교하였습니다. 이 경우 딥러닝에 비해 연산량은 적지만 정확도가 낮은 문제가 있습니다.
그리고 컴퓨터 공학을 전공한 사람이라면 수업시간에 들어봤을수도 있는 SIMD 와 SIMT에 관한 내용이 나왔습니다(둘은 철자가 비슷하지만 전혀 다릅니다). SIMD를 사용하는 플랫폼으로 Neon(ARM), MMX(Intel) 등을 예로 드셨는데, 연사 분께선 여러 플랫폼을 탈주 경험해보셨다고 합니다.
앞의 세션들은 경험담과 연사 분의 생각 등이 주였다면 이번 세션은 실제로 제품에 적용한 알고리즘을 다뤄서인지 실무적인 질문이 많이 나왔는데, 어떤 질문에는 연사 분이 당황하시는 게 느껴졌습니다. 다른 사람이 한 부분에 대한 질문이었던 것 같습니다. 저도 회사 내에서 제 일만 신경쓰지 말고 주위의 다른 분들의 일도 알고 있어야 겠다는 생각이 드는 세션이었습니다.
세션6- 모빌리티 산업의 도전과제
앞의 세션5와 마찬가지로 모빌리티를 다루지만 이 세션에서는 기술보다는 모빌리티 산업 그 자체를 다루었습니다. 모빌리티는 정의가 다양한 편인데, 연사 분은 ‘사람의 이동을 편리하게 해주는 것’으로 정의하셨습니다. 모빌리티에서 쓰이는 데이터로는 좌표, 지리, 차량, 고객(결제, 앱 로그 등), 날씨 등으로 다양한데, 혹시 모빌리티를 해보고 싶다면 사용할만한 데이터로 NYG open Data나 구글의 big query public dataset을 추천해주셨습니다. 그리고 시뮬레이션 체험이 가능한 SimPy도 소개하셨습니다.
모빌리티에서 일어나는 문제들로는 Car sharing과 Ride hailing이 있는데, 수학적 모델과 최적화 기법 그리고 효율적인 의사결정(Operation Research)이 필요하다고 합니다. 머신러닝을 사용하여 차량 도착 예정시간(ETA)를 계산하기도 하고 컴퓨터 비전을 사용하여 어느 지역에 수요가 많은지를 알아내 탄력요금제를 적용하는 경우도 있다고 합니다.
모빌리티의 다양한 문제점들에 대한 내용. 사진을 올리고 나서야 상태를 확인했습니다
마지막으로 논문도 몇가지 추천해주셨는데 수요와 공급 불균형을 해결하기 위해 강화학습을 도입한 디디추싱이라는 회사의 논문이 기억에 남습니다. ‘모빌리티 산업의 도전과제를 해결하기 위해 인공지능이 도입되고 있다’라는 것이 이 세션의 핵심이라고 생각합니다.
세션7- 데이터가 흐르는 조직 만들기
시작하기 전에 찍은 한 컷. 데브그라운드가 잘 보입니다
데이터가 흐르는 조직이 되기 위해서는 데이터를 중요하게 생각하는 문화가 있는 것만으로는 부족합니다. 왜냐하면 생각은 누구나 할 수 있기 때문입니다. 라고 말씀하신 연사 분에게 저도 매우 동의합니다. 살면서, 특히 연말이나 연초에 어떤 일을 하기로 생각하고 생각으로만 끝난 일이 (저 뿐만 아니라 이 글을 보고 계시는 여러분도) 있을 것입니다. 그렇다면 데이터가 흐르는 조직이 되기 위해서는 어떻게 해야 할까요?
데이터를 분석하는 일을 해보신 분들이라면 데이터 추출에 시간이 오래 걸린다는 것을 알고 계실 것입니다. 그래서 데이터 분석가가 데이터 추출만 하다가 끝나는 일도 종종 있습니다. 데이터 기반으로 업무를 진행하는 프로세스와 역량이 있는 회사에서는 데이터 분석가가 본업을 한다고 합니다. 그러기 위해서는 데이터를 요청하는 사람도 데이터 분석가만큼은 아니더라도 데이터에 대해 알 필요가 있다고 합니다. 여기서 스킬을 배우기 보다는 실제 업무에 필요한 것을 익히는 것이 중요합니다. 그래서 연사 분은 사내교육의 중요성에 대해 언급하셨는데, 이 사내교육이 의미가 있으려면 주기적으로 리더의 의지와 지원이 있어야 하고 배운 것을 쓸 수 있는 환경이 필요하다고 합니다.
결론은 데이터가 흐르는 조직이 되기 위해서는 주기적으로 리더의 의지와 지원을 받을 수 있는 사내교육과 환경이 필요하다라는 것입니다.
세션8- 헬로 딥러닝
마찬가지로 시작하기 전에 찍은 한 컷
컴퓨터 프로그래밍에서 가장 먼저 접하게 되는 ‘Hello, world!’가 생각나는 제목의 세션입니다. 제목처럼 딥러닝을 쉽게(중학생도 이해할 수 있게) 설명한 세션입니다. 저 또한 어려운 것을 쉽게 설명할 수 있어야 한다는 생각을 가지고 있어서 이 세션을 선택했습니다(그런데 바로 앞 세션에서 생각은 누구나 할 수 있다고 했습니다. 생각은 하는데…). 딥러닝은 뜬지 얼마 되지 않아서 표준화된 정의가 없고, 잘 모르고 쓰지만 잘 되고 있는 상황이라는 말이 가장 기억에 남습니다. 왜냐하면 저도 그런 경험이 있었고 아마 앞으로도 있을 것 같기 때문입니다. (여기서 ‘잘 모른다’의 의미가 ‘아무것도 몰라요🤪’는 아닙니다. ‘어느 정도 알고 있지만 명확하지는 않은 상태’라고 생각합니다.)
연사 분은 ‘뉴럴넷을 사용하여 숫자의 패턴을 찾는 것’이라고 딥러닝을 정의하셨습니다. 저도 딥러닝을 정의할 수 있을만큼 더 많이 알아가야 할 것 같습니다.
결론
드디어 결론입니다. 여기까지 긴 글 읽느라 고생 많으셨습니다. 먼저 뒤의 세션으로 갈수록 제 체력이 방전되어 내용을 다 담지 못해서 열심히 발표해주신 연사 분들께 죄송하다고 해야될 것 같습니다. 8개의 세션을 연달아 듣다보니(중간에 점심시간이 있긴 했지만) 마치 고등학생 때 혹은 학부생 시절 수강신청 실패했던 때의 기억이 떠오릅니다(게다가 지방에서 통학한다면?😱). 당분간 체력을 기르기 전까진 서울 당일치기는 자제하려 합니다. 그래서 이 후기의 결론은 무엇일까요? 멀리 있는 행사에 참가할 때는 자신의 체력을 고려해야 한다 사실 각 세션별 결론은 이미 냈습니다만, 세션들에서 공통적으로 느낀 점을 써볼까 합니다.
인공지능과 데이터과학을 주제로 열린 행사여서 머신러닝 엔지니어이지만 데이터 사이언티스트의 일도 하는(하는 것과 잘 하는 것에는 차이가 있지만) 저에겐 공감이 되는 발표가 많았습니다. 많은 발표들에서 공통으로 나오는 결론은 ‘본질에 집중해야 한다’ 였습니다. ‘보이는 모든 곳에 데이터와 인공지능을 적용하려 하면 안된다’ 라고 할 수 있겠습니다.
마지막으로 세션이 진행된 홀 앞에서 찍은 증거사진 기념사진을 올리고 후기를 마칩니다. 사진을 찍어주신 분께 다시 한번 감사드립니다.
트랙01 리더스홀 앞에서 사진 한 장