-
[비공개] 수비드 머신을 사다 Sous Vide
(adsbygoogle = window.adsbygoogle || []).push({}); 문득 수비드 (Sous Vide) 기계를 구입하고 싶어서 열흘간의 열병 후에 구입했다. 다른 사람들이 에어플라이어를 사는데 나는 수비드에 꽂혔다. 사람들이 공기라 할 때 나는 물이라 답한다. 갖고 싶다고 그냥 충동구매할 수도 없으니 사고 싶다는 욕구, 어떤 요리가 가능한지에 대한 궁금증, 그리고 산다면 어떤 걸 구매할지에 대한 결정 등의 복합적인 생각으로 열흘을 보냈다. 구매하고 싶다는 욕구가 든 그날 고향집으로 내려가서 4일 동안은 그저 갖고 싶다는 생각만 했을 뿐 자세히 조사하지 못했다. 그러면서 욕구는 더 커졌다. 그리고 주중을 무사히 보내고 주말을 보내면서 어차피 구매할 거니 그냥 구매하자고 마음먹었다. 하지만 결제까진 쉽지 않았다. 유명한 격언 '망설임은 배송만 늦춘다'는 진리다. 어차피 ..추천 -
[비공개] 논문읽기 My Style of Reading Papers
(adsbygoogle = window.adsbygoogle || []).push({}); 다른 분야도 비슷하겠지만 데이터 과학, 머신러닝 및 인공지능 관련 연구/업무를 하다 보면 논문을 읽어야 할 때가 종종 있다. 단순히 최신 동향이나 기술을 익히기 위함도 있지만, 새로운 분야, 문제, 데이터를 만날 때마다 기존의 지식, 경험, 휴리스틱만으론 부족하거나 해결하지 못하는 경우가 있다. 잘 정리된 텍스트북이 있으면 좋겠지만 업데이트/리비전에 시차가 있어서 최신 기술이나 문제를 다루지 못하는 경우도 많다. 뿐만 아니라 텍스트북은 그 분야 전체를 종합적으로 다루는 경향이 있어서 당장 알고 싶은 내용이 부실하거나 책의 여러 파트에 쪼개져 기술돼있어서 빠르게 기술을 습득하기 어렵기도 하다. 물론 처음부터 끝까지 완독 하면 좋겠지만... (ㅠㅠ) 어렴풋이 알고 있는 개념을 확인하기 위해..추천 -
[비공개] Exploration과 Multi-Armed Bandit
(adsbygoogle = window.adsbygoogle || []).push({}); 기계학습 (Machine Learning)의 최대 장점은 배운 대로 잘 한다는 점이다. 하지만 최대 단점은 배운 것만 잘 한다는 점이다. 즉 학습데이터가 커버하는 영역 내의 샘플은 잘 예측하는데, 영역 밖의 샘플은 보통 예측에서 많이 벗어난다. 학술 용어로 -- 학술 용어같지 않지만 -- Explorarion-Exploitation Tradeoff라 한다. 영어 사전에서 Exploration과 Exploitation을 찾아보면 탐험, 탐색, 개척, 개발 등으로거의 비슷하게 번역돼있고, 어떤 한글책에는 '탐험과 이용'이라고 표현한 것도 봤다. '탐험'은 맞는데 '이용'은 다소 부족한 느낌이다. 어쨌든 Exploitation (탐색?)은 우리가 알고 있는 영역 내를 샅샅이 훑어보는 조사라면, Exploration (탐험)은 미지의 영역을 찾아나서는 탐험이다. 한번 탐험된 곳은 이제 탐색의 영역이 된다. 예를 들어, 불..추천 -
[비공개] 내맘대로 알고리즘의 분류
(adsbygoogle = window.adsbygoogle || []).push({}); Remark. 이 글은 이해를 돕기 위한 지극히 개인적인 관점에 의해 작성한 것이므로 일반화하지 말기 바람 개별 알고리즘의 상세한 설명은 다른 텍스트북이나 리소스를 참조하기 바람 일반적으로 기계학습 알고리즘은 크게 Unsupervised (비지도) 학습과 Supervised (지도) 학습으로 나뉜다. 최근에는 여기에 Reinforcement (강화) 학습을 추가해서 3개고 분류하는 경향이 있다. 좀 더 깊이 들어가면 정답 데이터 (Y)를 얻기 힘든 현실을 반영해서 Unsupervised와 Supervised의 특성을 결합한 Semi-supervised 학습이 추가될 수 있다. 정답은 아니지만 바람직한 방향으로 가이드하는 Reinforcement도 Supervised의 일종으로 봐야 한다는 게 저 개인의 생각이지만, 일반적으로는 이 둘을 분리한다. 이렇게 분류해서 PCA나 클러스터링은 unsupervised에 속하고, c..추천 -
[비공개] 모델 복잡도 제어하기
(adsbygoogle = window.adsbygoogle || []).push({}); 무료하게 시간을 보내다 정신을 차리니 일요일 저녁이다. 1편에 이어 2편을 바로 적어야 할 것 같은 압박감에 급하게 적는다. 이 글은 모델 복잡도를 다루는 방법들을 종합/정리하는 차원에서 적기 때문에 개념적으로 설명한다. 개별 알고리즘의 상세 내용은 다른 레퍼런스를 참조하기 바란다. 작년에 팀에 새로 합류한 친구들과 약 스무 개의 모델 복잡도를 다루는 방법을 나열한 적이 있다. 모든 방법을 다 수긍한 것은 아니지만 일반적으로 활용하는 방법들은 대부분 정리된 듯하다. 당시에 논의했던 리스트는 지금 없어서 지금 당장 생각나는 방법들만 몇 개의 카테고리로 나눠서 적는다. 1편에서 적었듯이 모델 복잡도는 모델의 변수가 많고 차수가 높아서 복잡해지는 경우도 있고, 사용되는 데이터의 차원이 너..추천 -
[비공개] 모델 복잡도의 개념
(adsbygoogle = window.adsbygoogle || []).push({}); 모델의 복잡도는 다양한 관점에서 정의되고 설명될 수 있어서 조심스러운 주제다. 좀 더 이론적이고 종합적으로 설명해야 하는 주제인데, 능력의 한계로 아주 지엽적이고 편향되게 설명할 수 있으니 다른 텍스트북이나 글들을 참조해서 개념을 제대로 정립했으면 하는 바람이다. 복잡도를 다스리는 여러 테크닉들은 다음 글로 미루고 오늘은 복잡도의 개념이나 원인 등에 관해서만 적는다. 복잡한 모델은 뭘까? 비선형 모델은 모두 복잡할까? 모델의 독립변수 (X) 종류와 개수가 많으면 복잡한 걸까? 트레이닝 데이터에 과학습(over-fit)되면 복잡한 걸까? 아니면 여러 잡다한 모델들을 앙상블 하면 복잡한 걸까? 이외에도 복잡한 모델에 관한 다양한 의문이 있을 수 있고, 그런 모든 의문이 어쩌면 모델 복잡도의 여러 ..추천 -
[비공개] 차원의 저주와 축소
(adsbygoogle = window.adsbygoogle || []).push({}); 차원의 저주가 무엇이고 어떻게 해결할 수 있는가?는 인터뷰에서 종종 묻는 질문이다. 난이도가 높지 않음에도 만족스러운 답변을 들은 적은 없다. 책은 용어/개념만 소개하고 서베이 논문은 여러 알고리즘을 분류하기만 할 뿐 개념과 함의를 종합적으로 정리하지 않은 듯하다. 그래서 이 글은 다양한 관점에서 개념적으로 이해하는 데 도움을 주고자 한다. 참고자료를 찾아보지 않고 그냥 기억에 의존해서 쭉 적어나가기 때문에 일부 방법론의 구체적인 내용은 사실과 다를 수 있으니 자세한 것은 직접 찾아보기 바란다. 차원의 저주? 예외적인 경우룰 제외하면 데이터의 피쳐(와 양)가 많을수록 더 정확한 모델을 구축할 수 있다. 기존 모델이 불만족스러울 때 가장 먼저 새로운 피쳐를 발굴해서 추가하는 작업을 ..추천 -
[비공개] IDEF0 Functional Modeling
(adsbygoogle = window.adsbygoogle || []).push({}); 지난 글에서 다음 글로 미뤘던 다른 하나는 IDEF0로 불리는 Functional Modeling이다. IDEF는 Integration Definition의 약자로 시스템과 소프트웨어 엔지니어링에서 사용되는 여러 모델링 언어/포멀리즘을 표준화한 것이다. IDEF0에서 0가 있듯이 IDEF1, IDEF2 등 IDEF14까지 총 16개 (IDEF1X도 있음)로 정리된다. 데이터 베이스에서 많이 사용되는 ERD는 IDEF1X Data Modeling에 정의돼있고, 그 외에도 프로세스나 온톨로지, OOD 등의 우리가 알고 있는 대부분의 다이어그램이 정의돼있다. 미국표준기술원 (NIST, National Institute of Standards and Technology)을 중심으로 정의된 것이지만 우리의 실생활에서의 실제 사용은 다소 다를 수 있다. 일부는 항목만 있을 뿐 실제 구현/정의되지도 않았다. 사람들이 이를 많이 사용하든 아니든 시스템의 기능을 정의하고 ..추천 -
[비공개] 현업 데이터 과학자가 되려는데 굳이 이런 것까지 공부해야 합니까?
(adsbygoogle = window.adsbygoogle || []).push({}); 답글로 달기에는 글이 길어질 듯해서... (극히 개인적인 의견이니 그냥 참고만...) 딥러닝 기술을 바이오 데이터에 적용하는 걸로 석사를 졸업했다. 나는 취업해서 그냥 데이터 사이언티스트가 되고 싶다. 실무자가 되기 위해서 굳이 알고리즘의 수식을 유도하고 코드를 구현하는 걸 공부해야 하나? 머신러닝 이론이 실무에 그대로 활용되는가? 그냥 데이터 다루는 법이 더 중요하지 않나? 소프트웨어 엔지니어 수준의 개발 지식과 기술이 필요한가? 첫 줄 요약. 당장은 필요 없다. (일단 취업된다는 가정 하에) 하지만 레벨업을 위해선 미리미리 준비해야 한다. (언젠가 해야 한다면 어릴 때… == 취업 후에라도) 데이터 과학자도 여러 종류가 있다. 가장 하드코어 하게는 인공지능 연구실로 진학해서 더 나..추천 -
[비공개] 인텔리전트 시스템
(adsbygoogle = window.adsbygoogle || []).push({}); 딥러닝, AI, 빅데이터, IoT, 오토파일럿 (자율주행) 등과 같은 개념이나 기술이 일반화되면서 이들이 종합적으로 적용된 인텔리전트 시스템 (Intelligent System)도 최근에 등장한 개념으로 생각할 수 있다. 하지만 인텔리전트 시스템에 관한 연구는 꽤 오래전부터 진행됐고 개념이 — 물론 새로운 아디이어가 나오면서 꾸준히 진화하고 있지만 — 정립된지도 꽤 오래됐다. 나중에 산업경영공학과로 개명했지만 학부 전공은 산업공학이었고, 자연스레 대학원은 생산공학 연구실로 진학했다. 이후 인터넷 환경이 일반화되고 데이터 마이닝 관련 커리큘럼이 학과에 보강되면서 인터넷과 머신러닝이 주 연구 주제가 됐다. 정확한 교과목 명은 기억나지 않지만 2000년도에 대학원에 들어갔을 때 지도교수님은 인텔리전트 ..추천