카테고리 없음

[딥러닝]규제화(Regularization)

玄曄 2022. 3. 24. 12:04

[딥러닝]규제화(Regularization)

1. 의의

2. 효과

3. 규제 종류

4. 코딩

=====================

 

[딥러닝]규제화(Regularization)

 

1. 의의

○ 과대적합(overffing)을 방지하는 방법 중 하나

- 과대적합은 가중치의 매개변수 값이 커서 발생하는 경우가 많음. 

- 이를 방지하기 위해 큰 가중치 값에 큰 규제를 가하는 것

 규제

- 가중치의 절대값을 가능한 작게 만드는 것

- 가중치의 모든 원소를 0에 가깝게 하여 모든 특성이 출력에 주는 영향을 최소한으로 만드는 것을 의미

- 기울기를 작게 만드는 것을 의미

적절한 규제값을 찾는 것이 중요

 

2. 효과

가중치의 분포가 더 균일하게 됨.

복잡한 네트워크일수록 네트워크의 복잡독에 제한을 두어 가중치가 작은 값을 가지도록 함.

- 규제란 과대적합이 되지 않도록 모델을 강제로 제한한다는 의미

 

 

3. 규제 종류

기본방향 : 네트워크 손실함수에 큰 가중치와 연관된 비용을 추가

L1규제 : 가중치의 절대값에 비례하는 비용 추가

L1규제 : 가중치의 제곱값에 비례하는 비용 추가

위 두 규제가 합쳐진 경우

 

4. 코딩

l2_model = Sequential([Dense(16, kernel_regularizer=l2(0.001), activation='relu', input_shape=(10000,)),
                       Dense(16, kernel_regularizer=l2(0.001), activation='relu'),
                       Dense(1, activation='sigmoid')])