본문 바로가기

데이터 다루기/신경망

[신경망] 13. Regularization

728x90
반응형

안녕하세요, 이번 포스팅에서는 Regularization에 대해서 배워보도록 하겠습니다.

Regularization은 우선 모델을 훈련시킬 때, overfitting이 되는것을 방지하기 위해서 사용합니다.

Regularization 방법으로 자주 쓰이는 것을 살펴보면 총 4가지가 있습니다.

1. L2 Regularization

L2 Regularization가 사용되는 경우를 알아보도록 하겠습니다.

모델의 학습과정을 살펴보면, error function의 값이 작아지는 방향으로 학습이 진행됩니다. 단순하게 error가 작아지는 쪽으로만 진행을 하다 보면, 특정 가중치 값들만 커지게 되고, 결과 값이 특정 가중치에만 결정되게 되는 경우가 발생합니다. 즉 새로운 데이터가 들어왔을 때 특정 변수에 의해서만 결정되므로 심한 overfitting문제를 발생시킬 수 있습니다.

이 문제를 해결하기 위해서 L2 Regularization은 가중치의 크게에 Penalty를 추가한 항을 이용합니다.

예를 들어서, x = (1,1,1,1) 에 대하여 W1=(1,0,0,0) , W2=(0.25,0.25,0.25,0.25) 2개의 Weight가 존재할 때, L2에서는 W2를 W1보다 선호하게 됩니다.

2. L1 Regularization

L1 Regularization가 사용되는 경우를 알아보도록 하겠습니다.

L1 Regularization는 L2 Regularization 와 비슷한 성격을 가지지만, 용도는 반대입니다.

L1 Regularization은 중요하지 않은 가중치를 전부 0으로 수렴하게 만듭니다. 즉 몇 개의 중요한 가중치만을 남기고, 그 것들을 이용하여 Error function을 최소화 시키는 값으로 학습을 시켜 나갑니다.

예를 들어서, x = (1,1,1,1) 에 대하여 W1=(1,0,0,0) , W2=(0.25,0.25,0.25,0.25) 2개의 Weight가 존재할 때, L2에서는 W1를 W2보다 선호하게 됩니다.

3. Max-norm Regularization

Max-norm Regularization은 가중치 벡터의 길이가 미리 정해 높은 상한 값을 넘지 못하도록 제한하면서 gradient descent 연산도 제한 된 조건 하에서만 계산되도록 하는 projected gradient descent를 사용합니다. 일반적인 방법으로 파라미터를 업데이트 하고, 모든 뉴런의 가중치 벡터 w에 대하여 ||2w||2 <c 를 만족하도록 제한을 가합니다. 일반적으로 c는 3 or 4로 정해집니다.

4. Dropout Regularization

Dropout Regularization 한 번의 학습마다 네트워크 형태를 변형시키는 것입니다.

Fully connected network 각 노드들이 Drop rate의 확률을 가지고 살아남을지 없어질지 정해집니다.

예를 들어서 Drop rate가 0.5라면 약 절반 정도의 노드들이 살아남고, 나머지 절반 노드들은 사라지겠네요.

실제로 고양이를 학습할 때, 너무 많은 특징들을 사용하면, 물론 Training 학습에는 좋은 결과를 낼지 모르겠지만, 새로운 데이터가 들어왔을 때, 예측결과가 좋지 못하게 되는 Overfitting 문제가 발생합니다.

Dropout Regularization은 필요없는 특징들을 제거 해줌으로써, Overfitting 문제를 해결합니다.

Dropout Regularization은 ensemble 방법과 매우 유사하다고 생각하시면 됩니다.

반응형