[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)
.
위의 설명에서 생성 모델이 더 일반적으로 유용하고 더 우수하다고 생각할 수도 있지만 그렇게 간단하지는 않습니다. 이 논문 은 차별적 분류와 생성 적 분류기의 주제에 대해 매우 인기있는 참고 자료이지만, 꽤 많이 진행되고 있습니다. 전반적인 요점은 차별적 모델이 분류 작업에서 일반적으로 생성 적 모델보다 우수한 것입니다.
답변
생식 알고리즘 모델은 데이터 신호를 분류하기 위하여 생성되다. 그것은 다음과 같은 질문을한다 : 내 세대 가정에 근거하여,이 신호를 생성 할 가능성이 가장 높은 카테고리는 무엇입니까?
차별적 알고리즘 데이터가 생성 된 방법에 대해 상관하지 않는다, 그것은 단순히 주어진 신호를 분류합니다.
답변
연설을 언어로 분류하는 것이 당신의 임무라고 상상해보십시오.
다음 중 하나를 수행하면됩니다.
- 각 언어를 배우고 방금 얻은 지식을 사용하여 분류
또는
- 언어를 배우지 않고 언어 모델의 차이를 결정한 다음 언어를 분류합니다.
첫 번째는 생성 방식이고 두 번째는 차별적 접근법입니다.
자세한 내용은이 참조를 확인하십시오 : 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는 동물의 특징 벡터이다.
훈련 세트가 주어지면 로지스틱 회귀 또는 퍼셉트론 알고리즘 (기본적으로)과 같은 알고리즘은 코끼리와 개를 분리하는 직선, 즉 결정 경계를 찾으려고 시도합니다. 그런 다음 새 동물을 코끼리 또는 개로 분류하기 위해 결정 경계의 어느 쪽이 떨어지는 지 확인하고 그에 따라 예측합니다. 우리는 이러한 차별적 학습 알고리즘을 호출 합니다 .
다른 접근법이 있습니다. 먼저 코끼리를 보면 코끼리가 어떻게 보이는지 모델을 만들 수 있습니다. 그런 다음 개를 보면 개가 어떻게 보이는지에 대한 별도의 모델을 만들 수 있습니다. 마지막으로, 새 동물을 분류하기 위해 새 동물을 코끼리 모델과 일치시키고 개 모델과 일치시켜 새 동물이 코끼리처럼 보이는지 또는 훈련 세트에서 본 개처럼 보이는지 확인할 수 있습니다 . 우리는 이러한 생성 학습 알고리즘을 호출 합니다 .