Named Entity Recognition(NER)
문장 단어의 이름을 찾고 구분하는 작업
단순하게 구현하면 context window를 활용하여 다음과 같이 구현 가능
개체명을 기준으로 동사와 기타 단어들이 관계를 맺는 구조로 이어지기 때문에, 즉 문법적으로 중요한 품사로 해석되어 문맥을 파악하는데 핵심 역할을 하므로 NER 은 NLP task 에서 중요하게 간주된다.
👉 NER 에 자주 쓰이는 모델 : CRF, RNN
한계점
- 문장내에서 사용되는 entity 의 정확한 개체를 분류하기 어려운 한계점
👉 문맥까지 고려하는 window classification 방법론 등장
Idea : 중심 단어와 주변 단어들을 함께 분류 문제에 활용하는 방법
Method1 : 단어벡터의 평균으로 게산한다. but 위치 정보를 잃어버리는 단점이 존재
Method2 :벡터를 concatenate 하여 Xwindow 벡터를 만들고 이를 input 으로 취하여, 다층퍼셉트론과 softmax clssifier 를 훈련하여 분류를 진행
- NER Location 분류 예제 : X(paris) 를 Location 으로 분류하는 문제
- museums in Paris are amazing 라는 X(window) 벡터만 True 로 처리하여 높은 점수를, 그 외에 window vector (Not all museums in Pares와 같은)은 낮은 점수를 return 하도록 score 를 정의
score (s) 값에 softmax 를 취해주고 error 함수를 계산하여 W를 업데이트 시킨다.
Softmax (Logistic)
- 딥러닝 신경망의 출력층에서 Output 을 확률로 표현하는데 쓰이는 활성화 함수로, 다중 클래스 분류 문제에 활용 (결정경계 생성에 기준이 되는 함수)
- Xi 를 입력받아 각 클래스에 속할 확률 Pi를 추정한다. max 확률 값을 soft하게 뽑아내어 y를 분류
- 확률의 총합을 1로 만들어 계산하기 때문에 특정 input x 가 어떤 분류에 속할 확률이 높을지 쉽게 인지할 수 있음
cf. 시그모이드는 이중 클래스 판별
Max-margin loss
- 앞선 NER 예제에서 score 함수를 직접 정의했기 때문에, Output을 그대로 이용하는 score 산출 방식으로 정답과 오답 사이의 거리를 최대로 만드는 margin 을 찾는 방식의 max-margin loss 함수를 손실함수로 사용한다.
4. Matrix calculus
- Jacobian matrix : Generalization of Gradient


- Chain Rule


✔ window classification 에서의 역전파 가중치 업데이트 계산과정
1. ds/db
2. ds/dw
그런데 ds/dh * dh/dz 의 연산 과정이 겹치게 됨.
중복된 계산 (연산량) 을 피하기 위해 파란색 부분 연산을 local error signal 로 묶어서 정의
Gradients
gradients는 derivative와 같다. input data가 변화 했을 때 output이 얼마만큼 변화하는 지를 알려준다.
multi input, one output 함수의 경우 각 input에 대한 partial derivative를 모은 vector가 gradient가 된다.
multi input, multi output의 gradients는 matrix 형태가 되며, 이를 jacobian 이라고 한다. jacobian matrix는 gradients의 일반화된 형태이다.
Chain Rule
합성 함수의 derivative는 각각의 derivative의 곱으로 얻을 수 있다.
chain rule을 multi variable 함수에 적용하면 jacobian의 곱으로 확장 가능하다.
chain rule을 사용하면 계산을 재사용 할 수 있다.
Back propagation
뉴럴 네트워크의 연산을 다음과 같이 그래프로 표현할 수 있다.
위 처럼 앞에서 부터 차례대로 그래프 연산을 진행하는 것을 forward propagation이라고 한다.
위 그래프에서 output 부터 시작하여 차례대로 gradients를 계산 할 수 있다. 이때 chain rule을 활용한다.
위 과정을 backpropagation이라고 한다. chain rule을 활용하기에 연산된 gradients를 재사용 할 수 있다.
'✍️ STUDY > NLP' 카테고리의 다른 글
[cs224n] Lecture 5 - Language Models and Recurrent Neural Networks (1) | 2023.11.20 |
---|---|
[cs224n] Lecture 4 - Syntactic Structure and Dependency Parsing (1) | 2023.11.19 |
[cs224n] Lecture2 - Neural Classifiers (0) | 2023.10.07 |
[cs224n] Lecture1 - Intro & Word Vectors (1) | 2023.10.06 |
[Text Mining] 감성분석 (1) | 2023.03.22 |