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

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



답변

입력 데이터가 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).

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


답변

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

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


답변

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

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

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

또는

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

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

자세한 내용은이 참조를 확인하십시오 : 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(y) = p(x, y), 어떤 명시 적 모델을 각 클래스의 실제 분포를 .

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


답변

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

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

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

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


답변

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

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

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


답변

다른 모델은 아래 표에 요약되어 있습니다.
여기에 이미지 설명을 입력하십시오