딥 러닝의 과적 합 문제에 대한 몇 가지 솔루션

오늘은 사람들이 매일 딥 러닝에서 과적 합 문제를 해결하는 방법에 대해 이야기 해 보겠습니다.

높은 편향은 과소 적합에 해당하고 높은 분산은 과적 합에 해당한다는 것을 누구나 알아야합니다.

다음으로 과적 합 문제를 해결합니다.

1. 정규화 (Regularization)

로지스틱 회귀에 도입 된 L2 정규화를 먼저 살펴 보겠습니다. 그 표현은 다음과 같습니다.

여기에 사진 설명 삽입
L1 정규화 방법도 있습니다. 표현식은 다음
여기에 사진 설명 삽입
같습니다. L2 정규화와 비교할 때 L1 정규화로 얻은 w는 더 희소합니다. 즉, 많은 w가 0입니다. 장점은 대부분의 w가 0이기 때문에 저장 공간을 절약하는 것입니다. 그러나 실제로 L1 정규화는 높은 분산을 해결하는 데 L2 정규화보다 더 유리하지 않습니다. 또한 L1은 차별화 측면에서 더 복잡합니다. 따라서 일반적으로 L2 정규화가 더 일반적으로 사용됩니다.

딥 러닝 모델에서
여기에 사진 설명 삽입
L2 정규화 의 표현은 다음과 같습니다. L2 정규화는 가중치 감소라고도합니다. 이는 정규 항의 추가로 인해 dw [l]에 증분이 있기 때문이며, w [l]을 갱신 할 때이 증분이 차감되어 정규항 some이없는 값보다 w [l]이 작아지기 때문입니다. 계속 반복하고 업데이트하고 계속 줄입니다.
여기에 사진 설명 삽입

2. 드롭 아웃 정규화

L2 정규화 외에도 과적 합을 방지하는 또 다른 효과적인 방법은 드롭 아웃 정규화 (손실 정규화)입니다.

드롭 아웃은 딥 러닝 네트워크의 훈련 과정에서 특정 확률에 따라 각 계층의 뉴런이 일시적으로 네트워크에서 삭제되는 것을 의미합니다. 즉, 각 훈련 중에 각 계층의 일부 뉴런이 작동하지 않아 복잡한 네트워크 모델을 단순화하고 과적 합을 방지 할 수 있습니다.
여기에 사진 설명 삽입

m 개 샘플의 경우 단일 훈련 반복에서 은닉층의 특정 수의 뉴런이 무작위로 삭제됩니다. 그런 다음 삭제 후 나머지 뉴런에서 가중치 w와 상수 항 b가 앞뒤로 업데이트됩니다. 한 번 반복하면 이전에 삭제 된 뉴런이 복원되고 특정 수의 뉴런이 다시 무작위로 삭제되며 w와 b가 정방향 및 역방향으로 업데이트됩니다. 반복 훈련이 완료 될 때까지 위의 과정을 계속 반복하십시오.

드롭 아웃 훈련을 사용한 후 모델을 테스트하고 실제로 적용 할 때 드롭 아웃을 수행하고 임의로 뉴런을 삭제할 필요가 없습니다. 모든 뉴런이 작동합니다.

요약하면, 동일한 훈련 데이터 세트에 대해 다른 신경망 훈련을 사용한 후 출력의 평균을 구하면 과적 합을 줄일 수 있습니다. Dropout은이 원리를 사용하여 매번 특정 수의 은닉층 뉴런을 삭제합니다. 이는 서로 다른 신경망에서 훈련하는 것과 같습니다. 이는 뉴런 간의 의존성을 줄여줍니다. 즉, 각 뉴런이 특정 수의 뉴런에 의존 할 수 없습니다. 다른 뉴런 (계층 사이에 연결된 뉴런 참조) 신경망은 다른 뉴런과 함께 더 강력한 기능을 학습 할 수 있습니다.

드롭 아웃을 사용할 때주의해야 할 몇 가지 사항이 있습니다. 첫째, 다른 히든 레이어의 드롭 아웃 계수 keep_prob는 다를 수 있습니다. 일반적으로 뉴런이있는 히든 레이어가 많을수록 keep_out은 0.5와 같이 작게 설정할 수 있습니다. 뉴런이 적은 히든 레이어는 더 크게 설정할 수 있습니다 (예 : 0.8, 1로 설정). 또한 실제 어플리케이션에서는 입력 레이어에 드롭 아웃을 수행하지 않는 것이 좋습니다. 입력 레이어가 그림과 같이 크기가 큰 경우 드롭 아웃을 설정할 수 있지만 keep_out은 0.8, 0.9와 같이 크게 설정해야합니다. . 일반적으로 과적 합의 숨겨진 레이어가 나타날 가능성이 높을수록 keep_prob는 더 작아집니다. 정확하고 고정 된 접근 방식은 없으며 일반적으로 유효성 검사를 기반으로 선택할 수 있습니다.

Dropout은 입력 레이어의 크기가 크고 샘플이 충분하지 않기 때문에 컴퓨터 비전 CV 분야에서 널리 사용됩니다. 드롭 아웃은 과적 합을 방지하기위한 정규화 기술이라는 점에 유의할 필요가 있습니다. 정규화가 필요할 때만 드롭 아웃을 사용하는 것이 가장 좋습니다.

드롭 아웃을 사용할 때 드롭 아웃이 올바르게 실행되는지 확인하기 위해 비용 함수를 그려 디버그 할 수 있습니다. 일반적인 접근 방식은 모든 레이어의 keep_prob를 1로 설정 한 다음 비용 함수, 즉 모든 뉴런을 덮고 J가 단조롭게 떨어지는 지 확인하는 것입니다. 다음 훈련 반복에서 keep_prob를 다른 값으로 설정합니다.

3. 기타 정규화 방법

L2 정규화 및 드롭 아웃 정규화 외에도 과적 합을 줄이는 다른 방법이 있습니다.

한 가지 방법은 훈련 샘플 수를 늘리는 것입니다. 그러나 일반적으로 비용이 높고 추가 학습 샘플을 얻기가 어렵습니다. 그러나 기존 학습 샘플에 대해 일부 처리를 수행하여 더 많은 샘플을 "제조"할 수 있습니다.이를 데이터 증가라고합니다. 예를 들어, 사진 인식 문제에서 기존 사진을 가로, 세로로 뒤집거나 임의의 각도로 회전하거나 확대 / 축소 할 수 있습니다. 아래 그림과 같이 이러한 프로세스는 새로운 학습 샘플을 "생성"할 수 있습니다. 원래 샘플을 기반으로하지만 학습 샘플 수를 늘리는 것이 여전히 매우 유용하며 추가 비용이 필요하지 않지만 과적 합을 방지 할 수 있습니다.
여기에 사진 설명 삽입
디지털 인식에서는 다음 그림과 같이 원본 디지털 사진을 임의로 회전 또는 왜곡하거나 약간의 노이즈를 추가 할 수도 있습니다. 과적 합
여기에 사진 설명 삽입
을 방지하는 또 다른 방법이 있습니다. 조기 중지입니다. 신경망 모델에 대한 반복 학습 수가 증가하면 학습 세트 오류는 일반적으로 단조롭게 감소하는 반면 개발 세트 오류는 먼저 감소한 다음 증가합니다. 즉, 학습 시간이 너무 많으면 모델이 학습 샘플에 더 잘 맞지만 검증 세트에 대한 피팅 효과가 점차 악화되어 과적 합이 발생합니다. 따라서 반복 학습 횟수가 최대한 많지 않고 반복 횟수가 변경됨에 따라 학습 설정 오류 및 개발 설정 오류를 통해 적절한 반복 횟수를 선택할 수 있습니다.
여기에 사진 설명 삽입
그러나 조기 중지에는 자체 단점이 있습니다. 일반적으로 기계 학습 학습 모델에는 두 가지 목표가 있습니다. 하나는 비용 함수를 최적화하고 J를 최소화하는 것이고 다른 하나는 과적 합을 방지하는 것입니다. 이 두 목표는 서로 반대됩니다. 즉, J를 줄이면 과적 합이 발생할 수 있으며 그 반대의 경우도 마찬가지입니다. 이 두 직교 화 사이의 관계를 호출합니다. 이 강의의 시작 부분에서 언급했듯이 딥 러닝에서는 Bias와 Variance를 동시에 줄여 최상의 신경망 모델을 구축 할 수 있습니다. 그러나 조기 중지의 연습은 J가 충분히 작지 않도록 훈련 수를 줄여 과적 합을 방지합니다. 즉, 조기 중지는 위의 두 가지 목표를 결합하고 동시에 최적화하지만 "분할 및 정복"효과가 없을 수 있습니다.

조기 중지와 비교하여 L2 정규화는 "분할 및 정복"효과를 얻을 수 있습니다. 충분한 반복 훈련은 J를 줄일 수 있으며 과적 합을 효과적으로 방지 할 수도 있습니다. L2 정규화의 단점 중 하나는 최적의 정규화 매개 변수 λ의 선택이 더 복잡하다는 것입니다. 이 시점에서 조기 중지는 비교적 간단합니다. 일반적으로 L2 정규화가 더 일반적으로 사용됩니다.

추천

출처blog.csdn.net/weixin_49005845/article/details/110857179