Image Net Challenge Inequality Inequality 앙상블

이 장에서는 앙상블 메서드의 개념, 여러 분류기를 가져와 하나의 큰 메타 분류기로 집계하는 프로세스를 살펴 봅니다. 여러 기계 학습 모델을 함께 평균화하면 무작위로 선택한 단일 모델을 사용하여 성능을 능가 (즉, 더 높은 정확도 달성) 할 수 있습니다. 사실, ImageNet Challenge에서 경쟁하는 거의 모든 최신 출판물은 Convolutional Neural Networks 앙상블에 대한 최상의 결과를보고합니다. 이 장에서는 Jensen의 Inequality 이론 (앙상블 방법이 의존하는 이론)에 대한 논의로 시작합니다. 여기에서 단일 스크립트에서 여러 CNN을 훈련하고 성능을 평가하는 방법을 보여 드리겠습니다. 그런 다음 이러한 CNN을 단일 메타 분류기로 결합하고 정확도가 증가하는 것을 확인합니다.

26.1 앙상블 방법

“앙상블 방법”이라는 용어는 일반적으로 “대량”모델 ( “large”의 정확한 값이 분류 작업에 따라 달라짐)을 훈련 한 다음 투표 또는 평균화를 통해 출력 예측을 결합하여 분류 정확도를 높이는 것을 말합니다. 실제로 앙상블 방법은 딥러닝 및 컨볼 루션 신경망에만 국한되지 않습니다. 우리는 수년간 앙상블 방법을 사용해 왔습니다. AdaBoost 및 Random Forests와 같은 기법은 앙상블 방법의 전형적인 예입니다. Random Forests에서는 여러 의사 결정 트리를 훈련하고 포리스트를 사용하여 예측합니다. 아래 그림 (왼쪽)에서 볼 수 있듯이 Random Forest는 함께 집계 된 여러 의사 결정 트리로 구성됩니다.

왼쪽 : 신경망의 앙상블은 여러 네트워크로 구성됩니다. 입력 이미지를 분류 할 때 데이터 포인트는 다른 모든 네트워크와 독립적으로 이미지를 분류하는 각 네트워크로 전달됩니다. 그런 다음 네트워크 전체의 분류를 평균하여 최종 예측을 얻습니다.

오른쪽 : Jensen의 Inequality 등으로 인해 앙상블 방법이 가능합니다. 항아리에 들어있는 사탕 수에 대한 추측을 평균하여 실제 사탕 수를 더 잘 추정 할 수 있습니다.

각 의사 결정 트리는 최종 분류가되어야한다고 생각하는 것에 “투표”합니다. 이러한 투표는 메타 분류 자에 의해 표로 작성되며 가장 많은 투표를 받은 카테고리가 최종 분류로 선택됩니다. 딥러닝과 컨볼루션 신경망에도 동일한 개념을 적용 할 수 있습니다. 여기서는 여러 네트워크를 훈련시킨 다음 각 네트워크에 입력 데이터 포인트가 주어지면 각 클래스 레이블에 대한 확률을 반환하도록 요청합니다 (위 그림 왼쪽). 이 확률은 함께 평균을 내고 최종 분류를 얻습니다. 여러 모델에 대한 평균 예측이 작동하는 이유를 이해하려면 먼저 Jensen의 Inequality에 대해 논의해야 합니다. 그런 다음 Python 및 Keras 코드를 제공하여 CNN 앙상블을 구현하고 분류 정확도가 실제로 증가하는지 직접 확인합니다.

26.1.1 Jensen의 Inequality

가장 일반적인 용어로 앙상블은 앙상블 컬렉션에서 단일 모델을 사용하는 것보다 더 나은 평균 예측 정확도를 얻는 데 사용할 수있는 유한한 모델 컬렉션입니다. Dietterich의 연구는 앙상블 방법이 일반적으로 단일 모델보다 높은 정확도를 얻을 수있는 이유에 대한 이론을 자세히 설명합니다.

Dietterich의 작업은 머신 러닝 문헌에서 ‘다양성’또는 ‘모호성 분해’로 알려진 Jensen의 Inequality 등에 달려 있습니다. Jensen의 Inequality에 대한 공식적인 정의에 따르면 볼록 결합 (평균) 앙상블은 개별 모델의 평균 오차보다 작거나 같은 오차를 갖게됩니다. 하나의 개별 모델이 모든 모델의 평균보다 오류가 낮을 수 있지만 이 모델을 “선택”하는 데 사용할 수있는 기준이 없기 때문에 모든 모델의 평균이 다음보다 더 나쁘지 않을 것임을 확신 할 수 있습니다. 임의의 단일 모델을 선택합니다. 요컨대, 우리는 예측을 함께 평균화 해야만 더 나아질 수 있습니다. 분류기를 악화시키는 것을 두려워 할 필요가 없습니다.

시각적 인 예를 좋아하는 사람들에게는 Jensen의 Inequality과 모델 평균화의 개념을 이 사탕 항아리를 보고 안에 얼마나 많은 사탕이 들어 있는지 추측하여 가장 잘 설명 할 수 있습니다 (위 그림 오른쪽). 사탕이 몇 개나 될까요? 100? 200? 500? 당신의 추측은 항아리에있는 실제 사탕 수보다 매우 많거나 적을 수 있습니다. 매우 가까울 수도 있습니다. 또는 운이 좋다면 정확한 사탕 수를 추측 할 수 있습니다. 하지만 이 게임에는 약간의 트릭이 있습니다. 이는 Jensen의 Inequality을 기반으로합니다. 항아리에 사탕이 몇 개 있는지 물어 보면 여러분과 다른 모든 사람들에게 가서 사탕 개수가 무엇이라고 생각하는지 물어 보겠습니다. 그런 다음이 모든 추측을 취하고 함께 평균을 내고이 평균을 최종 예측으로 사용합니다.

이제 여러분 중 소수가 정말 좋은 추측을 하고 평균을 이길 수도 있을 것입니다. 하지만 어느 쪽이 정말 좋은 추측인지 판단 할 기준이 없습니다. 누가 최고의 추측인지 말할 수 없기 때문에 대신 내가 묻는 모든 사람의 평균을 취하겠습니다. 따라서 무작위로 추측하는 것보다 (평균적으로) 나쁘지 않을 것입니다. 본질적으로 그것은 Jensen의 Inequality입니다.

무작위로 추측하는 사탕 수와 딥러닝 모델의 차이점은 CNN이 잘 작동하고 좋은 추측 성능을 가진 자 (즉, 무작위로 추측하지 않음)라고 가정한다는 것입니다. 따라서 이러한 예측 변수의 결과를 함께 평균하면 분류 정확도가 향상되는 경우가 많습니다. 이러한 개선 사항은 딥러닝에 대한 최신 출판물이 여러 모델을 훈련 한 다음 이러한 앙상블에 대한 최고의 정확성을 나타내는 이유입니다