심층 신경망에서의 배깅 대 드롭 아웃


17

배깅은 단일 예측 변수처럼 작동하는 여러 예측 변수를 생성하는 것입니다. 드롭 아웃은 모든 가능한 서브 네트워크를 평균화하도록 신경망에 가르치는 기술입니다. 가장 중요한 Kaggle의 경쟁을 살펴보면이 두 기술이 매우 자주 사용되는 것 같습니다. 실제 구현 외에 이론적 인 차이점을 볼 수 없습니다. 실제 응용 프로그램에서 왜 두 가지를 사용해야하는지 누가 설명 할 수 있습니까? 두 가지를 모두 사용할 때 왜 성능이 향상됩니까?

답변:


21

배깅과 드롭 아웃은 모두 같은 결과를 얻지 못하지만 둘 다 모델 평균화 유형입니다.

배깅 은 전체 데이터 세트에서 작업으로, 훈련 데이터의 하위 세트에서 모델을 훈련시킵니다. 따라서 일부 교육 예제는 주어진 모델에 표시되지 않습니다.

반대로 Dropout 은 각 교육 예제의 기능에 적용됩니다. 결과는 기하 급수적으로 많은 네트워크를 공유하고 (무게를 공유합니다!) 출력에 동일한 가중치를 부여하는 것과 기능적으로 동일합니다. 그러나 드롭 아웃은 기능 공간에서 작동하므로 전체 예제가 아닌 네트워크에서 특정 기능을 사용할 수 없습니다. 각 뉴런이 하나의 입력에 완전히 의존 할 수 없기 때문에 이러한 네트워크의 표현은보다 분산 된 경향이 있으며 네트워크가 과적 합 될 가능성이 적습니다.


좋은 설명은 +1입니다. 파이썬 구현이 수행되는 링크를 알고 있습니까? 블로그 나 Github?
Dawny33

여기에 괜찮은 것이 있습니다 : deeplearning.net/tutorial/lenet.html 이 스타일은 neuralnetworksanddeeplearning.com/chap6.html을 선호합니다 . 구현과 큰 데모를 들어, keras 같은 I (매우 쉽게 핍에 설치) keras.io
jamesmf

2

Max Out Networks 에서 두 종류의 네트를 비교 한 결과 는 다음과 같습니다.

드롭 아웃 교육은 배깅과 유사합니다 (Breiman, 1994). 다양한 모델이 데이터의 다른 하위 집합에 대해 훈련됩니다. 드롭 아웃 교육은 각 모델이 한 단계 만 교육되고 모든 모델이 매개 변수를 공유한다는 점에서 배깅과 다릅니다. 이 학습 절차 (드롭 아웃)가 단일 모델이 아닌 앙상블을 학습하는 것처럼 동작하려면 각 업데이트가 큰 영향을 미쳐서 그에 의해 유도 된 하위 모델이 현재 입력 v에 잘 맞도록합니다.

도움이 되길 바랍니다.


0

드롭 아웃 은 훈련 후 숨겨진 레이어에 일부 뉴런 (따라서 왼쪽 아웃 뉴런의 이름 드롭 아웃)을 제거하여 대규모 신경망에서 과적 합을 피하기 위해 사용되는 정규화 기술입니다. 기본적으로 네트워크가 실제로 훈련하는 동안 무언가를 배운 경우 일부 뉴런을 제거하면 예측의 정확도에 부정적인 영향을 미치지 않아야합니다.

배깅 (Bagging )은 효과적인 정규화 기법으로, 초기 / 대형 훈련 데이터 세트와는 다른 데이터 하위 집합에 대해 훈련 된 여러 복사본을 사용하여 훈련 데이터의 편차를 줄이고 모델의 정확도를 향상시키는 데 사용됩니다.

질문을보십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.