본문 바로가기

기계학습

(6)
모든 ML 알고리즘의 이해 이직 후로는 면접에 들어가지 않고 있지만 면접에서 유능한 인재를 만나면 묻고 싶었지만 아직 한 번도 묻지 못한 질문이 있다. 머신러닝 학습의 핵심이 뭐냐? 는 질문이다. 개별 알고리즘의 개념이 아닌 모든 알고리즘들의 공통된 근간이 무엇인지를 묻는 질문이다. 내가 생각하는 이 질문의 답에 관한 글이다. 물론 내가 틀렸을 수도 있다. 모든 — 적어도 내가 아는 모든 — ML 알고리즘은 유사도 (또는 거리)를 측정하는 거다. 나 (X)랑 닮은 X’를 찾거나 나랑 전혀 다른 X’’를 찾는 것이 ML 알고리즘이다. 회귀 Regression은 나랑 닮은 X들이 공통으로 같은 Y, 보통은 평균을 예측/계산하는 알고리즘이다. 분류 Classificaiton은 나와 근접한 X들이 다수를 점유하는 클래스를 찾는 거다. C..
최적화 알고리즘 누군가 '인생은 속도보다 방향이 중요하다'라고 말하면 이과생이 등장해서 '속도는 벡터로 이미 방향을 포함한 값이므로 속도가 아니라 속력이다'라고 정정할 거다. 정의상 속도는 힘의 방향과 힘의 크기가 결합된 벡터, 즉 '속도 = 방향 + 속력'이다. 늦더라도 언젠가는 원하는 목표를 이루는 사람들을 보면 인생에서 방향이 중요한 듯하다가도 속력이 크면 더 빨리 성공하거나 실패하더라도 아직 젊으니 새로운 도전을 할 수 있어 속력이 더 중요한 듯하기도 하다. 사람마다 가치관과 방식이 모두 다르니 방향이니 속력이니 하는 논쟁은 각자의 사정에 맞게 잘 조절하면 된다. 어쨌든 인생에서 방향과 속력이 모두 중요하듯이 최적화도 방향과 속력이 중요하다. 머신러닝 모델을 최적화하는 방법은 "An Overview of Grad..
모델 복잡도의 개념 모델의 복잡도는 다양한 관점에서 정의되고 설명될 수 있어서 조심스러운 주제다. 좀 더 이론적이고 종합적으로 설명해야 하는 주제인데, 능력의 한계로 아주 지엽적이고 편향되게 설명할 수 있으니 다른 텍스트북이나 글들을 참조해서 개념을 제대로 정립했으면 하는 바람이다. 복잡도를 다스리는 여러 테크닉들은 다음 글로 미루고 오늘은 복잡도의 개념이나 원인 등에 관해서만 적는다. 복잡한 모델은 뭘까? 비선형 모델은 모두 복잡할까? 모델의 독립변수 (X) 종류와 개수가 많으면 복잡한 걸까? 트레이닝 데이터에 과학습(over-fit)되면 복잡한 걸까? 아니면 여러 잡다한 모델들을 앙상블 하면 복잡한 걸까? 이외에도 복잡한 모델에 관한 다양한 의문이 있을 수 있고, 그런 모든 의문이 어쩌면 모델 복잡도의 여러 측면을 잘 ..
데이터 과학자를 준비하는 이들에게 주는 실질적 조언 Practical Advices for Future Data Scientists 전공자에게도 다소 도움은 되겠지만 비전공자를 위한 글이다. 이미 데이터 과학자를 양성하는 커리큘럼/학과 (수학, 통계, 컴공/컴사, 폭을 넓히면 산공, 전자 등)에서 공부하는 재학생이나 졸업생, 또는 그런 학과로 진학을 모색하는 고등학생을 위한 글이 아니란 의미다. 정식으로 데이터 과학 과정을 이수하지 못한 비전공자들, 특히 이미 졸업해서 (동영상 강의 외에) 관련 학과 수업도 듣기 어려운 이들을 위한 글이다. 주변 도움과 조언 없이 데이터 과학자가 되려니 어떻게 준비해야 할지 막막해하는 이들을 위한 주제넘은, 그렇지만 현실적이고 실질적인 조언을 적는다. 다소 무리한 조언일 수도 있지만, 반드시 이루겠다는 의지가 있다면 그리..
Regularization: 복잡도를 다스리는 법 개인적으로 전문용어가 어색하게 한글화되는 것을 별로 좋아하지 않는데, regularization도 그런 경우에 속합니다. 적당한 한글 용어를 찾기가 어렵습니다. 인터넷에 검색해보면 '규제화'라고 번역한 경우를 봤는데 페널티로 모델 복잡도를 제어하는 방식에는 유효하지만 다른 방식에는 조금 어색한 표현입니다. '일반화'는 그냥 generalization를 번역한 것 같지만 또 한편으론 학습오류와 테스트오류를 합친 generalization error를 줄인다는 의미처럼 보여서 나름 합당한 면이 있습니다. '정규화'라고 번역한 경우도 있는데 개발자들이 많이 사용하는 regular expression을 정규식이라고 부르니 정규화도 타당한 번역이지만 데이터를 정규 분포를 따르도록 만드는 normalization,..
자기강화와 GAN: 부족한 정답세트를 극복하는 방법 데이터 마이닝이나 머신러닝, 인공지능 AI 등에 관한 심도깊은 얘기는 다루지 않는다. 내가 그런 심도깊은 일을 하고 있지 않기 때문이기도 하거니와 그런 내용은 학교에서 정식으로 배우거나 많은 연구 논문을 읽으면서 터득해야할 영역이다. 개인적인 요청이 있다면 그걸 위해서 가이드해줄 수는 있지만 이 티스토리에서 그걸 해결해줄 수는 없다. 하지만 2017년에는 공부 좀 하기로 마음을 먹었으니 필요하면 특별한 주제에 맞춰서 또는 머신러닝 알고리즘의 전반적인 것에 대해서 종종 다루려 한다. 계획이 그렇다는 것이지 몇 번을 다룰지는... 최근이라 적고 작년 2016년에 가장 큰 이슈가 됐던 강화학습과 GAN (Generative Adversarial Networks)에 대한 소개 또는 개념적 이해를 돕기 위해서 글..