[9편] 머신러닝의 3가지 핵심 학습 방식 한 번에 이해하기 (지도학습, 비지도학습, 강화학습)

 지난 8편에서는 파이썬의 클래스와 상속 개념을 통해 AI 모델의 단단한 뼈대를 세우는 방법에 대해 이야기했습니다. PyTorch나 TensorFlow 같은 현대의 딥러닝 프레임워크가 왜 객체지향 프로그래밍(OOP) 구조로 설계되어 있는지, 그 이유를 이해하셨다면 이제 인공지능의 내부 동작 원리를 파악할 준비가 완전히 끝난 셈입니다.

이번 9편부터는 본격적으로 인공지능과 머신러닝의 핵심 세계로 들어섭니다. 입문자들이 머신러닝을 공부할 때 가장 먼저 접하게 되는 장벽은 수많은 알고리즘 이름(선형 회귀, K-Means, Q-Learning 등)입니다. 하지만 이 복잡해 보이는 알고리즘들도 컴퓨터가 데이터를 '공부하는 방식'에 따라 크게 3가지 범주로 깔끔하게 분류됩니다.

나 역시 처음 머신러닝에 입문했을 때, 어떤 상황에 어떤 알고리즘을 적용해야 할지 몰라 길을 잃었던 경험이 있습니다. 무작정 복잡한 수식을 외우려다 보니 머릿속이 엉키기 일쑤였습니다. 하지만 이 3가지 기본 학습 메커니즘을 확실히 정리하고 나니, 새로운 AI 모델을 접하더라도 '아, 이 모델은 이 방식으로 데이터를 학습하는구나' 하고 직관적으로 이해할 수 있게 되었습니다. 오늘 글에서는 머신러닝의 3가지 핵심 학습 방식을 실제 사례와 함께 알기 쉽게 풀어나가 보겠습니다.

1. 정답을 알려주고 공부시키는: 지도학습 (Supervised Learning)

지도학습은 말 그대로 '선생님이 정답을 알려주면서 학생을 가르치는 방식'입니다. 컴퓨터에게 문제(입력 데이터, Feature)와 함께 그 문제에 대한 정답(라벨, Label)을 한 쌍으로 제공하여 학습시킵니다.

(1) 작동 원리

컴퓨터는 수많은 문제와 정답 쌍을 보면서 "아, 이런 특징을 가진 데이터는 이런 정답으로 연결되는구나!"라는 규칙(수식)을 스스로 찾아냅니다. 학습이 끝난 후 정답이 없는 새로운 문제가 들어오면, 그동안 배운 규칙을 바탕으로 정답을 예측합니다.

(2) 대표적인 2가지 유형

  • 분류 (Classification): 데이터를 정해진 몇 가지 범주(클래스) 중 하나로 나누는 문제입니다.

    • 예시: 이 이메일이 스팸인가 아닌가?, 찍힌 사진 속 동물이 개인가 고양이인가?

  • 회귀 (Regression): 데이터를 바탕으로 연속적인 수치(숫자)를 예측하는 문제입니다.

    • 예시: 아파트의 평수와 위치를 보고 매매가를 예측하기, 내일의 기온 예측하기

지도학습은 현재 산업 현장에서 가장 많이 쓰이고 성과가 명확한 방식입니다. 다만, 수만 건의 데이터에 사람이 일일이 정답(라벨)을 달아주는 '데이터 라벨링' 작업에 엄청난 시간과 비용이 들어간다는 한계가 있습니다.

2. 정답 없이 스스로 패턴을 찾는: 비지도학습 (Unsupervised Learning)

비지도학습은 '정답(Label)이 없는 데이터만 주고, 컴퓨터 스스로 데이터 내부의 숨겨진 구조나 패턴을 찾아내게 하는 방식'입니다.

(1) 작동 원리

선생님이 정답을 알려주지 않기 때문에 컴퓨터는 데이터끼리의 유사도, 거리, 분포 등을 스스로 계산합니다. "이 데이터들은 서로 비슷하게 생겼으니 같은 그룹으로 묶어야겠다"라고 판단하는 것입니다.

(2) 대표적인 2가지 유형

  • 군집화 (Clustering): 유사한 특성을 가진 데이터끼리 자동으로 그룹(클러스터)을 형성합니다.

    • 예시: 구매 이력 데이터를 바탕으로 비슷한 쇼핑 성향을 가진 고객 군집 나누기, 유사한 뉴스 기사 묶기

  • 차원 축소 (Dimensionality Reduction): 데이터의 중요한 정보는 최대한 보존하면서, 너무 많은 변수(특성)의 개수를 줄여 데이터 구조를 단순화합니다.

    • 예시: 복잡한 시각화나 모델 연산 속도 향상을 위한 변수 압축

비지도학습은 정답을 달아줄 필요가 없어 대용량 데이터를 그대로 활용할 수 있다는 강력한 장점이 있습니다. 데이터 전처리 단계에서 데이터의 특성을 파악하거나 고객 세분화 마케팅에 자주 활용됩니다.

3. 시행착오를 거치며 보상을 극대화하는: 강화학습 (Reinforcement Learning)

강화학습은 앞선 두 방식과 완전히 다릅니다. 정답이 적힌 데이터셋 대신, 컴퓨터(에이전트)를 특정 환경(Environment)에 던져놓고 직접 행동(Action)하게 만드는 학습 방식입니다.

(1) 작동 원리

어린아이가 자전거 타기를 배울 때처럼 작동합니다. 넘어지면 '감점(음의 보상)', 앞으로 나가면 '점수(양의 보상)'를 줍니다. 에이전트는 시행착오를 반복하면서 시간이 지남에 따라 '보상(Reward)의 총합을 극대화하는 최적의 행동 방침(Policy)'을 스스로 터득합니다.

(2) 대표적인 활용 사례

  • 게임 AI: 알파고(AlphaGo)가 바둑을 두거나, 스타크래프트/철권 등에서 인간 프로게이머를 이기는 AI

  • 자율주행 및 로보틱스: 보행자를 피하고 신호를 지키면 보상을 주어 안전한 운전 방법을 학습시킴, 이족보행 로봇의 균형 잡기

  • 제어 시스템: 데이터센터의 냉각 시스템 전력 소비 최적화

강화학습은 정적인 데이터 분석을 넘어, 시간에 따라 환경이 계속 변하는 동적인 문제를 해결하는 데 최적화되어 있습니다.

4. 입문자가 각 학습 방식을 적용할 때 자주 범하는 실수 2가지

  • 풀고자 하는 문제와 학습 방식의 미스매치:

    고객의 향후 이탈 여부(예/아니오)를 예측하고 싶은데 정답 라벨이 없다며 비지도학습(군집화)을 적용하려는 경우가 있습니다. 정답을 정확히 맞히는 것이 목표라면 비지도학습보다는 소량이라도 라벨링된 데이터를 확보하여 지도학습을 적용하는 것이 맞습니다.

  • 강화학습의 보상 함수(Reward Function) 설계 오류:

    강화학습은 보상 체계에 따라 행동이 완전히 달라집니다. 보상 기준을 엉뚱하게 설정하면, AI가 개발자의 의도와 달리 편법을 써서 점수만 따려는 기기묘묘한 행동(예: 게임에서 벽에 계속 비비며 점수를 얻는 현상)을 학습하게 되므로 매우 정교한 보상 설계가 필요합니다.

핵심 요약

  • 지도학습은 문제와 정답을 함께 학습시켜 새로운 문제의 정답(분류/회귀)을 예측하는 방식입니다.

  • 비지도학습은 정답 없이 데이터 자체의 유사성과 숨겨진 패턴(군집화/차원축소)을 스스로 탐색합니다.

  • 강화학습은 환경과의 상호작용 속에서 시행착오를 거치며 보상을 극대화하는 최적의 행동 규칙을 학습합니다.

댓글

이 블로그의 인기 게시물

[3편] 파이썬 환경 구축에서 90%가 겪는 시행착오 (Anaconda vs venv vs Docker)

[5편] 데이터 시각화로 AI 데이터 통찰 얻기 (Matplotlib & Seaborn)

[파이썬python]API 활용하기 - 공공데이터와 연동하여 정보 가져오기