정규화 (Regularization)

컴퓨터과학·AI
한 줄 정의: 모델이 특정 가중치에 지나치게 의존하지 않도록, 가중치가 커질수록 손실함수에 벌점을 추가하는 기법입니다.

쉽게 풀면

시험공부를 할 때 답을 통째로 외우면 그 문제집에서는 만점을 받지만, 문제를 조금만 바꿔도 틀리기 쉽습니다. 모델도 마찬가지로 학습 데이터의 세세한 패턴까지 가중치를 크게 키워가며 외워버리면 과적합이 생깁니다. 정규화는 "가중치가 너무 커지면 벌점을 매기겠다"는 규칙을 손실함수에 추가해서, 모델이 몇 개의 특징에만 과하게 의존하지 않고 전체적으로 무난하게 학습하도록 유도합니다. 대표적으로 가중치의 절댓값 합에 벌점을 주는 L1(라쏘)과, 가중치의 제곱합에 벌점을 주는 L2(릿지)가 있습니다. L1은 중요하지 않은 가중치를 아예 0으로 만들어 특징을 자동으로 골라내는 효과가 있고, L2는 모든 가중치를 고르게 작게 유지하는 효과가 있습니다.

왜 중요한가

정규화는 과적합을 억제해 모델이 새로운 데이터에도 잘 작동하도록 만드는 가장 기본적인 장치이기 때문에, 머신러닝과 딥러닝 논문에서 모델 구조만큼이나 중요하게 다뤄집니다. 특히 데이터에 비해 모델의 파라미터 수가 많은 경우(고차원 회귀, 대규모 신경망 등) 정규화 없이는 학습 데이터에만 맞춰진 무의미한 모델이 나오기 쉽기 때문에, 새로운 모델을 제안하는 논문에서는 대부분 어떤 정규화 기법을 어떻게 적용했는지를 실험 설정에서 명시합니다.

논문에서는 이렇게 쓰입니다

"과적합을 완화하기 위해 손실함수에 계수 0.01의 L2 정규화(regularization) 항을 추가하였다."

이 문장은 "가중치가 커질수록 손실이 함께 커지도록 벌점 항을 넣어서, 모델이 학습 데이터에만 과도하게 맞춰지는 것을 막았다"는 뜻입니다.

"L1 정규화를 적용한 결과 다수의 특징 변수 가중치가 0으로 수렴하여, 최종 모형에는 상대적으로 소수의 특징만이 유의미하게 남았다."

이 문장은 L1 정규화가 중요하지 않은 변수의 가중치를 아예 0으로 만들어, 자동으로 중요한 변수만 골라내는 특징 선택(feature selection) 효과를 냈다는 것을 보여줍니다. 고차원 데이터를 다루는 회귀 분석 연구에서 흔히 등장하는 결과입니다.

조금 더 깊게 보면

L1과 L2 정규화는 함께 사용되기도 하는데, 이 둘을 결합한 방식을 엘라스틱넷(Elastic Net)이라고 부릅니다. 정규화의 세기는 흔히 λ(람다)로 표기되는 하이퍼파라미터로 조절하며, 이 값이 너무 크면 모델이 지나치게 단순해져 오히려 성능이 떨어지는 과소적합이 나타날 수 있어 교차검증 등을 통해 적절한 값을 탐색하는 것이 일반적입니다. 딥러닝에서는 가중치에 직접 벌점을 주는 방식 외에도 드롭아웃, 데이터증강, 조기종료(early stopping)처럼 과적합을 억제하는 넓은 의미의 정규화 기법들이 함께 쓰이기도 합니다.

주의할 점

정규화는 뉴런을 무작위로 꺼서 과적합을 막는 드롭아웃과 자주 혼동되지만, 방식이 다릅니다. 정규화는 손실함수 자체에 벌점을 더해 가중치의 "크기"를 억제하는 방법이고, 드롭아웃은 학습 중 일부 뉴런을 랜덤하게 비활성화하는 방법입니다. 두 기법 모두 과적합을 줄이는 목적은 같지만 함께 사용되는 경우도 많습니다.

관련 용어