딥러닝을 공부하다 보면 [정규화]라는 말을 정~~~~~~~~~말 많이 듣는다.
그러나 이 정규화는 사실 2가지의 전혀 다른 개념을 가지고 있다.
그 2가지란 바로 Normalization과 Regularization이다.
Normalization, Regularization, 이 2가지 모두 한국어로 [정규화]라고 똑같이 번역이 된 탓에 [정규화]라는 말을 들으면
도대체 어떤 정규화를 말하는 지 매우 헷갈린다.
이번 기회에 정규화의 2가지 개념에 대한 차이점을 분명히 하고자 블로그에 정리를 하였다.
Normalization(정규화)
결론부터 말하자면, Normalization은 어떠한 종류 Value들의 분산의 정도를 조절하여 입력 데이터나 중간 레이어의 활성화
값을 조정하여 학습을 안정화시키거나 속도를 향상시키는 기법입니다.
([컴퓨터 비전과 딥러닝]의 p380에서 Normalization을 이용하여 명암 변화에 둔한 특징 벡터를 만들어 내는 예시가 있다)
Regularization(정규화)
Regularization(정규화)는 모델의 복잡도를 제어하여 오버피팅을 방지하고 일반화 성능을 향상시키는 기법입니다.
주요 형태로는 L1 정규화, L2 정규화, 드롭아웃 등이 있다.
나는 아직 L1,L2 정규화에 대한 개념이 잡혀 있지 않기에 Drop Out으로 Regularization에 대해 예시를 들며 설명을 해 보겠
다.
FC( Fully - Connection ) Model에서 너무 많은 노드로 인한 가중치 연결(Edge Connection)은 Over Fitting을 일으킬 수가
있다.
이러한 Over Fitting을 방지하기 위하여 Layer의 n개의 노드 중 일부의 노드에 대해 가중치 연결(Edge Connection)을 끊어
버리는 기법이 바로 Drop Out이다.