작성자 : 동덕여자대학교 정보통계학과 한유진
Training dataset을 i=1부터 N까지 라는 inputs과 라는 output(label or class)에 대해 가지고 있습니다.
input data() : Word, Sentence, Document ..
output data() : 예측하려고 하는 labels, classes
(class에는 sentiment, named entities, buy/sell decision 또는 other words와 multi-word sequences가 올 수 있음)
Step 1. 모든 클래스 c에 대해서 선형결합으로 이루어진 를 만든다
(wieght matrix W에는 각 클래스에 해당하는 열이 존재 -> W의 y번째 row 와 x의 row 를 multiply -> class에 관련된 score나옴)
Step 2. 각각의 class에 대해 이를 계산하고 0~1로 정규화한다
(step1에서 나온 score를 softmax function()에 집어넣음 -> softmax는 이 숫자들을 확률분포로 탈바꿈)
ex 1) First National Bank Donates 2 Vans To Future School Of Fort Smith
ex 2) To find out more about Zig Ziglar and read features by other Creators Syndicate writers and
ex 3) where Larry Ellison and Charles Schwab can live discreetly amongst wooded estates.
entity(개체)의 경계를 정하기 어렵다
(ex1의 첫번째 entity를 First National Bank로? National Bank로?)
entity(개체)인지 아닌지 알기가 어렵다
(ex1의 Future School을 entity로 볼 것인가? '미래의 학교' 라는 일반적인 단어로 볼 것인가)
모르는 entity(개체)에 대해 class를 알기 힘들다
(ex2의 Zig Ziglar가 사람임에도 class를 알기 어렵)
Entity class는 모호하고 문맥에 의존한다
(ex3의 Charles Schwab은 보통 organization name으로 사용되나 이 문장에서는 person으로 사용됨)
※ 참고하면 좋을듯한 NER 자료 ※
https://lovit.github.io/nlp/2019/02/16/logistic_w2v_ner/
https://lovit.github.io/nlp/2018/06/22/crf_based_ner/
http://oak.go.kr/central/journallist/journaldetail.do?article_seq=10192
margin이란?
binary 분류에서 결정 경계와 서포트 벡터(결정 경계와 가장 가까이에 있는 데이터) 사이의 거리를 뜻함
margin을 최대화 하는 것이 SVM의 목적
위에서 구했었던 계산식 4개를 대입해주면 최종적인 식이 도출되게 됩니다.
이번엔 를 계산해보겠습니다.
bias로 미분하여 업데이트를 시킬뿐아니라 모든 파라미터에 대해서도 역전파를 수행하여 파라미터 값들을 업데이트해줘야합니다.
똑같이 chain rule을 적용하면 사진과 같은 식이 만들어집니다.
와 식을 보면 파란색 부분이 동일한 것을 볼 수 있습니다. 그 파란색 부분은 라고 합니다. 이렇듯 오차 역전파는 계산했던 지난 과정들이 다시 사용됨으로써 다시 계산하여 계산량을 늘리는 문제를 막을 수가 있는 것이 장점입니다.
그렇다면 를 matrix로 미분하게 되면 어떻게 될까요?
matrix면 n*m matrix로 값이 나오고, 위에서 계산했던 초록색박스를 사용하면 라는 값이 도출되게 됩니다.
http://web.stanford.edu/class/cs224n/slides/cs224n-2021-lecture03-neuralnets.pdf
https://eda-ai-lab.tistory.com/123?category=706160
https://happyzipsa.tistory.com/4
https://data-weirdo.github.io/data/2020/10/09/data-nlp-03.Wwc/
http://dsba.korea.ac.kr/seminar/?mod=document&uid=42
https://velog.io/@tobigs-text1314/CS224n-Lecture-3-Word-Window-Classification-Neural-Networks-and-Matrix-Calculus#4-matrix-calculus
https://wikidocs.net/30682
https://stellarway.tistory.com/29
투빅스 15기 조준혁
투빅스 14기 강재영
Word Classification과 NER 개념에 대해 잘 이해할 수 있는 강의였습니다.
Named Entity Recognition(NER)
이처럼 문맥에 의존하는 NER의 한계를 해결하기 위해 Window Classification을 사용
투빅스 15기 이수민
투빅스 14기 이정은
강의에서 Window Classification의 미분을 자세히 설명해주신 점이 좋았습니다! : )
투빅스 15기 김동현
classification과 NER 개념을 잘 이해할 수 있는 강의였습니다.
단순한 Softmax ( logistic regression ) 하나만으로는 좋은 성능을 낼 수 없기 때문에 그 해결책이 바로 Neural Network이다.
NER, 개체명 인식이라는 방법론을 통해 인명, 지명 등 고유명사를 분류한다.
window classification의 기본적인 생각은 중심 단어와 주변 단어들 (context)를 함께 분류 문제에 활용하는 방법이다.
Matrix calculus하면 미분이나 여러 함수를 계산할 때 더 빠르게 수행할 수 있다.
투빅스 15기 이윤정
투빅스 15기 조효원
NLP에서는 신경망을 이용하여 다양한 태스크를 진행한다. 이때 특별한 점은 가중치 뿐만 아니라 word vector를 함께 학습한다는 것이다.
강의자는 대표적인 예시로 개체명 인식(NER)을 제공한다. NER은 은 문서 내 특정한 entity를 판별하고 속하는 카테고리를 지정하는 것이다. 하지만 이는 새로운 entity에 대해서 반응하기 어려워 판별하기 어렵고 어디까지가 entity인지 경계를 정하기가 어렵다. 이를 보완하기 위해 중심 단어 뿐만이 아니라 주변단어를 함께 분류하는데 사용하는 window classification이 등장했다. 이때 Word2Vec과 다른 점은 Word2vec은 corpus내 모든 위치에 대해서 주변단어와 중심 단어를 학습하지만, window classification에서는 높은 점수를 가지는 위치에 대해서만 학습한다.
투빅스 14기 강의정
Lecture 3. Word Window Classification, Neural Networks, and Matrix Calculus를 주제로 발표해주셨습니다.
투빅스 14기 정재윤
투빅스 15기 김재희
기본적인 NLP 태스크인 분류 문제와 기존의 머신러닝 방법의 차이, 행렬 미분에 대해 공부했습니다.
분류 문제는 정해진 레이블 중 해당 데이터가 어떠한 레이블에 속하는지 예측하는 문제이다.
소프트 맥스 함수나 로지스틱 함수는 선형적 경계선을 만들어 제대로 분류가 되지 않습니다.
NN 모델을 이용할 경우 시그모이드 함수로 인해 비선형성이 생기고, 이는 보다 효과적으로 경계선을 생성합니다.
NER은 지명, 인명, 조직명 등을 구분하는 태스크입니다.
보통 word classification은 문맥을 고려하기 위해 주변 단어를 이용하게 됩니다. 이를 window classification이라고 합니다.
window 내의 단어들을 one hot vector로 받고, 이를 임베딩 벡터의 look up으로 사용합니다. 이렇게 구한 임베딩 벡터를 입력값으로 NN 모델이 예측값을 계산하게 됩니다.
cross entropy가 아닌 max margin함수를 이용해 손실을 계산하고 파라미터를 업데이트 합니다.
행렬 연산을 통해 모델을 계산하면 빠르게 처리가 가능합니다. 역전파 역시 행렬로 처리하기 위해 자코비안 행렬이 이용됩니다.
투빅스 14기 정세영
window classification과 NER의 개념을 잘 이해할 수 있었습니다.