Filter 3

[VISION] Convolution Neural Network

CNN은 이미지에 주로 사용되는 것이라 볼 수 있다. 하지만 최근에는 이미지 뿐만 아니라 자연어처리에도 사용되고 여러 분야에서 다양하게 CNN을 활용한다. CNN은 convolution layer를 겹겹이 쌓아 분류 문제의 경우 class 만큼의 output을 만들어 낸다. CNN을 하기 위해서는 기본적으로 filter라는 개념을 짚고 넘어가야 한다. filter는 input데이터를 필터사이즈 만큼 곱해서 하나의 output을 출력하게 된다. 이 경우 해당 filter size만큼의 값들이 추출된다. 일반적으로 input 을 넣고 filter를 지난 후 nonlinear function(ReLU와 같은)을 거쳐 출력되며 padding이나 stride를 조정해 output 이미지의 사이즈를 조절할 수 있다..

[CS224N] ConvNets for NLP

해당 강의에서는 CNNs을 다루기 전 RNN의 단점에 대해서 먼저 다룬다. RNN은 Prefix(접두사) context를 모두 포함하게 되며 Piece of sentence로 나누지 못한다는 단점이 있고, Sequence to Sequence의 모델을 살펴볼때 앞 단 Encoder부분의 RNN에서 Decoder로 보내주는 과정의 Last hidden state는 Last token에 영향을 많이 받게 된다. 또한 단어의 길이가 길어지면 정보의 손실이 발생할 수 있다는 것이 큰 문제이다. GRU나 LSTM 등 모델을 사용하거나 Encoder 부분에 Attention을 사용해 문제를 보완하곤 했다. CNNs CNNs 에서는 특정 길이로 Sub-sequence로 분할한 후 Feature를 추출하는 과정으로 접..

[CS231N] Stride, Padding, Pooling layer 란?

Contents CNN은 여러개의 layer들이 차곡차곡 쌓여있는 구조다. 여러 layer들 중에서 Convolution layer에 대해서 먼저 알아보자. Convolution layer 32(width)x32(height)x3(depth) image를 가진다. 아래 그림에서 보이는 filter는 parameter를 의미한다고 생각하면 된다. 즉 weight를 나타낸다. depth는 내가 받는 input과 동일해야한다. 동일해야만 filter가 image를 convolve할 수 있다. convolve하는 과정에서 하나의 scalar 값으로 mapping을 한다. 어떠한 image를 convolve하게 되면 똑같이 tensor형태가 나오게 되고, 선형 연산을 통해 나온 scalar 에 activation..

반응형