SYDLAB_inha/Machine Learning 18

ML - CNN(2) / Pooling layer / max pooling

Pooling layer Pooling layer : Pooling layer는 입력 데이터의 공간적 차원을 줄이는 역할을 한다. 일반적으로 max pooling과 average pooling이 가장 많이 사용된다. pooling은 차원을 축소시키는 것이라 하였다. 위 예시를 보면 224*224 였던 차원이 풀링으로 인하여 112*112로 1/4배 줄어들었다. [pooling 특] - padding을 사용하지 않는다. - filter size와 stride size가 동일하다. Max Pooling pooling도 일종의 layer이기 때문에 filter의 개념이 있는데, pooling에서는 filter size와 stride size가 동일하다. 즉, overlapping 없이 연산이 진행된다. 겹쳐서..

ML - CNN / image 구성 / channel / filter / feature map / zero-padding

Introduction to CNN (Convolutional Neural Networks) Neural Networks : without the brain stuff CNN은 이미지 처리에 특화된 Neural Network이다. CNN을 다루기 전에 이전에 다뤘던 Neural Networks에 대해 복기해보는 시간을 가진다. NN의 가장 간단한 형태로 linear score function을 다룬 적 있다.윗 수식은 one layer, 두번째 수식은 two layer까지를 표현한다. 여기서 W(weight)를 어떻게 설정하냐에 따라 차원을 변경시킬 수 있다. weight를 거치며 3072차원 벡터가 100차원으로 바뀌고 weight2 matrx를 곱하고는 10차원이 되었음을 확인할 수 있다. 마지막 s..

ML - Transformer / Self-Attention / attention-weights / context vector / Residual connection

Transformer RNN Summary - Architecture design 관점에서 flexibility가 높다. - Vanilla RNNs가 가장 기본이나, 잘 동작하지 않는다. - RNN의 변형된 형태인 LSTM이나, GRU를 더 많이 쓴다. //gradient flow가 개선 (**GRU : LSTM의 성능을 유지하면서도 좀 더 simple하게 만들어진 아키텍처) - RNN의 단점은 gradient가 폭발하거나 소실된다는 것이다. exploding의 경우에는 gradient clipping이라는 기법으로 threshold를 넘지 못하게 하고, vanishing의 경우에는 truncated기법으로 input을 capacity 크기에 맞추어 잘라서 쓴다. Transformer : Self-Att..

ML - Generative Model(2) / GAN(adversarial networks) / generator / discriminator

Generative Adversarial Networks GAN : generative model중에 크게 VAE와 GAN이 있는데 GAN이 압도적으로 더 많다. GAN 중 일부는 VAE의 좋은 특성을 갖고 있는 것들도 있다. GAN이란, generator(생성자)와 discriminator(판별자) 네트워크 간의 경쟁적인 학습을 기반으로 하며, 실제 데이터와 비슷한 가짜 데이터를 생성하는 모델이다. generator는 random latent vector(잠재 벡터) 에서 데이터를 생성하려 계속해서 업그레이드 되고, discriminator는 생성된 데이터와 실제 데이터를 구별하기 위해 계속해서 업그레이드 됨으로써 이 둘이 경쟁 구도를 가지며 생성자가 점차적으로 실제와 더욱 유사한 데이터를 생성하도록 ..

ML - Generative Modeling(1) / autoencoder / VAE(variational autoencoder)

Generative Modeling - Generative Model - Basic Autoencoders - Variational Autoencoders (VAE) - Generative Adversarial Networks (GAN) - Fancier Generative Models Generative Modeling Generative Modeling이란, training data를 학습하여 유사한 데이터를 생성하는 모델이다. training data 들의 샘플마다 픽셀들의 분포를 분석하여 오른쪽 그림처럼 training data와 유사하게 새로운 데이터를 만들어내는 것이다. 결국, generative modeling에서 가장 중요한 것은 training data의 분포를 학습하는 것이다. tran..

ML - RNN(4) / LSTM / cell / forget gate / input gate / output gate

Long Short-Term Memory(LSTM) RNN vs LSTM : RNN은 결국 input이 internal state로 들어가고, self 루프가 있으며 아래 식으로서 stae가 계산된다. [Symbol 소개] 1) Neural Network Layer : neural network layer 중 하나로서 activation function이 드 ㄹ어 2) pointwise operation : 데이터 요소에 대해 요소별로 연산 3) vector transfer : 벡터가 이동한다. 4) Concatenate : 벡터가 하나로 합쳐진다. 5) Copy : 벡터가 두개로 나눠진다. [ RNN vs LSTM 비교 ] RNN : 다음 time step으로 넘어가는 internal state가 하나..

ML - RNN(3) / Long-term dependencies / Truncated / gradient 폭발&소실 / clipping / tradeoffs

문제 1. Long-Term Dependencies Long-Term Dependencies : sequence data에서 이전 시간 단계의 정보가 현재 또는 미래 시간 단계에서의 예측에 영향을 미치는 경우를 말한다. Long term denpendesncies로 인하여 time 구간이 너무 길어서 가장 끝에 있는 loss function이 앞쪽에 있는 입력단까지 잘 전달이 되지 않을 수 있다. CNN에서 Layer가 깊어지면, update하는 과정에서 gradient가 잘 흘러가지 않는다. RNN도 마찬가지로 time step이 길어지면 출력값에 대해서 bptt를 통해 update되면서 gradient가 소실될 수 있다. h2에서의 loss function이 있다면, RNN에서는 그 이전 모든 영역에..

ML - RNN(2) / character-level language model / one-hot encoding / Ground Truth / auto regressive

Character-level language model Word level Language model : 주어진 텍스트나 문장을 이해하고 다음 단어나 토큰이 무엇일지 예측하는 잡업을 수행할 때 사용되는 것이 Language model이다. 예측은 문장의 맨 끝의 단어도 가능하고, 문장 중간에 있는 단어를 target word로 하여 예측하는 작업을 수행할 수도 있다. 구글이나 네이버에 어떠한 단어의 조합을 검색할 떄, 내가 자성하고 있는 단어 뒤에 올 단어를 이어서 검색창 아래쪽에 연관 검색어로 보여주는 것이 이에 해당한다. 완벽한 문장에 구멍을 뚫어, RNN과 같은 model에 앞 단어들을 순차적으로 넣어주고, 마지막 출력을 예측하도록 한다. 이렇게 수많은 데이터를 학습하며 문맥 관계를 파악하고, 이렇..

ML - RNN(1) / sequence data / many to one / one to many / hidden state weight / BPTT

Temporal Modeling [contents] 1. Recurrent Neural Networks (RNN) 2. Long Short-Term Memory (LSTM) 3. Transformer : Self-Attention Recurrent Neural Networks (RNN) Sequence Data : RNN은 Sequence data를 처리하는 모델이다. Sequence data는 순서대로 처리되어야하는 data이며 음성인식, 자연어처리 등이 이에 포함된다. 자연어의 경우 단어 하나만 안다고해서 처리될 수 없고, 앞뒤 문맥을 함께 이해해야 해석이 가능하다. 따라서 지금까지 배운 neural network나 CNN만으로는 할 수 없다. 순차적으로 들어온느 입력을 그림으로 표현하면 위와 같다...

ML - Computational Graph & Backpropagation / upstream & downstream & local gradient

Computational Graph Gradient loss function은 결국 W에 대한 함수이기 때문에, 특정 W에서의 편미분을 통해 gradient(기울기)가 낮은 방향으로 가면, loss를 줄일 수 있다. 결국 gradient는 편미분들로 구성되어있는 일종의 vector라고 볼 수 있다. 각 weight에 대해서 편미분되므로 여러개의 가중치가 있을 때에는 하나의 편미분 값이 아닌, vector로 표현될 수 있다. Backpropagation How to compute gradients? : layer가 20개 이상으로 너무 deep하거나 너무 복잡하면, loss funciton이 너무 복잡해져, 이것을 편미분하는 계산 과정이 너무너무너무울트라슈퍼똥방구 복잡해진다.... 위 식처럼 이미 loss..