본문 바로가기

Messages from Bahn

(1184)
최적화 알고리즘 누군가 '인생은 속도보다 방향이 중요하다'라고 말하면 이과생이 등장해서 '속도는 벡터로 이미 방향을 포함한 값이므로 속도가 아니라 속력이다'라고 정정할 거다. 정의상 속도는 힘의 방향과 힘의 크기가 결합된 벡터, 즉 '속도 = 방향 + 속력'이다. 늦더라도 언젠가는 원하는 목표를 이루는 사람들을 보면 인생에서 방향이 중요한 듯하다가도 속력이 크면 더 빨리 성공하거나 실패하더라도 아직 젊으니 새로운 도전을 할 수 있어 속력이 더 중요한 듯하기도 하다. 사람마다 가치관과 방식이 모두 다르니 방향이니 속력이니 하는 논쟁은 각자의 사정에 맞게 잘 조절하면 된다. 어쨌든 인생에서 방향과 속력이 모두 중요하듯이 최적화도 방향과 속력이 중요하다. 머신러닝 모델을 최적화하는 방법은 "An Overview of Grad..
SOTA와 휴리스틱 매우 다양한 사람들이 데이터 과학이나 기계학습에 참여하고 있다. 그 다양성을 모두 나열할 수 없지만 아주 단순화해서 양 극단의 두 부류의 데이터 과학자가 있다. 많은 문제를 감으로 해결하려는 휴리스틱파와 무조건 최고의 알고리즘을 사용해야 한다는 소타파가 있다. 쉽게 예상하듯이 나는 휴리스틱파 쪽이다. Beyesian vs Frequentist 논쟁도 아니고, 어느 쪽이 낫다/맞다를 논하려는 건 아니다. 휴리스틱 Heuristic은 '복잡하고 불확실한 상황에서 문제를 가능한 한 빨리 해결하기 위해 쓰는 직관적 판단 또는 추론' 정도로 정의한다. 어떤 사전은 '주먹구구식 셈법'이라고 소개하기도 했지만 본 글의 취지와는 맞지 않아 보인다. 어쨌든 복잡하고 불확실한 상황에서 명확한 답을 찾기 어려울 때 상황적 ..
데이터 과학자와 머신러닝 개발자 별로 대수롭지 않은 주제지만 타임라인에 왕왕 등장해서 그냥 짧게 적는다. 평소에 나는 데이터 과학자 (Data Scientist)인지 아니면 머신러닝 개발자 (ML Enginerr)인지를 궁금해한 적이 별로 없었다. 데이터 과학자가 머신러닝 개발자인 듯하고 머신러닝 개발자가 데이터 과학자인 듯하고 그게그거라 생각했다. 데이터 과학을 오래 하다 보면 머신러닝 개발자가 돼있고 반대로 머신러닝 개발을 오래 하다 보면 자연스럽게 데이터 과학자가 돼있다고 본다. 그럼에도 굳이 구분을 해야 하는 걸까? 데이터 과학자든 머신러닝 개발자든 공통적으로 수학 지식, 프로그래밍 스킬, 그리고 도메인 이해가 필요하다. 이것에 이견을 갖는 사람은 거의 없을 거다. 기본 기술 세트가 같으니 '데이터 과학자 = 머신러닝 개발자'인..
라떼의 텍스트 마이닝 Text Mining for Dummy 텍스트 마이닝이란 표현도 이젠 좀 올드해 보인다. NLP는 이미 수십 년 전부터 있던 건데 여전히 유효하고 딥러닝 이후 더 중요해졌다. 랭귀지 모델이란 용어는 언제부터 사용된 걸까? 어쨌든 요즘 자연어 연구의 방법은 다소 획일화된 듯하다. 일단 단어를 Word2Vec이나 GloVe 등으로 워드 임베딩을 하고, 이를 문장 (등의) 단위로 연결해서 RNN 또는 이후 등장한 여러 딥러닝 기반 모델에 넣으면 그냥 끝난다. 자연어처리와는 다소 무관한 경력을 쌓긴 했지만 그래도 키워드와 텍스트는 늘 조금씩 다뤄왔기에 전통적인 텍스트 마이닝 기법들을 정리, 소개하려 한다. 최근에 입문한 분들은 요즘 방식이 더 친숙하겠지만, 과거의 방식에서 여전히 유효한 것들이 많으니 참고 삼아 읽으면 보면 좋을 거다. 텍스트 마이닝..
미래의 데이터 과학자 인턴 파투 이후로 준비했던 과제를 직접 구현해서 실험해야 했다. 전에도 적었지만 데이터 과학자로서 나의 결정적인 단점은 프로그래밍에 능하지도 않고 즐기지도 않는다는 거다. 잘하지 못하니 즐기지 않는 것인지 아니면 즐기지 않으니 잘하지 못하는 것인지는 구분하기 어려우나 현재는 잘하지도 못하고 즐기지도 못한다. 평소에는 여러 문제 상황에서 머리로만 검토해서 해결 방법을 제시하거나 필요한 데이터만 간단히 SQL과 엑셀 잡으로 분석하고, 더 정교한 실험이나 프로덕션은 더 잘하는 담당자에게 넘겨주면 된다. 그럼에도 1년에 한두 번 꼴로 직접 더 복잡한 프로그램을 코딩해야 할 때가 가끔 있다. 모두 바빠서 손이 없을 때도 있고 이전 업무와는 결이 다른 POC 작업일 때도 있고 아주 가끔은 아직 서비스와는 조금 먼 ..
데이터 과학자의 글쓰기 글쓰기 테크닉에 관한 글이 아니다. 내가 글을 수려하게 잘 적는다는 의미도 아니다. 그냥 데이터 과학자를 포함한 모든 지식 노동자는, 아니 누구나 평소에 글 적는 걸 즐기고 연습해야 한다는 취지다. 생각은 글로 표현되고 글에서 행동이 나온다. 여름 인턴 멘토링을 준비하면서 멘티들에게 책을 추천, 선물하는 과정이 있었다. 정리 문서에 '개발자의 글쓰기'란 책이 중복 추천되는 걸 봤다. 팀의 다른 멘토가 이 책을 언급했지만 다른 개발자들도 글쓰기의 필요성과 중요성에 공감하고 있는 듯하다. 물론 해당 책은 개발자들이 주로 다루는 네이밍 방식, 소스 코드나 커밋 로그에 주석이나 릴리즈 노트 적는 법, 위키나 지라 작성 법, 제안서 적기 등 Technical Writing을 다루기는 하지만, 적어도 개발자에게 글..
데이터 과학자의 생각법 원래는 지난 면접들을 통해서 '얘네들이 아직은 데이터 문제를 해결하는 프로세스 또는 프랙티스가 약하구나'라는 발견에 기반해서 '데이터 문제 해결하기'라는 글을 적으려 했었다. 그런데 이미 달고나 초기에 '데이터 문제 해결 프로세스' (https://brunch.co.kr/@jejugrapher/219)라는 글을 적었다는 깨달았다. 그럼에도 생각은 늘 상황에 따라서 바뀌는 거라서 지난 인터뷰에서 느낀 감정과 생각으로-- 1~2주를 쉰 후에 -- 같지만 다른 글을 적어야겠다고 마음먹었는데, 지난밤에 우연히 봤던 글을 함께 공유하면 좋을 것 같아서 짧게 적는다. 인터뷰에서 느꼈던 감정은 큰 부분이 결국 생각하는 방법에 관한 거였다. 요즘 데이터 과학이나 ML 개발자를 하겠다는 친구들의 스킬은 분명 내가 그네들..
좋은 데이터 과학자란? 인턴십 인터뷰가 거의 끝나갈 무렵 현타가 왔다. 지원자에 대한 나의 평가는 온당한가?라는 의문이 문득 들었다. 아무리 객관적이려고 해도 평가라는 게 완전한 객관성을 담보할 수 없다. 나는 괜찮게 봤는데 다른 면접관들은 별로라고 한다. 그 반대의 경우도 흔하다. 모두가 좋다고 하거나 모두가 아니다고 하는 경우는 마음이 편한데, 의견이 엇갈리면 심적으로 미묘한 갈등이 생긴다. 내 돈으로 월급을 준다거나 직급이라도 있어서 내가 책임질 수 있으면 내 주장을 더 강하게 내세우겠지만, 그렇지 않기 때문에 의견을 포기하는 경우가 흔하다. 나를 아는 또는 같이 면접에 들어간 이들이 이걸 보면 동의하지 않을지도 모르겠으나 누군가 이 지원자를 합격시켜야 한다고 했을 때 탈락 의견을 내지도 않았고, 탈락시키려는 걸 굳이 합..