-
부스트캠프 ai tech 2기 2주차 학습 정리 노트Boostcamp AI Tech 2기 2021. 8. 13. 23:11
강의 복습
2강 뉴럴 네트워크 - MLP
신경망(Neural Networks) :
1) computing systems vaguely inspired by the biological neural networks that constitute animal brains
그러나 역전파 같은 시스템이 인간의 뇌에선 일어나지 않는다. 더욱 좋은 성능을 낼 수 있다면 굳이 인간의 뇌를 모방할 이유는 없다.
2) function approximators that stack affine transformations followed by nonlinear transformations
3강 Optimization
Gradient Descent : Firs t-order iterative optimization algorithm for finding a local minimum of a differentiable function
Generalization : How well the learned model will be have on unseen data
Cross-validation : a model validation technique for assessing how the model will generalize to an independent (test) dataset
Bootstrapping : any test or metric that uses random sampling with replacement
Bagging : Base classifiers are fitted on random subset where individual predictions are aggregated (voting or averaging)
Boosting : A strong model is built by combining weak learners in sequence where each learner learns from the mistakes of the previous weak learner
Stochastic gradient descent : Update with the gradient computed from a single sample
Batch gradient descent : Update with the gradient computed from the whole data
Mini-batch gradient descent : Update with the gradient computed from a subset of data
*배치 사이즈가 작으면 flat minimum으로 수렴하는 경향이 있고, 배치 사이즈가 크면 sharp minimum으로 수렴하는 경향이 있는데, 트레인 셋과 테스트 셋이 차이 나는 경우 sharp minimizer보다 flat minimizer로 수렴했을 때 그 차이에 덜 영향을 받게 된다. 따라서 배치 사이즈가 작은 것이 더 낫다고 한다.(일반화 성능이 더 뛰어나다.)
*gradient descent의 단점은 학습률(learning rate)를 잡는 것이 어려운 데에 있다.(너무 커서도 작아서도 안 됨.)
Momentum : 전에 사용했던 그레디언트항을 가중치를 주어 계속해 사용(이동하려는 성질을 남기는 것이니 관성을 이용한다고 볼 수 있다.)
Nesterov Accelerated Gradient : Momentum과 비슷하지만 Lookahead gradient를 활용해 극소점에 더욱 빨리 수렴하는 효과가 있다.
Adagrad : Adagrad adapts the learning rate, performing larger updates for infrequent and smaller updates for frequent parameters. Adagrad는 학습이 진행될수록 G항이 너무 커져 학습이 잘 안되는 문제가 발생한다.
Adadelta : Adadelta extends Adagrad to reduce its monotonically decreasing the learning rate by restricting the accumulation window. Adadelta에는 learning rate항이 없다. 이런 이유에서 잘 쓰이지 않는다고 한다.
RMSprop : unpublished, adaptive learning rate method proposed by Geoff Hinton in his lecture
Adam(Adaptive Moment Estimation) : Adam leverages both past gradients and squared gradients
Regularization : 모델이 학습 데이터에 대해 잘 예측하도록 하는 것 뿐만 아니라 테스트 데이터에 대해서도 잘 예측하도록 모델의 학습을 일반화의 목적을 가지고 방해 및 규제하는 것
Noise Robustness : Add random noises inputs or weights
Label Smoothing
- Mix-up constructs augmented training examples by mixing both input and output of two randomly selected training data
- CutMix constructs augmented training examples by mixing inputs with cut and paste and outputs with soft labels of two randomly selected training data
Drop-out : In each forward pass, randomly set some neurons to zero
Batch Normalization : Batch Normalization compute the empirical mean and variance independently for each dimension (layers) and normalize.
4강 Convolutional Neural Networks
CNN consists of convolution layer, poolinglayer, and fully connected layer.
- Convolution and pooling layers : feature extraction
- Fully connected layer : decision making
Layer별 패러미터 계산 방법 : 필터의 크기*이전 채널 값*이후 채널 값
5강 Modern Convolutional Neural Networks
AlexNet :
- ReLU activation
- 2GPUs
- Overlapping pooling
- Data augmentation
- Dropout
VGGNet :
- Increasing depth with 3*3 convolution filters (with stride 1)
*Receptive field 차원에서 볼 때 3*3을 2번 사용하는 것과 5*5를 한 번 사용하는 것은 같다. 그런데 패러미터 수는 전자가 더 적다.
- Dropout (p=0.5)
- VGG16, VGG19(layer 개수에 따라)
GoogLeNet :
- It combined network-in-network (NiN) with inception blocks.
*Inception block은 채널의 방향 차원 축소법인 1x1convolution을 사용하며, 이는 패러미터 수를 줄이는 역할을 한다.
ResNet :
- 깊은 신경망을 학습시키기 어려운 문제를 해결하기 위해 identity map을 추가 (skip connection)
- Bottleneck architecture (전과 후의 차원을 맞추기 위해 1x1convolution 사용)
DenseNet :
- DenseNet uses concatenation instead of addition.
- Dense Block에 의해 채널이 기하급수적으로 늘어나는 것을 1x1convolution을 사용하는 Transition Block을 이용해 차원 축소해준다.
6강 Computer Vision Applications
Fully Convolutional Network : dense layer를 없앤 Convolutional Network. flattening과 dense 과정이 없지만 있는 것과 패러미터 수는 같다. 이러한 과정을 Convolutionalization이라고 한다. Convolutionalization의 장점은 인풋의 spacial dimension에 independent하다는 것이다.
Deconvolution : convolution의 역연산.(엄밀히 따지면 역이 될 수는 없지만 크기의 측면으로 역연산이라고 볼 수 있다.)
R-CNN : R-CNN (1) takes an input image, (2) extracts around 2,000 region proposals (using Selective search), (3) compute features for each proposal (using AlexNet), and then (4) classifies with linear SVMs.
SPPNet : 한 번 수행한 cnn의 convolutional feature map 위에서 얻어지는 bounding box의 patch를 뜯어오는 것
Fast R-CNN :
1. Takes an input and a set of bounding boxes
2. Generated convolutional feature map
3. For each region, get a fixed length feature from ROI pooling
4. Two outputs: class and bounding-box regressor
Faster R-CNN : Region Proposal Network + Fast R-CNN
YOLO : an extremely fast object detection algorithm. It simultaneously predicts multiple bounding boxes and class probabilities. No explicit bounding box sampling (compared with Faster R-CNN)
7강 Recurrent Neural Networks
Sequential Model : 주식, 언어와 같은 순서를 가지는 데이터를 이용해 학습시킨 모델
- Naive sequence model : The number of inputs varies
- Autoregressive model : Fix the past timespan
- Markov model (first-order autoregressive model) : Markovian assumption을 가지는 모델. 바로 직전의 딩터가 현재에 영향을 미친다는 가정을 한다. Easy to express the joint distribution.
- Latent autoregressive model : 과거의 정보를 담고 있는 hidden state를 이용
RNN : 비교적 오래 전에 학습한 input이 나중의 output에 큰 영향을 미치지 못한다는 단점이 있다.
LSTM(Long Short Term Memory) :
- Forget Gate : Decide which information to throw away
- Input Gate : Decide which information to store in the cell state
- Update cell : Update the cell state
GRU(Gated Recurrent Unit) : Simpler architecture with two gates (reset gate and update gate). No cell state, just hidden state.
8강 Transformer
Transformer : the first sequence transduction model based entirely on attention
Self attention : 각 단어의 score 계산은 그 단어의 Query 벡터와 모든 단어들의 key 벡터의 내적으로 구한다.(어떤 단어와 더욱 많이 interaction이 일어나야하는지를 표현) Then, we compute the attention weights by scaling followed by softmax. The final encoding is done by the weighted sum of the value vectors
Multi-headed attention(MHA) : Multi-headed attention allows Transformer to focus on different positions. If eight heads are used, we end up getting eight different sets of encoded vectors (attentionheads). To feed eight sets of attention head to the next layer, we simply pass them through additional(learnable) linearmap. Positional encodings are added to the original embedding.
Decoder of Transformer : Transformer transfers key(K) and value(V) of the topmost encoder to the decoder. The output sequence is generated in an autoregressive manner. The self-attention layer is only allowed to attend to earlier positions in the output sequence which is done by masking future positions before the softmax step.
9강 Generative Models Part 1
Learning a Generative Model : We want to learn a probability distribution p(x) such that
• Generation : If we sample x ~ p(x), x should look like a dog (sampling).
• Density estimation(Explicit models) : p(x) should be high if x lookslikeadog, and low otherwise (anomaly detection).
• Unsupervised representation learning : We should be able to learn what these images have in common (featurelearning).
NADE(Neural Autoregressive Density Estimator) : an explicit model that can compute the density of the given inputs.
10강 Generative Models Part 2
Variational inference(VI) : The goal of VI is to optimize the variational distribution that best matches the posterior distribution.
ELBO : a tractable quantity. ELBO can further be decomposed into
- Reconstrucion Term : The term minimizes the reconstruction loss of an auto-encoder.
- Prior Fitting Term : The term enforces the latent distribution to be similar to the prior distribution.
GAN Objective : A two player minimax game between generator and discriminator.
과제 수행 과정 및 결과
이번 주 필수과제의 경우 파이토치 코드에 대한 이해가 적어서인지 비교적 쉬운 내용이었음에도 불구하고 완전히 내 것이 된 듯한 느낌을 받을 수가 없었다. 다음 주부터 파이토치 강의에 들어간다고 하니 파이토치 공부를 하며 이번 주차 코드들을 함께 복습하는 시간을 가진다면 얻어가는 것이 많을 것 같다.
선택 과제의 경우 대부분 실무에서 쓰이는 고난이도 툴들의 구현 문제였는데, 강의 이해만으로도 벅찬 한 주였기에 도전해보지 못했고, 난이도 또한 굉장히 높았다고 한다. 이 선택과제들 또한 나중에 해설 영상을 참고해서라도 뜯어보는 시간을 가져봐야할 것이다.
피어 세션
이번 주 피어세션 또한 지난 주와 비슷하게 진행되었다. 특별한 점이 있었다면 자투리 시간에 조원끼리 한 명씩 돌아가며 자기 자신에 대한 자세한 소개와 이야기를 나눴다는 점일 것이다. 각자 지금까지 전념했던 분야가 다르고, 경험이 달랐기 때문에 서로에 대한 이야기를 나누고 질문을 하면서 나도 모르게 식견이 넓어짐을 느낄 수 있었다. 더불어 조원분들을 한 층 더 깊이 알게되어 더욱 친밀감을 가지게 된 값진 시간이었다.
학습 회고
이번 주의 주된 내용은 딥러닝 기초로, 딥러닝 모델들이 어떠한 방향성으로 흘러왔는지를 살피는 시간이었다. 이번 주 학습이 모두 끝난 이 시점에 돌이켜보면, 내 학습은 하나하나를 깊게 알기보단 이런 것이 있구나하고 흐름을 따라가는 느낌이었다. 나중에 논문을 읽고 관련 공부를 깊게 하기 위해서 결국 깊게 이해하는 것이 필요함을 그간의 특강들을 통해 깨달았기에 다음 주부터는 조금이라도 궁금한 점이 생기면 계속해서 물고 늘어지는 공부법을 취해야겠다. 수료 자체에 목적을 둘 것인가, 수료를 향해 가는 동안의 배움과 성장에 목적을 둘 것인가. 답은 이미 나 자신이 가장 잘 알고 있을 것이다.
'Boostcamp AI Tech 2기' 카테고리의 다른 글
부스트캠프 ai tech 2기 7주차 학습 정리 노트 (0) 2021.09.15 부스트캠프 ai tech 2기 6주차 학습 정리 노트 (4) 2021.09.10 부스트캠프 ai tech 2기 4주차 학습 정리 노트 (0) 2021.08.27 부스트캠프 ai tech 2기 3주차 학습 정리 노트 (0) 2021.08.20 부스트캠프 ai tech 2기 1주차 학습 정리 노트 (0) 2021.08.04