규제/정규화(Regularization) : 머신러닝에서 모델이 과적합(overfitting)을 방지하도록 도와주는 기법
과적합(overfitting) : 모델이 훈련 데이터에 너무 잘 맞춰져 있어 새로운 데이터에 대해 일반화를 잘 하지 못하는 상태
-> 모델이 훈련 데이터에 대해 너무 복잡해지지 않도록 제약을 가함으로써 과적합을 해결하고자 다양한 규제 기법을 사용
베타값(파라미터값)에 제약을 줌으로써 모델을 정돈해주는 것이 규제(정규화)의 컨셉 -> 모델 일반화가 목표
대표적인 규제 기법들
- 선형회귀모델의 규제 3가지
1. 릿지 회귀 (L2 regression)
모델의 가중치의 제곱의 합에 비례하는 비용을 손실 함수에 추가
λ가 클수록 규제 강도가 세지므로 λ 값을 조절해 가중치 값(계수 값)을 더 줄이고 일반화되도록 유도함.
-> λ가 패널티를 얼마나 부과하는가를 조절하는 조절 버튼이라고 생각하면 됨.
기존의 값(L)이 제약조건까지 왔을 때가 최적값
가중치를 완전히 0으로 만들지는 않지만, 모든 특성에 대해 작은 가중치를 할당하여 모델을 안정적으로 만듦.
-> 상관성 있는 변수들에 대해서 적절한 가중치를 배분하는 데 유리
2. 라쏘 회귀 (L1 regression)
모델의 가중치의 절댓값의 합에 비례하는 비용을 모델의 손실 함수에 추가
λ가 클수록 규제 강도가 세지므로 λ 값을 조절해 가중치 값(계수 값)을 더 줄이고 일반화되도록 유도함.
기존의 값(L)이 제약조건까지 왔을 때가 최적값
릿지 회귀에 비해 최적값이 모서리 부분에서 나타날 확률이 높아 의미 없는 변수들에 대해 계수를 0에 가깝거나 0으로 추정 가능
-> 일부 가중치를 0으로 만들어 해당 특성의 영향을 모델에서 제거함으로써 특성 선택의 효과를 낼 수 있음
3.엘라스틱넷 (Elastic Net)
L1, L2 규제를 결합한 형태 -> L1 규제를 통해 불필요한 특성의 가중치를 0으로 만들고, L2 규제를 통해 모든 가중치를 작게 유지함으로써 모델의 복잡도를 조절하여 일반화 시킴.
특성들이 서로 강하게 연관되어 있거나, 특성의 수가 train data의 수보다 많을 때 유용하게 사용
aL1 + bL2로 정의 (a, b는 각각 L1, L2 규제의 alpha값)
그 외 규제 기법
1. 드롭아웃(Dropout)
주로 심층 신경망에서 사용되는 규제 기법
훈련 과정에서 무작위로 선택한 뉴런을 드롭아웃시켜, 즉 해당 뉴런의 출력을 0으로 설정하여 네트워크의 과적합을 방지함