본문 바로가기

자연어 처리 과정

(62)
Why do we need to add bias in neural networks? https://www.turing.com/kb/necessity-of-bias-in-neural-networks#what-is-bias-in-a-neural-network? Importance of Neural Network Bias and How to Add It Explore the role that neural network bias plays in deep learning and machine learning models and learn the ins and outs of how to add it to your own model. www.turing.com neural networks에서 weights에 bias를 더해주는 이유는 학습이 원활하게 이루어지도록 돕기 위함이다.
Why RNN share the same weights? https://stackoverflow.com/questions/47865034/recurrent-nns-whats-the-point-of-parameter-sharing-doesnt-padding-do-the-tri Recurrent NNs: what's the point of parameter sharing? Doesn't padding do the trick anyway? The following is how I understand the point of parameter sharing in RNNs: In regular feed-forward neural networks, every input unit is assigned an individual parameter, which means that..
Word2vec vs GloVe Word2Vec takes texts as training data for a neural network. The resulting embedding captures whether words appear in similar contexts. GloVe focuses on words co-occurrences over the whole corpus. Its embeddings relate to the probabilities that two words appear together. Word2vec은 local 하게 한 문장에서 sliding window 해서 맥락을 파악하여 pair들을 추출한 후, 그걸 ground truth로 삼아서 layer를 통과하고 softmax를 통과했을 때 output이 잘 예..
Time sequence로 정렬하기 개요 RNN에서 나타나는 데이터의 차원을 이해하고 LSTM cell의 output logit을 의미하는 ox가 담긴 ox_batch를 이용해서 loss 값을 구하려면 어떤 shape을 맞춰주어야 하는지 알아보자. 코드 ox_batch = torch.cat(ox_batch).reshape(max_seq_len, batch_size, -1) # (50, 64, d) ox_batch = ox_batch.permute(1,0,2).reshape(batch_size*max_seq_len, -1) # (64, 50, d).reshape(3200, d) y_batch = y_batch.reshape(-1) ox_batch: LSTM cell의 logit인 ox가 담겨있다. ox_batch는 원래 list형이었다. 과..
LSTM 개요 RNN의 내부 구조를 변경한 RNN인 LSTM을 알아보자. 그리고 LSTM 구조가 어떻게 기존 RNN의 문제였던 Memory dependency(gradient 값을 제대로 전달해줄 수 없어서 생기는 문제)를 보완하였는지 알아보자. 기존의 RNN은 어땠나? Vanilla RNN은 위와 같은 형태의 구조를 지녔다. 이전 타임 스텝의 hidden state와 현재의 input x가 더해지고 이 값이 tanh를 통과하면 현재의 hidden state 값이 만들어졌다. 그리고 이 hidden state가 또 다음 타임 스텝의 입력에 영향을 주게 되었다. LSTM RNN 역시 기본적인 틀은 유지하고 있다. 하지만 vanilla RNN에서 문제가 되었던 gradient 값의 전달을 원활하게 해줄 수 있는 구조..
RNN 개요 자연어 처리에서 사용될 수 있는 neural network인 RNN에 대해 알아보자. RNN? RNN은 Recurrent neural network를 의미하는 말이다. 즉, 한국말로 바꿔서 표현해보면 순환 신경망 정도로 표현해볼 수 있다. 이 RNN은 text 같은 sequential 데이터와 시계열 데이터를 다룰 수 있는 신경망이다. 이 RNN이라는 신경망은 도대체 어떻게 생겼으며, 어떻게 자연어 처리를 할 수가 있는 걸까? RNN의 구조 위의 사진 기준으로 보자면 핑크색 노드가 input 초록색 노드가 hidden 파란색 노드가 output이다. 도대체 뭐가 어떻게 흐르는 걸까? forward, backward propagation이 어떻게 진행이 되는 걸까? RNN의 forward propag..
VGG 개요 AlexNet 다음으로 큰 성능 발전을 보였던 VGG에 대해 알아보자. VGG란? 2014년에 제시된, ImageNet classification에 등장한 CNN 모델이다. 이 모델은 AlexNet과 유사한 형태를 가지고 있으나 아주 큰 특징이 하나 있다. 그것은 바로 3x3 Convolution layer만을 사용하여 층을 쌓았다는 점이다. 이것이 왜 특징인가? 1. 3x3 Convolution layer만을 이용하여 network의 depth를 깊게 만들어냈다. 2. 연산 시에 발생하는 parameter의 수를 줄일 수 있다. 이에 더불어 계산 속도도 높일 수 있다. 3. 더 많은 비선형을 적용시킬 수 있다. 따라서 3x3 Convolution layer만을 이용하여 network의 깊이를 깊게..
CNN의 연산 개요 CNN에 존재하는 두 가지 연산인 filter, (max)pooling을 살펴보도록 하자. Filter of Convolutioin layer Convolution layer는 도대체 어떻게 사진의 정보를 담아서 사진을 알아볼 수가 있는 걸까? 그 비밀은 바로 Convolution layer의 filter에 숨겨져 있다. 컴퓨터가 보는 사진은 아래의 모습과 같다. 사진 속의 -1을 0이라고 생각하자. 그럼 그냥 사진의 사이즈에 맞게 0과 1이 가득 차있는 어떤 숫자의 조합일 뿐인 것이다. Filter가 사진의 정보를 담는 방법은 바로 사진의 일부분을 filter로 만들어 input image에 matching을 시키는 것이다. 사진의 맨 왼쪽 위에서부터 오른쪽 아래 끝부분까지 filter로 쭉 ma..
AlexNet 개요 CNN 모델 중 하나인 AlexNet에 대해 알아보자. AlexNet이란? Yann Lecun이 Lenet 모델을 통해 1998년 처음으로 도입했던 개념인 Convolution layer를 가지고 만든 모델이다. 그 모델의 이름이 바로 AlexNet이다. 이 AlexNet 모델은 Alex Krizhevsk와 Geoffrey Hinton등의 인물들이 제안했고, 이는 ImageNet classification 대회에서 2011년에 발표된 모델에 비해 엄청난 성능의 향상을 보여주었다. Structure of AlexNet AlexNet은 LeNet과 크게 다르지 않은 형태로 구축된 모델이다. 하지만 분명 다른 점이 존재한다. 1. 병렬 구조로 쌓았다는 점 2. 더 깊게 Network를 형성했다는 점 3...
Batch normalization 개요 우리의 데이터를 zero-mean, unit-variance로 만들어주는 normalization 기법 중 Batch normalization이 무엇인지 알아보자. 왜 zero-mean과 unit-variance? 우리에게는 여러 가지 normalization 방법들이 존재한다. z-score, minmax, batch normalization 등 이 중 minmax를 제외하고는 normalization을 거침으로써 데이터들의 평균을 0, 분산을 1로 만들어준다. 왜 하필 데이터들의 평균을 0, 분산을 1로 만들어주는 것일까? 그 이유는 normalization을 하고 나서 통과할 함수인 activation function을 보면 알 수 있다. maxout activation function을 제외..