Naver Boostcamp

[DL Basic] 최적화

HaneeOh 2023. 8. 14. 13:12

1. Neural Networks

Neural networks are function approximators that stack affine transformations followed by nonlinear transformations

 

2. 최적화(Optimization)

일반화(Generalization)

How well the learned model will behave on unseen data

즉, training 성능 대비 test 성능이 얼마나 좋은지를 나타내는 지표이므로 모델의 절대적인 성능을 의미하지는 않는다. 따라서 generalization performance가 좋다고 해서 무조건 좋은 모델이라고 할 수는 없다.

 

과적합(Overfitting)

reference: Model Fit: Underfitting vs. Overfitting - Amazon Machine Learning

 

Model Fit: Underfitting vs. Overfitting - Amazon Machine Learning

We are no longer updating the Amazon Machine Learning service or accepting new users for it. This documentation is available for existing users, but we are no longer updating it. For more information, see What is Amazon Machine Learning. Model Fit: Underfi

docs.aws.amazon.com

 

Underfitting: 데이터에 비해 모델 네트워크가 너무 간단하거나 학습을 너무 적게 시킨 경우

Overfitting: 데이터에 비해 모델 네트워크가 너무 복잡하거나 학습을 너무 많이 시킨 경우

그러나 이건 단순 concept적인 이야기일 뿐이고, 실제로는 Overfitting과 같은 모델이 target인 경우도 있다.

 

Cross-validation(K-Fold)

Cross-validation is a model validation technique for assessing how the model will generalize to an independent test data set

Cross Validation in Machine Learning Trading Models (quantinsti.com)

 

Bias and Variance Tradeoff

 

We can derive that what we are minimizing($cost$) can be decomposed into three different parts: $bias^2$, $variance$, and $noise$

 

f: 실제 값, $\hat{f}$: 모델의 예측 값

타겟 t에는 노이즈가 껴있다고 가정한다. 학습 데이터에 noise가 껴있을 때는 bias와 variance를 동시에 줄이기가 어렵다.

 

부트스트래핑(Bootstrapping)

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

부트스트랩핑이란 복원 추출을 허용한 표본 재추출 방법을 말한다. 쉽게 말해서 뽑아서 사용한 데이터를 다시 집어넣는다는 의미이다.

예를 들어, 주머니에 10개의 공이 있는데 그중 3개는 빨간색 공이다. 이때 빨간색 공을 뽑을 확률은 3/10이다.

그런데 처음에 빨간색 공을 뽑고 주머니에 다시 넣지 않으면 확률은 2/9로 줄게 되지만 

빨간색 공을 주머니에 다시 넣으면 확률은 3/10으로 유지된다.

이렇게 데이터의 분포를 유지하면서 표본을 추출하는 방법을 bootstrpping이라고 한다.

 

배깅(Bagging)

배깅은 Bootstrap Aggregation의 약자이다. 배깅은 부트스트래핑(bootstrpping)을 통해 여러 모델을 학습시켜 결과를 집계(aggregation)하는 방식이다.카테고리형 데이터는 보팅(Voting)으로 결과를 집계하며 연속형 데이터는 평균으로 집계한다.

 

부스팅(Boosting)

부스팅은 가중치를 활용하여 weak classifier를 strong classifier로 만드는 방법이다.처음 모델이 예측을 하면 그 예측 결과에 따라 데이터에 가중치가 부여되고, 부여된 가중치가 다음 모델에 영향을 준다. 그러면 잘못 분류된 데이터에 집중하여 새로운 분류 규칙을 만드는 단계를 반복한다.

 

swallow.github.io

다음 그림처럼 bagging은 병렬로 학습하여 나중에 집계를 하는 반면, boosting은 순차적으로 학습을 진행한다.

 

 

 


reference: https://choice-life.tistory.com/62