일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 일기
- NLP
- Deeplearning
- rnn
- attention
- dl
- Programmers
- GPT
- prompt engineering
- LeetCode
- 머신러닝
- LLM
- 기계학습
- 프롬프트
- ChatGPT
- Linear Model
- BFS
- machinelearning
- Python
- deque
- 파이썬
- 알고리즘
- 코딩테스트
- 코테
- transformer
- Django
- 프로그래머스
- 부스트캠프
- Linear Regression
- gradient descent
- Today
- Total
크크루쿠쿠
[Week2] DL Basic Optimization[Day2] 본문
Optimization
Gradient Descent
- loss function의 gradient 값들을 이용해서 학습
- 1차 미분한값만 사용
- 반복적으로 하여 local minimum을 찾음
Important Concepts in Optimization
- Generalizaion
How well the learned model will behave on unseen data
-> training error 가 0이라고 최적X
Generalization gap을 줄이는것.
- Underfitting vs Overfitting
concept 적인 얘기임
- Cross-validation
train data 를 K개로 나눠 1개씩을 계속 뽑아 validation 함.
K-fold 라고도 함
최적의 hyperparameter를 찾은 후 학습 시에는 모든 data를 사용
test data는 절대 train에 사용 X
- Bias and Variance
좋은 탄착군 -> Low Variance : 일관적, 간단한 모델
high Variance -> overfitting 가능성 up
Bias는 true target에 접근하는가
Tradeoff ->
어느 하나만 줄일 수 없음.
근본적인 data 의 noise가 중요
- Bootstrapping
any test or metric that uses random sampling with replacement
- Bagging vs Boosting
Bagging -> Bootstrapping aggregating
학습데이터를 다 사용해서 하나만 학습 X
data를 여러개 만들어 여러 model을 만들어 평균을냄 -> 앙상블
Boosting -> focuses on those specific training samples that are hard to classify
model을 여러개 만들어 sequence하게 연결하여 strong 하게 만든다.
-> 모델의 독립 여부의 차이
Gradient Descent Methods
- Stochastic gradient descent
엄밀한 의미에서는 1개의 sample에서만
- Mini-batch gradient descent
subset of data로
- Batch gradient descent
whole data 사용
Batch-size Matters
생각보다 중요함.
large batch-size를 이용하면 sharp minimizer에 도달함.
small batch-size를 이용하면 flat minimizer에 도달
-> flat이 좀더 낫다
Flat이 Generalization performance가 좋다 볼 수 있음.
Gradient Descent Methods
optimizer를 골라야함
- SGD
learning rate를 잡는게 너무 어려움
- Momentum
beta 라는 hyperparameter가 들어감
한번 흘러간 gradient를 유지시켜줌.
- Nestrov Accelerated Gradient
Lookahead gradient -> 현재 정보로 한번 가 본뒤 나오는 gradient를 사용
momentum과 달리 local minimum으로 converge 가능
- Adagrad
parameter가 얼만큼 변해왔는지 아니면 안변했는지 봄
G가 계속 커지기 때문에 학습이 계속 느려짐.
- Adadelta
G가 계속 커지는걸 막아줌.
learning rate가 없다.
- RMSprop
논문 제출된게 아님 -> 그냥 강의에서 제안한것
- Adam
EMA와 momentum 같이 사용한것
입실론 parameter가 중요함
Regularization
generalization을 위하여
-> 학습을 방해함으로써 test data에도 잘 작동하도록.
- Early stopping
test data를 사용할 수 없으므로 Validation error를 사용한다.
- Parameter Norm Penalty
부드러운 함수로 만들자 -> generalization performance가 좋으므로
- Data Augmentation
data는 많을수록 좋다 에서 나온 방법
주어진 data를 사용해서 데이터를 늘리는것 -> label이 바뀌지 않는 한에서
어떠한 변화를 줄지는 data에 따라 달라짐
- Noise Robustness
-> 아직도 왜 잘되는지 잘 모름
Noise를 data에도 넣고 parameter에 집어넣어도 성능이 좋아짐.
- Label Smoothing
data 두개를 뽑아서 섞어줌.
decision boundary 를 부드럽게 만들어줌
label도 섞어버리고 사진도 섞고.. 자르기도 하고
(Mixup -> 성능 진짜 좋아짐)
- Dropout
weight를 0으로 바꿔줌
- Batch Normalization
논란이 많음
적용하고자 하는 layer를 정규화 시키는것
-> 성능이 좋아지긴 함
'DeepLearning > 부스트캠프 AI Tech' 카테고리의 다른 글
RNN(Recurrent Neural Network) (0) | 2021.08.12 |
---|---|
[Week2] DL CNN(Convolutional Neural Network) [Day3] (0) | 2021.08.11 |
[Week2] DL Basic [Day1] (0) | 2021.08.09 |
[Week1] Python Basics for AI & AI Math_Overview [Day5] (0) | 2021.08.08 |
[Week1] Python Basics for AI & AI Math_Overview [Day4] (0) | 2021.08.05 |