개요

AI 교육 과정이 시작됐다. 첫 시간의 주제는 “AI와 ML이 도대체 뭔가”였는데, 솔직히 처음엔 “이미 아는 얘기 아닌가?” 싶었다. 유튜브 추천, 스팸 필터, 챗봇… 매일 쓰고 있으니까.

그런데 정리하고 나니 내가 알던 건 결과물의 이름뿐이었고, 그 안에서 정확히 무슨 일이 벌어지는지는 하나도 몰랐다. 이번 글은 그 안쪽을 내 말로 다시 쓴 기록이다.

앞서 파이썬으로 데이터를 가공하고(NumPy·Pandas) 그림으로 확인하는(Matplotlib·Seaborn) 단계까지 정리했었다. 그건 “데이터에 뭐가 들어있는지 사람이 보는” 단계였고, 이번부터는 “그 데이터로 기계가 규칙을 배우는” 단계다. 도구가 바뀌는 게 아니라 목적이 바뀐다.

교육 자료는 대외비라 슬라이드 이미지나 구체적인 예제 데이터는 싣지 않는다. 개념 흐름만 내가 이해한 방식으로 재구성했고, 그림은 전부 직접 그렸다.


1. AI, ML, DL — 셋은 무슨 관계인가

가장 먼저 정리한 게 이 세 단어의 관계다. 뉴스에서 아무렇게나 섞어 쓰는 바람에 오히려 헷갈리는 단어들이다.

결론부터 말하면 큰 원 안에 작은 원이 들어있는 구조다.

AI ML DL 포함 관계

  • AI(인공지능) : 주어진 환경과 데이터를 인지·학습·추론해서 목표를 이루도록 예측하고 행동을 고르는 시스템 전부
  • ML(머신러닝) : AI 중에서도 데이터로부터 규칙을 배워 목적을 달성하는 접근 방법
  • DL(딥러닝) : ML 중에서도 신경망(Neural Network)이라는 함수를 쓰는 학습 방법

여기서 제일 중요한 건 이거다. AI인데 ML이 아닌 것도 아주 많다.

조건을 사람이 전부 손으로 적어둔 규칙 기반 시스템, 그리고 A* 같은 휴리스틱 탐색 알고리즘이 대표적이다. 이런 것들도 “똑똑하게 판단하는 시스템”이니 분명 AI지만, 배우는 과정이 없다.

백엔드에서 흔히 짜는 어뷰징 차단 로직이 딱 여기에 해당한다. 1분에 요청이 100번 넘으면 차단, 같은 IP에서 계정을 5개 이상 만들면 보류. 꽤 똑똑하게 동작하지만, 숫자 100과 5를 내가 손으로 적어 넣은 것이다. 새로운 수법이 나오면? 내가 다시 조건문을 추가해야 한다.

ML은 그 반대다. 저 숫자와 판단 기준을 데이터를 보고 스스로 정하는 쪽이다. 이 차이 하나가 이 글 전체의 주제라고 봐도 된다.

더 쉬운 비유로

AI = 똑똑하게 행동하는 로봇 전부 ML = 그중에서 “예시를 잔뜩 보고 스스로 요령을 익히는” 로봇 DL = 그중에서도 “뇌 구조를 흉내 낸 방식”으로 익히는 로봇

요리로 비유하면 이렇다. 레시피를 한 글자도 안 틀리고 그대로 따라 하는 요리사(규칙 기반)와, 엄마가 만든 김치찌개를 100번 먹어보며 맛을 맞춰가는 요리사(ML)가 있다. 둘 다 요리사(AI)지만 배우는 방식이 완전히 다르다.


2. 머신러닝은 하나의 루프다

강의 내내 반복해서 나온 그림이 있다. 사실상 이 과정 전체의 목차나 다름없다.

머신러닝 루프

머신러닝 = 데이터를 이용해 모델을 학습하고, 평가 결과를 바탕으로 데이터·모델·학습 방법을 반복적으로 개선하는 과정

눈여겨볼 건 화살표가 되돌아온다는 점이다. 한 번 만들고 끝이 아니다. 평가해보고 별로면 데이터를 다시 손보거나, 모델을 바꾸거나, 학습 방법을 바꾼다.

개발자 입장에서 보면 개발 → 테스트 → 리팩터링 사이클과 구조가 똑같다. 다른 점이 하나 있다면, 일반 개발은 내가 코드를 고치지만 머신러닝은 데이터가 코드를 고친다는 것 정도다.


3. 데이터 — Feature와 Label

머신러닝에서 데이터는 그냥 “많은 숫자 더미”가 아니다. 반드시 두 덩어리로 나눠서 본다.

구분 쉬운 말
Feature (피쳐, 특성) 모델이 예측에 사용하는 입력 정보 판단의 근거·단서
Label (라벨, 목표값) 모델이 맞춰야 하는 정답 학습의 목표

일상적인 예로 보면 바로 감이 온다.

  • 영상 추천 — Feature는 영상 정보(길이, 장르, 조회수)와 내 시청 이력, Label은 “이 사람이 이걸 끝까지 볼까?”
  • 스팸 분류 — Feature는 제목·발신자·단어 사용 패턴, Label은 “스팸이냐 아니냐”

Feature와 Label의 분포와 관계가 학습 결과를 결정한다. 몇 번이고 다시 나오는 문장이라 외워두는 게 좋다. 아무리 좋은 모델을 써도 단서가 부실하면 답을 못 맞춘다.

여기서 헷갈렸던 것

Feature는 숫자만 되는 게 아니다. 범주형(성별, 지역), 텍스트, 이미지, 음성도 전부 Feature가 될 수 있다. 나는 처음에 “어차피 숫자로 바꿔 넣으니 숫자만 되는 거 아닌가?” 싶었는데, 숫자로 바꾸는 건 처리 과정이지 Feature의 정의가 아니었다.

Label도 마찬가지다. 분류 문제에서는 카테고리, 회귀 문제에서는 수치값이 된다.


4. 가장 단순한 형태 — 피쳐 하나로 배우기

이제 본론이다. Feature가 딱 하나일 때(1차원, 1D)를 가지고 “학습이 뭔지”를 설명하는데, 이 부분이 이번 시간의 핵심이었다.

“공부한 시간 → 시험 점수” 같은 관계를 떠올려 보자. 사람들의 데이터를 모아 점으로 찍으면, 대충 “많이 공부할수록 점수가 오르는” 모양이 나온다. 그런데 점들이 매끈한 선 위에 정확히 놓여 있지는 않다. 위아래로 흩어져 있다.

참 함수와 오차

이 상황을 강의에서는 이렇게 적었다.

점수 = f*(공부한 시간) + ε

식이 짧은데 생각보다 무겁다. 한 글자씩 풀어보자.

기호 읽는 법
f* 에프 스타 Feature와 Label 사이의 진짜 평균 관계. 미지의 참 함수
ε 엡실론 측정 오차. 우리가 설명하지 못하는 흔들림

f* : 미지의 참 함수

  • Feature와 Label 사이의 실제 평균 관계
  • 하지만 직접 관측할 수 없다
  • 우리 눈에 보이는 건 오차가 섞인 데이터, 즉 점들뿐이다

ε : 측정 오차

  • 데이터에는 항상 오차가 섞여 있다
  • 원인은 측정 기기의 한계, 환경 요인, 우리가 미처 넣지 못한 다른 변수들
  • 그래서 데이터 = 참 함수 + 오차

여기가 진짜 중요한 지점이다. 우리는 정답(f*)을 절대 볼 수 없다. 오차에 가려진 흐릿한 점들만 보고, 그 뒤에 숨어 있을 f*를 추측하는 게 머신러닝의 전부다.

비유하자면 안개 낀 날 멀리 있는 산의 능선을 그리는 일과 같다. 능선(f*)은 분명히 있는데 안개(ε) 때문에 정확히 안 보인다. 보이는 몇 점을 이어서 “대충 이런 모양이겠구나”를 그리는 것이다.

그리고 안개를 걷어낼 방법은 없다. 아무리 잘 그려도 안개는 그대로다.

이 문장이 이번 강의에서 가장 인상 깊었다. 학습을 잘한다고 해서 측정 오차가 줄거나 사라지지는 않는다. 오히려 오차까지 억지로 맞추려 들면 나중에 나올 오버피팅이라는 병에 걸린다. (다음 글의 주제다.)


5. 가설 공간과 모델 — 이번 강의의 핵심

자, 데이터가 우상향 모양이라고 하자. 그럼 어떤 함수를 그어야 할까?

직선을 그을 수도 있고, 살짝 휜 곡선을 그을 수도 있고, S자 곡선을 그을 수도 있다. 전부 그럴듯하다. 여기서 두 개념이 나온다.

가설 공간과 모델

개념 정의 한 줄 비유
가설 공간 (Hypothesis Space, ℱ) 관계를 표현할 수 있는 모든 후보 함수들의 모음 서점 전체
모델 (Model, f) 가설 공간 ℱ에 속한 특정 함수 하나 그중 내가 뽑아 든 책 한 권

예를 들어 “기울기와 높이만 다른 모든 직선”을 가설 공간으로 정했다고 해보자. 기울기와 높이에 아무 숫자나 넣을 수 있으니 후보는 무한히 많다. 그 무한한 후보 중에서 딱 하나를 고른 것이 모델이다.

  • 가설 공간을 직선들의 집합으로 잡으면 → 아무리 학습해도 결과는 직선이다
  • 가설 공간을 곡선까지 포함하도록 잡으면 → 휘어진 관계도 표현할 수 있다

그러니까 가설 공간을 어떻게 잡느냐가 이미 절반은 결정하는 셈이다. 표현할 수 없는 모양은 아무리 열심히 학습해도 나오지 않는다.

더 쉬운 비유로. 가설 공간은 “어떤 모양의 선을 그릴지 정하는 규칙”이다. “자로 곧은 선만 그리기”로 정했으면, 아무리 연습해도 구불구불한 선은 못 그린다.


6. 그래서 “학습”이란 무엇인가

여기까지 오면 학습의 정의가 자연스럽게 나온다.

학습 = 주어진 데이터에서 정답을 가장 잘 맞출 수 있도록 모델의 규칙을 조금씩 조정해가는 과정 데이터(D) → 가설 공간(ℱ) → 선택된 모델(f)

학습에 필요한 건 딱 세 가지다.

필요한 것 역할 비유
1. 데이터 (D) 입력과 정답이 짝지어진 예시 모음 문제집
2. 가설 공간 (ℱ) 고를 수 있는 후보 함수들의 집합 객관식 선택지
3. 선택 기준 (손실 함수) 어떤 함수가 더 좋은지 판단하는 척도 채점 기준

그리고 학습은 이렇게 굴러간다.

  1. 가설 공간에서 함수 하나를 고른다
  2. 그 함수로 데이터의 모든 예시를 예측해본다
  3. 손실 함수로 얼마나 틀렸는지 숫자로 계산한다
  4. 더 적게 틀리도록 함수의 값(파라미터)을 조금 조정한다
  5. 1~4를 반복해서 가장 덜 틀리는 모델을 완성한다

이게 머신러닝의 전부다. 딥러닝이든 뭐든 이 루프에서 벗어나지 않는다. 4번을 어떻게 하느냐가 나중에 나올 경사 하강법이다.

더 쉬운 비유로. 문제집을 풀고, 채점하고, 틀린 걸 고치고, 다시 푼다. 시험공부랑 똑같다.


7. 피쳐가 여러 개가 되면

현실에서 Feature가 하나뿐인 경우는 거의 없다. 시험 점수는 공부 시간만으로 정해지지 않는다. 잠을 얼마나 잤는지, 어떤 문제집을 썼는지도 영향을 준다.

Feature를 2개로 늘리면 그림이 바뀐다. 선이 면(surface)으로 바뀐다. 1차원에서는 점들을 관통하는 선을 찾았다면, 2차원에서는 점들을 관통하는 평평하거나 물결치는 판때기를 찾는 셈이다. 3개 이상이면 그림으로는 못 그리지만, 원리는 똑같다.

일반화해서 쓰면 이렇게 된다.

Y = f*(X) + ε
기호
Y 예측하려는 라벨(정답)
X 피쳐 여러 개를 한 줄로 묶은 것. X = [X₁, X₂, …, Xₚ]
p 피쳐가 몇 개인지
ε 여전히 남아 있는 측정 오차

말로 옮기면 “여러 개의 단서를 한 묶음으로 받아서 정답 하나를 뱉는 함수, 그리고 그 위에 얹힌 오차”다. 프로그래머 눈으로 보면 X는 입력값 배열이고, f는 그 배열을 받아 숫자 하나를 반환하는 함수다. 피쳐가 몇 개로 늘어나든 바뀌는 건 배열의 길이뿐이고, 함수의 생김새는 그대로다.

오차 ε에는 두 가지 가정이 붙는다.

  • ε는 피쳐 X와 상관없이 생긴다 (입력값에 따라 규칙적으로 커지거나 작아지지 않는다)
  • 오차의 평균은 0이다 — 위아래로 골고루 흩어진다

두 번째 가정이 없으면 애초에 f*를 “평균 관계”라고 부를 수가 없다. 오차가 한쪽으로 쏠려 있다면 그건 오차가 아니라 아직 못 찾아낸 규칙이다. 이 관점이 마음에 들었다. “설명 못 한 부분이 규칙적으로 보인다면, 그건 오차가 아니라 내가 놓친 힌트다.”


8. 왜 f를 배우려고 하는가

마지막 질문. 그래서 이 f를 알아내면 뭐가 좋은가? 세 가지로 정리됐다.

① 예측

잘 학습된 f가 있으면 처음 보는 입력에 대해서도 답을 낼 수 있다. 가장 직관적인 목적이다.

② 중요 특성 파악

여러 피쳐 중 어떤 게 결과에 중요하고 어떤 게 무관한지 알 수 있다. 예를 들어 공부 시간과 수면 시간은 점수에 크게 영향을 주는데 좋아하는 색깔은 아무 영향이 없다면, 그건 데이터가 알려준 사실이다.

이건 실무적으로 꽤 쓸모 있다. 영향 없는 피쳐는 수집을 그만둬도 된다는 뜻이라, 데이터를 모으는 비용이 줄어든다.

③ 해석 가능성

각 피쳐가 결과에 어떤 방향으로, 얼마나 민감하게 영향을 주는지 이해할 수 있다. “공부 시간이 1시간 늘면 점수가 평균 몇 점 오른다” 같은 문장을 만들 수 있게 된다.

셋 중 뭐가 제일 중요한지는 상황마다 다르다. 추천 시스템이라면 ①이 거의 전부지만, 대출 심사나 의료 진단이라면 ③이 없으면 아예 못 쓴다. “왜 그렇게 판단했는지 설명 못 하는 AI”는 실무에서 쓸 수 없다.


다른 개념과 견줘 보면

이번 강의를 들으면서 기존에 알던 것과 겹쳐 보였던 지점들을 정리해둔다.

ML 개념 익숙한 개념
가설 공간 ℱ 함수 시그니처가 정해두는 후보 집합 (제네릭 타입 정의)
모델 f 값까지 채워진 구체적 인스턴스
파라미터 조정 설정값 튜닝 — 다만 사람이 아니라 알고리즘이 한다
손실 함수 비용 함수 / 평가 점수
학습 루프 개발 → 테스트 → 리팩터링 사이클
Feature / Label 함수의 입력 인자 / 기대 반환값
측정 오차 ε 절대 안 잡히는 노이즈 (버그가 아니다)

특히 재밌었던 건 “학습 = 탐색”이라는 관점이다. 무한한 후보 함수 중에서 가장 덜 틀리는 하나를 찾아가는 것이니 결국 거대한 탐색 문제다. 쿼리 플래너가 수많은 실행 계획 중에서 비용이 가장 낮은 하나를 골라내는 것과 발상이 다르지 않다. 다만 탐색하는 공간이 실행 계획이 아니라 함수의 값들이 만드는 공간일 뿐이다.


정리

  • AI ⊃ ML ⊃ DL. AI인데 ML이 아닌 것도 많다 (규칙 기반, 휴리스틱 탐색)
  • 머신러닝은 데이터 → 모델 → 학습 → 평가를 반복하는 루프
  • 데이터는 Feature(근거)Label(정답)로 나뉜다
  • 데이터 = 참 함수 f* + 측정 오차 ε. f*는 절대 직접 볼 수 없고, ε는 절대 없앨 수 없다
  • 가설 공간 = 후보 함수 전체 / 모델 = 그중 선택된 하나
  • 학습 = 데이터 + 가설 공간 + 손실 함수로 가장 덜 틀리는 f를 찾아가는 과정
  • f를 배우는 이유 = 예측 · 중요 특성 파악 · 해석 가능성

다음 글에서

다음 글에서는 지도학습을 다룬다. 회귀와 분류가 뭐가 다른지, 그리고 “얼마나 잘 맞췄는가”를 숫자로 어떻게 재는지를 정리한다.

한줄 평

  • AI에 대한 이론에 서울대 교수님까지 초청해주어 진행되기에, 어렵더라도 포기하지 않고 학습을 되새김질 할 것이다! ( 지금 정리중인 미래 입장에선 아직까진 쉽긴해요… )