생성과 식별 알고리즘의 차이점은 무엇입니까?
-
22-08-2019 - |
문제
a의 차이점을 이해하도록 도와주세요 생성 그리고 a차별적 알고리즘, 나는 초보자 일 뿐이라는 것을 명심하십시오.
해결책
입력 데이터가 있다고 가정 해 봅시다 x
데이터를 레이블로 분류하려고합니다 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)
한 쌍.
위의 설명에서 생성 모델이 더 일반적으로 유용하고 더 좋다고 생각할 수 있지만 그렇게 간단하지는 않습니다. 이 종이 차별적 대 생성 분류기의 주제에 대한 매우 인기있는 참조이지만, 매우 무겁습니다. 전반적인 요점은 차별적 모델이 일반적으로 분류 작업에서 생성 모델을 능가한다는 것입니다.
다른 팁
ㅏ 생성 알고리즘 신호를 분류하기 위해 데이터가 어떻게 생성되었는지 모델. 그것은 질문을합니다. 내 세대 가정을 바탕으로 어떤 범주 가이 신호를 생성 할 가능성이 가장 높습니까?
ㅏ 식별 알고리즘 데이터가 어떻게 생성되었는지는 신경 쓰지 않으며 단순히 주어진 신호를 분류합니다.
당신의 임무는 연설을 언어로 분류하는 것이라고 상상해보십시오.
당신은 다음 중 하나를 사용할 수 있습니다.
- 각 언어를 배우고 방금 얻은 지식을 사용하여 분류
또는
- 언어를 배우지 않고 언어 모델의 차이를 결정한 다음 연설을 분류합니다.
첫 번째는입니다 생성 접근 방식과 두 번째는입니다 차별적 접근하다.
자세한 내용은이 참조를 확인하십시오. http://www.cedar.buffalo.edu/~srihari/cse574/discriminative-generative.pdf.
실제로 모델은 다음과 같이 사용됩니다.
~ 안에 차별적 모델, 레이블을 예측합니다 y
훈련 예에서 x
, 당신은 평가해야합니다 :
그것은 단지 가장 가능성이 높은 수업을 선택하는 것입니다 y
고려하면 x
. 우리가 노력했던 것과 같습니다 클래스 간의 결정 경계를 모델링하십시오. 이 동작은 신경망에서 매우 분명하며, 계산 된 가중치는 공간의 클래스 요소를 분리하는 복잡한 모양의 곡선으로 볼 수 있습니다.
이제 Bayes의 규칙을 사용하여 교체하겠습니다. 방정식에서 . 당신은 단지 관심이 있기 때문에 Arg Max, 당신은 분모를 닦을 수 있습니다. y
. 그래서, 당신은 남아 있습니다
이것은 당신이 사용하는 방정식입니다 생성 모델.
첫 번째 경우에 당신은 그랬습니다 조건부 확률 분포 p(y|x)
, 클래스 사이의 경계를 모델링 한 두 번째는 공동 확률 분포 p (x, y), p (x, y) = p (x | y) p (y) 이후 각 클래스의 실제 분포를 명시 적으로 모델링합니다.
주어진 관절 확률 분포 함수로 y
, 당신은 각각의 x
. 이러한 이유로,이를 "생성"모델이라고합니다.
다음은 다음과 같습니다 강의 노트 주제와 관련된 CS299 (Andrew NG)의 진짜 차이점을 이해하는 데 도움이됩니다 차별적 그리고 생성 학습 알고리즘.
우리가 두 종류의 동물, 코끼리가 있다고 가정 해y = 1
) 및 개 (y = 0
). 그리고 엑스 동물의 특징 벡터입니다.
훈련 세트가 주어지면 로지스틱 회귀와 같은 알고리즘이나 퍼셉트론 알고리즘 (기본적으로)은 코끼리와 개를 분리하는 직선, 즉 결정 경계를 찾으려고 시도합니다. 그런 다음 새로운 동물을 코끼리 나 개로 분류하기 위해 결정 경계의 어느 쪽을 확인하고 그에 따라 예측을합니다. 우리는 이것을 부릅니다 식별 학습 알고리즘.
다음은 다른 접근법입니다. 첫째, 코끼리를 보면 코끼리가 어떻게 생겼는지 모델을 만들 수 있습니다. 그런 다음 개를 보면 개가 어떻게 생겼는지 별도의 모델을 만들 수 있습니다. 마지막으로, 새로운 동물을 분류하기 위해, 우리는 새로운 동물을 코끼리 모델과 일치시키고 개 모델과 일치시켜 새로운 동물이 훈련 세트에서 우리가 본 개와 같은 코끼리처럼 보이는지 확인할 수 있습니다. . 우리는 이것을 부릅니다 생성 학습 알고리즘.
일반적으로 기계 학습 커뮤니티에는 원하지 않는 것을 배우지 않는 관행이 있습니다. 예를 들어, 목표가 주어진 X 입력에 Y 라벨을 할당하는 것이 목표 인 분류 문제를 고려하십시오. 생성 모델을 사용하는 경우
p(x,y)=p(y|x).p(x)
우리는 손에있는 작업과 관련이없는 p (x)를 모델링해야합니다. Data Sparsense와 같은 실제 제한은 우리를 모델로 만들 것입니다. p(x)
약한 독립 가정이 있습니다. 따라서 우리는 분류를 위해 차별적 모델을 직관적으로 사용합니다.
위의 Stompchicken의 답변과 잘 어울리는 추가 정보 요점.
그만큼 근본적인 차이 ~ 사이 차별적 모델 그리고 생성 모델 이다:
차별적 모델 배우십시오 (단단하거나 부드러운) 경계 수업 사이
생성 모델 모델 분포 개별 수업의
편집하다:
생성 모델은 하나입니다 데이터를 생성 할 수 있습니다. 그것은 기능과 클래스를 모두 모델링합니다 (즉, 완전한 데이터).
우리가 모델한다면 P(x,y)
:이 확률 분포를 사용하여 데이터 포인트를 생성 할 수 있습니다. 따라서 모든 알고리즘 모델링 P(x,y)
생성입니다.
예를 들어. 생성 모델의
순진한 베이 에스 모델
P(c)
그리고P(d|c)
- 어디c
수업이고d
기능 벡터입니다.또한,
P(c,d) = P(c) * P(d|c)
따라서 일부 형태 모델의 순진한 베이,
P(c,d)
베이 에스 그물
마르코프 그물
차별적 모델은 데이터 포인트를 구별/분류합니다. 당신은 모델 만 있으면됩니다 P(y|x)
그러한 경우 (즉, 피처 벡터가 주어진 클래스의 확률).
예를 들어. 차별적 모델 :
로지스틱 회귀
신경망
조건부 임의의 필드
일반적으로 생성 모델은 차별적 모델보다 훨씬 더 많은 모델을 모델링해야하므로 때로는 효과적이지 않습니다. 사실, 클러스터링 등과 같은 감독되지 않은 학습 알고리즘이 모델을 모델링하기 때문에 생성이라고 할 수 있습니다. P(d)
(수업이 없습니다 : P)
추신 : 답의 일부는에서 가져온 것입니다 원천
나의 두 센트 : 차별적 접근법은 차이점을 강조한다. 생성 접근법은 차이에 초점을 두지 않는다. 그들은 클래스를 대표하는 모델을 구축하려고합니다. 둘 사이에 겹치는 것이 있습니다. 이상적으로 두 가지 접근 방식을 사용해야합니다. 하나는 유사성을 찾는 데 유용하고 다른 접근 방식은 유사성을 찾는 데 유용 할 것입니다.
생성 알고리즘 모델은 교육 데이터에서 완전히 학습하고 응답을 예측합니다.
차별적 인 알고리즘 작업은 단지 두 결과를 분류하거나 구별하는 것입니다.
모든 이전 답변은 훌륭하고 한 가지 더 꽂고 싶습니다.
생성 알고리즘 모델에서 모든 분포를 도출 할 수 있습니다. 식별 알고리즘 모델로부터 조건부 분포 P (y | x) 만 얻을 수 있지만 (또는 이들이 Y의 레이블을 판별하는 데 유용하다고 말할 수 있음)이를 판별 모델이라고합니다. 식별 모델은 y ($ x_i perp x _ {-i} | y $)가 주어지면 X가 독립적이라고 가정하지 않으므로 일반적으로 조건부 분포를 계산하는 데 더 강력합니다.