-
Dynamic Few-Shot Visual Learning without Forgetting
시작하며 데이터 분석에 있어서 비지니스 환경 하에서는 언제나 imbalance 문제에 시달리게 됩니다. 새로운 상품은 계속 나오고 그 상품이 충분히 팔리기 전에 뭔가를 알고 싶어하는 마음이 큰 거죠. 그런 정보가 있으면 보다 효과적으로 새로운 상품을 고객에게 appeal할 수 있을 거니깐요. Few shot learning은 이러한 문제를 해결하기에 아주 적합한 모형입니다. 되기만 하면 말이죠. 그러한 가능성을 tapping해보는 관점에서 Dynamic Few-shot Visual Learning without Forgetting을 읽는 중에 정리도 할겸 posting 하고자 합니다. Few-shot learning은 약 2~3년 전쯤에 한참 화제가...
deeplearning Few-shot learning attention cosine similarity
kion.kim's profile imagekion.kim
2018-08-09 17:00
-
Sentiment Analysis - Self attention based on Relation Network
Introduction There are many methods for sentence representation. We have discussed 5 different ways of sentence representation based on token representation. Let’s briefly summarize what is dealt with in the previous posts. What we have discussed so far… Just averaging token embeddings in sentence works pretty well on text classification problem. Text classification problem, which is relatively easy and simple task, does not need to understand the meaning of the sentence in semantic way but...
deeplearning self-attention nlp sentence representation
kion.kim's profile imagekion.kim
2018-08-02 17:00
-
WGAN and WGAN-GP
Introduction It has been a while since I posted articles about GAN and WGAN. I want to close this series of posts on GAN with this post presenting gluon code for GAN using MNIST. GAN is notorious for its instability when train the model. There are two main streams of research to address this issue: one is to figure out an optimal architecture for stable learning and the other is to fix loss function, which...
deeplearning GAN Image generation MNIST Wasserstein distance
kion.kim's profile imagekion.kim
2018-07-26 17:00
-
Sentiment Analysis - Convolutional Neural Network
Introduction Let’s think about the way human understand sentence. We read the sentence from left to right (it is not the case in the ancient asisan culture though) word by word memorizing the meaning of words first. Words themselves may have very different meaning depending where they are placed or how they were used. To understand real meaning of words, we break the sentence down into smaller phrases, groups of words, to get the right...
deeplearning nlp sentence representation CNN sentiment analysis text classification
kion.kim's profile imagekion.kim
2018-07-18 17:00
-
Sentiment Analysis- Self Attention
시작하며 LSTM을 이용해서 문장의 여러 특성들을 뽑을 수 있습니다. 지난 블로그들에서는 주로 hidden state의 정보를 이용해서 문장을 표현하는 코드들을 짜보았는데, 사실 hidden state의 정보 이외에도 각 time step의 ㅡ로을 이용해서 문장을 요약할 수도 있을 것 같습니다. 하지만 각 time step의 output은 seq2seq 문제에서 실제 그 진가를 발휘합니다. 이전 단계의 output이 그 다음 time step의 input으로 들어감으로써, 순차적으로 문장을 생성할 때 유용하게 사용됩니다. 나중에 nmt 쪽에서 살펴 보려고 합니다. Self Attention 지금까지 여러가지 모형을 만들어 보면서...
deeplearning LSTM nlp sentence representation
kion.kim's profile imagekion.kim
2018-07-12 17:00
-
Sentiment Analysis- Bidirectional LSTM
시작하며 LSTM에서 1개의 LSTM layer를 이용해서 문장을 표현하는 방법을 지난 블로그에서 알아보았습니다. 말씀드린 것처럼 sentiment analysis를 위한 정보를 문장으로부터 뽑아내는 방법에는 여러가지가 있습니다. 오늘은 Bidirectional LSTM을 이용하는 방법에 대해서 알아보겠습니다. 두가지 방법을 알아볼텐데요. 하나는 LSTMCell을 이용해서 직접 Bidirection LSTM을 구현하는 방법과 다른 하나는 LSTM Layer를 이용해서 간단하게 구하는 방법입니다. 그렇다면 간단하게 할 수 있는 작업을 왜 어렵게 두가지로 나눠서 보느냐? 최근 트렌드는 어떻게 보면 attention mechanism이 주도한다고 해도 과언이 아닙니다. 이렇게 hot한 Attention mechansim을 사용하기...
deeplearning LSTM nlp sentence representation
kion.kim's profile imagekion.kim
2018-07-05 17:00
-
Sentiment Analysis - LSTM
시작하며 RNN은 주로 NLP에서 많이 사용되는 모형입니다. RNN은 이외에도 여러가지 이전 관측치의 값이 다음 관측치의 값에 영향을 미치는 시계열류의 데이터를 모델링하기 위해 많이 사용됩니다. RNN 이전에는 주로 ARIMA, Markov Random Field 등으로 풀던 문제였습니다. 문장을 하나의 숫자열로 표현하는 것은, 앞에서도 언급한 바 있지만, 어떻게든 token을 숫자화시키고 그 token을 하나의 값으로 나타내는 과정입니다. 어떠한 방법이든 token의 정보, 그리고 그 token들이 가지고 있는 여러가지 관계성 등이 유지가 되기만 한다면, 어떠한 방법도 사용할 수 있습니다. 그 방법들 중에서...
deeplearning LSTM nlp sentence representation
kion.kim's profile imagekion.kim
2018-06-28 17:00
-
Sentiment Analysis - Relational Network
시작하며 문장을 컴퓨터가 이해할 수 있는 언어로 표현하는 방법에 대해서 계속 이야기 하고 있습니다. 문장을 단어든 문자든 token이라는 최소 단위로 나누고 이들을 어떤 식으로 요약을 해서 하나의 문장으로 요약을 해보자는 것입니다. 그래야만 컴퓨터가 학습을 수행할 수 있을테니까요. 가장 처음에 알아봤던 것은 BoW에 의한 방법입니다. BoW를 word2vec 등의 embedding으로 개선한 것이 CBoW를 사용한 방법들이구요. BoW에서는 token을 one-hot 벡터로 나타내고 이를 단순히 더하거나 평균을 낸 후 이 결과를 machine learning모형에 feeding을 하기만 하면 어느정도 quality의 분석 결과를...
deeplearning nlp sentence representation relation network skip-gram
kion.kim's profile imagekion.kim
2018-06-21 17:00
-
Sentiment Analysis - MLP
시작하며 Text classification은 주어진 NLP에서 가장 쉽고 기본적인 task에 해당합니다. 문장에서 단어들의 pattern을 찾아 그 문장이 어느 범주에 속하는 것이 가장 기본적인 접근 방법이라고 한다면, 문장의 정보를 이해해서 문장을 분류해 낼 수 있다면 더욱 좋은 결과를 낼 수 있을 것입니다. 그 과정이 자연어 처리가 발전하는 과정일텐데요. 이번 블로그 시리즈에서는 아주 빠른 속도로 발전해 가는 자연어 처리 기법들을 적어보려고 합니다. 저도 전문가는 아니므로 초보자 눈높이에 맞춰 (곧 저의 눈높이), 글을 적어보려구요. 다양한 형태와 기법의 text classification부터...
deeplearning statistics nlp models text classification BoW machine learning
kion.kim's profile imagekion.kim
2018-06-17 17:00
-
GAN과 WGAN 사이 - II
시작하며.. 지난 글에서 논의된 내용들을 정리해 보겠습니다. 다시 한번 remind하면, Optimal인 판별기를 가정한 경우의, GAN의 손실함수는 입니다. 개념적으로는 GAN이 생성된 데이터와 원래 데이터 간의 JS 거리를 가장 작게 하는 방향으로 학습이 되고 있다고 할 수 있겠습니다. 하지만, JS 거리가 언제나 잘 정의가 되는 것은 아니었죠. Support를 공유(absolute continuity 가정)해야만 가능한 것으로, manifold hypothesis에 의하면, support를 공유하지 않을 활률이 아주 높다는 것입니다. 그렇다면 좀더 안정적으로 정의되는 분포간의 거리를 재는 measure가 필요한데요, W-거리가 그러한 성질을 만족합니다. W-거리는...
deeplearning statistics generative-model
kion.kim's profile imagekion.kim
2018-06-08 17:00
-
컨볼루션 연산에 대해
시작하며 이제 데이터 분석을 하는 사람이라면 누구나 한번쯤은 들어봤을 CNN일 겁니다. 아래와 같은 구조들로, 주로 이미지 분석에 사용된다고 하나 마케팅 자료분석에서는 시계열에도 활용할 수 있다고 하죠. 이렇게 유명한 CNN을 DNN과 구분 짓는 가장 큰 요소는 아무래도 convolution입니다. 위의 그림에서는 가장 input에 가까운 쪽에 위치하고 있네요. Convolution은 데이터의 위치적인 특성 을 유지하고, 그게 이미지라면 그림을 구성하고 있는 요소 들을 잘 뽑아낼 수 있다는 장점이 있습니다. 거기다, 단순 DNN에 비해 모수의 숫자를 많이 줄일 수 있는 방법이기도...
kion.kim's profile imagekion.kim
2018-06-08 17:00
-
GAN과 WGAN 사이 - I
WGAN WGAN은 기존의 $f-GAN$의 확장으로 볼 수 있는 GAN의 많은 variant 중의 하나입니다. 2014년 GAN이 세상에 선을 보인 후로, GAN이 변형된 수많은 모형들이 나왔습니다. 그 중 Google의 DC-GAN이 안정적인 학습을 위한 guide line을 제시하였다면, WGAN은 학습이 잘 안되는 이유를 KL divergence의 한계로 언급하며, loss function을 재정의하여 안정성을 제고합니다. 여기에서는 Wasserstein distance에 대해서 자세히 알아보도록 하겠습니다. GAN의 loss Ian Goodfellow의 14년 논문인 GAN에서는 discriminator와 generator의 상호작용을 통해 generator 신경망을 학습하는 알고리즘이 소개되어 있습니다. Deep learning의 선구자...
deeplearning statistics generative-model
kion.kim's profile imagekion.kim
2018-06-01 17:00
-
Variational Autoencoder (III)
최우추정 원리 우리가 추정해야 할 모수는 $\zeta$, $\theta$입니다. 각각 encoder 신경망과 decoder 신경망의 weight 값을 의미합니다. 잠재변수의 사후분포(posterior distribution)의 모수인 $\mu$와 $\sigma$는 $\zeta$가 정해지면 같이 정해지는 숫자이며, 실제 잠재변수를 표현할 때에는 이 모수들을 이용해서 시각화 할 것입니다. $f(z;\theta)$가 결정이 되면 여기에 약간 noise를 더한 값이 생성하는 이미지가 됩니다. VAE에서 궁극적으로 하고자 하는 것은 최대 우도 원칙(Maximum Likliohood Principle)에 의거해서 데이터의 분포를 추정하는 것입니다. 다음은 우도함수(우도함수)의 정의입니다. $X$는 데이터를 의미합니다. $\nu$는 추정하고자 하는 모수(parameter)를 의미합니다. 우도함수와...
deeplearning statistics generative-model
kion.kim's profile imagekion.kim
2018-05-30 17:00
-
Variational Autoencoder (II)
VAE의 목적 앞의 글에서 이미 말씀드렸지만, 데이터의 분포를 추정함에 있어, VAE의 목표는 두가지라고 할 수 있습니다. 하나는 아주 큰 차원에 존재하는 데이터의 차원을 효과적으로 줄이는 것입니다. manifold hypothesis에 근거하여 VAE에서는 큰 차원의 데이터 공간보다는 훨씬 작은 공간에서 데이터를 표현하고자 합니다. 이렇게 하면 보다 작은 차원에 존재하는 분포만 고려하면되기 때문에 계산도 훨씬 간단해 지는 효과도 있습니다. 다른 하나는, 원래 데이터의 분포의 구조를 유지하는 것입니다. 예를 들면, 784차원의 MNIST 데이터를 2차원으로 줄인다고 할 때, 784차원의 원래 이미지가...
deeplearning statistics generative-model
kion.kim's profile imagekion.kim
2018-05-30 17:00
-
Variational Autoencoder (I)
들어가며 한참 generative 모형으로서 GAN이 화제가 되었던 17년 초에 사내에서 세미나를 진행하면서 처음 접하게 되었습니다. 뜨거웠던 GAN보다도 제가 개인적으로 variational autoencoder(이하 VAE)에 대해 관심을 가지게 된 것은 deep learning 분야 중에서 가장 통계적인 background가 많이 필요하다는 사실 때문이었습니다. 제가 부서 내 통계를 담당하고 있거든요. ㅎㅎ~~ 처음에는 막연히 autoencoder의 일종이겠구나 하면서 논문을 읽기 시작했는데, 실은 autoencoder와는 전혀 다른 것이었고, 아주 흥미로운 모형이었습니다. 최초 사내 세미나 진행 후 몇 번을 다시 읽으며 개념을 정리했습니다. 혹시 관심 있으셨지만,...
deeplearning statistics generative-model
kion.kim's profile imagekion.kim
2018-05-30 17:00