포스트

머신러닝 기초 (1) - The Map of Machine Learning

머신러닝 기본 개념을 간략하게 배우는 1편입니다.

머신러닝 기초 (1) - The Map of Machine Learning

머신러닝 기초 시리즈의 1편입니다. 0편의 시리즈 소개에 이어, 머신러닝 전체의 지도를 먼저 그립니다.

What is Machine Learning

Machine Learning은 데이터를 통해 특정 작업의 성능을 개선하는 알고리즘과 방법을 연구하는 분야입니다. 머신러닝, 기계학습으로도 불리며 이 블로그에서는 ML로 부르겠습니다.

전통적인 프로그래밍에서는 사람이 규칙을 직접 작성합니다. 상황을 미리 나누어 조건문으로 처리하는 방식입니다. ML은 반대로 데이터와 정답을 주고 그 둘을 잇는 규칙을 모델이 찾아내게 합니다. 스팸 필터라면 어떤 단어가 스팸을 가르는지 사람이 정하지 않고, 스팸으로 표시된 메일과 그렇지 않은 메일에서 모델이 그 기준을 뽑아냅니다.

한 줄로 대비하면 이렇습니다.

  • 전통 프로그래밍: 규칙 + 데이터 → 답
  • 머신러닝: 데이터 + 답 → 규칙

이 시리즈 전체는 “데이터로 어떻게 규칙을 도출하는가”입니다.

When we use ML

ML은 모든 문제에 쓰는 도구가 아니라, 특정 조건에서 규칙 기반보다 유리해지는 도구입니다. 아래 조건에 여러 개 해당할수록 ML을 고려할 이유가 커집니다.

  • 규칙을 전부 나열할 수 없는 문제: 조건 분기가 수백, 수천 개로 불어나거나 판단 기준을 사람이 말로 옮기지 못하는 경우입니다. 손글씨 주소를 읽는 작업은 글씨체마다 형태가 달라 규칙으로 적기 어렵습니다.
  • 데이터가 이미 쌓여 있는 문제: 입력과 정답의 쌍이 확보되어 있거나 서비스를 운영하는 동안 계속 축적되는 경우입니다. 고객센터 문의를 담당 부서로 보내는 작업은 과거 처리 이력이 그대로 학습 데이터가 됩니다.
  • 패턴이 시간에 따라 변하는 문제: 대상이 바뀔 때마다 규칙은 사람이 다시 손봐야 하지만, 모델은 새 데이터로 학습을 다시 돌리면 됩니다. 수법이 계속 바뀌는 어뷰징 계정 탐지가 여기 해당합니다.
  • 정답이 확률적이고 오차가 허용되는 문제: 확정된 답이 없고 평균적으로 잘 맞히기만 해도 가치가 생기는 경우입니다. 다음 날 발주량 예측은 몇 개쯤 어긋나도 폐기와 결품을 함께 줄이면 이득입니다.
  • 개인화나 대규모 자동 판단이 필요한 문제: 사용자마다 적용할 기준이 다르거나, 사람이 일일이 검토하기에는 건수가 너무 많은 경우입니다. 하루 수백만 건의 게시물을 1차로 거르는 일은 인력으로 감당할 수 없습니다.

When we don’t use ML

반대로 위 조건에 해당하지 않는 문제까지 ML로 풀려고 하면 비용만 늘어납니다. ML은 규칙을 데이터에서 찾아내는 도구이므로, 규칙을 사람이 직접 쓸 수 있다면 굳이 찾아내게 할 이유가 없습니다.

  • 규칙 몇 줄로 풀리는 문제: 사업자등록번호 형식 검증이나 배송비 계산처럼 규칙이 명확하고 예외가 적은 문제는 if문이 더 정확하고, 더 싸고, 디버깅도 쉽습니다.
  • 데이터가 없는 문제: ML은 데이터에서 규칙을 찾는 방법이므로, 학습에 쓸 데이터가 없으면 시작조차 할 수 없습니다.
  • 오답이 허용되지 않는 문제: ML의 예측은 통계적 추정이라 100%의 정확도를 보장하지 못합니다. 틀린 답 하나가 치명적인 영역이라면 규칙 기반이 안전합니다.
  • 판단의 근거를 설명해야 하는 문제: 복잡한 모델일수록 왜 그런 예측을 했는지 설명하기 어렵습니다. 대출 심사처럼 설명 의무가 있는 영역에서는 이 점이 제약이 됩니다.

Google의 Rules of ML 첫 번째 규칙도 “머신러닝 없이 제품을 출시하는 것을 두려워하지 마라”입니다. 규칙으로 시작하고, 데이터가 쌓여 규칙만으로는 한계가 분명해질 때 ML을 도입하는 것이 실무의 일반적인 순서입니다.

Goal of ML: Generalization

머신러닝의 목적은 본 적 없는 입력을 잘 처리하는 것입니다. 이것을 일반화(generalization) 라고 부릅니다. 훈련 데이터를 통째로 외워버리면 학습 성적은 완벽해도 새 데이터 앞에서 무너지게 됩니다. 왜 그런 일이 생기고 어떻게 막는지가 이 시리즈의 중심 줄기입니다. 시리즈 중반에 다룰 과대적합(overfitting), 교차검증(cross validation), 평가 지표가 전부 일반화 하나를 지키기 위한 장치입니다.

ML Around Us

정의와 목표가 잡혔으니, ML이 실제로 맡고 있는 자리를 봅니다. 이미 매일 쓰는 서비스 안에 들어 있어서, 사례를 늘어놓는 것이 감을 잡는 데 가장 빠릅니다.

일상 속 사례모델이 배우는 것 → 하는 일학습 유형
메일함의 스팸 필터신고된 스팸과 정상 메일의 차이 → 새 메일이 스팸인지 판정지도학습
지도 앱의 도착 예상 시간과거 주행 기록과 실제 소요 시간 → 지금 출발할 때의 소요 시간 예측지도학습
넷플릭스, 유튜브 추천시청 기록과 이탈 지점 → 다음에 볼 만한 콘텐츠에 순위 매기기지도학습
카드사의 이상 거래 알림카드별 평소 결제 금액, 시간대, 가맹점의 분포 → 분포에서 벗어난 결제 탐지비지도학습
사진 앱의 인물별 자동 묶기얼굴 사진 사이의 유사도 → 이름표 없이 같은 인물끼리 묶기비지도학습
음성 비서, 번역기음성과 문장의 쌍, 원문과 번역문의 쌍 → 새 발화를 받아쓰고 옮기기지도학습

학습 유형 열의 두 갈래가 정확히 무엇을 뜻하는지는 다음 절에서 다룹니다. 지금은 정답이 주어진 데이터로 배우는 쪽과 정답 없이 데이터의 구조만으로 배우는 쪽이 있다는 정도로 충분합니다.

겉보기에는 제각각이고 정답이 있는 사례와 없는 사례가 섞여 있지만, 뼈대는 하나입니다. 과거 데이터에서 패턴을 배우고, 그 패턴으로 처음 보는 입력을 처리합니다. 이 블로그의 NYC 택시 수요 예측 프로젝트도 같은 구조입니다. 과거의 (시간대, 요일, 날씨, 지역) 기록에서 수요 패턴을 배워, 아직 오지 않은 다음 시간대의 수요량을 예측합니다.

Types of ML

머신러닝 전체를 나누는 기준은 모델이 무엇을 보고 학습하는가입니다. 답에 따라 아래와 같이 여러 갈래로 갈라집니다.

패러다임학습 신호대표 문제
지도학습입력마다 붙어 있는 정답 라벨회귀, 분류
비지도학습라벨 없음, 입력 데이터의 분포와 구조군집화, 차원축소, 이상치 탐지
강화학습행동에 대해 환경이 돌려주는 보상게임 플레이, 로봇 제어

Supervised learning(지도학습) 은 입력 x와 정답 y의 쌍 (x, y)로 학습합니다. 목표는 x로부터 y를 예측하는 함수 y = f(x)를 찾는 것입니다. y가 연속값이면 regression(회귀), 정해진 범주 중 하나면 classification(분류) 입니다. 집의 면적으로 매매가를 예측하면 회귀, 메일이 스팸인지 판별하면 분류입니다. 학습 중에 정답이 곁에 있어 예측이 맞았는지 바로 확인할 수 있고, supervised라는 이름도 여기서 나옵니다. 이 시리즈의 2편부터 14편까지가 지도학습을 다룹니다.

Unsupervised learning(비지도학습) 은 정답 없이 입력 x만으로 데이터의 구조를 찾습니다. 비슷한 데이터를 묶는 clustering(군집화), 수십 개의 특성을 몇 개의 축으로 요약하는 dimensionality reduction(차원축소), 대다수와 동떨어진 데이터를 찾는 anomaly detection(이상치 탐지) 이 대표적입니다. 맞혀야 할 정답이 없으므로 평가 방식부터 지도학습과 달라집니다. 군집화는 15편, 차원축소는 16편, 이상치 탐지는 17편에서 다룹니다.

Reinforcement learning(강화학습) 은 정답 대신 보상으로 배웁니다. 에이전트가 환경에서 행동하면 환경은 보상과 바뀐 상태를 돌려주고, 에이전트는 장기적으로 보상의 합을 크게 만드는 전략을 학습합니다. 학습 데이터가 미리 주어지는 것이 아니라 자신의 행동 결과로 생겨난다는 점에서 앞의 둘과 구도가 다릅니다. 이 시리즈에서는 다루지 않습니다.

이외에도 소량의 라벨 데이터와 대량의 라벨 없는 데이터를 함께 쓰는 semi-supervised learning(준지도학습), 데이터의 일부를 가리고 그 부분을 맞히는 식으로 정답을 데이터 자체에서 만들어 내는 self-supervised learning(자기지도학습) 같은 중간 형태도 있습니다. GPT 같은 대규모 언어 모델이 다음 단어를 맞히며 진행하는 사전학습이 자기지도학습의 대표적인 예입니다.

The ML Project Lifecycle

지금까지의 지도가 “머신러닝에 어떤 종류가 있는가”였다면, 마지막 지도는 “하나의 ML 프로젝트가 어떻게 흘러가는가”입니다.

flowchart LR
    P[문제 정의] --> C[데이터 수집]
    C --> E[탐색과 전처리]
    E --> T[모델 학습]
    T --> V[평가]
    V -->|성능 부족| E
    V -->|성능 충족| D[배포]
    D --> M[모니터링]
    M -->|데이터 분포 변화| C

두 가지를 눈여겨볼 만합니다. 첫째, 이 흐름은 한 방향이 아니라 순환입니다. 평가에서 성능이 부족하면 전처리나 모델 학습 단계로 돌아가 특성과 하이퍼파라미터를 다시 잡고, 배포한 뒤에도 데이터의 분포가 달라지면 수집부터 다시 반복합니다. 모델은 한 번 만들고 끝나는 소프트웨어가 아니라 계속 관리해야 하는 대상입니다. 둘째, 실무에서 시간이 가장 많이 드는 구간은 모델 학습이 아니라 문제 정의와 데이터 준비입니다. 학습 자체는 라이브러리 덕분에 코드 몇 줄로 끝나지만, 무엇을 예측할지 정하고 그에 맞는 데이터를 모으고 다듬는 일은 자동화하기 어렵기 때문입니다.

이 시리즈가 다루는 범위는 이 중 탐색과 전처리부터 모델 학습, 평가까지입니다. 문제 정의와 데이터 수집은 도메인마다 달라 일반화하기 어렵고, 배포와 모니터링은 MLOps라는 별도의 분야입니다. 위에서 언급한 NYC 택시 수요 예측 프로젝트가 이 전체 흐름을 처음부터 끝까지 밟아 보는 실습입니다.

Where This Series Goes

이 시리즈는 지도학습에서 시작합니다. 손실 함수, 경사하강법, 일반화 같은 개념의 뼈대가 지도학습에서 가장 명확하게 서고, 실무에서 만나는 문제의 다수가 지도학습이기 때문입니다. 시리즈 후반부에서 비지도학습(군집화, 차원축소, 이상치 탐지)을 다룹니다.

강화학습은 이 시리즈의 범위 밖입니다. 문제 설정과 도구가 달라 별도의 학습 경로가 필요합니다. 신경망과 딥러닝도 마찬가지로 별도 시리즈에서 다룰 주제이며, 이 시리즈는 그 전에 갖춰야 할 고전 머신러닝의 뼈대에 집중합니다.

다음 편부터 지도학습으로 들어갑니다. 지도학습이 어떤 일을 하는지 정의하고, 회귀와 분류의 구분을 코드로 확인합니다.

다음 글: 머신러닝 기초 (2) - Supervised Learning: Regression and Classification

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.