본문 바로가기

전체 글

(178)
RNN RNN (= Recurrent Neural Network) ◎ 가장 기본적인 Sequence 모델 ◎ many-to-one / many-to-many 등 다양하게 응용 가능 수식 ◎ 현재 timestamp $t$ 에서의 은닉층 메모리 cell 입력 → $x_{t}\ and\ h_{t-1}$ → $x_{t}$ : 현재 timestamp $t$ 에서의 input vector → $h_{t-1}$ : 이전 timestamp $t-1$ 에서의 hidden vector ◎ 은닉층(= hidden layer) 계산 수식 → $h_{t} = tanh(W_{x} x_{t} + W_{h}h_{t−1} + b)$ ◎ 출력층(= output layer) 계산 수식 → $y_{t} = f(W_{y}h_{t} + b)$ → $..
FastText Skip-gram(⊂ Word2Vec) 의 한계 ◎ 단어 집한 내 빈도가 적은 단어들은 학습이 잘 안됨 → 단어 사전에서 딱 한 번 등장했다고 하면, n epochs 학습 시 딱 n 번만 학습됨 ex) '다스플레토사우루스', ' supercalifragilisticexpialidocious' ◎ OOV(=Out Of Vocabulary)에 대한 대처가 어려움 FastText ◎ Facebook(※ 현 Meta)에서 개발 ◎ subword를 활용해 Skip-gram의 한계를 극복 → 단어(word) 내부의 subword로 분리해서 학습 Subword 분리 ◎ \(n=3\)일 때, $apple$ 이라는 단어는 아래와 같이 subword들로 분리된다. 먼저 단어의 앞 뒤에 $$ 를 붙여준다. 이후 $n$개씩 ..
GloVe GloVe ◎ 카운트 기반 word embedding 방식 (ex. TF-IDF, LSA) 의 단점 → 단어 의미의 유추 작업(=anology task)에서 성능 떨어짐 ex) 영국:런던 ↔ 프랑스:?? ◎ 예측 기반 word embedding 방식 (ex. Word2Vec) 의 단점 → 윈도우 내의 주변 단어들만 고려하기 때문에, 단어 집합의 전체적 통계 정보를 고려하지 못함 ◎ GloVe → 카운트 기반과 예측 기반을 모두 활용해서, 각각의 단점을 각각 보완 ◎ Word2Vec과의 성능 비교 → 두 가지를 모두 적용해보고, 성능이 더 좋은 것을 활용하는 것이 바람직하다. 윈도우 기반 동시 등장 행렬 (Window based Co-occurence Matrix) I like deep learning I..
Word2Vec Word2Vec ◎ 희소 표현 (Sparse Representation) → 백터와 행렬의 값이 대부분 0으로 표현됨 ex) One-hot Encoding ◎ 분산 표현 (Distributed Representation) → 단어의 의미를 다차원 공간에 벡터화 → 분포 가설을 가정함 → 분포 가설 (distributional hypothesis) : 비슷한 문맥에서 등장하는 단어들은 비슷한 의미를 가진다. ◎ Word Embedding → 분산 표현을 이용해, 단어 간 의미적 유사성을 벡터화 하는 작업 ◎ Word2Vec → Word Embedding 방법 중 하나 → CBOW와 Skip-gram 두 가지 방법이 있는데, 전반적으로 Skip-gram의 성능이 더 좋다고 알려져있다. CBOW ◎ 주변 단어..
TF-IDF Term-Frequency Inverse-Document-Frequency TF (= Term Frequency) ◎ 특정 단어가 특정 문서에서 출현한 횟수 IDF (= Inverse Document Frequency) ◎ DF → 특정 단어가 등장한 문서 수 ◎ IDF → DF의 역수 TF-IDF ◎ TF-IDF = TF(word, document) * IDF(word) → 특정 문서에서 더 많이 등장하고, 등장한 문서 갯수가 적은 단어일수록 TF-IDF 값이 크다. (= 중요도가 더 높다.) → 따라서 ,"the"나 "a" 같이 거의 모든 문서에서 등장하는 단어들은 TF-IDF 값이 작아진다. Word \ Document Doc 1 Doc 2 Doc 3 Doc 4 Doc 5 Word 1 0 0.4 0..
텍스트 데이터 전처리 (Text Preprocessing) 전처리(Preprocessing)의 핵심 ◎ 당연하게도, 주어진 Task에 맞게 전처리 해야한다. ex) 감성분석 : 이모티콘을 함부로 지우면 안된다. (😀, ❤️ : 긍정적 신호일 수 있음) ex) 음성인식 : 대본 같은 경우, 괄호 안의 설명문 등은 제거 필요 [ ex) 그물을 (조심스럽게) 건져올린다. ] Corpus (코퍼스) ◎ 사전적 정의 : 말뭉치 ◎ 의미 : NLP 모델의 학습 대상이 되는 단어 또는 문장들의 집합 ◎ Parallel Corpuss : 서로 다른 언어가 대응되는 말뭉치 (Bi-lingual, Multi-lingual) ex) Korean-English Bi-lingual Corpus Korean English 나는 아직 배고프다. I am still hungry. 내가 만든..
선분 교차 1 (17386번) - 백준 (BOJ) https://www.acmicpc.net/problem/17386 17386번: 선분 교차 1 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. 세 점이 일직선 위에 있는 경우는 없다. www.acmicpc.net 백준 - 선분 교차 1 (17386번) 난이도 : Gold 3 알고리즘&자료구조 : Geometry (기하학) ★ 핵심 Idea ★ ◎ 선분 1을 포함하는 직선의 방정식을 A, 선분 2를 포함하는 직선의 방정식을 B라고 설정한다. 두 선분 1, 2가 교차하려면, 아래의 두 가지 경우를 동시에 만족해야 한다. ① 직선 B로 인해 나눠지는 평면 B1과 B2가 있다고 하면, 선분 1의 양 끝 점이 서로 다른 평면에 위치해..
센서 (2212번) - 백준 (BOJ) https://www.acmicpc.net/problem/2212 2212번: 센서 첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있 www.acmicpc.net 백준 - 센서 (2212번) 난이도 : Gold 5 알고리즘&자료구조 : Sorting (정렬) & Greedy (그리디) ★ 핵심 Idea ★ ◎ 주어진 센서들을 좌표 순서대로 정렬하고, 인접 좌표 간 거리를 구해서 리스트로 만든다. 위의 거리 리스트를 다시 정렬하고, 가장 값이 큰 K-1개를 제외한 나머지 값들의 합이 수신 가능 영역 길이 합의 최솟값이 된다. < 전체..