google.com, pub-9850333530125189, DIRECT, f08c47fec0942fa0 딥러닝 신경망을 위한 앙상블 학습 방법
본문 바로가기
카테고리 없음

딥러닝 신경망을 위한 앙상블 학습 방법

by ╰(*°▽°*)╯(¬_¬ ) 2022. 2. 27.
반응형

딥러닝 신경망을 위한 앙상블 학습 방법

여러 모델의 예측을 결합하여 성능을 개선하는 방법

딥 러닝 신경망은 비선형 방법입니다.

향상된 유연성을 제공하고 사용 가능한 교육 데이터의 양에 비례하여 확장할 수 있습니다. 이 유연성의 단점은 확률적 훈련 알고리즘을 통해 학습한다는 것입니다. 즉, 훈련 데이터의 세부 사항에 민감하고 훈련할 때마다 다른 가중치 집합을 찾을 수 있으므로 차례로 다른 예측을 생성할 수 있습니다.

일반적으로 이를 분산이 큰 신경망이라고 하며 예측에 사용할 최종 모델을 개발하려고 할 때 답답할 수 있습니다.

신경망 모델의 분산을 줄이는 성공적인 접근 방식은 단일 모델 대신 여러 모델을 훈련하고 이러한 모델의 예측을 결합하는 것입니다. 이를 앙상블 학습이라고 하며 예측의 분산을 줄일 뿐만 아니라 단일 모델보다 더 나은 예측을 생성할 수 있습니다.

-신경망 모델은 비선형이고 분산이 높기 때문에 예측을 위한 최종 모델을 준비할 때 좌절할 수 있습니다.

-앙상블 학습은 여러 신경망 모델의 예측을 결합하여 예측의 분산을 줄이고 일반화 오류를 줄입니다.

-앙상블 학습 기법은 훈련 데이터, 모델, 예측 결합 방식 등 다양한 요소별로 그룹화할 수 있습니다.

모든 예제에 대한 단계별 자습서와 Python 소스 코드 파일을 포함하여 내 새 책 Better Deep Learning으로 프로젝트를 시작하세요.

신경망 모델의 높은 다양성

심층 신경망 훈련은 계산 비용이 매우 많이 들 수 있습니다.

수백만 개의 예제로 훈련된 매우 깊은 네트워크는 훈련하는 데 며칠, 몇 주, 때로는 몇 달이 걸릴 수 있습니다.

Google의 기본 모델은 많은 수의 코어에서 비동기 확률적 경사 하강법을 사용하여 약 6개월 동안 훈련된 심층 합성곱 신경망이었습니다.

많은 시간과 자원을 투자한 후에는 최종 모델이 훈련 중에 볼 수 없는 예제에서 잘 수행되고 일반화 오류가 낮을 것이라는 보장이 없습니다.

... 많은 다른 후보 네트워크를 훈련시킨 다음 가장 좋은 것을 선택하고 나머지는 버립니다. 이러한 접근 방식에는 두 가지 단점이 있습니다. 첫째, 나머지 네트워크를 훈련하는 데 드는 모든 노력이 낭비됩니다. 둘째, 검증 세트에서 최고의 성능을 보인 네트워크가 새로운 테스트 데이터에서 최고의 성능을 보인 네트워크가 아닐 수 있습니다.

신경망 모델은 비선형 방법입니다. 이는 데이터에서 복잡한 비선형 관계를 학습할 수 있음을 의미합니다. 이 유연성의 단점은 초기 무작위 가중치와 훈련 데이터 세트의 통계적 노이즈 측면에서 초기 조건에 민감하다는 것입니다.

학습 알고리즘의 이러한 확률적 특성은 신경망 모델이 학습될 때마다 입력에서 출력으로 매핑 기능의 약간(또는 극적으로) 다른 버전을 학습할 수 있음을 의미하며, 이는 차례로 학습 및 홀드 아웃에서 다른 성능을 갖게 됩니다. 데이터 세트.

이와 같이 신경망은 편향이 낮고 분산이 높은 방법이라고 생각할 수 있습니다. 높은 분산을 충족하기 위해 대규모 데이터 세트에 대해 학습한 경우에도 예측에 사용하도록 의도된 최종 모델에 분산이 있으면 좌절할 수 있습니다.

모델 앙상블을 사용하여 분산 줄이기

신경망의 높은 분산에 대한 솔루션은 여러 모델을 훈련하고 예측을 결합하는 것입니다.

아이디어는 양호하지만 서로 다른 여러 모델의 예측을 결합하는 것입니다.

좋은 모델에는 기술이 있습니다. 즉, 예측이 무작위 확률보다 낫습니다. 중요한 것은 모델이 여러 면에서 우수해야 한다는 것입니다. 그들은 다른 예측 오류를 만들어야 합니다.

모델 평균화가 작동하는 이유는 일반적으로 다른 모델이 테스트 세트에서 동일한 오류를 모두 만들지는 않기 때문입니다.

여러 신경망의 예측을 결합하면 단일 훈련된 신경망 모델의 분산에 대응하는 편향이 추가됩니다. 결과는 훈련 데이터의 세부 사항, 훈련 계획의 선택 및 단일 훈련 실행의 우연성에 덜 민감한 예측입니다.

앙상블은 예측의 분산을 줄이는 것 외에도 단일 최상의 모델보다 더 나은 예측을 제공할 수 있습니다.

위원회의 성과는 고립되어 사용되는 최고의 단일 네트워크의 성과보다 더 나을 수 있습니다.

이 접근 방식 은 동일한 문제에 대해 준비된 여러 모델의 예측을 최대한 활용하려는 방법을 설명하는 " 앙상블 학습 "이라는 일반적인 방법 클래스에 속합니다.

일반적으로 앙상블 학습은 동일한 데이터 세트에서 둘 이상의 네트워크를 훈련한 다음 훈련된 각 모델을 사용하여 예측을 수행한 다음 어떤 방식으로든 예측을 결합하여 최종 결과 또는 예측을 만드는 것을 포함합니다.

사실, 모델의 앙상블은 가장 안정적이고 가능한 최상의 예측이 이루어지도록 하기 위한 응용 기계 학습의 표준 접근 방식입니다.

예를 들어, Alex Krizhevsky, et al. 사진 분류(예: AlexNet)를 위한 매우 깊은 합성곱 신경망을 도입한 " 깊은 합성곱 신경망을 사용한 이미지 넷 분류 "라는 제목의 유명한 2012년 논문에서 성능이 좋은 여러 CNN 모델에서 모델 평균을 사용하여 최신 결과를 얻었습니다. 시간. 한 모델의 성능을 2개, 5개 및 7개의 다른 모델에 대해 평균한 앙상블 예측과 비교했습니다.

5개의 유사한 CNN의 예측을 평균하면 16.4%의 오류율이 나타납니다. […] 앞서 언급한 5개의 CNN으로 사전 훈련된 2개의 CNN 예측을 평균하면 15.3%의 오류율이 나옵니다.

앙상블은 기계 학습 대회에서 우승자가 사용하는 접근 방식이기도 합니다.

작업에서 최상의 결과를 얻기 위한 또 다른 강력한 기술은 모델 앙상블입니다. [...] 머신 러닝 대회, 특히 Kaggle의 경우 우승자들이 아무리 훌륭하더라도 단일 모델을 필연적으로 능가하는 매우 큰 모델 앙상블을 사용한다는 것을 알 수 있습니다.

신경망 모델을 앙상블 하는 방법

아마도 가장 오래되고 가장 일반적으로 사용되는 신경망 앙상블 접근 방식을 " 네트워크 위원회 "라고 합니다.

동일한 구성과 다른 초기 무작위 가중치를 가진 네트워크 모음은 동일한 데이터 세트에서 학습됩니다. 그런 다음 각 모델을 사용하여 예측을 수행하고 실제 예측은 예측의 평균으로 계산합니다.

앙상블의 모델 수는 훈련 모델의 계산 비용과 앙상블 구성원을 추가하면 성능이 저하되기 때문에 종종 작게 유지됩니다. 앙상블은 3개, 5개 또는 10개의 훈련된 모델만큼 작을 수 있습니다.

앙상블 학습 분야는 잘 연구되었으며 이 단순한 주제에 많은 변형이 있습니다.

앙상블 방법의 세 가지 주요 요소를 각각 다르게 생각하는 것이 도움이 될 수 있습니다. 예를 들어: 훈련 데이터 : 앙상블에서 각 모델을 훈련하는 데 사용되는 데이터 선택을 다양화합니다.

앙상블 모델 : 앙상블에 사용되는 모델을 다양하게 선택합니다.

조합 : 앙상블 구성원의 결과가 조합되는 방식을 다양하게 선택합니다.

각 요소를 차례로 자세히 살펴보겠습니다.

다양한 훈련 데이터

앙상블의 각 구성원을 훈련하는 데 사용되는 데이터는 다양할 수 있습니다.

가장 간단한 접근 방식은 k-겹 교차 검증을 사용하여 선택한 모델 구성의 일반화 오류를 추정하는 것입니다. 이 절차에서는 k개의 서로 다른 모델이 학습 데이터의 k개의 서로 다른 하위 집합에 대해 학습됩니다. 그런 다음 이러한 k 모델을 저장하고 앙상블의 구성원으로 사용할 수 있습니다.

또 다른 인기 있는 접근 방식은 훈련 데이터 세트를 교체로 다시 샘플링한 다음, 다시 샘플링된 데이터 세트를 사용하여 네트워크를 훈련시키는 것입니다. 리샘플링 절차는 데이터 세트에 대해 훈련된 모델이 샘플의 밀도에 대해 약간 다른 기대치를 가질 수 있도록 하는 중복된 예제의 가능성과 함께 각 훈련 데이터 세트의 구성이 다르고 차례로 다른 일반화 오류를 의미합니다.

이 접근 방식을 부트스트랩 집계 또는 줄여서 배게라고 하며 높은 분산과 낮은 편향을 갖는 정리되지 않은 결정 트리와 함께 사용하도록 설계되었습니다. 일반적으로 준비가 빠르다는 점을 감안할 때 수백 또는 수천과 같은 많은 수의 의사 결정 트리가 사용됩니다.

... 분산을 줄여 통계적 학습 방법의 예측 정확도를 높이는 자연스러운 방법은 모집단에서 많은 훈련 세트를 가져와서 각 훈련 세트를 사용하여 별도의 예측 모델을 만들고 결과 예측을 평균화하는 것입니다. [...] 물론, 우리는 일반적으로 여러 훈련 세트에 액세스 할 수 없기 때문에 실용적이지 않습니다. 대신 (단일) 훈련 데이터 세트에서 반복 샘플을 가져와 부트스트랩 할 수 있습니다.

동등한 접근 방식은 더 빠른 훈련과 일부 과적합을 허용하기 위해 정규화 없이 훈련 데이터 세트의 더 작은 하위 집합을 사용하는 것일 수 있습니다.

약간 덜 최적화된 모델에 대한 열망은 보다 일반적으로 앙상블 멤버 선택에 적용됩니다.

… 위원회 구성원은 편향과 분산 간의 최적의 균형을 갖도록 개별적으로 선택되어서는 안 되며, 평균을 통해 추가 분산을 제거할 수 있기 때문에 상대적으로 더 작은 편향을 가져야 합니다.

다른 접근 방식은 입력 공간의 하이퍼 볼륨의 하위 집합 또는 입력 기능의 하위 집합과 같이 각 모델에 할당할 입력 공간의 임의 부분 공간을 선택하는 것을 포함할 수 있습니다.

앙상블 튜토리얼

훈련 데이터를 변경하는 딥 러닝 앙상블의 예는 다음을 참조하세요.

딥 러닝을 위한 랜덤 분할, 교차 검증 및 배경 앙상블을 개발하는 방법 다양한 모델

초기 조건이 다른 동일한 데이터에서 동일한 under-constrained 모델을 훈련하면 문제의 난이도와 학습 알고리즘의 확률론적 특성을 감안할 때 다른 모델이 생성됩니다.

이는 네트워크가 해결하려는 최적화 문제가 너무 어려워서 입력을 출력에 매핑하는 " 좋은 " 솔루션 과 " 다른 " 솔루션이 많이 있기 때문입니다.

대부분의 신경망 알고리즘은 특히 압도적으로 많은 수의 차선 로컬 최솟값이 존재하기 때문에 차선의 성능을 달성합니다. 국소 최솟값으로 수렴된 일련의 신경망을 취하고 평균을 적용하면 개선된 추정치를 구성할 수 있습니다. 이 사실을 이해하는 한 가지 방법은 일반적으로 다른 지역 최솟값에 빠진 네트워크가 기능 공간의 다른 영역에서 제대로 수행되지 않으므로 오류 항이 강하게 상관되지 않을 것이라는 점을 고려하는 것입니다.

이로 인해 분산이 줄어들 수 있지만 일반화 오류는 크게 개선되지 않을 수 있습니다. 모델이 모두 유사한 매핑 기능을 학습했기 때문에 모델이 만든 오류는 여전히 너무 높은 상관관계가 있을 수 있습니다.

다른 접근 방식은 용량이 다른 네트워크(예: 계층 또는 노드 수) 또는 다른 조건(예: 학습률 또는 정규화)에서 훈련된 모델을 사용하는 것과 같이 각 앙상블 모델의 구성을 변경하는 것일 수 있습니다.

결과는 보다 이질적인 매핑 기능 모음을 학습한 모델의 앙상블이 될 수 있으며 결과적으로 예측 및 예측 오류에서 더 낮은 상관관계를 갖게 됩니다.

무작위 초기화의 차이, 미니 배치의 무작위 선택, 하이퍼 파라미터의 차이 또는 신경망의 비결정적 구현의 다른 결과는 종종 앙상블의 다른 구성원이 부분적으로 독립적인 오류를 범하게 하기에 충분합니다.

이와 같이 다르게 구성된 모델의 앙상블은 네트워크를 개발하고 하이퍼 파라미터를 조정하는 일반적인 프로세스를 통해 달성할 수 있습니다. 각 모델은 이 프로세스 동안 저장될 수 있으며 앙상블을 구성하기 위해 선택된 더 나은 모델의 하위 집합입니다.

약간 열등하게 훈련된 네트워크는 대부분의 조정 알고리즘의 무료 부산물입니다. 성능이 발견된 최상의 성능보다 훨씬 더 나쁜 경우에도 이러한 추가 사본을 사용하는 것이 바람직합니다. 사용 가능한 최상의 매개변수를 사용하고 사용 가능한 데이터베이스의 다른 하위 집합에 대해 서로 다른 복사본을 교육함으로써 앙상블 분류를 신중하게 계획하면 더 나은 성능을 얻을 수 있습니다.

단일 모델을 훈련하는 데 몇 주 또는 몇 달이 소요될 수 있는 경우 또 다른 대안은 훈련 프로세스 동안 스냅숏 또는 체크포인트 모델이라고 하는 최상의 모델을 주기적으로 저장한 다음 저장된 모델 중에서 앙상블 멤버를 선택하는 것입니다. 이는 단일 훈련 실행 중에 수집되지만 동일한 데이터에 대해 여러 모델을 훈련시키는 이점을 제공합니다.

Snapshot Ensembling은 단일 교육 프로세스에서 정확하고 다양한 모델의 앙상블을 생성합니다. Snapshot Ensembling의 핵심은 최종 솔루션으로 수렴하기 전에 여러 로컬 최솟값을 방문하는 최적화 프로세스입니다. 우리는 이러한 다양한 최솟값에서 모델 스냅숏을 찍고 테스트 시간에 예측을 평균화합니다.

Snapshot 앙상블의 변형은 다양한 에포크의 모델을 저장하는 것입니다. 아마도 훈련 중 모델 성능의 학습 곡선과 훈련 중 데이터 세트 검증을 검토하여 식별할 수 있을 것입니다. 이러한 연속적인 모델 시퀀스의 앙상블을 수평 앙상블이라고 합니다.

먼저 상대적으로 안정적인 Epoch 범위에 대해 훈련된 네트워크를 선택합니다. 각 레이블의 확률에 대한 예측은 선택한 에포크[들]에 대해 표준 분류기에 의해 생성된 다음 평균화됩니다.

스냅숏 앙상블의 추가 개선 사항은 훈련 중에 최적화 절차를 체계적으로 변경하여 서로 다른 솔루션(즉, 가중치 세트)을 강제 실행하는 것이며, 그중 가장 좋은 것은 체크포인트에 저장할 수 있습니다. 여기에는 훈련 기간 동안 진동하는 노이즈 양을 주입하거나 훈련 기간 동안 학습률을 진동시키는 것이 포함될 수 있습니다. SGDR(Stochastic Gradient Descent with Warm Restarts)이라는 이 접근 방식의 변형은 표준 사진 분류 작업에 대해 더 빠른 학습과 최신 결과를 보여주었습니다.

우리의 SGDR은 경쟁 결과를 약 2~4배 빠르게 달성하기 위해 학습 속도를 예약하여 웜 재시작을 시뮬레이션합니다. 우리는 또한 더 넓은 [모델]과 SGDR 궤적의 스냅숏 앙상블을 주로 사용하여 SGDR로 새로운 최첨단 결과를 달성했습니다.

매우 깊은 신경망의 이점은 중간 은닉층이 저해상도 입력 데이터의 학습된 표현을 제공한다는 것입니다. 은닉층은 내부 표현을 직접 출력할 수 있으며, 하나의 매우 깊은 네트워크에서 하나 이상의 은닉층의 출력을 새로운 분류 모델에 대한 입력으로 사용할 수 있습니다. 이것은 딥 모델이 오토 인코더 모델을 사용하여 훈련될 때 가장 효과적일 것입니다. 이러한 유형의 앙상블을 수직 앙상블이라고 합니다.

이 방법은 입력이 중간 계층의 표현인 일련의 분류기를 앙상블 합니다. 이러한 기능이 다양해 보이기 때문에 더 낮은 오류율이 예상됩니다.

앙상블 튜토리얼

모델이 다양한 딥 러닝 앙상블의 예는 다음을 참조하세요.

딥 러닝을 위한 스냅숏 앙상블을 개발하는 방법

딥 러닝을 위한 수평적 투표 앙상블을 개발하는 방법

다양한 조합

예측을 결합하는 가장 간단한 방법은 앙상블 구성원의 예측 평균을 계산하는 것입니다.

이것은 가중치가 홀드 아웃 검증 데이터 세트를 사용하여 최적화된 각 모델의 예측에 가중치를 부여하여 약간 향상될 수 있습니다. 이것은 때때로 모델 블렌딩이라고 하는 가중 평균 앙상블을 제공합니다.

위원회의 일부 구성원은 일반적으로 다른 구성원보다 더 나은 예측을 할 것이라고 기대할 수 있습니다. 따라서 일부 위원에게 다른 위원보다 더 많은 가중치를 부여하면 오류를 더욱 줄일 수 있을 것으로 기대합니다. 따라서, 우리는 회원들의 예측의 가중 조합에 의해 주어진 일반화된 위원회 예측을 고려합니다 복잡성의 한 단계는 새로운 모델을 사용하여 각 앙상블 구성원의 예측을 가장 잘 결합하는 방법을 배우는 것입니다.

모델은 간단한 선형 모델(예: 가중 평균과 매우 유사) 일 수 있지만 각 구성원이 제공하는 예측 외에도 특정 입력 샘플도 고려하는 정교한 비선형 방법일 수 있습니다. 새 모델을 학습하는 이 일반적인 접근 방식을 모델 스택 또는 스택 일반화라고 합니다.

누적 일반화는 제공된 학습 세트와 관련하여 일반화자의 편향을 추론하여 작동합니다. 이 연역은 입력이 (예를 들어) 학습 세트의 일부로 가르쳤을 때 원래 일반화자의 추측이고 나머지를 추측하려고 시도하고 출력이 (예를 들어) 정확한 추측인 두 번째 공간에서 일반화함으로써 진행됩니다.. [...] 단일 일반화와 함께 사용될 때, 누적 일반화는 특정 학습 세트에 대해 훈련된 다음 특정 질문을 한 일반화의 오류를 추정(및 수정)하는 체계입니다.

이전 모델의 실수를 수정하기 위해 앙상블 멤버를 한 번에 하나씩 추가하는 부스팅과 같이 모델을 쌓는 보다 정교한 방법이 있습니다. 추가된 복잡성은 이 접근 방식이 대규모 신경망 모델에서 덜 자주 사용된다는 것을 의미합니다.

조금 다른 또 다른 조합은 여러 신경망의 가중치를 동일한 구조로 결합하는 것입니다. 여러 네트워크의 가중치를 평균화하여 원래 모델보다 전반적인 성능이 더 나은 새로운 단일 모델이 생성되기를 바랍니다. 이 접근 방식을 모델 가중치 평균이라고 합니다.

... 모델 공간에서 네트워크의 출력을 평균화하여 앙상블을 형성하는 대신 가중치 공간에서 이러한 점을 평균화하고 이러한 평균 가중치로 네트워크를 사용하는 것이 유망하다고 제안합니다.

앙상블 튜토리얼

조합이 다양한 딥 러닝 앙상블의 예는 다음을 참조하세요.

딥 러닝을 위한 모델 평균화 앙상블을 개발하는 방법

딥 러닝을 위한 가중 평균 앙상블을 개발하는 방법

딥 러닝을 위한 스태킹 앙상블을 개발하는 방법

딥 러닝을 위한 Polyak-Ruppert 앙상블을 만드는 방법

앙상블 기법 요약

요약하면 다음과 같이 다양할 수 있는 방법의 각 요소로 구성된 신경망에 대한 보다 일반적이고 흥미로운 앙상블 방법을 나열할 수 있습니다.

다양한 훈련 데이터

k-겹 교차 검증 앙상블

부트스트랩 집계(배깅) 앙상블

무작위 훈련 부분 집합 앙상블

다양한 모델

다중 훈련 실행 앙상블

초매개변수 조정 앙상블

스냅숏 앙상블

수평 에포크 앙상블

수직 대표 앙상블

다양한 조합

모델 평균화 앙상블

가중 평균 앙상블

스택 일반화(스택) 앙상블

부스팅 앙상블

모델 가중치 평균 앙상블

단일 최고의 앙상블 방법은 없습니다. 몇 가지 접근 방식을 실험하거나 프로젝트의 제약 조건에 따라 안내를 받을 수 있습니다.

댓글