콘텐츠로 이동

P4-5.2 일반화(generalization)

Section ID: P4-5.2 Version: v2026.07.24

P4-5.1에서는 과적합(overfitting)과 과소적합(underfitting)을 구분했습니다. 이제 한 단계 더 올라가야 합니다. 왜 우리는 그 구분을 중요하게 여길까요? 결국 머신러닝의 목적이 학습 데이터 점수 높이기가 아니라, 아직 보지 못한 데이터에서도 쓸 만하게 작동하기 때문입니다. 이 질문을 정리하는 말이 일반화(generalization)입니다.

일반화는 어렵게 들릴 수 있지만, 출발점은 단순합니다. 모델이 이미 본 예시를 다시 맞히는 데서 멈추지 않고, 비슷한 구조를 가진 새 예시에도 적절히 반응하는가를 묻는 것입니다.

일반화(generalization)에서 닫을 질문

이 절은 일반화의 의미를 설명합니다. 아직 일반화 오차(generalization error)의 수식이나 이론적 경계는 다루지 않습니다. 이 절의 초점은 왜 새 데이터가 중요한가, 왜 검증과 테스트가 필요한가, 왜 학습 점수만으로는 부족한가를 연결하는 데 있습니다.

평가 지표(metric)의 자세한 계산은 P4-6에서 다루고, 교차검증(cross-validation)의 실무적 사용은 P4-8.1과 P4-9.2에서 다시 연결합니다. 이 절은 일반화를 하나의 수학 이론보다, 머신러닝 전체를 관통하는 목표 문장으로 먼저 고정합니다.

  • 일반화란 무엇인가?
  • 왜 머신러닝의 목표를 학습 점수가 아니라 일반화로 말하는가?
  • 과적합과 일반화는 어떤 관계인가?
  • 새 데이터(unseen data)란 정확히 어떤 의미인가?
  • 실무에서 일반화를 어떻게 체감하는가?

일반화(generalization)에서 남길 판단 기준

  • 일반화(generalization)를 한 문장으로 설명할 수 있습니다.
  • 학습 점수와 일반화는 같은 말이 아니라는 점을 설명할 수 있습니다.
  • 과적합이 왜 일반화 약화로 이어질 수 있는지 말할 수 있습니다.
  • 검증 데이터와 테스트 데이터가 결국 일반화 확인을 위한 장치라는 점을 이해할 수 있습니다.
  • 이후 평가 지표와 모델 선택 장을 왜 배우는지 연결할 수 있습니다.

학습 배경

일반화는 무엇을 묻는 말인가

Google의 머신러닝 용어집은 일반화를 사실상 훈련 세트(training set)에 없는 예시에서도 좋은 예측을 할 수 있는가라는 질문으로 설명합니다. 여기서 붙잡아야 할 뜻은 다음과 같습니다.

일반화(generalization)는 모델이 아직 보지 못한 데이터에서도 쓸 만한 판단을 하는 성질이다.

여기서 중요한 것은 똑같은 데이터가 아닌데도라는 부분입니다.

왜 굳이 이런 말을 따로 쓰는지도 짚고 넘어가야 합니다. 머신러닝은 데이터를 보고 규칙을 배우는 방식이기 때문에, 겉으로는 “점수가 높다”는 말만 남기 쉽습니다. 하지만 그 점수가 본 데이터에서만 높은지, 안 본 데이터에서도 유지되는지는 전혀 다른 문제입니다. 이 둘을 구분하기 위해 일반화라는 말을 씁니다.

질문 일반화 관점에서의 의미
학습 데이터는 잘 맞추는가? 출발점일 뿐이다
새 데이터도 비슷하게 맞추는가? 일반화의 핵심 질문이다
특정 샘플을 외운 것은 아닌가? 일반화를 해칠 수 있는 경고 신호다

즉, 일반화는 모델이 이번 데이터셋에 적응했는가보다 문제의 구조를 어느 정도 배웠는가를 더 묻는 말입니다.

이 문장을 더 쉽게 바꾸면 다음과 같습니다.

  • 데이터셋의 모양을 외운 것인가?
  • 문제의 구조를 배운 것인가?

일반화는 두 번째 쪽에 더 가깝습니다.

일반화라는 말이 중요해진 역사적 배경

일반화는 최근 생성형 AI에서 갑자기 등장한 말이 아닙니다. 통계학습이론(statistical learning theory)의 역사 속에서 오래 다루어진 질문입니다. Ulrike von Luxburg와 Bernhard Schoelkopf의 개요 논문은 통계학습이론이 1960년대 러시아에서 시작되어, 1990년대 서포트 벡터 머신(SVM)의 발전과 함께 널리 알려졌다고 설명합니다. 같은 글은 이 분야의 핵심 질문을 경험적 데이터(empirical data)로부터 어떻게 타당한 결론을 이끌 수 있는가로 제시합니다.

이 역사는 다음 흐름으로 읽습니다.

  1. 통계와 학습 연구는 오래전부터 본 데이터에서만 맞는 규칙새 데이터에도 통하는 규칙을 구분하려 했다.
  2. 그 질문이 통계학습이론 안에서 더 체계적으로 다루어졌다.
  3. 이후 머신러닝 실무에서는 검증(validation), 테스트(test), 교차검증(cross-validation) 같은 절차가 일반화를 확인하는 기본 관행이 되었다.

즉, 일반화는 유행어가 아니라, 학습이 정말 학습이었는가를 오래전부터 가르는 핵심 기준입니다.

주요 학습내용

왜 일반화가 목표가 되는가

머신러닝은 거의 항상 다음에 들어올 데이터를 위해 모델을 만듭니다.

  • 스팸 분류 모델은 내일 도착할 메일을 분류해야 합니다.
  • 고객 이탈 예측 모델은 다음 달 고객을 예측해야 합니다.
  • 가격 예측 모델은 아직 거래되지 않은 집값을 추정해야 합니다.

즉, 진짜 사용 장면은 항상 아직 안 본 데이터 쪽에 있습니다.

모델이 쓰이는 곳 학습 데이터는 무엇인가 실제 사용 시점에는 무엇이 들어오는가
스팸 필터 과거 메일 기록 새로 도착한 메일
추천 시스템 과거 클릭과 구매 기록 지금 접속한 사용자의 다음 행동
수요 예측 지난 판매 데이터 아직 오지 않은 다음 주 수요

이 표를 보면 왜 학습 점수만으로는 부족한지 바로 드러납니다. 실제 서비스는 과거 복습이 아니라 미래 대응이기 때문입니다.

그래서 일반화는 단순한 보너스 성질이 아니라, 머신러닝을 쓰는 이유 자체와 연결됩니다. 새 데이터를 다룰 필요가 없다면, 굳이 머신러닝 모델이 아니라 규칙표나 조회표만으로도 충분한 경우가 많습니다.

새 데이터란 무엇인가

새 데이터(unseen data)라고 하면 완전히 낯선 세계의 데이터처럼 들릴 수 있습니다. 하지만 보통은 같은 문제에서 아직 학습에 쓰지 않은 예시를 뜻합니다.

이 점은 자주 오해됩니다. 일반화는 보통 아무 환경에서나 무조건 잘 된다는 뜻이 아닙니다. 먼저 같은 문제 설정 안에서, 아직 보지 못한 예시에도 어느 정도 버틴다는 뜻에 가깝습니다.

예를 들어 고객 이탈 예측이라면 다음과 같습니다.

구분 예시
학습 데이터 지난 3개월 고객 기록 중 일부
검증 데이터 같은 기간이지만 학습에 쓰지 않은 일부
테스트 데이터 마지막 확인용으로 따로 남겨 둔 일부
실제 서비스 입력 다음 달 새로 쌓이는 고객 기록

이 네 가지는 모두 같은 문제 도메인(domain)에 속하지만, 모델 입장에서는 본 것아직 안 본 것이 나뉩니다. 일반화는 바로 이 경계에서 생기는 이야기입니다.

이 경계를 더 분명히 하기 위해 다음처럼 구분할 수 있습니다.

경우 일반화 설명에 보통 포함되는가? 이유
같은 서비스의 다음 주 고객 데이터 포함된다 같은 문제의 미래 예시다
같은 분류 문제의 다른 샘플 포함된다 같은 구조의 미관측 예시다
전혀 다른 산업의 데이터 보통 바로 포함하지 않는다 문제 정의 자체가 달라질 수 있다
입력 형식과 의미가 크게 달라진 데이터 보통 별도 검토가 필요하다 같은 일반화라고 보기 어렵다

즉, 일반화는 아무 데이터에나 통한다는 선언이 아니라, 같은 문제의 보지 못한 예시에 대해 얼마나 버티는가에 더 가깝습니다.

일반화 범위는 어디까지를 지금 같은 문제의 새 예시로 볼 수 있는가를 먼저 확인하면 정리됩니다.

현재 비교 장면 일반화 논의에 바로 포함되는가 이유
같은 서비스의 다음 주 데이터 보통 예 같은 문제의 새로운 샘플이기 때문입니다.
같은 문제의 다른 미관측 사례 보통 예 학습에 쓰지 않은 같은 구조의 예시이기 때문입니다.
같은 문제지만 조건이 조금 달라진 데이터 조건부 예 더 어려운 일반화 구간이지만 같은 문제일 수 있기 때문입니다.
전혀 다른 산업이나 다른 의미의 데이터 보통 바로는 아니오 문제 정의 자체가 달라질 수 있기 때문입니다.

이 범위를 눈으로 보면 다음처럼 정리할 수 있습니다.

flowchart TB
  A["같은 과제<br/>같은 의미"]
  B["같은 과제<br/>새 샘플"]
  C["같은 과제<br/>조건 변화"]
  D["다른 과제 또는 다른 의미"]

  A --> B
  B --> C
  C --> D

이 도식은 일반화가 어디까지를 가리키는지 범위를 나누어 보여 줍니다. 가장 직접적인 일반화는 같은 문제의 새 샘플에서 시험되며, 조건 변화나 완전히 다른 과제로 갈수록 같은 일반화라고 단순히 묶기 어려워진다는 점이 중요합니다.

  • same task, same meaning은 학습 데이터와 가장 가까운 구간입니다.
  • same task, new samples은 일반화가 가장 먼저 시험되는 구간입니다.
  • same task, condition shift는 여전히 같은 문제일 수 있지만 더 어려운 구간입니다.
  • different task or meaning까지 가면 보통 같은 일반화 문제로 바로 묶기 어렵습니다.

과적합과 일반화의 관계

이제 왜 P4-5.1의 과적합(overfitting)과 과소적합(underfitting)을 다시 꺼내야 하는지도 자연스럽게 연결됩니다. 일반화는 결국 새 데이터에서 버티는가를 묻는 말이기 때문입니다.

P4-5.1에서 본 과적합은 일반화가 약해지는 대표 장면입니다.

상태 일반화 관점에서 읽으면
과소적합 아직 중요한 구조를 잘 못 배워서 새 데이터에서도 약할 수 있다
적절한 상태 학습 데이터와 새 데이터 사이에 비교적 안정적인 성능을 보일 수 있다
과적합 학습 데이터에는 강하지만 새 데이터에서는 성능이 떨어질 수 있다

즉, 과적합은 일반화를 해치는 방향으로 읽을 수 있습니다. 하지만 일반화는 과적합의 반대말 하나로 끝나는 개념은 아닙니다. 일반화는 더 넓게 새 데이터에서 어느 정도 버티는가 전체를 가리킵니다.

  • 과적합은 일반화를 약하게 만들 수 있다
  • 과소적합도 일반화를 약하게 만들 수 있다
  • 일반화는 결국 새 데이터에서 버티는 힘을 묻는다

검증과 테스트는 결국 일반화를 보기 위한 장치다

P4-4.2에서 검증(validation)과 테스트(test)를 나눈 이유도 결국 일반화 때문입니다.

  • 검증 데이터: 여러 후보 중 무엇이 새 데이터에서 더 잘 버틸지 비교하는 장치
  • 테스트 데이터: 최종 선택이 정말 새 데이터에서도 버티는지 마지막으로 확인하는 장치
flowchart TB
  A["학습 데이터<br/>패턴 학습"]
  B["검증 데이터<br/>후보 비교"]
  C["테스트 데이터<br/>최종 확인"]
  D["미래의 미관측 데이터<br/>실제 사용 환경"]

  A --> B
  B --> C
  C --> D

이 도식은 train, validation, test가 모두 결국 미래의 새 데이터를 미리 가늠하기 위한 단계라는 점을 보여 줍니다. 일반화는 validation이나 test 점수 자체가 목적이 아니라, 실제 사용 시 들어올 unseen data에서 얼마나 버틸지 확인하는 전체 흐름 속에서 읽어야 합니다.

이 도식에서 검증과 테스트는 목적지가 아닙니다. 둘 다 미래의 보지 못한 데이터를 미리 가늠하기 위한 중간 장치입니다.

따라서 검증과 테스트는 점수를 매기는 절차이기 전에, 일반화를 간접적으로 관찰하는 절차입니다.

이 절차를 표로 다시 쓰면 다음과 같습니다.

단계 지금 하는 일 결국 확인하려는 것
학습(training) 본 데이터에서 패턴을 익힌다 최소한의 출발점이 있는가
검증(validation) 후보 모델이나 설정을 비교한다 새 데이터에서 더 잘 버틸 후보는 무엇인가
테스트(test) 마지막으로 따로 확인한다 선택 결과가 과하게 낙관적이지 않은가
실제 사용(real use) 미래 입력을 받는다 일반화가 실제로 유지되는가

세부 학습내용

일반화는 완벽함이 아니라 버팀성이다

독자는 일반화를 새 데이터에서도 완벽해야 한다로 오해할 수 있습니다. 하지만 일반화는 완벽 복제가 아닙니다. 보통은 새 데이터에서도 일정 수준 이상으로 버티는가를 묻습니다.

오해 더 정확한 표현
일반화는 새 데이터도 똑같이 맞추는 것이다 일반화는 새 데이터에서도 쓸 만한 성능을 유지하는 것이다
학습 점수와 검증 점수가 완전히 같아야 한다 약간의 차이는 자연스럽다
일반화가 되면 모든 경우를 다 맞힌다 일반화가 되어도 틀릴 수는 있다. 중요한 것은 전체적인 버팀성이다

그래서 일반화는 완벽성보다 안정성과 더 가깝습니다.

일반화는 외운 답을 반복하는 힘이 아니라, 처음 보는 비슷한 문제에도 버티는 힘입니다.

사례 및 예시

사례 1. 고객 추천 모델이 익숙한 사용자에게만 강할 때

콘텐츠 서비스 팀이 추천 모델을 운영하고 있습니다. 사람이 먼저 보던 기준은 최근 본 장르, 자주 클릭한 카테고리, 비슷한 사용자가 많이 본 항목 같은 신호였습니다.

학습 데이터에서는 이 기준을 잘 따라간 모델이 높은 점수를 냅니다. 그런데 실제 서비스에 가까운 새 사용자 묶음이나 최근 취향이 바뀐 사용자 묶음으로 가면 추천 만족도가 눈에 띄게 떨어집니다. 이때 팀이 학습 점수만 보고 있었다면 모델이 충분히 좋은 줄 착각하기 쉽습니다.

일반화 관점에서는 질문이 달라집니다. 중요한 것은 과거 기록을 잘 설명했는가보다 아직 보지 못한 비슷한 사용자에게도 버티는가입니다. 검증 데이터와 테스트 데이터는 바로 이 점을 미리 확인하기 위한 장치로 읽어야 합니다.

확인 가능한 결과는 익숙한 사용자 집합에서의 점수와 새 사용자 집합에서의 점수를 비교할 때 드러납니다. 모델이 같은 문제 안에서 얼마나 안정적으로 유지되는지 읽을 수 있고, 차이가 작다면 일반화가 비교적 유지된 것이며, 차이가 크다면 과거 패턴에만 너무 적응했는지 다시 점검해야 합니다.

flowchart TD
  A["기존 사용자 추천 데이터"]
  B["익숙한 사용자에는 잘 맞음"]
  C["새 사용자나 조건 변화 등장"]
  D["처음 보는 사용자 성능 비교"]
  E["차이가 작음"]
  F["차이가 큼"]
  G["일반화가 비교적 안정적임"]
  H["오래된 패턴에 너무 기대고 있을 수 있음"]

  A --> B --> C --> D
  D --> E --> G
  D --> F --> H

예시 1. 추천 시스템과 가격 예측으로 일반화를 다시 읽기

앞에서 정의, 새 데이터, 과적합, 검증과 테스트의 관계를 정리했으니, 이제는 실제 장면으로 다시 읽을 수 있습니다. 아래 예시들은 모두 같은 질문으로 연결됩니다.

이 모델은 지금 손에 든 표를 넘어서도 버틸 수 있는가?

추천 시스템 예시로 바꾸어 보면 다음처럼 읽을 수 있습니다.

장면 일반화 관점의 해석
기존 사용자 기록에는 추천이 매우 잘 맞음 학습 데이터 적응은 잘 되었을 수 있다
새 사용자나 최근 취향 변화에는 약함 일반화가 충분하지 않을 수 있다
검증 실험에서 여러 사용자 묶음에 비슷하게 동작함 일반화 가능성이 상대적으로 높다

가격 예측도 비슷합니다.

장면 일반화 관점의 해석
과거 거래 기록에는 오차가 매우 작음 학습 데이터에는 잘 맞을 수 있다
새 지역, 새 시점 데이터에서 오차가 커짐 일반화가 약할 수 있다
다양한 시점과 지역에서도 비슷한 오차 범위 일반화가 비교적 안정적일 수 있다

예시 2. 사회현상 데이터도 같은 일반화 질문으로 읽을 수 있다

일반화는 꼭 기업 서비스 안에서만 필요한 개념이 아닙니다. 사회현상을 읽는 모델에서도 같은 질문이 생깁니다.

예를 들어 온라인 여론이나 게시글 흐름을 분류하는 모델을 생각할 수 있습니다.

장면 일반화 관점의 해석
지난달 표현 방식에는 잘 반응함 과거 데이터의 말투와 패턴에는 적응했을 수 있다
새로운 유행어, 비꼼, 우회 표현이 나오면 흔들림 새 데이터에 대한 일반화가 약할 수 있다
시기가 바뀌어도 큰 방향은 비슷하게 읽음 일반화가 비교적 유지될 수 있다

교통 혼잡이나 민원 증가처럼 반복되는 사회 패턴을 다루는 경우도 비슷합니다.

장면 일반화 관점의 해석
평일 출근 시간 패턴은 잘 맞춤 자주 본 규칙에는 강할 수 있다
연휴, 행사, 폭우처럼 평소와 다른 조건에서 크게 틀림 일반화 범위가 좁을 수 있다
계절 변화나 약간의 조건 변화에도 예측이 완전히 무너지지 않음 일반화가 비교적 안정적일 수 있다

이런 예시가 주는 핵심은 같습니다. 모델이 과거 사례를 많이 봤다는 사실만으로는 충분하지 않습니다. 사회현상은 표현도 바뀌고, 조건도 바뀌고, 사람들이 반응하는 방식도 달라지기 때문입니다. 그래서 일반화는 새로운 사회적 장면에서도 어느 정도 버티는가를 묻는 질문으로도 읽을 수 있습니다.

사회현상 쪽 변화는 한 종류가 아니라는 점도 함께 봐야 합니다.

변화 유형 예시 일반화에 주는 부담
표현 변화 새 유행어, 줄임말, 비꼼 같은 뜻도 다른 표면 문장으로 나타나서 흔들릴 수 있다
조건 변화 연휴, 행사, 폭우, 정책 변경 평소 패턴이 약해지고 예외 상황이 커질 수 있다
집단 변화 새 사용자층, 다른 지역, 다른 세대 과거에 본 분포와 다른 반응이 나타날 수 있다
시간 변화 계절 변화, 장기 추세 변화 예전 규칙이 서서히 덜 맞게 될 수 있다

연습 및 예제

표로 일반화 질문 읽기

다음 기록은 일반화 관점에서 점수를 어떻게 읽는지 보여 줍니다. 이미 나온 점수 조합을 해석하는 장면이므로, Python 코드보다 학습 점수·검증 점수·차이를 한 표에서 보는 편이 더 적합합니다.

모델 학습 점수 검증 점수 generalization gap 해석
model_A 0.81 0.79 0.02 학습과 검증이 비교적 비슷함
model_B 0.99 0.74 0.25 학습은 매우 높지만 검증이 크게 낮음
model_C 0.63 0.61 0.02 차이는 작지만 둘 다 낮음

이 표에서 generalization gap은 정식 이론 설명이 아니라, 독자가 학습 점수와 검증 점수의 차이를 읽는 보조 표현입니다. 판단은 gap 하나로 끝내지 않고, 학습 점수와 검증 점수의 절대 수준을 함께 봐야 합니다.

  • model_A는 학습과 검증이 비교적 비슷합니다.
  • model_B는 학습은 매우 높지만 검증이 크게 낮습니다.
  • model_C는 차이는 작지만 둘 다 낮습니다.

즉, 일반화를 읽을 때는 차이만 보는 것도 부족하고, 수준만 보는 것도 부족합니다. model_C처럼 차이가 작아도 둘 다 낮으면 일반화가 좋은 모델이라고 말하기 어렵고, model_B처럼 학습만 높고 검증이 크게 낮으면 과적합 쪽을 먼저 의심해야 합니다.

여기서 중요한 해석은 다음과 같습니다.

  • 학습 점수는 “이미 본 데이터에서 어느 정도 맞는가”
  • 검증 점수는 “아직 안 본 비슷한 데이터에서 어느 정도 버티는가”

일반화는 주로 두 번째 질문 쪽에 더 가깝습니다.

이번에는 같은 모델을 여러 번 다른 방식으로 나누어 보겠습니다. 아래 예제는 같은 데이터와 같은 DecisionTreeClassifier를 쓰되, train_test_splitrandom_state를 바꾸며 test score와 gap이 얼마나 흔들리는지 출력합니다.

from statistics import mean, pstdev

from sklearn.datasets import make_classification
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier

X, y = make_classification(
    n_samples=220,
    n_features=8,
    n_informative=3,
    n_redundant=1,
    flip_y=0.08,
    class_sep=0.8,
    random_state=12,
)

results = []
for seed in range(6):
    X_train, X_test, y_train, y_test = train_test_split(
        X, y, test_size=0.35, random_state=seed, stratify=y
    )
    model = DecisionTreeClassifier(max_depth=4, random_state=0)
    model.fit(X_train, y_train)
    train_score = accuracy_score(y_train, model.predict(X_train))
    test_score = accuracy_score(y_test, model.predict(X_test))
    results.append((seed, train_score, test_score, train_score - test_score))

for seed, train_score, test_score, gap in results:
    print(
        seed,
        "train=", round(train_score, 3),
        "test=", round(test_score, 3),
        "gap=", round(gap, 3),
    )

print(
    "test mean=", round(mean(row[2] for row in results), 3),
    "test std=", round(pstdev(row[2] for row in results), 3),
)

실행 결과 예시는 다음과 같습니다.

1
2
3
4
5
6
7
0 train= 0.944 test= 0.623 gap= 0.321
1 train= 0.874 test= 0.805 gap= 0.069
2 train= 0.93 test= 0.714 gap= 0.216
3 train= 0.93 test= 0.766 gap= 0.164
4 train= 0.923 test= 0.74 gap= 0.183
5 train= 0.881 test= 0.766 gap= 0.115
test mean= 0.736 test std= 0.057

이 출력은 일반화를 한 번의 점수로 닫지 말아야 하는 이유를 보여 줍니다. 같은 데이터와 같은 모델이어도 어떤 샘플이 test 쪽으로 갔는지에 따라 점수와 gap이 흔들립니다. 그래서 일반화는 이번 split에서 점수가 얼마였는가만이 아니라, 비슷한 새 데이터 분할에서도 성능이 어느 정도 유지되는가를 함께 묻는 질문입니다.

표로 사회현상 쪽 일반화 읽기

다음 예제는 온라인 게시글 분류 모델이 평소 표현에는 강하지만 새로운 표현이 들어오면 흔들릴 수 있다는 점을 단순화해 보여 줍니다.

상황 익숙한 표현 점수 새 표현 점수 generalization gap 해석
지난달 게시글 0.93 0.90 0.03 익숙한 표현과 새로운 표현의 차이가 작음
새 유행어 등장 0.93 0.68 0.25 표현이 조금만 바뀌어도 점수가 크게 떨어질 수 있음
비꼼과 우회 표현 증가 0.93 0.61 0.32 표면 문장이 달라지면 모델이 더 크게 흔들릴 수 있음

이 표는 실제 모델 학습 코드가 아니라, 일반화 해석을 연습하기 위한 읽기 예제입니다. 핵심은 새 표현 점수가 낮아질 때 모델이 완전히 다른 과제로 간 것이 아니라, 같은 문제 안에서도 표현 변화 때문에 버팀성이 약해질 수 있다는 점입니다.

  • 지난달 게시글은 익숙한 표현과 새로운 표현의 차이가 작습니다.
  • 새 유행어 등장은 표현이 조금만 바뀌어도 점수가 크게 떨어질 수 있음을 보여 줍니다.
  • 비꼼과 우회 표현 증가는 표면 문장이 달라지면 모델이 더 크게 흔들릴 수 있음을 보여 줍니다.

즉, 사회현상에서도 일반화는 과거에 잘 맞았다보다 새로운 표현과 조건 변화에도 얼마나 버티는가를 묻는 질문으로 읽어야 더 정확합니다.

그리고 여기서 말하는 버틴다는 표현은 아주 중요합니다. 새 데이터가 들어오면 항상 약간의 차이와 흔들림이 생깁니다. 일반화는 그 흔들림 속에서도 모델이 완전히 무너지지 않고, 여전히 쓸 만한 수준을 유지하는가를 묻는 말입니다.

체크리스트

  • 왜 일반화를 학습 점수 높이기가 아니라 같은 문제의 새 예시에 버티는가로 설명해야 하는지 말할 수 있는가
  • 어떤 경우는 일반화 범위에 바로 넣고, 어떤 경우는 문제 자체가 달라졌다고 봐야 하는지 구분할 수 있는가
  • 검증과 테스트가 결국 일반화 확인을 위한 장치라는 점을 설명할 수 있는가
  • 일반화가 모델이 아직 보지 못한 데이터에서도 쓸 만하게 작동하는 성질이라는 점을 설명할 수 있는가
  • 머신러닝의 실제 목표는 학습 점수 자체가 아니라 일반화이며, 과적합과 과소적합은 모두 일반화를 약하게 만들 수 있다는 점을 설명할 수 있는가
  • 일반화가 완벽한 일치보다 새 데이터에서의 안정적인 버팀성을 뜻한다는 점을 설명할 수 있는가

출처와 참고 자료