clear_uncertainty

네이버 부스트캠프 모각공 캠페인 9일차 - Optimization 본문

네이버 부스트캠프 - AI Tech 3rd/인공지능 본격 탐구: 딥러닝 기초

네이버 부스트캠프 모각공 캠페인 9일차 - Optimization

SOidentitiy 2021. 11. 18. 22:09
728x90

모든 설명 및 자료의 출처는 네이버 부스트코스의 <[부스트캠프  AI Tech 3기] Pre-Course>입니다.

(https://www.boostcourse.org/onlyboostcampaitech3/joinLectures/329424)

 

<인공지능 본격 탐구: 딥러닝 기초>

Optimization

 

"Language is the source of misunderstanding" - Antoine de Saint-Exupery (1900-1944)

"언어가 잘못된 이해의 원천이다 "

최적화에 대한 많은 용어가 생기는데 용어에 명확한 이해가 없다면 뒤로 갈수록 큰 오해가 쌓일 수 있습니다.

 

Gradient Descent

First-order iterative optimization algorithm for finding a local minimum of a differentiable function

 

Important Concept in Optimization

 

용어

-Generalization

-Under-fitting vs Over-fitting

-Cross validation

-Bias-variance tradeoff

-Boostrapping

-Bagging and Boosting

 

Generalization(일반화)

How well the learned model will behave on unseen data

많은 경우에 우리는 일반화 성능을 높이는 것이 목표입니다.

Training error 가 0이 됐다고해서 우리가 원하는 최적화 값에 도달했다고 보장할 수 없습니다.

일반적으로 Training error가 줄어들지만 시간이 지날수록 Test error(학습하지 않은 데이터)가 증가합니다.

따라서 Generalization gap이 증가합니다.

Generalization gap: Test error 와 Training error 와의 차

학습데이터의 성능 자체가 안 좋을 때 Generalization performance가 좋다고해서 Test performance가 좋다고 말할 수 없습니다.

 

 

Underfitting  vs  Overfitting

Underfitting: 학습데이터에 대해서 잘 동작하지 못하는 것

Overfitting: 학습데이터에 대해선 잘 동작하지만 Test data 에 대해선 잘 동작하지 않는 것

 

Cross-validation

Cross-validation is a mode validation technique for assessing how the model will generalize to an independent(test) dataset.

 

k for validation 이라고도 불립니다.( 위는 5 for validation)

학습데이터와 validation 데이터를 k개로 나눠서 k-1개로 학습을 시키고 나머지 1개로 test를 해보는 것

Cross-validation 을 통해 hyperparameter를 찾습니다.

test validation을 활용해 Cross-validation 하거나, hyperparameter를 찾는 것은 절대 안 됩니다.

 

Bias and Variance

 

Variance : 입력을 넣었을 때 출력이 얼마나 일관적인가. Variance가 큰 모델은 비슷한 입력이 들어와도 출력이 많이 다릅니다.

Bias : 평균적으로 봤을때 mean과 얼마나 벗어나는가. 

 

Bias and Variance Tradeoff

학습데이터에 노이즈가 껴있다고 가정했을때 

Tradeoff : 값 하나가 작아지면 다른 값 하나가 커진다.

t: target

f hat : neural network 출력값

cost를 minimize 할려고하면 bias, variance, noise를 줄여야하는데 동시에 줄일 수 없다.

bias 를 줄이면 variance가 높아지고, variance를 줄이면 bias 가 높아질 확률이 큽니다.

 

Boostrapping

Bootstrapping is any test or metric that uses random sampling with replacement.

학습데이터가 고정되어 있을 때 그 안에서 sub sampling을 통해 학습데이터를 여러개를 만들고

이를 통해 여러 모델, metric을 만드는 것

 

 

Bagging vs Boosting

 

Bagging(Bootstrapping aggregating)

Multiple models are being trained with bootstrapping.

ex)Base classifiers are fitted on random subset where individual predictions are aggregated (voting or averaging).

학습데이터를 여러개를 만들어 여러 모델을 통해 output의 평균을 내는 것 (앙상블)

 

Boosting

It focuses on those specific training samples that are hard to classify.
A strong model is built by combining weak learners in sequence where each learner learns from the mistakes of the previous weak learner.

여러개의 모델을 만들어 합치는 것 , 여러개의 weak learne가 하나의 strong model을 만드는 것

 

Gradient Descent Methods

 

Stochastic gradient descent - Update with the gradient computed from a single sample

Mini-bath gradient descent - Update with the gradient computed from a subset of data

Batch gradient descent - Update with the gradient computed from the whole data

 

Batch-size Matters

"It has been observed in practice that when using a larger batch there is a degradation in the quality of the model, as measured by its ability to generalize"

 

"We ... present numerical evidence that supports the view that large batch methods tend to converge to sharp minimizers of the training and testing functions. In contrast, small-batch methods consistently converge to flat minimizers... this is due to the inherent noise in the gradient estimation."

 

 

Gradient Descent Methods

 

Stochastic gradient descent

Momentum

Nesterov accelerated gradient

Adagrad

Adadelta

RMSprop

Adam

 

Gradient Descent

 

Learning rate를 적절히 잡아주는 것이 중요합니다.

 

Momentum

 

Momentum의 장점은 한 번 흘러가기 시작한 gradient를 유지시켜줍니다.

 

Nesterov Accelerated Gradient

 

Adagrad

Adagrad adapts the learning rate, performing larger updates for infrequent and smaller updates for frequent parameters.

&nbsp;

parameter가 얼마나 변한지를 계산하여 많이 변한 parameter은 적게 변화시키고 적게 변한 parameter은 많이 변화시킵니다.

가장 큰 문제는시간이 지날수록 G(Sum of gradient squares)는 계속해서 커지기때문에 결국에는 G가 무한대로 가게되면 W의 업데이트가 진행지지않습니다.

Adadelta extends Adagrad to reduce its monotonically decreasing the learning rate by restricting the accumulation window.

Adadelta의 큰 특징은 learning rate가 없습니다. 우리가 바꿀수있는 요소가 많지않기때문에 많이 활용되는 방법은 아닙니다.

 

RMSprop

RMSprop is an unpublished adaptive learning rate method proposed by Geoff Hinton in his lecture.

 

Adam

Adaptive Moment Estimation (Adam) leverages both gradients and squared gradients.

 

Regularization

 

Early stopping

Parameter norm penalty

Data augmentation

Noise robustness

Label smoothing

Dropout

Batch normalization

 

Early Stopping

추가적인 validation error 가 필요합니다.

Parameter Norm Penalty

It adds smoothness to the function space

function space 속에서 함수를 최대한 부드러운 함수로 보자라는 관점

 

Data Augmentation

More data are always welcomed

데이터가 적을때는 DL보다 Neural Networks , ML이 효과적입니다. 

However, in most cases, training data are given in advance

In such cases, we need data augmentation

데이터 수를 늘리는 것을 Data Augmentation입니다.↓

 

Noise Robustness

 

Add random noise inputs or weights
입력값에 noise를 집어넣는 것 (weight, input) > 결과가 잘나옴 

 

Label Smoothing

 

Mix-up constructs augmented training examples by mixing both input and output of two randomly selected training data
데이터 2개를 뽑아서 이 2개를 섞어주는 것

 

Cutmix constructed augmented training examples by mixing inputs with cut and paste and outputs with soft labels of two randomly selected training data.

Cutout 은 일정 부분을 빼버리는 것입니다.

 

Dropout

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.

 

There are different variances of normalization

 

 

 


출처

 

[부스트캠프 AI Tech 3기] Pre-Course

 

728x90