ML

Regularization Method

술임 2023. 1. 30. 14:57

규제 기법

; 일반화 오류를 줄이기 위해 학슴 알고리즘을 수정하는 방법

- 명시적 규제와 암시적 규제로 나뉨

- 용량이 충분히 큰 모델에 여러 가지 규제 기법을 적용해서 일반화 능력을 높일 수 있음

명시적 규제 

: 목적함수나 신경망 구조를 직접 수정

e.g. 가중치 감쇠, 드롭아웃

암시적 규제

: 간접적으로 영향을 미침

e.g. 조기 멈춤, 데이터 증대, 잡음 추가, 앙상블

 

가중치 벌칙

규제항

규제를 적용한 목적함수                                                                        목적함수                                    규제항

- 노드를 연결하는 가중치는 노드 사이의 상호작용을 표현해서 규제가 필요함

cf) 바이어스는 하나의 노드에만 관련되어 규제하지 않아도 됨

- 규제항은 훈련집합과 무관, 가중치 크기에 제약을 가하는 역할만 함

--> 가중치가 커지면 규제항이 커지고, 목적함수가 증가하므로 목적함수를 작아지게 하기 위하여 가중치의 크기에 제약

- 데이터와 무관한 원래 있는 사전 지식

- 규제항은 매개변수를 작은 값으로 유지해서 모델의 용량 제한

- 규제항으로 L1나 L2를 주로 사용

 

L2 Norm

출처 : https://kimziont.github.io/dl_theory/regulation/

- L2놈을 사용하는 규제 기법이 가중치 감쇠(weight decay)

L2 놈을 사용한 가중치 감쇠 기법 효과

- 최종해를 원점 가까이 당기는 효과

 

L1 Norm

; 개별 요소의 절댓값을 모두 더한 값

- 해를 원점 방향으로 당기는 효과가 존재

- L1 놈을 사용하면 0이 되는 매개변수가 많음 : 희소성

- 0인 매개변수는 제거 가능 --> 0이 된 가중치를 제거해서 완전연결을 희소연결 구조로 바꿈

 

Early Stopping

- 학습을 오래시킬수록 훈련데이터를 암기해서 검증집합에 대해서는 일반화 능력이 하락함

--> 검증집합의 오류가 최저인 지점을 만나면 멈추는 전략이 효과적

- SGD의 내부 동작 수정하지 않은 채 적용 가능, 구현 간단

 

Data Augmentation

- 과잉적합을 방지하기 위한 가장 확실한 방법은 큰 훈련집합을 사용하는 것

e.g. 데이터가 영상이면 물체에 이동, 회전, 크기 변환 등을 가하면 됨

--> 선형 변환, 어파인 변환 affine transformation

 

Dropout

; 입력층과 은닉층의 노드 중 일정 비율을 임의로 선택해서 제거 / 선택된 노드는 들어오는 엣지와 나가는 엣지 모두 제거함

-> 제거하고 남은 부분 신경망으로 학습을 진행함

-> 특정 노드 몇개에만 지나치게 의존하지 않아서 입력값의 작은 변화에 덜 민감해짐

e.g. 회사에서 사람들이 일정 확률로 연차를 냄 -> 전문성이 여러 사람에게 나눠짐

 

- 예측 단계에서는 입력 테스트 샘플을 학습 시 사용했던 모든 신경망에 입력해서 예측 결과 받은 후 투표로 최종 결과를 결정

-> 앙상블 기법의 일종에 해당

 

- 가중치 공유 기법으로 하나의 신경망을 만듦

-> 여러 개의 독립적 신경망이 투표해서 의사결정하는 방식은 쓸 수 없음

-> 하나의 신경망으로 앙상블 효과를 거둠

 

- 드롭아웃 비율만큼 노드가 쉬므로 드롭아웃을 채택하지 않는 신경망에 비해 은닉 노드 수를 1/Phidden만큼 늘리라고 권장

- 보통 드롭아웃 확률을 0.1~0.5로 설정

- 최신 신경망 구조는 마지막 은닉층 뒤에만 드롭아웃 사용

 

Ensemble

; 여러 모델의 예측한 결과를 결합하여 일반화 오류를 줄임

- 계산 시간과 메모리를 추가로 지불해서 성능 향상을 얻고자 할 때 적용 시 효과적

- 서로 다른 예측기를 제작해야함

Model Averaging

여러 모델의 출력으로부터 평균을 구하거나 투표해서 최종 결과를 결정

Bagging(bootstrap aggregating)

- 부트스트랩 기법을 앙상블 기법으로 확장