생성 알고리즘과 차별 알고리즘의 차이점은 무엇입니까?


587

제너레이션 과 A 의 차이점을 이해하도록 도와주세요 . 내가 초보자에 불과하다는 것을 명심하면서, 알고리즘 차별 알고리즘 .



5
통계에 대해서도 같은 질문을 참고하십시오. SE : Generative vs.
Decriminative

간단하고 시각적 인 답변을 보려면 여기를 클릭하십시오. stackoverflow.com/a/52412379/7160346
Ravi G

답변:


840

입력 데이터가 x있고 데이터를 labels로 분류하려고 한다고 가정 해 봅시다 y. 생성적인 모델은 학습 의 공동 확률 분포를 p(x,y)하고 차별적 모델은 학습 조건부 확률 분포를 p(y|x)- 당신과 같이해야하는 '확률 y주어진 x" .

다음은 정말 간단한 예입니다. 다음과 같은 형식의 데이터가 있다고 가정하십시오 (x,y).

(1,0), (1,0), (2,0), (2, 1)

p(x,y) 이다

      y=0   y=1
     -----------
x=1 | 1/2   0
x=2 | 1/4   1/4

p(y|x) 이다

      y=0   y=1
     -----------
x=1 | 1     0
x=2 | 1/2   1/2

이 두 행렬을 응시하는 데 몇 분이 걸리면 두 확률 분포의 차이를 이해할 수 있습니다.

분포 p(y|x)는 주어진 예제 x를 클래스로 분류하기위한 자연스러운 분포입니다. y이를 직접 모델링하는 알고리즘을 판별 알고리즘이라고합니다. 생성 알고리즘 모델 p(x,y)p(y|x)베이 즈 규칙을 적용하여 변환 한 다음 분류에 사용할 수 있습니다 . 그러나 배포 p(x,y)는 다른 목적으로도 사용될 수 있습니다. 예를 들어, 가능성있는 쌍 p(x,y)생성 하는 데 사용할 수 있습니다 (x,y).

위의 설명에서 생성 모델이 더 일반적으로 유용하고 더 우수하다고 생각할 수도 있지만 그렇게 간단하지는 않습니다. 이 논문 은 차별적 분류와 생성 적 분류기의 주제에 대해 매우 인기있는 참고 자료이지만, 꽤 많이 진행되고 있습니다. 전반적인 요점은 차별적 모델이 분류 작업에서 일반적으로 생성 적 모델보다 우수한 것입니다.


48
신문 주셔서 감사합니다. 저자는 현재 스탠포드의 교수이며 stanford.edu/class/cs229/materials.html
unj2에서

26
앤드류 응하여도 좋은 설명 여기
clyfe

39
행렬을 쳐다볼 때 첫 번째 항목에서는 모든 항목의 합계가 1.0이고 두 번째 항목에서는 각 행의 합계가 1입니다. 이것은 깨달음을 속도 (과 혼란을 줄일 수) 것
맥심 Khesin에게

5
Andrew Ng의 메모는 매우 유용합니다. cs229.stanford.edu/notes/cs229-notes2.pdf
anh_ng8

1
"이것을 직접 모델링하는 알고리즘을 차별 알고리즘이라고하는 이유", 왜 p(y|x)이를 모델링하는 알고리즘을 "차별 모델"이라고 암시 하는지 확실하지 않습니다 .
nbro

291

생식 알고리즘 모델은 데이터 신호를 분류하기 위하여 생성되다. 그것은 다음과 같은 질문을한다 : 내 세대 가정에 근거하여,이 신호를 생성 할 가능성이 가장 높은 카테고리는 무엇입니까?

차별적 알고리즘 데이터가 생성 된 방법에 대해 상관하지 않는다, 그것은 단순히 주어진 신호를 분류합니다.


6
이 대답은 나를 혼란스럽게합니다. 알고리즘의 두 클래스는 감독 된 학습 알고리즘 클래스로 분류되며, 학습 된 학습 데이터 모델을 학습하여 다른 데이터를 예측하는 함수를 도출합니다. 설명하는 알고리즘은 마치 모델을 만들지 않는 것처럼 들립니다. 맞습니까? 그런 점에서 대답을 강화할 수 있다면 기쁠 것입니다.
Lenar Hoyt

42
@mcb 생성 알고리즘은 데이터가 "생성 된"방식을 모델링하므로 "이 클래스 또는 해당 클래스가이 인스턴스를 생성했을 가능성은 무엇입니까?" 더 나은 확률로 하나를 선택하십시오. 판별 알고리즘은 데이터를 사용하여 의사 결정 경계를 작성하므로 "이 인스턴스가 의사 결정 경계의 어느쪽에 있습니까?" 따라서 데이터 생성 방식에 대한 모델을 만들지 않고 클래스 간의 경계가 어떻게 보이는지에 대한 모델을 만듭니다.
Anthony

1
Naive Bayes와 같은 생성 모델에는 결정 경계가 없습니까?
sheetal_158

4
따라서 생성 모델은 해석 가능성이 더 나은 것 같습니다.
Candic3

157

연설을 언어로 분류하는 것이 당신의 임무라고 상상해보십시오.

다음 중 하나를 수행하면됩니다.

  1. 각 언어를 배우고 방금 얻은 지식을 사용하여 분류

또는

  1. 언어를 배우지 않고 언어 모델의 차이를 결정한 다음 언어를 분류합니다.

첫 번째는 생성 방식이고 두 번째는 차별적 접근법입니다.

자세한 내용은이 참조를 확인하십시오 : http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf .


2
다른 방법이 아닙니까? 당신이 언어를 배웠다는 것을 고려할 때, 당신은 조건부 배포를 운영하고 있으므로 차별적 인 접근 방식이어야합니까?
London guy

아래 답변을 읽은 후 다른 방법으로 생각합니다 -Ghrua의 CS299 강의 노트의 예
Mitali Cyrus

132

실제로 모델은 다음과 같이 사용됩니다.

차별적 모델 에서는 y훈련 예에서 레이블을 예측하려면 x다음을 평가해야합니다.

여기에 이미지 설명을 입력하십시오

이는 단지 가능성이 가장 높은 클래스가 무엇인지 선택 y고려 x. 우리가 클래스 사이의 결정 경계모델링 하려고했던 것과 같습니다 . 이 동작은 신경망에서 매우 분명하며, 계산 된 가중치는 공간의 클래스 요소를 격리시키는 복잡한 모양의 곡선으로 볼 수 있습니다.

이제 Bayes의 법칙을 사용 여기에 이미지 설명을 입력하십시오하여 방정식 의를로 대체합니다 여기에 이미지 설명을 입력하십시오. arg max에 관심이 있기 때문에 분모를 지울 수 있습니다 y. 그래서, 당신은 남아

여기에 이미지 설명을 입력하십시오

생성 모델 에서 사용하는 방정식 입니다.

첫 번째 경우에 당신이 가지고 있지만 조건부 확률 분포 p(y|x) 클래스 사이의 경계를 모델링, 두 번째에 당신이 가지고 결합 확률 분포를 p(x, y) , 이후 p(x | y) p(y) = p(x, y), 어떤 명시 적 모델을 각 클래스의 실제 분포를 .

관절 확률 분포 함수를 사용하면 a가 주어지면 y각각을 계산 ( "생성") 할 수 있습니다 x. 이러한 이유로이를 "생성"모델이라고합니다.


3
이러한 추론에 의해, 동일한 분포에 적용될 때 생성 모델과 차별 모델이 동일하지 않습니까? 분류 동작에 왜 차이가 있습니까? 아니면이 최대 가능성 맥락에서 동일합니까?
Sebastian Graf

이들이 "동일한 지"여부를 알려면 먼저 그 의미를 정의해야합니다. 공통점이 많지만 가장 큰 차이점은 사용 된 전략입니다. 분포 (차별적)에 관계없이 분포 (생성) 대 클래스 예측 (예 : KNN에 대해 잠시 생각).
Saul Berardo

90

다음 은 주제와 관련된 CS299 (Andrew Ng) 의 강의 노트 에서 가장 중요한 부분으로, 차별적 학습 알고리즘 과 생성 학습 알고리즘 의 차이점 을 실제로 이해하는 데 도움 됩니다 .

코끼리 ( y = 1)와 개 ( y = 0) 라는 두 종류의 동물이 있다고 가정하자 . 그리고 X는 동물의 특징 벡터이다.

훈련 세트가 주어지면 로지스틱 회귀 또는 퍼셉트론 알고리즘 (기본적으로)과 같은 알고리즘은 코끼리와 개를 분리하는 직선, 즉 결정 경계를 찾으려고 시도합니다. 그런 다음 새 동물을 코끼리 또는 개로 분류하기 위해 결정 경계의 어느 쪽이 떨어지는 지 확인하고 그에 따라 예측합니다. 우리는 이러한 차별적 학습 알고리즘을 호출 합니다 .

다른 접근법이 있습니다. 먼저 코끼리를 보면 코끼리가 어떻게 보이는지 모델을 만들 수 있습니다. 그런 다음 개를 보면 개가 어떻게 보이는지에 대한 별도의 모델을 만들 수 있습니다. 마지막으로, 새 동물을 분류하기 위해 새 동물을 코끼리 모델과 일치시키고 개 모델과 일치시켜 새 동물이 코끼리처럼 보이는지 또는 훈련 세트에서 본 개처럼 보이는지 확인할 수 있습니다 . 우리는 이러한 생성 학습 알고리즘을 호출 합니다 .


33

일반적으로 기계 학습 커뮤니티에는 원하지 않는 것을 배우지 않는 관행이 있습니다. 예를 들어, 주어진 x 입력에 y 레이블을 할당하는 것이 목표 인 분류 문제를 고려하십시오. 생성 모델을 사용하면

p(x,y)=p(y|x).p(x)

우리는 현재 작업과 관련이없는 p (x)를 모델링해야합니다. 데이터 sparseness와 같은 실제적인 제한 p(x)으로 인해 약한 독립성 가정 을 모델링 해야합니다. 따라서 우리는 분류를 위해 차별적 모델을 직관적으로 사용합니다.



22

위의 StompChicken의 답변과 잘 어울리는 추가 정보 포인트.

근본적인 차이 사이의 차별 모델생식 모델 입니다 :

차별적 모델(하드 또는 소프트) 경계 클래스 사이를

생성 모델 은 개별 클래스 의 분포 를 모델링합니다.

편집하다:

생성 모델은 데이터를 생성 할 수 있는 모델입니다 . 기능과 클래스 (예 : 전체 데이터)를 모두 모델링합니다.

우리가 모델링하는 경우 P(x,y):이 확률 분포를 사용하여 데이터 포인트를 생성 할 수 있으므로 모든 알고리즘 모델링 P(x,y)이 생성됩니다.

예 : 생성 모델

  • Naive Bayes 모델 P(c)P(d|c)- c클래스는 어디 이며 d피처 벡터입니다.

    또한, P(c,d) = P(c) * P(d|c)

    따라서 일부 양식 모델의 Naive Bayes는 P(c,d)

  • 베이 즈 네트

  • 마르코프 네츠

차별적 모델은 데이터 포인트구별 / 분류하는 데만 사용할 수있는 모델입니다 . P(y|x)그러한 경우 에만 모델링 하면됩니다 (예 : 특징 벡터가 주어진 클래스의 확률).

예 : 차별적 모델

  • 로지스틱 회귀

  • 신경망

  • 조건부 임의 필드

일반적으로, 생성 모델은 차별적 모델보다 훨씬 더 많은 모델을 모델링해야하므로 때로는 효과적이지 않습니다. 사실, 클러스터링 등과 같은 대부분의 감독되지 않은 학습 알고리즘은 모델링 P(d)(및 클래스가 없음)하기 때문에 생성 적이 라고 할 수 있습니다 .

추신 : 답변의 일부는 출처 에서 가져옵니다


8

짧은 대답

여기에있는 많은 답변은 널리 사용되는 수학적 정의에 의존합니다.

  • 판별 모델은 조건부 예측 분포를 직접 학습합니다 p(y|x).
  • 제너 모델은 공동 분배를 배울 수 p(x,y)(또는 오히려, p(x|y)p(y) ).
    • p(y|x)Bayes의 규칙으로 예측 분포 를 얻을 수 있습니다.

매우 유용하지만이 좁은 정의 는 감독 된 설정을 가정하며 감독되지 않은 방법 또는 반 감독 된 방법을 검사 할 때는 덜 유용합니다. 또한 딥 생성 모델링에 대한 많은 현대적인 접근 방식에는 적용되지 않습니다 . 예를 들어, 이제 샘플링 기반이며 확률 밀도를 명시 적으로 모델링하지 않는 암시 적 생성 모델, 예를 들어 GAN (Generative Adversarial Networks)이 있습니다 p(x)(차별 기 네트워크를 통한 발산 측정을 배우는 대신). 그러나 우리는 그것들을 (고차원 [10]) 샘플을 생성하는데 사용되기 때문에 "생성 모델"이라고 부릅니다.

보다 광범위하고 근본적인 정의 [2] 동일하게이 일반적인 질문에 대한 피팅 것 같다 :

  • 판별 모델은 클래스 간 경계를 학습합니다.
    • 따라서 서로 다른 종류의 데이터 인스턴스를 구별 할 수 있습니다 .
  • 생성 모델은 데이터 분포를 학습합니다.
    • 따라서 새로운 데이터 인스턴스를 생성 할 수 있습니다 .

http://primo.ai/index.php?title=Discriminative_vs._Generative에서 이미지 소스


자세한 관찰

그럼에도 불구하고,이 질문은 다소 잘못된 이분법을 암시한다 [3]. 생성 적 차별 "이분법"은 실제로 [4] 사이에서 매끄럽게 보간 할 수 있는 스펙트럼 입니다.

결과적으로, 이러한 구별은 특히 많은 인기 모델이 깔끔하게 하나 또는 다른 모델에 속하지 않거나 실제로 하이브리드 모델 인 경우 (고전적으로 "차별적"및 "생성 적"모델의 조합) 경우에 임의적이고 혼란스러워집니다. .

그럼에도 불구하고 여전히 유용하고 일반적인 차이점입니다. 정식 및 최근의 생성 및 차별 모델에 대한 명확한 예를 나열 할 수 있습니다.

  • 생성 : Naive Bayes, 잠재 Dirichlet 할당 (LDA), Generative Adversarial Networks (GAN), Variational Autoencoders (VAE), 흐름 정상화.
  • 판별 : 지원 벡터 머신 (SVM), 로지스틱 회귀, 가장 깊은 신경망.

또한 생성-차별적 분할 [7]과 스펙트럼 [4,8]을 심층적으로 조사하고 심지어 차별적 모델을 생성 모델로 변환하는 흥미로운 작업도 많이 있습니다 [9].

결국, 정의는 끊임없이 발전하고 있습니다. 특히 빠르게 성장하는 분야에서 :) 소금 한 덩어리로 정의하고 자신과 다른 사람들을 위해 재정의하는 것이 가장 좋습니다.


출처

  1. "기계 학습-판별 및 생성"(Tony Jebara, 2004)에서 비롯된 것일 수 있습니다.
  2. Google 기계 학습의 충돌 과정
  3. 생식 차별적 오류
  4. "생성 및 판별 모델의 주요 하이브리드"(Lasserre et al., 2006)
  5. @ 시마오의 질문
  6. Binu Jasim의 답변
  7. 로지스틱 회귀 분석과 순진한 베이 비교 :
  8. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/DengJaitly2015-ch1-2.pdf
  9. "분류기는 비밀리에 에너지 기반 모델입니다"(Grathwohl et al., 2019)
  10. Stanford CS236 메모 : 기술적으로, 확률 론적 차별 모델은 데이터에 따라 조정 된 레이블의 생성 모델이기도합니다. 그러나 생성 모델이라는 용어는 일반적으로 고차원 데이터를 위해 예약되어 있습니다.

1
이것은 실제로 더 많은 투표를해야합니다. 내가 찾은 "거짓 이분법"아이디어를 만진 유일한 대답은 당신이었습니다. 내 질문은 이것과 비슷합니다 : stats.stackexchange.com/questions/408421/…
Antonio Luis Sombra

1

이전의 모든 답변은 훌륭하며 한 가지 점을 더하고 싶습니다.

생성 알고리즘 모델에서 모든 분포를 도출 할 수 있습니다. 우리는 차별적 알고리즘 모델로부터 조건부 분포 P (Y | X)를 얻을 수 있지만 (또는 Y의 레이블을 구별하는 데에만 유용하다고 말할 수 있음), 이것이 차별적 모델이라고하는 이유입니다. 차별적 모델은 Y ($ X_i \ perp X _ {-i} | Y $)를 감안할 때 X가 독립적이라고 가정하지 않으므로 일반적으로 조건부 분포를 계산하는 데 더 강력합니다.


0

나의 두 센트 : 차별적 접근 방식이 차이점을 강조합니다. 생성 적 접근 방식은 차이점에 초점을 두지 않습니다. 그들은 클래스를 대표하는 모델을 만들려고합니다. 둘 사이에 중복이 있습니다. 이상적으로는 두 가지 접근 방식을 모두 사용해야합니다. 하나는 유사점을 찾는 데 유용하고 다른 하나는 비 유사성을 찾는 데 유용합니다.


0

생성 알고리즘 모델은 학습 데이터에서 완전히 학습하고 응답을 예측합니다.

차별적 인 알고리즘 작업은 두 결과를 분류하거나 구별하는 것입니다.


내가 얻는 것은 생성 모델은 감독 학습 기반이며 차별적 모델은 감독되지 않은 학습에 기반합니다. 내가 맞나요?
Waseem Ahmad Naeem

@WaseemAhmadNaeem 종류는 아니지만 종류는 아닙니다. y는 항상 목표이며 입력 데이터의 일부로 필요하므로 둘 다 감독됩니다. 첫 번째 단계는 y를 특별하게 고려하지 않고 모든 분포에서 완전한 분포를 얻는 것이므로 생성 되지 않은 것처럼 보입니다 . 당신이 거기서 멈추고 y를 특별하게 취급하지 않으면 그 부분 자체는 감독되지 않습니다.
Mitch

@ 미치 나는 당신이 둘의 차이점에 대해 종이 / 메모 / 링크를 공유하도록 요청할 수 있습니까? 실제로 나는이 개념에 대해 약간 혼란스러워합니다. 미리 감사드립니다
Waseem Ahmad Naeem

에서 @WaseemAhmadNaeem 검색 크로스 Validated.SE 특히 (통계 / ML SE 사이트) 차별 대 제너 또는 베이지안의 맥락에서 차별 모델 대 제너 . 기본 예 Naive Bayes는 생성 적이며 로지스틱 회귀는 차별적입니다. 둘 다 더 많은 예 .
Mitch

0

기사는 개념을 이해하는 데 많은 도움 되었습니다.

요약하자면,

  • 둘 다 확률 론적 모형으로, 확률 ( 조건부 확률)을 정확하게 사용한다는 의미입니다. )을 사용하여 미지의 데이터에 대한 클래스를 계산합니다.
  • Generative Classifiers는 Joint PDF & Bayes 정리를 적용합니다 는 데이터 세트에 를 하고 그 값을 사용하여 조건부 확률을 계산합니다.
  • 판별 분류기는 데이터 세트에서 조건부 확률을 직접 찾습니다.

좋은 읽을 거리 : 조건부 확률 , Joint PDF

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.