AI 101
생성적 모델 vs. 판별적 머신러닝 모델

일부 머신러닝 모델은 “생성적” 또는 “판별적” 모델 범주에 속합니다. 그렇다면 이 두 범주의 모델 간의 차이점은 무엇일까요? 모델이 판별적이거나 생성적이라는 것은 무엇을 의미할까요? 간단히 말하면, 생성적 모델은 데이터 세트의 분포를 포함하여 주어진 예시에 대한 확률을 반환하는 모델입니다. 생성적 모델은 종종 시퀀스에서 다음에 발생할 일을 예측하는 데 사용됩니다. 한편, 판별적 모델은 분류 또는 회귀에 사용되며 조건부 확률을 기반으로 예측을 반환합니다. 두 유형의 모델을 구분하는 것이 무엇인지, 각 유형을 언제 사용해야 하는지 진정으로 이해할 수 있도록 생성적 모델과 판별적 모델의 차이점을 더 자세히 살펴보겠습니다.
생성적 모델 vs. 판별적 모델
머신러닝 모델을 분류하는 방법은 다양합니다. 모델은 생성적 모델, 판별적 모델, 매개변수 모델, 비매개변수 모델, 트리 기반 모델, 비트리 기반 모델과 같은 다양한 범주로 분류될 수 있습니다. 이 글은 생성적 모델과 판별적 모델의 차이점에 초점을 맞출 것입니다. 생성적 모델과 판별적 모델을 모두 정의하는 것으로 시작한 다음, 각 유형의 모델 예시를 살펴보겠습니다.
생성적 모델
생성적 모델은 데이터 세트 내 클래스의 분포에 중점을 둔 모델입니다. 머신러닝 알고리즘은 일반적으로 데이터 포인트의 분포를 모델링합니다. 생성적 모델은 결합 확률을 찾는 데 의존합니다. 주어진 입력 특성과 원하는 출력/레이블이 동시에 존재하는 지점을 생성합니다. 생성적 모델은 일반적으로 확률과 가능도를 추정하고, 데이터 포인트를 모델링하며, 이러한 확률을 기반으로 클래스를 구분하는 데 사용됩니다. 모델이 데이터 세트에 대한 확률 분포를 학습하기 때문에, 이 확률 분포를 참조하여 새로운 데이터 인스턴스를 생성할 수 있습니다. 생성적 모델은 종종 베이즈 정리를 활용하여 결합 확률 p(x,y)를 찾습니다. 본질적으로 생성적 모델은 데이터가 어떻게 생성되었는지를 모델링하며, 다음 질문에 답합니다: “이 데이터 포인트/인스턴스를 생성한 것이 이 클래스일 가능성은 얼마나 될까요, 아니면 다른 클래스일 가능성은 얼마나 될까요?” 생성적 머신러닝 모델의 예로는 선형 판별 분석(LDA), 은닉 마르코프 모델, 나이브 베이즈와 같은 베이지안 네트워크가 있습니다.
판별적 모델
생성적 모델이 데이터 세트의 분포에 대해 학습하는 반면, 판별적 모델은 데이터 세트 내 클래스 간의 경계에 대해 학습합니다. 판별적 모델의 목표는 데이터 인스턴스에 신뢰할 수 있는 클래스 레이블을 적용하기 위해 클래스 간의 결정 경계를 식별하는 것입니다. 판별적 모델은 개별 데이터 포인트에 대한 가정을 하지 않고 조건부 확률을 사용하여 데이터 세트의 클래스를 분리합니다. 판별적 모델은 다음 질문에 답하기 위해 노력합니다: “이 인스턴스는 결정 경계의 어느 쪽에 위치합니까?” 머신러닝에서 판별적 모델의 예로는 서포트 벡터 머신, 로지스틱 회귀, 의사결정 트리, 랜덤 포레스트가 있습니다.
생성적 모델과 판별적 모델의 차이점
다음은 생성적 모델과 판별적 모델의 주요 차이점을 빠르게 정리한 것입니다. 생성적 모델:
- 생성적 모델은 데이터 세트 내 클래스의 실제 분포를 포착하는 것을 목표로 합니다.
- 생성적 모델은 베이즈 정리를 활용하여 결합 확률 분포 – p(x,y) – 를 예측합니다.
- 생성적 모델은 판별적 모델에 비해 계산 비용이 많이 듭니다.
- 생성적 모델은 비지도 머신러닝 작업에 유용합니다.
- 생성적 모델은 판별적 모델보다 이상치의 존재에 더 큰 영향을 받습니다.
판별적 모델:
- 판별적 모델은 데이터 세트 클래스에 대한 결정 경계를 모델링합니다.
- 판별적 모델은 조건부 확률 – p(y|x) – 를 학습합니다.
- 판별적 모델은 생성적 모델에 비해 계산 비용이 적게 듭니다.
- 판별적 모델은 지도 머신러닝 작업에 유용합니다.
- 판별적 모델은 생성적 모델과 달리 이상치에 대해 더 강건하다는 장점이 있습니다.
- 판별적 모델은 생성적 모델에 비해 이상치에 더 강건합니다.
이제 생성적 및 판별적 머신러닝 모델의 몇 가지 다른 예를 간략히 살펴보겠습니다.
생성적 모델의 예
선형 판별 분석(LDA) LDA 모델은 데이터 세트의 각 클래스에 대한 데이터의 분산과 평균을 추정하는 방식으로 작동합니다. 모든 클래스에 대한 평균과 분산이 계산된 후, 주어진 입력 집합이 특정 클래스에 속할 확률을 추정하여 예측을 수행할 수 있습니다. 은닉 마르코프 모델 마르코프 체인은 체인의 한 지점인 “상태”에서 다른 상태로 이동할 가능성이 얼마나 되는지를 나타내는 확률을 가진 그래프로 생각할 수 있습니다. 마르코프 체인은 상태 j에서 상태 i로 이동할 확률, 즉 p(i,j)를 결정하는 데 사용됩니다. 이는 위에서 언급한 결합 확률에 불과합니다. 은닉 마르코프 모델은 보이지 않고 관찰할 수 없는 마르코프 체인이 사용되는 경우입니다. 데이터 입력이 모델에 주어지고 현재 상태와 바로 앞선 상태에 대한 확률이 가장 가능성 있는 결과를 계산하는 데 사용됩니다. 베이지안 네트워크 베이지안 네트워크는 확률적 그래픽 모델의 한 유형입니다. 이들은 방향성 비순환 그래프로 표현되는 변수 간의 조건부 종속성을 나타냅니다. 베이지안 네트워크에서 그래프의 각 간선은 조건부 종속성을 나타내고, 각 노드는 고유한 변수에 해당합니다. 그래프 내 고유한 관계에 대한 조건부 독립성을 사용하여 변수의 결합 분포를 결정하고 결합 확률을 계산할 수 있습니다. 즉, 베이지안 네트워크는 특정 결합 확률 분포 내 독립 관계의 하위 집합을 포착합니다. 일단 베이지안 네트워크가 생성되고 적절히 정의되면(랜덤 변수, 조건부 관계, 확률 분포가 알려진 상태), 사건이나 결과의 확률을 추정하는 데 사용할 수 있습니다. 가장 일반적으로 사용되는 베이지안 네트워크 유형 중 하나는 나이브 베이즈 모델입니다. 나이브 베이즈 모델은 모든 특성을 서로 독립적인 것으로 취급하여 많은 매개변수/변수를 가진 데이터 세트에 대한 확률 계산의 어려움을 처리합니다.
판별적 모델의 예
서포트 벡터 머신 서포트 벡터 머신은 데이터 포인트 사이에 결정 경계를 그려 데이터 세트의 서로 다른 클래스를 가장 잘 분리하는 결정 경계를 찾는 방식으로 작동합니다. SVM 알고리즘은 2차원 공간과 3차원 공간에 대해 각각 점을 분리하는 선 또는 초평면을 그립니다. SVM은 마진, 즉 선/초평면에서 가장 가까운 점까지의 거리를 최대화하려고 시도함으로써 클래스를 가장 잘 분리하는 선/초평면을 찾기 위해 노력합니다. SVM 모델은 비선형 결정 경계를 식별하기 위해 “커널 트릭”을 사용하여 선형으로 분리할 수 없는 데이터 세트에도 사용될 수 있습니다. 로지스틱 회귀 로지스틱 회귀는 입력이 두 상태 중 하나에 속할 확률을 결정하기 위해 로짓(로그 오즈) 함수를 사용하는 알고리즘입니다. 시그모이드 함수는 확률을 0 또는 1, 참 또는 거짓 쪽으로 “압축”하는 데 사용됩니다. 0.50보다 큰 확률은 클래스 1로, 0.49 이하의 확률은 0으로 간주됩니다. 이러한 이유로 로지스틱 회귀는 일반적으로 이진 분류 문제에 사용됩니다. 그러나 로지스틱 회귀는 일대다 접근 방식을 사용하여 다중 클래스 문제에 적용될 수 있습니다. 각 클래스에 대한 이진 분류 모델을 생성하고 예시가 대상 클래스인지 데이터 세트의 다른 클래스인지 확률을 결정합니다. 의사결정 트리 의사결정 트리 모델은 데이터 세트를 더 작고 작은 부분으로 분할하는 방식으로 작동하며, 하위 집합을 더 이상 분할할 수 없게 되면 노드와 잎이 있는 트리가 결과로 나옵니다. 의사결정 트리의 노드는 서로 다른 필터링 기준을 사용하여 데이터 포인트에 대한 결정이 내려지는 곳입니다. 의사결정 트리의 잎은 분류된 데이터 포인트입니다. 의사결정 트리 알고리즘은 수치형 데이터와 범주형 데이터를 모두 처리할 수 있으며, 트리의 분할은 특정 변수/특성을 기반으로 합니다. 랜덤 포레스트 랜덤 포레스트 모델은 기본적으로 개별 트리의 예측을 평균화하여 최종 결정에 도달하는 의사결정 트리의 모음입니다. 랜덤 포레스트 알고리즘은 관측치와 특성을 무작위로 선택하고, 이러한 선택을 기반으로 개별 트리를 구축합니다. 이 튜토리얼 글은 Matplotlib에서 상자 그림을 만드는 방법을 살펴볼 것입니다. 상자 그림은 데이터 세트의 요약 통계를 시각화하는 데 사용되며, 데이터의 범위와 분포와 같은 분포의 속성을 표시합니다.








