최적해로 가는 길을 잘 찾을 수 있게 정규화(Regularization)하는 것이 중요함
최적화 과정에서 최적해를 잘 찾도록 정보를 추가하는 기법으로, 최적화 과정에서 성능을 개선할 수 있는 포괄적인 기법들을 포함한다.
1. 최적해가 어떤 공간에 있는지 알려줌
2. 손실함수를 부드럽게 만듦
3. 최적해 주변을 평평하게 만듦
4. 모델과 데이터에 확률적 성질을 부여하여 다양한 상황에서 학습하는 효과를 줄 수 있음
일반화 오류
모델의 훈련 성능과 검증/ 테스트 성능의 차를 일반화 오류(Generalization error)라고 함
일반화 오류가 적을수록 일반화가 잘된 모델임
신경망은 모델이 크고 복잡하기 때문에 파라미터 공간이 크고 학습 데이터가 많이 필요함 이러한 이유로 과적합되기 쉬우니 신경망을 학습할때는 정규화를 꼭 해줘야 함
정규화 접근 방식
정규화의 기본적인 접근 방식은 다음과 같음
1. 모델을 최대한 단순하게 만든다.
- 단순한 모델은 파라미터 수가 적어서 과적합이 덜 생긴다. 학습과정에서 불필요한 가중치를 0으로 날려 과적합을 막을 수 있음 (L1 정규화)
2. 사전 지식을 표현해서 최적해를 빠르게 찾도록 한다.
- 사전 지식을 표현하는 방식은 다양하며 그중 하나가 데이터나 모델에 대한 사전 분포를 이용하여 정확하고 빠르게 해를 찾는 방법임
- 가중치의 사전 분포를 손실 함수의 일부 항으로 표현해서 가중치의 크기를 조절하는 정규화 기법
3. 확률적 성질을 추가한다.
- 데이터 또는 모델, 훈련 기법 등에 확률 성질을 부여하여 조금씩 변화된 형태로 데이터를 처리함으로 다양한 상황에서 학습 효과를 줄 수 있다.
- 데이터 증강, 잡음 주입, 드롭아웃이 여기에 해당함
4. 여러 가설을 고려하여 예측한다.
- 하나의 모델로 예측하지 않고 여러 모델로 동시에 예측해서 그 결과에 따라 최종 예측하는 방식
배치 정규화(Batch Normalization)
계층을 지날 때마다 데이터 분포가 보이지 않는 요인에 의해 조금씩 왜곡되기 때문에 이를 막기 위해서 가중치 초기화를 잘해야 하고 학습률도 작게 사용하야 함 -> 학습 속도가 느려짐
내부 공변량 변화(Internal Covariate Shift)
데이터가 보이지 않는 요인에 의해 왜곡되는 현상
내부 공변량이 바뀌면 다음과 같이 각 계층의 데이터 분포가 조금씩 멀어지고 이는 계층이 깊어질수록 더 큰 영향을 끼침
배치 정규화 방법
데이터가 계층을 지날 때마다 매번 정규화해서 내부 공변량 변화를 없애는 방법
배치 정규화가 다른 정규화 방법과 다른 점은 모델의 계층 형태로 데이터 정규화를 실행한다는 점이다. 따라서 배치 정규화를 하면 모델이 실행될 때마다 해당 계층에서 매번 데이터 정규화가 일어남
전체 데이터레 대해 정규화 하는 것이 아니고 미니배치에 대해 정규화함
표준 가우시안 분포로 정규화
데이터의 크기가 작아지면 내부 공변량의 변화도 작게 만들 수 있기 때문
각 계층마다 실시해 주면 원리적으로는 계층을 지나면서 생기는 데이터 오차의 크기를 줄일 수 있고 이로 인해 누적 오차도 작게 만들 수 있음
문제점
표준 가우시안 분포를 사용할 경우 비선형성을 제대로 표현할 수 없는 문제가 생길 수 있음
이러한 문제점이 있기 때문에 모델의 비선형성을 잘 표현하기 위해서는 데이터를 정규화하고 다시 원래 데이터로 복구해야 함
여기서 평균(\( \beta ^{k} \))와 분산(\( \gamma ^{k} \))를 어떻게 구해야 할까? 원래 데이터의 평균과 표준편차를 사용하면 되겠지만 실제 미니배치에서의 평균과 분산은 실제 데이터의 분포를 표현하지 못함
따라서 평균과 표준편차는 모델의 학습 과정에서 따로 구해야 함
알고리즘
학습 단계에서는 미니배치 단위의 평균과 분산으로 정규화를 실행하지만 테스트 단계에서는 전체 데이터의 평균, 분산으로 정규화를 함
일반적으로 가중합산 뒤에 배치 정규화를 실시하는 것이 성능이 좋지만 활성함수 이후에 적용하고 성능을 검증해 볼 필요가 있음
이미지 정규화
배치 정규화를 이미지에 적용할 때는 채널 단위로 정규화를 수행함(이미지의 경우 차원이 높기 때문)
RNN: 계층 정규화(Layer normalization)
GAN: 인스턴스 정규화(instance normalization)
미니배치 크기가 작을 때는 그룹 정규화(Group normalization)를 사용함
배치 정규화를 실시하면 내부 공변량 변화가 최소화가 되기 때문에 그레이디언트의 흐름이 원활해지고 그에 따라 학습이 안정됨, 최근 연구에 따르면 내부 공변량을 없애기보다는 손실과 그레이디언트 변화를 제약하여 곡면을 부드럽게 만들어 줌으로써 모델의 학습 성능이 향상한다는 것이 증명됨
'Machine Learning > 기법' 카테고리의 다른 글
[통계] 통계 기초 (0) | 2023.03.16 |
---|---|
[ML] 머신러닝 Machine Learning 앙상블 Ensemble (0) | 2023.01.17 |
[ML] Optimizer 옵티마이저, 최적화 (0) | 2023.01.13 |
[ML] 손실 함수 (0) | 2023.01.10 |
[ML] 경사하강법 (0) | 2023.01.09 |