인공지능 기초

기계학습과 문제 해결 과정

영상 앱은 어떻게 내가 좋아할 만한 영상을 골라 줄까요? 데이터에서 규칙을 찾아내는 기계학습(machine learning)을 알아봅시다.

학습 목표

  1. 인공지능, 기계학습, 딥러닝의 포함 관계를 설명할 수 있다.
  2. 전통적 프로그래밍과 기계학습의 차이를 설명할 수 있다.
  3. 기계학습을 적용할 문제와 그렇지 않은 문제를 구분하고, 그 이유를 설명할 수 있다.
  4. 지도학습, 비지도학습, 강화학습의 개념과 차이를 이해한다.
  5. 추천 시스템의 원리를 기계학습과 연결하여 설명할 수 있다.
  6. 기계학습을 적용할 문제를 정의하고, 데이터 수집 과정에서 데이터 편향이 발생하지 않도록 유의할 점을 설명할 수 있다.

인공지능 속의 기계학습

기계학습은 인공지능과 같은 말일까, 그 안의 한 갈래일까?

인공지능인지 아닌지를 구분하는 기준은 미리 정해 두지 않은 상황에서도 스스로 판단하는가입니다. 그 판단을 만들어 내는 방법은 크게 세 갈래입니다. 가능한 경우를 하나씩 차례로 검토해 보는 탐색, 알고 있는 사실에서 새 사실을 이끌어 내는 지식 표현과 추론, 그리고 데이터에서 규칙을 찾아내는 기계학습입니다. 기계학습은 이 세 갈래 가운데 하나입니다.

그러니 인공지능과 기계학습은 같은 말이 아닙니다. 아래 그림처럼 기계학습은 인공지능을 만드는 여러 방법 가운데 하나이고, 딥러닝은 다시 그 기계학습 안의 한 갈래입니다.

인공지능 기계학습 딥러닝 안쪽으로 갈수록 더 좁은 갈래

인공지능(artificial intelligence)

인간의 지적 능력을 컴퓨터로 구현한 기술 전체를 가리킵니다. 탐색으로 만들든, 추론으로 만들든, 데이터로 학습시켜 만들든 모두 여기에 들어갑니다.

기계학습(machine learning)

사람이 규칙을 적어 주는 대신 데이터에서 규칙을 찾아내게 하는 방법입니다. 규칙을 어디서 얻는지가 다른 갈래와 구분되는 지점입니다.

딥러닝(deep learning)

기계학습 가운데 인공신경망이라는 구조를 여러 층으로 쌓아 규칙을 찾는 방법입니다. 인공신경망은 사람 뇌의 신경세포가 이어진 모양을 모방해 만든 계산 구조입니다.

세 갈래는 서로 경쟁하는 사이가 아닙니다. 어느 하나가 다른 것보다 뛰어나서 그것만 쓰는 것이 아니라, 문제의 조건에 따라 알맞은 방법이 달라집니다. 규칙이 이미 분명한 문제에는 탐색이나 추론이 더 빠르고, 규칙을 사람이 적어 내기 어려운 문제에 기계학습이 힘을 발휘합니다. 실제 서비스에서는 여러 갈래를 함께 쓰는 경우도 많습니다.

스스로 확인

체스 프로그램이 둘 수 있는 수를 모두 검토해 가장 유리한 수를 고릅니다. 데이터로 학습한 적은 없습니다. 이 프로그램은 인공지능일까요, 기계학습일까요?

컴퓨터에게 가르치는 두 가지 방법

규칙을 사람이 정해 주는 것과 컴퓨터가 스스로 찾아내는 것은 무엇이 다를까?

인공지능을 만드는 방법은 크게 규칙 기반(rule-based)과 학습 기반(learning-based)으로 나눌 수 있습니다. 기계학습은 학습 기반의 대표적인 방법입니다.

전통적인 방식 (규칙 기반)

사람이 컴퓨터에게 모든 규칙을 직접 하나하나 알려 주는 방식입니다.

이렇게 적어 줍니다.
「다리가 4개고, 꼬리가 있고, 멍멍 소리를 내면 그것은 강아지라고 판단해!」
단점: 예외 상황(다리가 3개인 강아지)이 생기면 규칙에 없는 경우라 컴퓨터가 강아지로 알아보지 못합니다.

기계학습 (학습 기반)

컴퓨터에게 수많은 데이터를 주고, 스스로 규칙(패턴)을 찾게 하는 방식입니다.

이렇게 가르칩니다.
강아지 사진 1만 장과 고양이 사진 1만 장을 보여 주며 「이게 강아지고, 저게 고양이야」라고 알려 줍니다.
장점: 컴퓨터가 생김새의 특징을 스스로 찾으므로 학습한 사진과 비슷한 종류라면 처음 보는 사진도 분류할 수 있습니다.

무엇이 들어가고 무엇이 나오는가

두 방식의 차이는 규칙이 어느 쪽에 있는지를 보면 드러납니다. 전통적 프로그래밍에서 규칙은 사람이 미리 넣어 주는 입력이지만, 기계학습에서 규칙은 컴퓨터가 찾아내는 결과입니다.

데이터 규칙 전통적 프로그래밍 출력값 데이터 정답 기계학습 규칙

아래쪽에 넣는 정답은 위쪽에서 나온 출력값과 같은 것입니다. 전통적 프로그래밍에서 나오던 것을, 기계학습에서는 넣어 줍니다.
파란 상자가 규칙입니다. 위쪽에서는 왼쪽(입력)에, 아래쪽에서는 오른쪽(결과)에 놓여 있습니다. 기계학습으로 찾아낸 규칙은 새로운 데이터가 쌓이면 다시 학습시켜 고쳐 쓸 수 있다는 점도 다릅니다. 전통적 프로그래밍에서는 규칙을 고치는 일을 사람이 직접 해야 합니다.

스스로 확인

「귀가 서 있으면 고양이」라는 규칙을 적어 둔 프로그램에 귀가 접힌 고양이 사진을 넣으면 어떻게 될까요? 귀가 접힌 고양이 사진이 섞인 데이터로 학습한 모델이라면 무엇이 다를 수 있을까요?

이 문제, 기계학습으로 풀어야 할까?

기계학습이 어울리는 문제와 그렇지 않은 문제는 무엇이 다를까?

기계학습은 강력하지만 모든 문제에 알맞은 도구는 아닙니다. 데이터를 모으고 학습시키는 데는 시간과 비용이 들기 때문에, 훨씬 간단한 방법으로 풀리는 문제까지 기계학습으로 푸는 것은 오히려 손해입니다. 그래서 문제를 만나면 이 문제에 기계학습이 필요한지부터 검토해야 합니다. 판단의 기준은 규칙을 사람이 미리 적어 낼 수 있는가입니다.

기계학습 없이 풀 수 있는 문제

풀이 방법이 이미 분명하게 정해져 있고, 같은 입력에는 늘 같은 결과가 나오며, 그 조건이 바뀌지 않는 문제입니다. 규칙을 사람이 그대로 적어 프로그램으로 만들면 됩니다.

  • 도서관에서 반납이 늦은 날수에 하루치 연체료를 곱해 금액을 구하기
  • 학급 학생들의 수행평가 점수를 더해 평균과 등수를 내기
  • 킬로미터로 적힌 거리를 미터로 바꾸기

기계학습이 힘을 발휘하는 문제

규칙을 사람이 말로 적어 내기 어렵거나, 적어 두어도 상황이 바뀌어 계속 고쳐야 하는 문제입니다. 대신 참고할 데이터는 많이 쌓여 있어야 합니다.

  • 복잡한 패턴을 알아보아야 하는 문제
  • 많은 양의 데이터를 한꺼번에 살펴야 하는 문제
  • 패턴이 불규칙해 사람이 그때그때 판단해 주어야 했던 자동화 문제

규칙을 적어 낼 수 없다는 것은 이런 뜻입니다

우편물에 손으로 쓴 우편번호를 읽어 내는 문제를 생각해 봅시다. 「3은 곡선이 두 개다」처럼 규칙을 적어 보아도, 사람마다 글씨가 달라서 곧 예외가 쏟아집니다. 규칙을 하나 더할 때마다 이미 잘 맞히던 글씨가 틀리기도 합니다. 이렇게 예외가 규칙보다 많아지는 순간이 기계학습을 떠올릴 때입니다. 사람이 쓴 숫자 이미지와 그 숫자가 무엇인지를 짝지어 잔뜩 보여 주면, 컴퓨터가 스스로 구별하는 기준을 찾아냅니다.

해 보기: 기계학습이 필요한 문제 구별하기

다음 다섯 가지 상황을 기계학습이 필요한 것과 필요하지 않은 것으로 나누고, 그렇게 판단한 이유를 한 문장씩 적어 봅시다. 근거는 이 절에서 세운 기준인 규칙을 사람이 미리 적어 낼 수 있는가입니다.

  1. 급식 만족도 설문에 매긴 점수들의 평균을 구하는 문제
  2. 사진 속 나뭇잎을 보고 어떤 나무의 잎인지 알아맞히는 문제
  3. 운동장 트랙 한 바퀴 길이에 바퀴 수를 곱해 달린 거리를 구하는 문제
  4. 여러 해 동안의 검사 기록에서 질병의 조짐을 일찍 찾아내는 문제
  5. 학교 매점의 다음 주 빵 판매량을 요일·날씨·행사 일정으로 가늠하는 문제
스스로 확인

위 다섯 가지 가운데 계산식 하나로 답이 정해지는 것은 몇 번인가요? 그런 문제에 기계학습을 쓰면 무엇이 손해일지도 함께 말해 보세요.

기계학습 모델은 어떻게 만들어질까?

기계학습 모델을 만드는 과정은 문제 정의 → 데이터 수집 → 데이터 전처리 → 유형·알고리즘 선정 → 모델 생성 → 성능 평가의 순서로 이루어집니다.

STEP 1 문제 정의
STEP 2 데이터 수집
STEP 3 데이터 전처리
STEP 4 유형·알고리즘 선정
STEP 5 모델 생성
STEP 6 성능 평가

여기서는 STEP 1(문제 정의)과 STEP 2(데이터 수집)을 자세히 살펴봅니다.

1

문제 정의

「이 문제, 기계학습으로 풀어야 할까?」 절에서 본 기준으로 기계학습을 적용할 문제인지 먼저 판단하고, 그다음 문제의 목표와 그 목표에 필요한 데이터를 분명하게 적어 두는 단계입니다. 이 두 가지가 흐릿한 채로 데이터부터 모으면, 정작 쓸 수 없는 데이터만 쌓이게 됩니다.

  • 목표 — 무엇을 맞히거나 알아내려 하는가
  • 필요한 데이터 — 그 답을 가늠하는 데 근거가 될 값은 무엇인가
학교 매점에서 빵이 남거나 모자라는 일이 잦다고 해 봅시다. 빵이 팔리는 양은 요일, 그날의 날씨, 학교 행사 일정에 따라 달라집니다. 그렇다면 「요일·날씨·행사 일정 데이터로 매점의 하루 빵 판매량을 예측해 보기」처럼 문제를 정의할 수 있습니다. 목표는 하루 빵 판매량 예측이고, 필요한 데이터는 지난 판매 기록과 그날의 날씨·일정입니다.
2

데이터 수집

문제 해결에 필요한 데이터를 어디서, 어떻게 모을지 정하는 단계입니다. 데이터의 종류와 수집 목적에 맞는 방법을 선택해야 합니다.

  • 센서로 직접 측정하기 — 온습도 센서를 붙인 장치처럼 기기가 주변의 값을 측정해 모읍니다. 센서가 고장 나거나 단위가 다르면 엉뚱한 값이 섞이므로 확인이 필요합니다.
  • 사람에게 직접 묻기 — 인터뷰나 설문 조사로 새 데이터를 만듭니다. 개인 정보가 포함되면 미리 동의를 받고, 어디에 얼마 동안 쓰는지 알려야 합니다.
  • 누리집에서 수집하기(크롤링) — 크롤링은 웹 페이지에 올라 있는 내용을 프로그램으로 자동으로 가져오는 일을 말합니다. 저작권과 개인 정보를 침해하지 않도록 조심해야 합니다.
  • 이미 공개된 데이터 쓰기 — 공공 데이터 포털이나 민간 데이터 서비스에서 내려받습니다. 공공 기관이 관리하는 데이터는 품질과 정확성이 비교적 잘 보장됩니다.
주의: 어느 방법으로 모으든 저작권법, 개인 정보 보호법 등 관련 법규와 윤리 규범을 반드시 지켜야 합니다.

데이터 편향(Data Bias)에 주의하세요

학습에 쓰는 데이터가 실제 세상의 모습을 고르게 담지 못하고 한쪽으로 치우쳐 있는 것을 데이터 편향이라고 합니다. 맑은 날 낮에 찍은 도로 사진만 모았다면, 그 데이터로 학습한 인공지능은 비 오는 밤의 도로 앞에서 엉뚱한 판단을 내릴 수 있습니다. 수집한 데이터가 편향되어 있으면 그 데이터를 학습한 인공지능도 편향된 결과를 냅니다.

편향과 따로 살필 것이 하나 더 있습니다. 페트병과 캔을 구분하는 분리수거 인공지능을 만들 때 페트병 이미지는 240장을 모으고 캔 이미지는 56장만 모았다면, 이 데이터를 그대로 학습한 모델은 수가 많은 페트병 쪽으로 기울기 쉽습니다. 갈래마다 데이터 수가 크게 다른 것이 곧 편향은 아닙니다. 실제로 드문 갈래라면 세상을 고르게 담은 데이터도 수가 치우치기 때문입니다. 그래서 수가 적은 갈래는 더 모으거나, 갈래마다 따로 성능을 확인합니다.

해 보기: 기계학습을 적용하여 해결할 수 있는 문제를 찾아 정의하기

자신의 진로나 관심 분야에서 기계학습을 적용해 해결할 수 있는 문제를 하나 찾아보고, 다음 항목을 정리해 봅시다.

  1. 문제의 목표는 무엇인가요?
  2. 문제 해결에 필요한 데이터는 무엇인가요?
  3. 그 데이터는 어디서, 어떻게 수집할 수 있나요?
스스로 확인

한 학생이 매점 판매량을 예측하겠다며 무엇을 맞힐지 정하기도 전에 인터넷에서 데이터부터 잔뜩 내려받았습니다. 어느 단계를 건너뛰었고, 그 때문에 어떤 일이 생길 수 있을까요?

어떻게 공부할까? 기계학습의 3가지 학습 방법

기계에게 정답을 알려 주는지, 보상을 주는지 등 학습하는 방식에 따라 크게 3가지로 나눌 수 있습니다.

1. 지도학습 (Supervised Learning)

컴퓨터에게 「문제(입력 데이터)」와 문제에 대한 「정답(label)」을 함께 주면서 학습시키는 방법입니다. 선생님이 정답지를 보고 가르쳐 주는 것과 같습니다.

「이 사진은 고양이(정답)야」처럼 정답을 알려 줍니다.

「회귀」와 「분류」가 여기에 속합니다.
설명 영상 보기

2. 비지도학습 (Unsupervised Learning)

컴퓨터에게 「정답 없이 데이터만」 주고, 스스로 데이터 안에서 비슷한 특징과 패턴을 찾아내도록 하는 방법입니다.

정답 없이 「성향이 비슷한 고객끼리 묶어 봐」라고 맡깁니다.

「군집화」가 대표적입니다.
설명 영상 보기

3. 강화학습 (Reinforcement Learning)

어떤 환경에서 컴퓨터가 행동을 취하면, 그 결과에 따라 「보상」이나 「벌점」을 주어 스스로 최적의 방법을 깨우치게 합니다.

간식으로 강아지를 훈련하는 것과 닮은 방식이며, 다중 슬롯머신(Bandit)과 그리드월드(GridWorld)가 대표 예제입니다. 알파고도 학습의 한 부분에 이 방식을 썼습니다.

게임 AI 에이전트, 로봇 제어 같은 분야에서 쓰입니다.
설명 영상 보기
스스로 확인

사진마다 「강아지」「고양이」라는 이름표가 붙은 데이터와, 이름표 없이 사진만 모아 둔 데이터가 있습니다. 이름표가 없는 쪽으로는 세 학습 방법 가운데 무엇을 쓸 수 없을까요?

기계학습의 유형

회귀·분류·군집·강화학습은 각각 어떤 문제를 풀 때 쓸까?

기계학습은 문제의 종류에 따라 수치를 맞히는 회귀를 하거나, 데이터를 분류하거나, 비슷한 데이터를 군집하여 묶거나, 경험을 통해 행동을 배우는 다양한 방법을 사용합니다.

1. 지도학습: 회귀 (Regression)

「얼마일까? 몇 도일까?」 연속적인 숫자를 예측합니다.

입력 데이터

- 집의 평수, 역과의 거리 등

- 수치, 범주 등 다양한 형태 가능

출력 결과

- 주식 가격, 강수량 등

- 연속값(Real value)

대표 활용 사례

- 주식 가격 예측, 내일의 기온 예측

회귀의 대표 모델 알아보기

선형 회귀 (Linear Regression)

여러 데이터 사이의 관계를 직선 형태의 규칙으로 표현하여, 새로운 데이터의 값을 예측하는 가장 기본적인 기계학습 모델입니다.

스마트폰 사용 시간이 긴 학생일수록 수면 시간이 짧은 경향을 직선으로 표현할 수 있습니다.

모델 실습하기
다중 선형 회귀 (Multiple Linear Regression)

예측의 근거로 쓰는 입력 변수가 여러 개일 때, 각 변수의 가중치(예측에 반영하는 비중)를 함께 학습하여 예측하는 모델입니다. 입력 변수가 하나인 선형 회귀에서 입력 변수를 여러 개로 늘린 것입니다.

집값을 예측할 때 평수 하나만 보지 않고 평수와 역까지의 거리를 함께 고려하는 것이 그 예입니다.

모델 실습하기

2. 지도학습: 분류 (Classification)

「이건 강아지일까, 고양이일까?」 데이터를 정해진 종류(범주, 클래스)로 나눕니다.

입력 데이터

- 이메일의 제목, 내용, 보낸 사람

- 정답 레이블(Label)이 존재하는 데이터

출력 결과

- 「스팸 메일」 또는 「정상 메일」

- 정해진 클래스(Class), 불연속적인 값

대표 활용 사례

- 스팸 필터링, 이미지 인식, 질병 진단

분류의 대표 모델 알아보기

로지스틱 회귀 (Logistic Regression)

이름에 「회귀」가 들어가지만 실제로는 분류에 쓰입니다. 데이터가 특정 그룹에 속할 가능성(확률)을 계산하고, 그 확률을 기준으로 새로운 데이터가 어떤 범주에 속하는지 판단하는 모델입니다.

이메일이 스팸일 확률을 계산하여 「스팸」 또는 「정상 메일」로 분류할 때 사용됩니다.

모델 실습하기
k-NN (최근접 이웃)

새로운 데이터가 들어왔을 때, 주변에 가장 가까이 있는 k개의 이웃 데이터들이 어느 그룹에 속하는지 보고 다수결로 자신의 그룹을 정합니다.

처음 보는 과일의 무게와 색을 측정해, 가장 비슷한 과일 5개 가운데 4개가 사과라면 사과로 분류하는 방식입니다.

모델 실습하기
의사결정트리 (Decision Tree)

마치 스무고개 게임처럼 「날개가 있나요?」, 「포유류인가요?」 같은 질문(조건)을 이어가며 데이터를 분류하는 직관적인 모델입니다.

동물 사진을 보고 「날개가 있나요?」, 「네 발로 걷나요?」 같은 질문을 통해 어떤 동물인지 분류하는 방식입니다.

모델 실습하기
SVM (서포트 벡터 머신)

서로 다른 두 그룹을 나눌 때, 두 그룹 사이의 여유 공간이 가장 넓어지도록 경계선을 찾는 분류 모델입니다.

게임 플레이 시간과 점수를 이용해 초보자와 숙련자를 구분하는 기준을 찾는 문제에 사용할 수 있습니다.

모델 실습하기
스스로 확인

「이 중고 자전거는 얼마에 팔릴까?」와 「이 댓글은 악성 댓글일까?」는 각각 회귀와 분류 중 무엇에 해당하나요? 두 질문의 답이 어떤 모양인지부터 비교해 보세요.

정답을 알려 주지 않으면 어떻게 배울까?

정답표가 없을 때도 배울 수 있을까?

회귀와 분류는 문제마다 정답이 함께 주어졌습니다. 정답이 없는 데이터에서 비슷한 것끼리 묶는 방법과, 정답 대신 잘했는지 못했는지만 알려 주는 방법을 이어서 봅시다.

3. 비지도학습: 군집 (Clustering)

「정답이 없어도 끼리끼리 묶어 볼까?」 비슷한 특징을 가진 데이터끼리 그룹을 만듭니다.

입력 데이터

- 쇼핑몰 고객들의 구매 기록

- 정답 레이블(Label)이 없는 데이터

출력 결과

- 비슷한 성향의 고객 그룹 (「단골」 같은 이름은 묶은 뒤 사람이 붙임)

- 군집(Cluster)

대표 활용 사례

- 고객 성향 세분화, 추천 시스템 기초 데이터

대표 모델 알아보기

k-평균 군집화 (k-Means Clustering)

데이터를 k개의 그룹으로 나누겠다고 미리 정해 주면, 각 그룹의 중심점을 찾아가며 가장 가까운 데이터들끼리 뭉치게 하는 방법입니다.

비슷한 취향을 가진 학생들을 자동으로 여러 모둠으로 나눌 때 사용할 수 있습니다.

모델 실습하기
계층적 군집화 (Hierarchical Clustering) 참고

몇 개의 그룹으로 나눌지 미리 정하지 않고, 가장 비슷한 데이터부터 차근차근 나무 가지처럼 묶어 올라가는 방식입니다.

생물의 진화 계통도(분류도)를 그릴 때 유사한 유전자를 가진 종끼리 묶는 것이 이 원리입니다.

4. 강화학습 (Reinforcement Learning)

「시행착오를 거쳐 배운다」 환경과 상호작용하며 보상(+점수)을 최대화하는 방법을 스스로 학습합니다.

입력 데이터

- 현재 처해 있는 상황/상태 (State)

- 행동에 따른 보상(Reward) 또는 벌점(Penalty)

출력 결과

- 다음 단계에서 취해야 할 행동 (Action)

- 최적의 행동 지침 (Policy)

대표 활용 사례

- 알파고(바둑), 게임 AI 에이전트, 자율주행 자동차, 로봇 제어

대표 예제 알아보기

다중 슬롯머신 (Multi-Armed Bandit)

여러 개의 슬롯머신 중 어떤 것을 당겨야 가장 많은 수익(보상)을 얻을 수 있을지 새로운 시도(탐색)와 기존의 성공(활용) 사이에서 고민하며 학습하는 기초 모델입니다.

웹사이트에서 A안과 B안 중 방문자 클릭률(보상)이 더 높은 디자인을 찾는 동안에도, 지금까지 나아 보이는 안을 방문자에게 더 자주 보여 줄 때 사용됩니다.

예제 실습하기
그리드월드 (GridWorld)

격자 형태의 지도(환경)에서 주인공이 상하좌우로 움직이며 장애물(벌점)을 피하고 목적지(보상)에 도달하는 최적의 경로를 익히는 예제입니다.

로봇이 시행착오를 거쳐 목적지까지 가는 길을 익히는 문제를 격자 위로 단순하게 줄인 것입니다.

예제 실습하기
스스로 확인

청소 로봇이 벽에 부딪힐 때마다 벌점을 받으며 방을 도는 길을 익힙니다. 이것은 군집과 강화학습 중 무엇이고, 로봇이 받는 것과 내놓는 것은 각각 무엇인가요?

한눈에 보는 기계학습 모델

학습 방법과 모델 이름은 어떻게 짝지어질까?

각 학습 방법과 목적에 따라 어떤 모델이 있는지 모았습니다. 강화학습 칸은 모델이 아니라 실습에 쓰는 대표 예제입니다.

스스로 확인

음악 앱이 이름표 없이 분위기가 비슷한 노래끼리 재생 목록을 묶어 준다면, 회귀·분류·군집·강화학습 가운데 어느 쪽 모델을 쓴 것일까요?

내 마음을 읽는 마법? 「추천 시스템」의 원리 참고

추천 시스템은 내가 좋아할 영상을 어떻게 알아낼까?

기계학습이 활발하게 쓰이는 곳 가운데 하나가 영상 앱 같은 「추천 서비스」입니다. 수백만 개의 영상 중에서 어떻게 내가 좋아할 만한 영상을 골라낼까요? 크게 두 가지 방법이 있습니다.

방법 1 콘텐츠 기반 필터링 (Content-based Filtering)

「영상의 내용(특징)을 분석해서 비슷한 걸 추천해 줄게」

사용자가 과거에 시청한 영상의 특징(장르, 키워드, 등장인물 등)을 파악하여, 그와 비슷한 특징을 가진 다른 영상을 추천합니다.


본 영상(게임)

추천(다른 게임)

방법 2 협업 기반 필터링 (Collaborative Filtering)

「너랑 취향이 비슷한 다른 사람들이 본 걸 추천해 줄게」

나와 비슷한 콘텐츠를 소비한(비슷한 취향을 가진) 다른 사용자들을 그룹으로 묶은 뒤, 그 사람들이 많이 본 새로운 영상을 나에게도 추천합니다.


나 (A, B 시청)
취향 비슷

타인 (A, B, C 시청)
C
추천
실제 추천 서비스는 대개 이 두 가지 방법과 다른 여러 가지 기술을 섞어서(하이브리드) 추천합니다.
스스로 확인

온라인 서점의 「이 책을 산 사람들이 함께 산 책」 목록은 콘텐츠 기반 필터링과 협업 기반 필터링 중 어느 쪽일까요? 책의 내용을 보았는지, 사람들의 선택을 보았는지부터 생각해 보세요.

코드로 보는 「협업 필터링」의 기본 원리 참고

「취향이 비슷하다」를 컴퓨터는 어떤 방법으로 계산할까?

「나와 취향이 비슷한 사람을 찾는다」는 것은 컴퓨터가 어떻게 계산할까요? 짧은 파이썬(Python) 코드로 그 논리를 쉽게 살펴봅시다.

더 알아보기: 협업 필터링을 파이썬 코드로 표현하면
recommendation_logic.py
# 1. 사용자들의 시청 기록 데이터 수집 (어떤 채널을 구독/시청했는지)
user_me = ["게임", "음악", "요리"]
user_friend_A = ["뷰티", "패션", "브이로그"]
user_friend_B = ["게임", "음악", "IT기기 리뷰"]  # 나와 취향이 비슷함

# 2. 취향 유사도(Similarity) 계산 함수
def check_similarity(user1, user2):
    # 겹치는 관심사의 개수를 셉니다.
    common_interests = set(user1) & set(user2)
    return len(common_interests)

# 3. 나와 가장 비슷한 사람 찾기
score_A = check_similarity(user_me, user_friend_A)  # 겹치는 것 0개
score_B = check_similarity(user_me, user_friend_B)  # '게임', '음악' 겹침 (2개)

if score_B > score_A:
    print("친구 B와 취향이 비슷합니다.")
    # 4. B는 봤지만 나는 안 본 것을 골라 추천하기
    new_items = set(user_friend_B) - set(user_me)
    for item in new_items:
        print(f"친구 B가 즐겨 보는 '{item}' 영상을 추천합니다.")

헷갈리기 쉬운 점

「기계학습 인공지능은 처음부터 똑똑해서 다 알아맞힌다?」

아닙니다. 기계학습 모델은 학습을 시작하기 전에는 아무 규칙도 갖고 있지 않습니다. 모델은 규칙을 「데이터(Data)」에서 찾아냅니다. 우리가 교과서로 공부하듯, 인공지능도 데이터를 보며 배웁니다. 쓰레기 데이터를 넣으면 쓰레기 결과가 나옵니다. (Garbage In, Garbage Out)

다만 「많이만 모으면 된다」는 뜻은 아닙니다. 데이터가 쌓인다고 인공지능이 저절로 좋아지지는 않습니다. 중요한 것은 양보다 질과 대표성입니다. 값이 정확하게 기록되어 있어야 하고, 풀려는 문제에서 마주칠 상황들이 고르게 들어 있어야 합니다. 한쪽으로 치우친 데이터는 아무리 많아도 치우친 판단을 낳습니다.

핵심 내용

기계학습의 개념

기계학습(Machine Learning)은 사람이 직접 규칙을 지시하지 않아도, 기계가 데이터 속에서 스스로 패턴과 규칙을 찾아내는 인공지능 기술입니다.

인공지능 · 기계학습 · 딥러닝은 어떤 사이일까

  • 인공지능 ⊃ 기계학습 ⊃ 딥러닝의 포함 관계입니다. 기계학습은 인공지능을 만드는 여러 방법 가운데 하나이고, 딥러닝은 그중에서도 인공신경망을 여러 층으로 쌓아 쓰는 갈래입니다.
  • 탐색, 지식 표현과 추론, 기계학습은 서로 경쟁하는 사이가 아니라 문제의 조건에 따라 알맞은 것이 달라지는 갈래들입니다.

기계학습을 쓸 문제인지 판단하기

  • 판단 기준은 규칙을 사람이 미리 적어 낼 수 있는가입니다. 적어 낼 수 있고 조건이 변하지 않으면 기계학습 없이 푸는 편이 낫습니다.
  • 기계학습은 문제 정의 → 데이터 수집 → 데이터 전처리 → 유형·알고리즘 선정 → 모델 생성 → 성능 평가의 순서로 만들어 갑니다. 첫 단계는 데이터가 아니라 문제 정의입니다.
  • 데이터는 양보다 질과 대표성이 중요합니다. 한쪽으로 치우친 데이터는 아무리 많아도 치우친 판단을 낳습니다(데이터 편향).

지도학습·비지도학습의 세 유형

회귀 (Regression)

주식 가격, 집 값, 기온 등 연속적인 숫자를 예측합니다.

분류 (Classification)

스팸 메일 여부, 질병 진단 등 데이터를 정해진 범주(Class)로 나눕니다.

군집 (Clustering)

정답(라벨) 없이 비슷한 특성을 가진 데이터끼리 그룹화합니다.

기계학습의 대표 활용: 추천 시스템

  • 콘텐츠 기반 필터링 : 아이템 자체의 특징(장르, 키워드 등)이 비슷한 것을 추천합니다.
  • 협업 기반 필터링 : 나와 시청 기록이나 취향이 비슷한 「다른 사람」의 데이터를 활용해 추천합니다.

확인 퀴즈

배운 내용을 확인해 봅시다.

Q1 다음 중 기계학습(Machine Learning)에 대한 설명으로 알맞은 것은 무엇일까요?

Q2 학생 A는 「우주 탐험」에 관한 다큐멘터리 영상을 시청했습니다. 추천 시스템이 학생 A에게 「이 다큐멘터리와 장르와 주제가 비슷한 다른 우주 관련 영상」을 추천해 주었다면, 어떤 기술을 사용한 것일까요?

Q3 인공지능이 게임 환경에서 특정 행동을 했을 때 「보상(+점수)」이나 「벌점(-점수)」을 주어, 스스로 가장 높은 점수를 얻는 방법을 찾아내도록 하는 학습 방식은 무엇일까요?