모델은 작은 예측 기계다
머신러닝을 처음 배울 때 가장 헷갈리는 말이 바로 "모델이 학습한다"는 표현입니다. 학습한다고 하니 모델이 책상 앞에 앉아 문제집을 풀거나, 사람처럼 뭔가를 깨닫는 장면이 떠오릅니다. 하지만 머신러닝에서 학습은 훨씬 단순하고 기계적인 일입니다.
모델은 입력을 받아 출력을 내는 작은 예측 기계입니다.
집에 대한 정보를 넣으면 집값을 예측합니다. 이메일 내용을 넣으면 스팸인지 아닌지 판단합니다. 고객의 이용 기록을 넣으면 다음 달에 서비스를 떠날 가능성을 예측합니다. 사진을 넣으면 고양이인지 강아지인지 고릅니다.
즉 모델은 이렇게 작동합니다.
입력 데이터가 들어온다. 모델 내부의 규칙을 통과한다. 예측 결과가 나온다.
여기서 중요한 것은 모델이 처음부터 똑똑하지 않다는 점입니다. 처음 만들어진 모델은 대개 서툽니다. 어떤 집이 비싼지 잘 모르고, 어떤 메일이 스팸인지도 헷갈립니다. 그래서 데이터를 보여주며 조금씩 고쳐 나갑니다. 이 고치는 과정이 바로 학습입니다.
모델은 마법 상자가 아닙니다. 더 정확히 말하면, 모델은 조절 가능한 예측 규칙입니다. 내부에 여러 개의 손잡이가 있고, 학습은 그 손잡이를 이리저리 돌려 보며 예측이 더 잘 맞도록 맞추는 과정입니다. 머신러닝에서는 이 손잡이를 보통 파라미터라고 부릅니다. 어려운 말처럼 들리지만, 지금은 "모델 안에서 조정되는 값" 정도로 이해하면 충분합니다.

사람이 규칙을 쓰는 방식
전통적인 프로그래밍에서는 사람이 규칙을 직접 씁니다. 예를 들어 스팸 메일을 걸러내는 프로그램을 만든다고 해 봅시다. 개발자는 이런 규칙을 코드로 작성할 수 있습니다.
메일 제목에 "무료", "당첨", "대출" 같은 단어가 있으면 스팸으로 분류한다. 링크가 너무 많으면 스팸으로 본다. 보낸 사람 주소가 수상하면 차단한다.
이 방식은 명확합니다. 사람이 생각한 기준을 컴퓨터에게 알려 주고, 컴퓨터는 그 기준대로 움직입니다. 문제는 세상이 그렇게 단순하지 않다는 데 있습니다.
정상적인 이벤트 메일에도 "무료 쿠폰"이라는 단어가 들어갈 수 있습니다. 친구가 보낸 메일에도 링크가 여러 개 있을 수 있습니다. 반대로 정말 교묘한 스팸 메일은 "무료"라는 단어를 쓰지 않고도 사람을 속입니다. 사람이 모든 예외를 미리 생각해 규칙으로 쓰기는 어렵습니다.
집값 예측도 마찬가지입니다. 사람이 직접 규칙을 만든다면 이렇게 말할 수 있습니다.
면적이 넓으면 비싸다. 지하철역과 가까우면 비싸다. 건물이 새것이면 비싸다.
그런데 현실은 곧장 복잡해집니다. 면적은 넓지만 교통이 불편한 집은 어떨까요? 오래된 아파트지만 학군이 좋은 지역에 있으면 어떨까요? 역세권이지만 주변 소음이 심하면 어떨까요? 집값은 여러 요인이 동시에 얽혀 결정됩니다. 사람이 하나하나 규칙을 쓰기에는 경우의 수가 너무 많습니다.
전통적인 프로그래밍은 사람이 규칙을 만들고 컴퓨터가 실행하는 방식입니다. 머신러닝은 방향이 조금 다릅니다. 사람이 모든 규칙을 쓰지 않고, 데이터를 통해 규칙을 찾아내게 합니다.
머신러닝은 규칙을 데이터에서 찾는다
머신러닝에서는 사람에게 규칙을 직접 쓰라고 요구하지 않습니다. 대신 예시를 많이 보여 줍니다.
이 집은 면적이 이 정도이고, 위치는 이렇고, 지은 지는 몇 년 되었으며, 실제 가격은 얼마였다. 이 승객은 나이가 몇 살이고, 객실 등급은 무엇이고, 성별은 무엇이었으며, 실제로 생존했는지 아닌지는 이랬다. 이 이메일은 이런 단어들을 포함했고, 실제로는 스팸이었다.
모델은 이런 예시를 반복해서 보며 입력과 출력 사이의 관계를 찾습니다.
여기서 입력은 모델에게 주는 정보입니다. 집값 예측에서는 면적, 위치, 방 개수, 건축 연도 같은 것이 입력이 될 수 있습니다. 출력은 모델이 맞히려는 대상입니다. 집값 예측에서는 실제 집값이 출력입니다.
모델이 배우는 것은 "이 집의 정답 가격은 7억 원이다"라는 문장 하나가 아닙니다. 그것은 그냥 하나의 예시일 뿐입니다. 모델이 진짜로 배우려는 것은 이런 감각입니다.
면적이 커질수록 가격은 대체로 올라가는구나. 역과 가까운 집은 비싸지는 경향이 있구나. 하지만 면적이 작아도 지역이 좋으면 가격이 높을 수 있구나. 오래된 집이라도 주변 조건이 좋으면 값이 크게 떨어지지 않을 수 있구나.
물론 모델이 사람처럼 "아, 그래서 이 동네가 인기가 많구나"라고 이해하는 것은 아닙니다. 모델은 그런 식으로 세상을 해석하지 않습니다. 다만 데이터 속에서 반복적으로 나타나는 관계를 숫자 형태로 잡아냅니다. 어떤 정보가 예측에 더 중요하고, 어떤 조합에서 결과가 달라지는지 내부 규칙을 조정합니다.
그래서 머신러닝을 한 문장으로 말하면 이렇게 표현할 수 있습니다.
머신러닝은 데이터를 보고 입력과 출력 사이의 관계를 찾아, 새로운 입력에 대해 그럴듯한 출력을 예측하는 방법입니다.
모델은 정답을 외우는 것이 아니다
여기서 아주 중요한 오해를 하나 풀어야 합니다. 모델은 정답을 외우는 기계가 아닙니다. 적어도 좋은 모델은 그래서는 안 됩니다.
예를 들어 학생이 시험공부를 한다고 해 봅시다. 기출문제의 답만 통째로 외운 학생은 같은 문제가 나오면 잘 맞힙니다. 하지만 숫자만 살짝 바뀌거나 조건이 달라지면 금방 틀립니다. 반대로 원리를 이해한 학생은 처음 보는 문제도 어느 정도 풀 수 있습니다.
머신러닝 모델도 비슷합니다. 학습 데이터에 있는 집들의 가격을 그대로 외우기만 한다면, 이미 본 집에 대해서는 잘 맞힐 수 있습니다. 하지만 처음 보는 집이 나오면 제대로 예측하지 못합니다. 우리가 원하는 모델은 과거 데이터를 단순 암기하는 모델이 아닙니다. 과거 데이터에서 규칙성을 배워, 새로운 데이터에도 적용할 수 있는 모델입니다.
이 차이는 머신러닝 전체에서 매우 중요합니다. 나중에 만나게 될 과적합이라는 개념과 연결됩니다. 과적합은 모델이 학습 데이터에 지나치게 맞춰져서 새로운 데이터에는 약해지는 현상입니다. 지금은 이렇게만 기억해 두면 됩니다.
좋은 모델은 예시를 외우지 않고, 예시들 사이에 숨어 있는 관계를 배웁니다.
집값 예측 모델이 특정 아파트 한 채의 가격만 외웠다면 쓸모가 작습니다. 하지만 "면적, 위치, 연식, 주변 환경이 가격과 어떤 관계를 가지는지" 배웠다면 새로운 매물의 가격도 어느 정도 예측할 수 있습니다. 스팸 분류 모델도 특정 스팸 메일 몇 개를 외우는 데 그치면 금방 속습니다. 대신 스팸 메일에서 자주 나타나는 표현, 링크 패턴, 발신자 특징, 문장 구조 등을 종합적으로 배워야 합니다.
머신러닝의 힘은 바로 여기에 있습니다. 과거를 복사하는 것이 아니라, 과거에서 패턴을 찾아 미래나 새로운 상황에 적용합니다.
입력과 출력 사이의 관계를 배운다는 말
"관계를 배운다"는 말도 처음에는 조금 추상적으로 들릴 수 있습니다. 그래서 아주 단순한 예로 생각해 보겠습니다.
아이스크림 가게의 하루 매출을 예측하고 싶습니다. 입력으로는 그날의 기온을 사용하고, 출력으로는 아이스크림 매출을 사용합니다. 여러 날의 데이터를 모아 보니 더운 날일수록 매출이 높아지는 경향이 있습니다.
이때 모델은 "기온이 높으면 매출이 늘어난다"는 관계를 배웁니다. 하지만 현실에서는 기온 하나만으로 매출이 완벽히 결정되지 않습니다. 비가 오는지, 주말인지, 근처에서 축제가 열리는지, 가게가 문을 몇 시간 열었는지도 영향을 줍니다.
그래서 모델은 여러 입력을 함께 봅니다. 기온이 높고, 주말이고, 비가 오지 않고, 근처에 사람이 많으면 매출이 높을 가능성이 크다고 판단할 수 있습니다. 반대로 기온은 높지만 폭우가 내리면 매출이 기대보다 낮을 수 있습니다.
이처럼 입력과 출력 사이의 관계는 대개 하나의 단순한 선으로 끝나지 않습니다. 여러 정보가 서로 얽혀 있습니다. 머신러닝 모델은 이 얽힘을 데이터 속에서 찾아내려 합니다.
이 관계를 찾는 방식은 모델의 종류에 따라 달라집니다. 선형회귀는 비교적 단순한 직선 형태의 관계를 찾으려 합니다. 결정트리는 질문을 여러 번 던지며 갈림길을 만듭니다. 랜덤포레스트는 여러 개의 결정트리를 함께 사용합니다. 딥러닝 모델은 훨씬 많은 조정값을 사용해 복잡한 패턴을 잡아냅니다.
하지만 모델이 아무리 달라져도 기본 구조는 변하지 않습니다.
데이터를 넣고, 예측을 만들고, 실제값과 비교하고, 틀린 만큼 내부 규칙을 고칩니다. 그리고 이 과정을 반복하면서 입력과 출력 사이의 관계를 조금씩 더 잘 표현하게 됩니다.
문제마다 배워야 할 패턴이 달라진다
모델이 무엇을 배우는지는 문제에 따라 달라집니다. 같은 머신러닝이라도 집값 예측 모델과 스팸 분류 모델은 전혀 다른 패턴을 배웁니다.
집값 예측 모델은 숫자를 맞혀야 합니다. 모델은 면적, 위치, 층수, 방 개수, 건축 연도 같은 정보와 가격 사이의 관계를 배웁니다. 이 문제에서 중요한 패턴은 "어떤 조건이 가격을 올리거나 내리는가"입니다. 출력이 5억, 7억 3천만, 12억처럼 숫자로 나옵니다.
타이타닉 생존 예측 모델은 생존 여부를 맞혀야 합니다. 입력은 승객의 나이, 성별, 객실 등급, 함께 탑승한 가족 수 같은 정보가 될 수 있습니다. 출력은 생존 또는 사망처럼 정해진 선택지 중 하나입니다. 이 문제에서 모델은 "어떤 조건을 가진 승객이 생존할 가능성이 높았는가"를 배웁니다.
스팸 메일 분류기는 메일이 스팸인지 아닌지를 판단합니다. 여기서 모델은 단어, 문장, 링크, 발신자 정보, 제목의 표현 등을 봅니다. "특정 단어가 들어가면 무조건 스팸"처럼 단순하게 끝나지 않습니다. 단어의 조합, 표현의 분위기, 링크의 형태, 반복되는 문구가 함께 영향을 줍니다.
고객 이탈 예측 모델은 사용자가 앞으로 서비스를 떠날 가능성을 봅니다. 최근 접속 횟수가 줄었는지, 결제 주기가 흔들리는지, 고객센터 문의가 많았는지, 특정 기능을 더 이상 사용하지 않는지 같은 정보를 확인합니다. 이 문제에서 모델은 "떠날 사람에게서 미리 나타나는 신호"를 배우려 합니다.
추천 시스템은 또 다릅니다. 추천 모델은 사용자의 취향과 아이템의 특징 사이의 관계를 배웁니다. 어떤 사용자가 어떤 영화를 봤는지, 어떤 상품을 클릭했는지, 무엇을 장바구니에 담았는지, 어떤 콘텐츠를 끝까지 시청했는지 살펴봅니다. 그리고 "이 사람은 다음에 무엇을 좋아할 가능성이 높은가"를 예측합니다.
이처럼 머신러닝 모델은 하나의 보편적인 정답을 배우는 것이 아닙니다. 문제마다 다른 관계를 배웁니다. 집값 문제에서는 조건과 가격의 관계를, 생존 예측에서는 승객 정보와 생존 여부의 관계를, 스팸 분류에서는 메일 내용과 스팸 여부의 관계를, 추천 문제에서는 사용자와 아이템 사이의 선호 관계를 배웁니다.
그래서 좋은 머신러닝 프로젝트는 항상 질문에서 시작합니다.
우리는 무엇을 예측하고 싶은가? 예측에 도움이 될 만한 정보는 무엇인가? 과거 데이터 안에 그 관계가 충분히 담겨 있는가?
이 질문이 흐릿하면 모델도 흐릿해집니다. 반대로 질문이 선명하면 어떤 데이터를 모아야 하는지, 어떤 출력을 예측해야 하는지, 모델이 무엇을 배워야 하는지가 훨씬 분명해집니다.
예측 규칙은 처음부터 완성되어 있지 않다
모델을 처음 만들면 내부 규칙은 대개 엉성합니다. 아무것도 모르는 상태에서 시작하기 때문입니다. 어떤 모델은 내부 값을 무작위에 가깝게 시작하고, 어떤 모델은 아주 단순한 기준에서 출발합니다.
처음의 집값 예측 모델은 면적이 가격에 얼마나 중요한지 모릅니다. 위치가 얼마나 큰 영향을 주는지도 모릅니다. 방 개수와 건축 연도가 어떻게 작용하는지도 모릅니다. 그래서 틀립니다. 7억 원짜리 집을 4억 원이라고 예측할 수도 있고, 3억 원짜리 집을 9억 원이라고 예측할 수도 있습니다.
하지만 틀렸다는 사실은 쓸모없는 실패가 아닙니다. 오히려 학습의 재료입니다.
모델은 예측한 값과 실제값을 비교합니다. 차이가 크면 내부 규칙을 고쳐야 합니다. 면적의 영향을 너무 작게 봤다면 조금 키웁니다. 위치의 영향을 지나치게 크게 봤다면 줄입니다. 어떤 조건 조합을 놓쳤다면 그 조합을 더 잘 반영하도록 조정합니다.
스팸 분류도 마찬가지입니다. 정상 메일을 스팸으로 잘못 판단했다면 왜 그런 실수를 했는지 방향을 바꿔야 합니다. 스팸 메일을 정상 메일로 놓쳤다면 위험한 신호를 더 강하게 반영해야 합니다.
물론 모델이 사람처럼 "아까 내가 실수했으니 다음에는 조심해야지"라고 생각하는 것은 아닙니다. 실제로는 예측과 실제값의 차이를 숫자로 계산하고, 그 차이가 줄어드는 방향으로 내부 값을 조정합니다. 이때 등장하는 것이 손실, 오차, 최적화 같은 개념입니다. 아직은 이름만 가볍게 들어도 충분합니다.
핵심은 간단합니다.
학습은 틀린 예측을 보고 예측 규칙을 고치는 과정입니다.
머신러닝 모델을 보는 가장 쉬운 그림
머신러닝을 어렵게 만드는 이유 중 하나는 단어가 많기 때문입니다. 모델, 데이터, 특징, 라벨, 손실, 학습, 평가 같은 말이 한꺼번에 나오면 머릿속이 복잡해집니다. 이럴 때는 가장 단순한 흐름으로 돌아오면 됩니다.
먼저 데이터가 있습니다. 데이터에는 과거의 사례가 들어 있습니다. 집의 정보와 실제 가격, 승객의 정보와 실제 생존 여부, 메일 내용과 실제 스팸 여부 같은 것들입니다.
그다음 모델이 있습니다. 모델은 입력을 받아 예측을 만듭니다. 처음에는 잘 못하지만, 데이터를 보며 내부 규칙을 조정합니다.
마지막으로 새로운 데이터가 들어옵니다. 모델은 학습 때 보지 못한 새로운 집, 새로운 메일, 새로운 고객에 대해 예측을 내놓습니다. 우리가 모델을 만드는 이유는 바로 이 순간 때문입니다. 과거를 설명하는 데서 끝나는 것이 아니라, 아직 답을 모르는 새로운 상황에 판단을 내리기 위해서입니다.
이 흐름을 짧게 정리하면 다음과 같습니다.
데이터를 준비한다
입력을 모델에 넣는다
모델이 예측한다
실제값과 비교한다
틀린 만큼 내부 규칙을 조정한다
새로운 데이터에 적용한다
이 여섯 줄은 앞으로 계속 반복해서 만나게 될 머신러닝의 기본 뼈대입니다. 복잡한 모델도 결국 이 흐름 위에 서 있습니다. 집값 예측도, 스팸 분류도, 고객 이탈 예측도, 추천 시스템도 큰 틀에서는 이 구조를 따릅니다.
모델이 배울 수 있는 것과 배울 수 없는 것
모델은 데이터에서 관계를 배웁니다. 하지만 데이터에 없는 것을 마음대로 배울 수는 없습니다. 이 점은 매우 중요합니다.
예를 들어 집값 예측 모델을 만들면서 면적과 방 개수만 제공했다고 해 봅시다. 모델은 위치 정보를 모릅니다. 그러면 강남의 20평 아파트와 외곽의 20평 아파트가 왜 가격이 크게 다른지 제대로 이해할 수 없습니다. 위치가 가격에 큰 영향을 주더라도, 데이터에 위치 정보가 없다면 모델은 그 관계를 배울 수 없습니다.
스팸 분류에서도 마찬가지입니다. 메일 제목만 보고 판단하게 하면 본문에 숨어 있는 위험한 링크를 알 수 없습니다. 고객 이탈 예측에서 최근 접속 기록을 빼 버리면 사용자가 점점 멀어지는 신호를 놓칠 수 있습니다.
모델은 주어진 데이터 안에서 최선을 다합니다. 하지만 주어지지 않은 정보까지 알아내지는 못합니다. 그래서 머신러닝에서는 모델 자체만큼이나 어떤 데이터를 준비하느냐가 중요합니다.
또 하나 기억해야 할 점이 있습니다. 데이터에 편향이 있으면 모델도 그 편향을 배울 수 있습니다. 과거 데이터가 특정 집단에게 불리하게 쌓여 있다면, 모델은 그 불리한 관계를 마치 규칙처럼 배울 수 있습니다. 모델은 도덕적 판단을 스스로 하지 않습니다. 데이터에 반복적으로 나타나는 패턴을 잡아낼 뿐입니다.
따라서 모델에게 "무엇을 학습시킬 것인가"는 단순한 기술 문제가 아닙니다. 어떤 데이터를 줄 것인지, 어떤 정답을 기준으로 삼을 것인지, 어떤 예측을 사용해도 되는지까지 함께 고민해야 합니다.
결국 모델이 배우는 것
모델이 학습한다는 말을 더 이상 막연하게 느끼지 않아도 됩니다. 모델은 사람처럼 깨닫거나 이해하지 않습니다. 대신 입력과 출력 사이의 관계를 더 잘 맞히도록 내부 예측 규칙을 조정합니다.
집값 예측 모델은 집의 조건과 가격 사이의 관계를 배웁니다. 생존 예측 모델은 승객 정보와 생존 여부 사이의 관계를 배웁니다. 스팸 분류 모델은 메일의 특징과 스팸 여부 사이의 관계를 배웁니다. 추천 모델은 사용자 행동과 선호 사이의 관계를 배웁니다.
이 관계는 처음부터 사람이 모두 써 주지 않습니다. 데이터가 예시를 제공하고, 모델은 그 예시를 바탕으로 규칙을 찾아갑니다. 틀린 예측은 실패가 아니라 방향을 알려 주는 신호가 됩니다. 예측과 실제값의 차이를 줄여 가며 모델은 점점 더 쓸 만한 예측 기계가 됩니다.
머신러닝을 이해하는 첫 번째 감각은 바로 이것입니다.
모델은 정답을 외우는 것이 아니라, 정답이 나오게 만든 관계를 배운다.
이 감각을 붙잡으면 다음 개념들이 훨씬 쉬워집니다. 데이터는 무엇이고, 특징은 무엇이며, 라벨은 무엇이고, 예측은 무엇인지가 자연스럽게 연결됩니다. 결국 머신러닝의 모든 이야기는 이 질문으로 되돌아옵니다.
어떤 입력을 보고, 어떤 출력을 맞히고 싶은가. 그리고 그 둘 사이에는 어떤 패턴이 숨어 있는가.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.