본문 바로가기

DM ML AD

(128)
AI 네이티브 AlphaGo Kids 2006년에 처음 '딥러닝'이란 용어가 제프리 힌튼 교수의 논문에 등장했으니 벌써 15년이 지났다. 초기에는 당연히 이미지 처리 분야에서 회자됐을 테고, 이후 차츰 과학과 기술 전문 미디어에서 다루면서 내가 이 용어를 처음 접했던 것이 2012년으로 기억한다. 10년의 시간이 흘렀다. 본격적으로 개념과 방법론을 공부하고 트렌드를 팔로잉했던 때는 다음과 카카오가 합병한 직후인 2014년도 겨울이었다. 이때라도 좀 더 테크니컬 하게 깊게 파고 들어갔더라면 조금은 다른 길을 걷고 있었을 텐데란 생각도 든다. 어쨌든 대중들이 딥러닝 또는 인공지능을 각인한 것은 알파고가 등장한 2016년도다. 겨우 5년 전인데 까마득한 과거처럼 느껴진다. 내가 경험한 위의 타임라인이 현대의 인공지능 또는 딥러닝의 확산 과정과 크..
대체 데이터와 다크 데이터 ** 주의. 소개하는 대체 데이터와 다크 데이터를 제대로 공부해서 개념을 완벽히 이해한 상태로 글을 적는 것이 아니고, 이런 개념을 소개한 유튜브 영상과 책을 소개하기 위해서 적는다. 더 자세한 내용은 직접 찾아보고 익히길 바란다. 주식하는 분들에게 유명한 3프로TV에 11월 1일에 두 개의 영상이 올라왔다. 명지대학교 박정호 특임교수의 라이브 영상을 2 편으로 쪼갠 것인데, 대체 데이터를 이용한 투자 사례를 다룬 것이다. 부끄러운 고백인데, 데이터 과학자란 업에 오래 몸담고 있지만 대체 데이터 (alternative data)란 용어를 처음 접했다. 그동안 업무/서비스와 관련된 직접적인 데이터들이 많았기 때문에 굳이 불확실성이 높은 데이터, 즉 대체 데이터에 관한 생각을 할 필요가 없었는지도 모르지만,..
임의성의 활용 (On Randomness) 마지막 포스팅 이후로 꽤 시간이 지났다. K에서 S로 이직하면서 스스로 입단속한 것도 있고 새로운 환경에 적응하는 시간이 필요했다. 재택을 종료하고 출퇴근 시간이 길어졌고 퇴근 후에 밀린 유튜브를 보기에도 빡빡하다. 면접관의 입장에서 인터뷰가 어때야 한다는 여러 편의 글을 적었지만, 역으로 면접자의 입장에서 놓이니 글과는 미묘한 다름이 있었다. 기회가 되면 허용된 범위 내에서 K와 S의 장단점에 관한 글도 적을 수 있길 바란다. 그동안 적고 싶었던 몇 개 주제가 있었지만 이미 기억의 저편으로 지나갔고, 지난 주말에 적으려 했던 걸 짧게 적는다. 예를 들어, 랭킹 시스템을 만든다고 했을 때 가장 최악의 알고리즘은 뭘까? 내가 생각하기에 최악은 단순히 성능 (정확도)가 낮은 알고리즘이 아니라 기준이 없는 알..
최적화 알고리즘 누군가 '인생은 속도보다 방향이 중요하다'라고 말하면 이과생이 등장해서 '속도는 벡터로 이미 방향을 포함한 값이므로 속도가 아니라 속력이다'라고 정정할 거다. 정의상 속도는 힘의 방향과 힘의 크기가 결합된 벡터, 즉 '속도 = 방향 + 속력'이다. 늦더라도 언젠가는 원하는 목표를 이루는 사람들을 보면 인생에서 방향이 중요한 듯하다가도 속력이 크면 더 빨리 성공하거나 실패하더라도 아직 젊으니 새로운 도전을 할 수 있어 속력이 더 중요한 듯하기도 하다. 사람마다 가치관과 방식이 모두 다르니 방향이니 속력이니 하는 논쟁은 각자의 사정에 맞게 잘 조절하면 된다. 어쨌든 인생에서 방향과 속력이 모두 중요하듯이 최적화도 방향과 속력이 중요하다. 머신러닝 모델을 최적화하는 방법은 "An Overview of Grad..
SOTA와 휴리스틱 매우 다양한 사람들이 데이터 과학이나 기계학습에 참여하고 있다. 그 다양성을 모두 나열할 수 없지만 아주 단순화해서 양 극단의 두 부류의 데이터 과학자가 있다. 많은 문제를 감으로 해결하려는 휴리스틱파와 무조건 최고의 알고리즘을 사용해야 한다는 소타파가 있다. 쉽게 예상하듯이 나는 휴리스틱파 쪽이다. Beyesian vs Frequentist 논쟁도 아니고, 어느 쪽이 낫다/맞다를 논하려는 건 아니다. 휴리스틱 Heuristic은 '복잡하고 불확실한 상황에서 문제를 가능한 한 빨리 해결하기 위해 쓰는 직관적 판단 또는 추론' 정도로 정의한다. 어떤 사전은 '주먹구구식 셈법'이라고 소개하기도 했지만 본 글의 취지와는 맞지 않아 보인다. 어쨌든 복잡하고 불확실한 상황에서 명확한 답을 찾기 어려울 때 상황적 ..
데이터 과학자와 머신러닝 개발자 별로 대수롭지 않은 주제지만 타임라인에 왕왕 등장해서 그냥 짧게 적는다. 평소에 나는 데이터 과학자 (Data Scientist)인지 아니면 머신러닝 개발자 (ML Enginerr)인지를 궁금해한 적이 별로 없었다. 데이터 과학자가 머신러닝 개발자인 듯하고 머신러닝 개발자가 데이터 과학자인 듯하고 그게그거라 생각했다. 데이터 과학을 오래 하다 보면 머신러닝 개발자가 돼있고 반대로 머신러닝 개발을 오래 하다 보면 자연스럽게 데이터 과학자가 돼있다고 본다. 그럼에도 굳이 구분을 해야 하는 걸까? 데이터 과학자든 머신러닝 개발자든 공통적으로 수학 지식, 프로그래밍 스킬, 그리고 도메인 이해가 필요하다. 이것에 이견을 갖는 사람은 거의 없을 거다. 기본 기술 세트가 같으니 '데이터 과학자 = 머신러닝 개발자'인..
라떼의 텍스트 마이닝 Text Mining for Dummy 텍스트 마이닝이란 표현도 이젠 좀 올드해 보인다. NLP는 이미 수십 년 전부터 있던 건데 여전히 유효하고 딥러닝 이후 더 중요해졌다. 랭귀지 모델이란 용어는 언제부터 사용된 걸까? 어쨌든 요즘 자연어 연구의 방법은 다소 획일화된 듯하다. 일단 단어를 Word2Vec이나 GloVe 등으로 워드 임베딩을 하고, 이를 문장 (등의) 단위로 연결해서 RNN 또는 이후 등장한 여러 딥러닝 기반 모델에 넣으면 그냥 끝난다. 자연어처리와는 다소 무관한 경력을 쌓긴 했지만 그래도 키워드와 텍스트는 늘 조금씩 다뤄왔기에 전통적인 텍스트 마이닝 기법들을 정리, 소개하려 한다. 최근에 입문한 분들은 요즘 방식이 더 친숙하겠지만, 과거의 방식에서 여전히 유효한 것들이 많으니 참고 삼아 읽으면 보면 좋을 거다. 텍스트 마이닝..
미래의 데이터 과학자 인턴 파투 이후로 준비했던 과제를 직접 구현해서 실험해야 했다. 전에도 적었지만 데이터 과학자로서 나의 결정적인 단점은 프로그래밍에 능하지도 않고 즐기지도 않는다는 거다. 잘하지 못하니 즐기지 않는 것인지 아니면 즐기지 않으니 잘하지 못하는 것인지는 구분하기 어려우나 현재는 잘하지도 못하고 즐기지도 못한다. 평소에는 여러 문제 상황에서 머리로만 검토해서 해결 방법을 제시하거나 필요한 데이터만 간단히 SQL과 엑셀 잡으로 분석하고, 더 정교한 실험이나 프로덕션은 더 잘하는 담당자에게 넘겨주면 된다. 그럼에도 1년에 한두 번 꼴로 직접 더 복잡한 프로그램을 코딩해야 할 때가 가끔 있다. 모두 바빠서 손이 없을 때도 있고 이전 업무와는 결이 다른 POC 작업일 때도 있고 아주 가끔은 아직 서비스와는 조금 먼 ..