부스트캠프 AI 3주차(Day-15 ~ Day-19) 회고록
Day 15
- 쉬는 날이었지만 Dive Into Deep Learning 17장을 팀원들과 리뷰했다.
- 17.1 Overview of Recommender Systems
- 17.2 The MovieLens Dataset
- 17.3 Matrix Factorization
- 17.4 AutoRec: Rating Prediction with Autoencoders
- 17.5 Personalized Ranking for Recommender Systems
- 17.6 Neural Collaborative Filtering for Personalized Ranking
피어세션: 17.5, 17.6 부분이 너무 어려워서 나중에 다시 살펴보기로 했다.
Day 16
- 딥러닝이 등작한 역사와 배경에 대해 간단히 살펴보았다.
- Alexnet
- DQN
- Encode/Decoder, Adam
- GAN, ResNet
- Transformer
- Bert
- GPT-X
- Self-Supervised Learning
- 인공지능이란: 사람의 지능을 모방하는것.
- Machine Learning과 Deep Learning의 차이가 뭘까?
- Machine Learning: 무언가 학습하고자 할 때 학습을 데이터를 통해 알고리즘을 만드는 방법.
- Deep Learning: Machine Learning의 세부 분야 중 하나로 뉴럴네트워크를 활용하는 분야.
- Machine Learning: 무언가 학습하고자 할 때 학습을 데이터를 통해 알고리즘을 만드는 방법.
- Deep Learning의 Key Components 4가지
- Data
- Model
- Loss
- Algorithm
- Neural Networks 에 대해 학습했다.
- 비행기는 처음 새나 박쥐를 모방하며 시작해 지금의 동물과는 동떨어진 형태가 되었다.
- 이와 비슷하게 Neural Networks도 인간의 뇌를 모방하며 시작했지만 지금은 살짝 동떨어진 형태가 되지 않았나 싶다.
- Function approximators의 일종이다.
- Multi-Layer Perceptron 을 공부했다.
-
Linear Neural Network
-
Mult Layer Perceptron
-
- Optimization
- Generalization
- 모델이 학습된 데이터 이외의 일반적인 unseendata에 대해 얼마나 잘 동작하는지를 말한다.
- Under-fitting vs. over-fitting
- Under-fitting 되면 성능이 떨어진다.
- Over-fitting 되면 Generalization이 떨어진다.
- Cross validation
- K-fold validation 이라고도 한다.
- Train data를 k개로 나누어 k개의 데이터 끼리 교차로 Vaildation data로 활용한다.
- 하이퍼 파라미터의 최적을 Cross validation으로 찾고, 하이퍼 파라미터를 가지고 모든 train data를 학습시킨다.
- Bias-variance tradeoff
- Bias는 표적으로 부터 전체적으로 얼마나 떨어져 있는지 거리를 말한다.
- Variance는 데이터들 끼리 얼마나 뭉쳐 있는지 여부를 말한다.
-
Bias와 Variance 간에는 Tradeoff가 존재한다.
- Bootstrapping
- 학습 데이터 중 Subsmapling으로 여러개의 셋을 만들어 학습하겠다.
- Bagging and boosting
- Bootstrapping aggregating
- 여러개의 모델을 Bootstrapping으로 학습하고 평균을 내겠다.
- Parallel
- Bagging
- Sequential
- Bootstrapping aggregating
- Generalization
- Gradient Descent Methods
- Stochastic gradient descent
- Mini-batch gradient descent
- Batch gradient descent
- Lager batch -> Sharp Minimizers
-
Small batch -> Flat Minimizers
-
Momentum
\[\begin{aligned}a_{t+1}\leftarrow \beta a_{t}+g_{t}\\ W_{t+1}\leftarrow W_{t}-\eta a_{t+1}\end{aligned}\] - Nesterov Accelerated Gradient
- Lookahead Gradinet 추가. \(\begin{aligned}a_{t+1}\leftarrow \beta a_{t}+\nabla L\left( W_{t}-\eta \beta _{at}\right) \\ W_{t+1}\leftarrow W_{t}-\eta a_{t+1}\end{aligned}\)
- Adagrad
- 많이 변해온건 조금만, 조금만 변해온건 많이 변화시킨다.
- Gt가 너무 커지면 0에 가까워지고 학습이 잘 안된다.
- Adadelta
- EMA: Exponetial Moving Average
- Learning rate이 없어 조절하기가 힘들다.
- 바꿀수 있는 부분이 많이 없음.
- RMSprop
- Stepsize가 추가됨.
- Adam
- 최근 가장 많이 쓰이는 Optimizer
- Regularization
- Over fitting을 막기위해 학습을 방해, 규제한다.
-
Early stopping
-
Parameter norm penalty
-
Data augmentation
-
Noise robustness
-
Label smoothing
-
Dropout
-
Batch normalization
피어세션: 강의에서 “여기는 logit이니까 activation 없이 나오죠”라고 언급됐었다. 의문이 생겨 Logit 함수에 대해 조사했고 팀원들과 공유했다.
Day 17
- CNN에 대해 학습했다.
- Convolutional Neural Network
- Modern CNN에 대해 살펴봤다.
- CNN이 CV분야에서 어떻게 활용하는지 공부했다.
- CNN에서 1by1 커널과 3by3 커널의 의미를 학습했다.
- 1by1
- 3by3
- 왜 2by2 또는 짝수 커널을 쓰지 않는지 찾아봤다.
- 짝수 커널을 안 쓰는 이유
- RNN에 대해 학습했다.
- LSTM의 탄생배경과 구조에 대해 학습했다.
Day 18
- Transformer에 대해서 학습했다.(All you need attetion)
- Multi Head Attention에 대해 학습했다.
- Generative Models에 대해 학습했다.
Day 19
- VIT에 대해 학습했다.
- Matplotlib에 대해 살펴봤다.
Leave a comment