discriminative model 의 한 종류
다양한 text classification 기법이 있다.
두가지 관점으로 분류해보면
우리가 예측하려는 라벨의 구조에 따라 모델이 달라짐
개별라벨
시퀀스라벨
모델이 데이터를 어떻게 다루는지, 어떤 확률을 학습하는지에 따라 구분
생성 모델
Discriminative(판별 모델)
CRF에서는 Potential Function / Feature Function으로 입력과 라벨 간, 혹은 라벨 간 관계까지 표현 가능
단어-태그 관계뿐 아니라,
이전 태그가 무엇이었는지도 고려 가능
CRF는 내가 어떤 단어를 보고 어떤 태그를 붙일까?를 문장 전체 맥락으로 판단
CRF를 만들어가기 위해서는 feature function 을 정의해야함.
feature function 을 만들때 고려해야할 특성
conditionally independent labels cannot appear in the same potential function
potential function 은 feature function과 동일한 개념
- 연속된 label 관계에서만 정의해야함..
이렇게 다 연결되어있는 경우에는 가능함
Instead, require potential functions to operate only on random variables forming a maximal clique
maximal clique?
CRF의 식
e의 몇 제곱? 으로 표현
트레이닝한다..
세타값들을 찾아간다...
feature를 얼마만큼 weight 값을 줘서 이 확률을 계산할 것인가...
세타가 얼마가 적당한가
log likelihood를 최대화 하고 싶은데 그게 어려우니
gradient descent 를 써서 loss가 최소가 되는 것을 찾는게 쉬우니
세타값이 얼마가 적당한지 찾아가는 것
maximum entropy 원칙에 따라 확률값을 예측할거다(모델을 트레이닝 할거다)
모든 가능한 경우를 최대한 고려해보겠다
최대한 많은 시퀀스를 보고 정답을 찾안나가겠다
확실하게 예측한다는 건 -> entropy 낮은 거
그레디언트 구하려면 미분을 해줘야 함.
Gold label - prediction
관측값(정답, 실제 값) - 모델이 예측한 확률 P
어떤 probability * feature function
모델에서 얻어온 확률값 을 feature에 곱해줌
결론적으로 weighting 하는 것이 됨
(결국 확률값은 weight 값이 됨(0~1값))
그럼 확률값은 어떻게 구할것이냐?
HMM과 비슷...
쉽지 않다..