본문 바로가기

-

(66)
Transformer Transformer? Seq2Seq와 동일한 인코더-디코더 구조를 Attention만으로 구현한 모델입니다. 'Attention is all you need'에서 나온 모델이며, 이 Transformer 구조를 기반으로 수많은 모델이 나오고 있습니다. Transformar 모델은 기존의 RNN, CNN 구조의 한계를 넘어섰습니다. CNN은 필터를 슬라이딩하는 방식이므로, local적인 feature는 잘 추출하지만 끝부분에 있는 의미를 파악하기 어렵습니다. RNN은 연쇄적인 연산을 이용하기 때문에, 이전 문장의 특징을 반영할 수 있지만 문장이 길어질수록 끝부분이 반영되기 어렵습니다. RN은 길이가 길어져도 양 끝을 모두 다 반영할 수 있지만 연산량이 매우 많은 문제가 있습니다. CNN: $ht = f(..
Word2vec 만들어보기 관련글: Word2Vec 개념 Python을 이용해 한국어 Word2Vec을 만들어 보자. 대략적인 과정은 아래와 같다. 한국어로 된 글 모으기 형태소 분석 등 전처리하기 gensim을 통해 Word2Vec 만들기 아래 튜토리얼을 따라하려면 아래와 같은 것이 설치되어 있어야 한다. Python 2.7, 3.3 이상 python의 pip으로 필요한 라이브러리 설치 python -m pip install gensim konlpy 한국어로 된 글 모으기 웹 상에서 손쉽게 구할 수 있는 한국어로 된 글은 아래와 같다. Wikipedia: link pages-articles.xml.bz2 파일을 받으면 된다. (참고) 한국어판: 다운로드 나무위키: link 기타 등등.. Wikipedia Wikiepdia 덤프는..
Word2vec 1. Word2vec의 필요성 Naive Bayes를 이용한 문서 분류 같이, NLP (Natural Language Processing, 자연어처리) Task를 처리해 왔습니다. NLP (Natural Language Processing, 자연어처리) : 컴퓨터가 인간이 사용하는 언어를 이해하고 분석할 수 있게 하는 분야 ex) 'Naive Bayes'를 사용한 스팸 메일 분류기 성능 자체는 좋지만, 단어가 다른 단어와 어떤 차이점을 가지는지는 이해할 수 없다 -> 벡터화 고안 SVD 같은 통계 기반으로도 단어의 벡터화는 가능하다. 그러나 SVD는 O(n^3)이나 되는 무거운 알고리즘이라서, 수십, 수백만 단위의 어휘에 적용하기 어렵다. 학습 속도를 높이기 위해 Word2Vec 사용 2. One-hot..
Attention Network, Attention Model 본 포스트는 Attention Network, Attention Model의 정의, 구조, 및 활용에 대해 설명합니다. Natural Language Inference, Sentence representation and Attention Mechanism 논문을 요약 및 정리하고 추가적인 내용을 덧붙였습니다. Attention Model이란 딥러닝 모델이 vector sequence 중에서 가장 중요한 vector에 집중하도록 하는 모델입니다. State를 고려해서 가장 중요도가 높은 vector를 중심으로 하나의 vector로 정리하는 모델입니다. Attention Model의 input은 입력 벡터와 context가 있습니다. 입력 벡터($y_1, y_2, ..., y_n$): 1차원 데이터 뿐만 아..
Text Embedding Text Embedding은 사람이 이해할 수 있는 text를, 컴퓨터가 이해할 수 있는 vector 형태로 나태낸 것을 의미합니다. 본 포스트에선 통계 기반 단어 임베딩부터, Word2Vec 이전의 NNLM 모델을 거쳐 Word2vec까지 설명하겠습니다. 1. Word Embedding Word Embedding은 단어를 제한된 차원의 vector로 나타내는 방법입니다. One-hot encoding과 달리, 단어 벡터 간의 유사도를 코사인 유사도로 구할 수도 있고, 필요한 벡터 차원의 수도 적습니다. 근처에 나온 단어, 비슷한 단어일수록 벡터 간의 유사도가 높습니다. 벡터의 위치와 거리가 실제 단어 간의 관계를 반영합니다. 2. 통계 기반 단어 임베딩 2-1. 분포 가설(distributional h..
Regularization : L1, L2 regularization 본문을 읽기 전에 regularization글을 읽고 오시면 좋습니다. L1, L2 norm이란 무엇인가? Norm에 대해 알아보자 norm이란 벡터의 크기(길이)를 측정하는 방법입니다. 쉽게 말해, 두 벡터 사이의 거리를 측정하는 방법입니다. 여기에서 p는 Norm 의 차수를 말합니다. `p=1`일 경우 L1 norm을, `p=2`일 경우 L2 norm을 뜻합니다. 간단하게 L1, L2냐에 따라 항이 1차항인지, 2차항인지 나뉜다고 생각하시면 됩니다. 위의 식에서 n은 해당 벡터의 원소 수를 일컫습니다. L1 norm (p=1) L1 norm은 벡터 p, q 의 각 원소들의 차이의 절대값의 합입니다. 예를 들어 vector `p = (3,1,-3)`이고 `q = (5,0,7)`일 때, p, q의 L1 ..
게임에서의 강화학습 Reinforcement learning Reinforcement Learning(강화 학습)은 환경과 상호 작용하면서 reward를 받아 효율적인 방식으로 행동을 강화해 나가는 학습 방법이다. 이 모델이 찾아야 할 정답이 무엇인지는 모르지만, 자신이 한 행동의 reward는 알고 있기 때문에 reward의 합이 최대가 되는 방향으로 학습해 나간다. 인공지능의 예는 아니지만 자전거를 타면서 어떻게 해야 넘어지지 않는지 경험을 통해 익히는 것도 Reinforcement learning의 일종이라고 볼 수 있을 것이다. 실제로도 경험과 시행착오를 통해 익히는 것을 모티브로 해서 인공지능의 Reinforcement Learning을 만들게 되었다. Reinforcement Learning의 기본 구성 요소 S..
Batch Normalization Batch Normalization paper: https://arxiv.org/abs/1502.03167 repo: https://github.com/shuuki4/Batch-Normalization Ioffe, S., & Szegedy, C. (2015). Batch normalization: Accelerating deep network training by reducing internal covariate shift. arXiv preprint arXiv:1502.03167. 01. Batch Normalization? 배치 정규화. 미니배치 단위로 데이터 분포를 정규화하여 각 층의 활성화를 적당히 퍼트리도록 강제한다. Covariate Shift를 막기 위한 방법 Covariate Shift 학..