→ 논문을 볼 때 이 네가지를 중점으로 살펴보면 좋음
y_hat = wx + b에서 loss함수는
이다. loss를 줄이기 위해 아래와 같이 update해준다. gradient descent에 대해 한다면 쉽게 이해할 수 있다.
위의 regression함수는 affine transformation이라 볼 수 있다. 여기에 연속적으로 nonlinear transform을 해주는 것이 뉴럴네트워크의 핵심이다.
여기서 rho는 nonlinear한 activation함수이다.
Genralization
Training error가 0이라 해서 항상 성능이 좋은 것은 아니다. Training error가 작아질수록 Test error가 커지는 현상이 있을 수 있다. Test error와 Training error의 차이를 Generalization gap이라 하는데 일반화가 good generalizaiton은 네트워크 성능이 학습데이터와 비슷하게 나오는 것이다.
Underfitting: 학습이 안된 것
Overfitting: training데이터에 대해 과학습 되어 일반화가 되지 않는 것
Cross validation: k-fold validation이라고도 하며 training 데이터를 나눠 그중 하나를 validation set으로 사용하는 것이다. 보통 cross validation을 이용해 하이퍼파라미터를 찾고 그 후 전체 데이터로 학습한다.
Bias and Variance:bias는 편향된 정도고 variance는 퍼진 정도다(영점조절 생각)
cost = bias^2 + variance + noise의 관계를 가지고 있어 오른쪽 세개는 trade off 관계다
Bootstrapping: train data의 subset을 이용해 여러 모델을 만들고 무엇인가 하는 것
Bagging: Bootstrapping을 이용해 여러개의 모델을 학습시키는 것이다.(여러 모델의 평균)
Boosting: weak learner를 합쳐 sequential 한 모델로 만드는 것이다. 각 weak learner는 이전 weak learner가 실수한 것으로 부터 배운다.
Batch-size Matter
large batch method: sharp minimizer
small batch method: flat minimizer
→비교: flat minimizer를 통해 flat minimum을 구했을 경우가 일반화 성능이 더 좋다
a{t+1}은 accumulation이고 beta는 momentum이다. 관성을 이용하는 것으로 a{t+1}에 a_{t}가 들어간다.
등
Nesterov Accelerated Gradient
Adagrad: 얼마나 지금까지 파라미터가 변해왔는지 or 안변해왔는지를 이용
Adadelta
RMSprop
Adam(보통 이게 제일 좋음)
Early Stopping: validation data를 이용해 overfitting하는 것을 중간에 멈춤
Parameter Norm Penalty: Cost함수에 W 노름을 추가해서 W의 weight가 너무 커지지 않도록해준다.
Data Augmentation: 많은 데이터는 항상 환영(돌리고 회전하고 등등..)
Noise Robustness: 입력 데이터에 noise 넣는 것 뿐만 아니라 뉴럴넷의 가중치에다도 넣음
Label Smoothing: 분류문제 풀 때 데이터는 한정적이기 때문에 학습 데이터를 자르고 붙이고 등등의 기법을 이용해 학습한다. Ex Mixup, Cutout, CutMix
Dropout: 뉴런을 랜덤하게 죽이는 것
Batch Normalization: 내가 적용하고자 하는 layer에 statistics를 정규화 시기큰 것, 파라미터 각각의 값들에 대해 minmax, standardization적용되는 것
참고: Boostcamp AI Tech 4기 DL Basic 최성준 교수님 강의