itertools.takewhile([Predicate, Iterable])
Python. itertools.dropwhile()
itertools.dropwhile([Predicate, Iterable])
Python. itertools.cycle()
itertools.cycle([Iterable])
Python. collections.Counter()
collections.Counter([Iterable-or-mapping])
ML4NLP. PART 1. Text Classification & Sentence Representation 2
앞선 포스팅 ML4NLP. Part 1. Text Classification & Sentence Representation에서 Text Classification을 진행하기 위한 사전 작업에 대해 살펴보았습니다. 원-핫 인코딩 방식이 단어간의 의미를 전혀 표현할 수 없다는 한계점을 해결하기 위해 Word Embedding 방법을 사용했었습니다. Word Embedding 방법은 문장을 수치화 하는 데 성공했지만, 단어간 유사도를 나타내기에는 적절하지 않다는 한계점이 드러났습니다. 따라서, 이번 포스팅에서는 문장의 의미를 파악하기 위한 여러가지 방법 중 Word2Vec 모델 중 CBoW 방법과 Relation Network(Skip-Gram) 모델을 살펴보겠습니다.
ML4NLP. PART 1. Text Classification & Sentence Representation 1
자연어 처리(Natural Language Processing) 는 일상생활 속에서 사용하는 언어를 분석하여 분류하는 것을 목표로 합니다. 그 과정에서 자연스럽게 텍스트 분류(Text Classification) 과정을 진행합니다. 텍스트 분류는 문장, 문단 또는 글을 어떤 카테고리에 분류하는 작업입니다. Input으로 문장(Sentence) 혹은 문단(Paragraph)가 입력되고, Output으로 특정 카테고리를 출력합니다. 텍스트 분류의 예시는 다음과 같습니다.
ML-BASIC. PART 5-1. Gradient-based Optimization
이전 포스팅에서 설명했던 것과 같이, 모델의 Loss값을 구하기 위한 방법들은 여러가지가 (i.e. Gradient Descent, L-BFGS, Conjugate Gradient $\cdots$) 있었습니다. 다만, 이러한 방법들은 데이터의 개수가 많아지고, Parameter가 많아질 수록 훈련 샘플 전체의 Loss를 구하기 위해 엄청난 시간과 리소스를 필요로 한다는 단점이 존재합니다. 훈련 샘플 전체의 Loss는 곧 각 Example들의 Loss의 합으로 구해지기 때문입니다. 이러한 한계점을 해결하기 위해, Stochastic Gradient Descent 방법이 고안되었습니다.
ML-BASIC. PART 6. Backpropagation
Backpropagation은 네트워크 전체에 대해 반복적인 연쇄 법칙(Chain Rule)을 적용하여 Gradient를 계산하는 방법 중 하나입니다. 이번 포스팅에서는 주어진 함수 $f(x)$가 존재할 경우, 주어진 입력 $x$에 대해 함수 $f$의 Gradient($\nabla f(x)$)를 계산하는 것이 목표입니다. 신경망 관점에서 $f$는 손실 함수($L$)에 해당하고, 입력 $x$는 학습 데이터, 가중치(Weight), 바이어스(Bias) 등이 될 수 있습니다.
ML-BASIC. PART 5. Optimization Methods
앞선 포스팅에서 비순환그래프(DAG)를 설계하고, 각 Example들의 Loss값을 산출하기 위해 Loss Function을 정의하는 방법까지 알아보았습니다. 앞서 정의한 두 단계는 순차적으로 진행되며, 각 Example에 대한 Loss는 비순환그래프(DAG)를 거쳐 계산됩니다. 우리의 궁극적인 목표는 Loss를 최소화하는 모델을 찾는 것입니다. 다만, Loss를 구하기 위한 가설집합(Hypothesis Set)의 개수가 너무나 많기 때문에 모든 가설들을 전부 검증할 수 없다는 한계점이 존재합니다. 그렇다면, 주어진 랜덤 파라미터($\theta$)를 기반으로 어떻게 Loss($L$)를 최소화 할 수 있을까요?
ML-BASIC. PART 4. Distributions & Loss Function
지도학습(Superviesed Learning)
은 Input $x$를 넣었을 때 Output $y$값을 산출하는 것입니다. 다른 관점에서 생각해보면, $x$가 주어졌을 때 $y$ 값이 $y\prime$일 확률을 구하는 것으로 바꾸어 생각할 수 있습니다.