Processing math: 100%
no image
Hugging Face load_metric의 상관계수 측정 오류
from datasets import load_metricpearsonr= load_metric('pearsonr')spearmanr = load_metric('spearmanr')Hugging Face의 datasets 중 load_metric은 metric을 간단히 계산할 수 있도록 도와주는 유용한 함수이다. 하지만 현재(2022.03.29) load_metric을 활용해서 상관계수(pearsonr, spearmanr)를 계산할 경우, 잘못된 값을 얻을 수도 있으니 주의해야 한다. load_metric은 일반적으로 scipy.stats.pearsonr 처럼 미리 구현된 metric 함수에 예측 값과 Label 값을 전달하는 방식으로 값을 계산한다. 문제는 상관계수를 측정할 때, 유사도 예측 값과 La..
2022.03.29
no image
[논문 리뷰] Augmented SBERT: Data Augmentation Method for Improving Bi-Encoders for Pairwise Sentence Scoring Tasks
1. 등장 배경 기존 BERT(Cross-encoder)는 STS Task를 해결할 때 두 문장 사이 [SEP] 토큰을 추가해 한번에 입력 처리 이 방법은 두 입력 문장의 self-attention을 통해 높은 성능 기록 하지만 두 문장 사이만의 관계를 확인하는 기존 BERT로 Semantic-Search나 Clustering에 활용하는 것은 매우 비효율적(massive computational overhead) 이를 해결하기 위해서 Siamese/Triplet 구조를 활용해 sentence-embedding을 얻을 수 있는 SBERT(bi-encoder)를 제안 SBERT는 BERT에 비해서 낮은 성능을 갖지만 적절한 dense-vector space(sentence-embedding)을 얻기 위해 많..
2022.03.24
no image
[논문 리뷰] Sentence-BERT : Sentence Embeddings using Siamese BERT-Networks
1. 등장 배경 STS Task에서 높은 성능을 얻은 BERT는 문장 사이 유사도를 비교하기 위해서 문장들을 [SEP] 토큰으로 분리해 한번에 입력으로 받아 처리 이 방식의 경우 두 입력 문장 사이 유사도를 높은 정확도로 얻을 수 있지만 한 문장과 가장 유사한 문장을 찾는 것은 매우 비효율적(massive computational overhead) 모든 경우의 수를 모두 차례로 대입해봐야지만 알 수 있음 한 문장과 유사한 다른 문장들을 찾는 것은 semantic-search, clustering 와 같은 분야에서 다양하게 활용되기 때문에 매우 중요. 이를 효율적으로 해결하기 위해선 정확한 sentence-embeddings를 얻는 것이 관건 sentence-embedding를 얻기 위해서 기존 BERT에..
2022.03.18
no image
[논문 리뷰] Transformer : Attention Is All You Need
1. 등장 배경 기존 sequence transduction(machine translation)에서 활용된 seq2seq 모델은 순차적으로 입력(sequence position t)을 받아 처리 seq2seq는 순차적으로 입력을 받아 간단하게 sequence를 표현할 수 있지만 long-range dependencies, parallelizable 문제가 발생 long-range dependencies를 해결하기 위해서 Attention을 도입했지만 fixed-encoder representation으로 context를 온전히 표현할 수 없는 seq2seq의 근본적인 문제는 해결 불가 2. 제안 입력을 순차적으로 처리하는 RNN을 버리고 Attention만을 사용한 Encoder - Decoder ..
2022.03.09
no image
NLP Task 맛보기 - (3) NLG, Summarization
NLU와 QA에 대해서 다뤄보았으니 이번 포스팅에선 NLG(Natural Language Generation)의 전반적인 내용과 Extractive Summarization에 대해서 다뤄보겠습니다. NLG? NLG란 자연어 문장을 생성하는 기술입니다. 문장을 생성하기 위해서 주어진 정보(Text, Image, Video 등)을 이용합니다. 생성된 문장을 통해 주어진 정보를 축약하거나 보강할 수 있습니다. 또한 정보를 재구성하는 데도 도움을 줍니다. 이때 문장을 생성한다는 것은 결국 sequence x를 가장 잘 표현할 수 있는 token sequences를 얻는 것과 동일합니다. NLG Task는 크게 보면 문장 축약, 보강, 재구성으로 구성됩니다. 간단하게 살펴보면 다음과 같습니다. 문장 축약 1...
2022.02.23
no image
NLP Task 맛보기 - (2) NLU, QA
NLP는 NLU(Natural Language Understanding)와 NLG(Natural Language Generation)로 구분할 수 있습니다. 문자 그대로 NLU는 자연어 형태의 문장을 이해하는 기술이고 NLG는 자연어 문장을 생성하는 기술입니다. 결국 NLU와 NLG 모두 인간과 기계가 의사 소통할 수 있도록 도와주는 기술입니다. 이번 포스팅에선 NLU의 전반적인 내용과 QA에 대해서 다뤄보겠습니다. NLU? NLU는 자연어 형태의 문장을 이해하는 기술입니다. 이때 언어를 이해한다는 것은 2가지 측면으로 나눠서 생각할 수 있습니다. 바로 문법과 의미입니다. 따라서 기계가 만약 문법과 의미를 잘 알고 있다면 언어를 이해하고 있다고 할 수 있습니다. Syntatic : 언어를 이해한다면 주어..
2022.02.22
no image
NLP Task 맛보기 - (1)
이번 포스팅에선 매력적이라고 생각하는 NLP Task인 Dialogue Systems(대화 시스템)과 Language Modelling(언어 모델링)에 대해서 간단하게 다뤄보겠습니다. Dialogue Systems(대화 시스템) 대화 시스템은 문자 그대로 사람과 대화를 할 수 있는 시스템을 구성하는 것이 목표입니다. 따라서 대화 시스템 구성은 곧 '이루다' 만들기라고 할 수 있습니다. 대화 시스템의 경우 generation, retrieval-based 모델로 구분됩니다. 이 중에서 이루다가 사용했다고하는 retrieval-based 모델은 retrieval이란 단어에서 알 수 있듯이 기존에 미리 구축해둔 답변 DB에서 그럴듯한 대답을 여러개 골라서 그 중 최종적으로 답변을 선택합니다. 따라서 적절한 대..
2022.02.21
no image
Bias - Variance 이해하기
Intro 지도 학습 모델의 성능을 확인할 때는 과대 적합이나 과소 적합 여부를 정확하게 파악해야, 올바른 방법으로 모델을 개선할 수 있습니다. 과대 적합, 과소 적합은 Bias(편향)와 Variance(분산)과 깊은 관련이 있기 때문에 우선 편향과 분산을 이해하는 것이 중요합니다. 이번 포스팅에선 편향과 분산을 이해를 돕기 위한 내용을 정리했습니다. Bias - Variance? 먼저 그림을 통해서 편향과 분산에 대해서 이해해 봅시다. 그림에선 과녁의 중심과 다트 사이의 거리가 멀면 편향이 높다고 합니다. 또한 각 다트 사이의 거리가 멀게 되면 분산이 크다고 말합니다. 다트를 던지는 행위를 예측이라고 해봅시다. 이때 각 다트들의 위치는 곧 예측값이, 과녁의 중심은 실제값이 됩니다. 이를 통해 편향과 분..
2022.02.14
no image
Cosine Similarity(코사인 유사도)와 Euclidean Distance(유클리드 거리) 알아보기
Intro 인공지능이 주어진 문제를 해결하기 위해서는 Feature(특성)을 적절하게 숫자로 변환해주어야 합니다. 특성을 성공적으로 숫자로 변환하는데 성공했다고 가정한다면, 특성은 벡터의 형태로 표현할 수 있습니다. 서로 다른 두 특성 벡터 사이의 관계를 분석하기 위해선 여러 기준이 있습니다. 이번 포스팅에선 그 중에서 많이 활용되는 Cosine 유사도와 Euclidean 거리에 대해서 알아보겠습니다. Cosine 유사도 코사인 유사도는 두 벡터의 내적을 벡터의 크기로 정규화하여 구하기 때문에, 두 벡터 사이 각도에 초점이 맞춰져있습니다. 따라서 각 Feature의 값 편차가 클 경우 효과적으로 사용할 수 있는 지표입니다. Euclidean(유클리드) 거리 유클리드 거리는 두 벡터 사이 차 성분을 제곱한..
2022.01.31
no image
Classification Metrics(분류 모델 평가 지표) 알아보기 : Accuracy, Precision, Recall, F1 Score
Intro 여러 분류 모델 중 해결해야 하는 문제의 특성, 데이터 등 다양한 사항을 고려해 몇 개의 모델을 추리는데 성공했다고 가정해봅시다. 이때 가장 성능이 좋은 모델을 선택하기 위해선 얼마나 정확하게 주어진 문제를 해결할 수 있는 지를 수치화하여 비교하는 것이 중요합니다. 모델 평가를 위해 정확성을 수치화하여 나타낸 것을 평가 지표라고 하며, 적절한 평가 지표를 설정하는 것은 매우 중요한 작업입니다. 이번 포스팅에선 기본적인 평가 지표인 Accuracy, Precision, Recall에 대해서 다뤄보겠습니다. Confusion Matrix(혼동 행렬) 분류를 성공적으로 했는지를 확인하기 위해서는 혼동 행렬을 살펴볼 필요가 있습니다. 혼동 행렬이라는 이름처럼 처음에 접했을 때는 매우 헷갈립니다. TP..
2022.01.24
no image
Word Representation이란? - BoW에서 Word2vec까지
Intro 인간이 일상에서 사용하는 언어(자연어)를 컴퓨터에게 이해시키기 위해서 자연어에 담긴 추상적 뜻을 의미있는 숫자들로 바꾸어야 합니다. 자연어를 의미있는 숫자로 바꾸는 작업을 Word Representation(단어 표현)이라고 합니다. 이번 포스팅에선 자연어를 더 잘 표현할 수 있도록 제안된 다양한 방법에 대해서 다뤄보겠습니다. Word Representation? 단어 표현은 크게 Local, Continuous 표현으로 구분됩니다. Local 표현의 경우 해당 단어 자체만을 참고하기 때문에 뉘앙스(nuance)을 담지 못하지만 Continuous 표현의 경우 단어 주위를 참고하기 때문에 뉘앙스를 담을 수 있다는 장점이 있습니다. BOW와 Word2Vec이 각각 유명한 Local, Contin..
2022.01.17