http://file:///C:/Users/gypsi/Downloads/DAN+%EB%85%BC%EB%AC%B8.pdf
다음 링크에서 관련 논문과 간단한 정리를 볼 수 있다.
https://medium.com/tech-that-works/deep-averaging-network-in-universal-sentence-encoder-465655874a04
내용을 정리해 보자면,
가장먼저, Composition function 에 대한 이해가 필요하다.
Composition function은 벡터 공간 모델을 얻기 위해 필요하다.
https://ko.wikipedia.org/wiki/%EB%B2%A1%ED%84%B0_%EA%B3%B5%EA%B0%84_%EB%AA%A8%EB%8D%B8
그리고 이 함수는 '여러개의 단어벡터를 하나의 벡터로 만드는 역할' 을 한다. 즉, 문장을 벡터로 만드는 역할이다.
Composition function에는 2가지 종류가 있다.
1. Unordered : bag of words인 경우. (단어 순서 상관 없음)
2. Syntactic : 단어 순서와 문장 구조를 고려하는 경우
Deep Averaging network(DAN)는 이름에서 볼 수 있듯이 Average를 이용하기 때문에 Unordered 하다.
작동 구조는 책에 나와있듯이 모든 단어 벡터를 다 더하고 평균을 낸 후 하나의 벡터로 만든 후, 문서 분류를 하고 손실 함수를 줄이는 과정으로 이어진다.
+ 손실 함수를 줄이는 과정 이해 ⇒ 손실 함수와 Cross-entropy
https://truman.tistory.com/164
https://3months.tistory.com/436
이 DAN은 문장 내 단어와 단어 사이의 유사도 파악에 좋은 성능을 보인다.
하지만 단어 순서를 고려하지 않아 생기는 문제와 이중부정 문장에는 대처하지 못한다.
ex) Man bites dog 과 Dog bites man 구분 불가
추가적으로, 다음 논문 에서는 DAN에서의 2가지 중요한 observations을 찾을 수 있다.
1. 다양한 Dropout을 이용해 정확도를 향상시킬 수 있다는 것.
2. 학습된 임베딩과 딥 네트워크를 활용이 무엇보다 중요하다는 것.
+ 그럼 여기서 Dropout이란 무엇인가?
: training 과정 중 과적합(Overfitting)을 방지하기 위한 방법.
간단히 요약하면,
1. 과적합이 일어나는 이유는 각 요소들의 가중치들이 다 높기 때문이다.
(사공이 너무 많으면 배가 산으로 간다.)
2. 임의로 몇개의 요소들의 가중치를 0으로 만들면서 학습한다.
3. 원하는 목적에 맞는 가중치가 살아남게 만드는게 최종 목표.
⇒ 즉, pre-trained embeddings 가 있다면 가중치 설정이 쉬워지고 정확도 향상이 가능해진다.
다음은 직관적 설명이 담긴 사진이다.
Dropout 예시 (출처: https://algopoolja.tistory.com/50)
'Tensorflow 2 NLP(자연어처리) > 추가적으로 필요한 개념' 카테고리의 다른 글
Automatic Differentiation이란 (0) | 2022.10.23 |
---|---|
PCA(주성분분석)의 목적함수 증명 (0) | 2021.11.15 |
[1-6] 도커(Docker)에서 파이썬(python)코드로 작업하기 (0) | 2021.11.12 |
[1-5] 최대우도법 (0) | 2021.11.12 |
[1-3] TF-IDF 란? (0) | 2021.11.12 |