【논문 시리즈】자연 언어 처리에 신경망을 적용한다
원문
(거의) Ichi에서 자연 언어 처리
Ronan Collobert (2011)
1. 요약
2. 배경
종래의 자연언어 처리의 대표예로는 POS(Part-Of-Speech tagging; 품사태깅), CHUNK(chunking), NER(Named Entity Recognition), SRL(Semantic Role Labeling; 단어 의미 해석)이 있다.
알고리즘의 복잡성은 다르지만 근본적인 프로세스는 네 가지 모두 동일합니다.
즉, 단어를 태그하여 입력 데이터로 변형한다.
종래에는, 데이터화한 단어에 대해서, 사람의 손에 의해 특징량을 설정해, SVM등의 수법으로, 어순을 학습시켜 왔다.
그 때문에, 여기에서도, 특징량을 스스로로부터 추출할 수 있을까 하는 문맥이 발생해, DNN의 적용이 고안되었다.
3. 골자의 이론
사용하고 있는 NN의 이론에 새로운 것은 없다.
포인트는 NN에 적용하기 위한 언어의 데이터 정형이다.
하나의 단어를 입력 벡터로 캡처합니다. 단어의 성질의 수를 d로 하고, 각 단어에 대해, 각각의 성질에 따른 수치로 변환하여, d차원 벡터를 만든다.
문장이라면 단어만큼 벡터를 만들고 이것을 입력 벡터로 한다.
벡터의 차원에 따라 가중치를 준비합니다. 이것은 일반적인 NN과 동일합니다.
컨벌루션을 하여 특징 추출을 하기 때문에, CNN에 가까운 프로세스가 된다. (패딩은 워드로 한다.)
활성화 함수는 HardTanh라는 함수를 사용합니다 (tanh가 있지만 쌍곡선 함수의 형식은 아닙니다)
\begin{eqnarray}
HardTanh(x)=\left\{ \begin{array}{ll}
-1 & (x \lt -1) \\
x & (-1 \leqq x \leqq 1) \\
1 & (x > 1) \\
\end{array} \right.
\end{eqnarray}
패턴 인식은 소프트 맥스 방법의 로그 우도를 사용하여 추정됩니다. 출력의 창출은 그래프 전송 네트워크의 개념에 해당합니다.
\log p([y]_1^T|[x]_1^T, \tilde{\theta}) = s([x]_1^T, [y]_1^T ,\tilde{\theta}) - logadd_{\forall[j]_1^T}s([x]_1^T, [j]_1^T ,\tilde{\theta})
단어의 수치화는 경우에 따라서는 정규화할 수 없는 경우가 있다. 이 때, 데이터의 분포가 조건부 확률장(Conditional Random Fields)을 따른다는 점에 주의한다.
4. 모델 적용 예
SENNA(Semantic/syntactic Extraction using a Neural Network Architecture)라는 수법은 상기 NN의 이론을 통합하여 형성한 알고리즘이다.
SENNA와 기존 방법 (Benchmark)의 성능 비교 결과를 아래 표에 나타내었다.
양쪽 모두 정밀하게는 길항하고 있어 특징량을 스스로 추출할 수 있는 SENNA 쪽이 유능하다.
Reference
이 문제에 관하여(【논문 시리즈】자연 언어 처리에 신경망을 적용한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/To_Murakami/items/14056ef6680abdef65d1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)