SW/인공지능

인공지능 : ensemble : 개념, 활용 방법, 성능

얇은생각 2019. 8. 14. 07:30
반응형

딥 네트워크의 앙상블


모델의 앙상블은 여러 통계 모델의 예측을 결합하여 하나의 최종 예측을 형성하는 방법을 나타냅니다. 이것은 모델의 표현력의 다양성에 대한 기회를 열어줍니다. 이 개념은 여러 의사의 의견을 구하는 것과 같은 일화와 유사합니다. 모델의 앙상블은 의사 결정 트리를 임의의 포리스트로 업그레이드하는 것과 같이 기존의 머신 러닝 모델을 매우 일반적으로 향상시킵니다. 머신 러닝 모델과 달리 딥 모델은 학습하는 데 시간이 오래 걸리므로 처음부터 학습한 딥 모델의 앙상블을 형성하는 것은 실용적이지 않습니다. 


인공지능 : ensemble : 개념, 활용 방법, 성능

FMoW는 특정 작업에 사용되는 데이터 세트이며 Hydra의 바디는 ResNet 및 DenseNet 설계에 따라 조립 된 많은 신경망 레이어로 구성됩니다. Hydra의 각 헤드는 FMoW 데이터 세트의 서로 다른 파티션에 대해 완벽하게 연결된 레이어로 구성됩니다. ImageNet 가중치는 네트워크를 초기화하는 데 사용됩니다.


딥 네트워크는 모듈화할 수 있으며 기능 추출기 및 분류 네트워크의 두 가지 구성 요소로 구성됩니다. 위의 이미지에서 ResNet과 DenseNet의 두 가지 강력한 CNN 아키텍처는 여러 분류 '헤드'로 전달되는 이미지에서 기능을 추출하는 데 사용됩니다. 피쳐를 추출하면 224 x 224 x 3 이미지와 같은 것에서 4096 x 1 벡터로 입력의 차원이 낮아집니다. Hydra의 몸체에서 추출된 벡터는 Hydra의 헤드에 대한 입력으로 사용되므로 클래스 수만큼 큰 클래스 예측 벡터에 4096 x 1 벡터가 사용됩니다.


Hydra 헤드의 무게를 미세 조정하여 당면한 과제에 맞게 조정할 수 있도록 훈련합니다. 위 이미지의 또 다른 흥미로운 세부 사항은 ImageNet 가중치입니다. 이것은 Hydra의 몸무게에 대한 Transfer Learning 초기화 방법으로 사용됩니다. 이 가중치는 Minetto 등의 FMoW (Functional Map of the World) 토지 분류 데이터 세트를 사용하여 미세 조정됩니다. 이 가중치를 미세 조정 한 후 완전히 연결된 레이어는 잘려서 Hydra의 헤드로 교체됩니다. 이 설명 후 왜 Hydra라는 이름을 선택했는지 알 수 있기를 바랍니다. 히드라는 일종의 멀티 헤드 드래곤이며 멀티 헤드 드래곤과 유사하며 앙상블 컨벌루션 신경망의 각 헤드는 동일한 몸체를 공유합니다.


인공지능 : ensemble : 개념, 활용 방법, 성능

위의 이미지에서 아이디어가 더 단순화되고, 데이터의 하위 세트가 각 분류 네트워크 / Hydra의 '헤드'를 미세 조정하는 데 사용됩니다.


이 작업의 흥미로운 특징 중 일부는 모델에서 기능 및 데이터 다양성을 촉진한다는 것입니다. 각 Hydra 헤드의 완전히 연결된 레이어에 참신함을 추가하여 기능 추출을 수행 할 수 있습니다. 아마도 특징 추출 된 벡터의 모양을 변경하고 다시 확장 할 수도 있습니다. 그러나 데이터 다양성을 달성하는 것은이 백서에서도 조사되는보다 흥미로운 패러다임입니다.


앙상블 모델은 일반적으로 초기 인스턴스, 예를 들어 m 개의 인스턴스를 각각 m / k 인스턴스의 k 버킷으로 분할하여 데이터 다양성을 달성합니다. 이 버킷 각각의 데이터는 Hydra의 헤드 무게를 미세 조정하는 데 사용됩니다. 이 접근법은 또한 확장 된 데이터를 통합하기 위해 확장 될 수 있으며 많은 구성 가능성을 가지고 있습니다. 기하학적 변형 또는 색 공간 조작과 같은 데이터 보강 기술을 사용하여 Hydra의 헤드를 미세 조정할 수있는 다양한 데이터 버킷을 생성 할 수 있습니다. 오프라인 기능 보강과 달리 온라인 데이터 기능 보강을 사용하여 메모리를 절약하는 것의 중요성에 대해 논의합니다. 오프라인 기능 보강은 데이터를 기능 보강 한 다음 수정 된 각 데이터 인스턴스를 메모리에 쓰는 것을 말합니다.


이러한 방식으로 모델을 구성 할 때 고려해야 할 마지막 고려 사항은 모델 예측을 결합하는 방법입니다. 순진한 솔루션은 출력이 각 헤드의 최대 클래스 확률에서 나오는 다수 투표 또는 각 헤드의 softmax 출력이 합산되고 결과 벡터의 최대 값이 최종 예측인 다수 투표에 이르기까지 다양합니다. 이것을 앙상블 모델의 솔루션 알고리즘이라고합니다. 그것들은 이것으로 창의력을 발휘하고 자체적으로 최고의 분류 성능을 가진 Hydra의 헤드에 더 높은 가중치를 할당하거나 가장 관련성이 낮은 예측을 갖는 헤드의 하위 세트를 찾는 것과 같은 다양한 가설을 테스트하는 많은 방법입니다.


앙상블 모델은 추론 시간이 느려지지만 예측 정확도가 높아지는 유망한 솔루션입니다. Hydra 아키텍처는 Deep Neural Networks를 구성하는 흥미롭고 유명한 방법입니다.


먼저, 기능 추출기의 가중치를 학습하고 다음과 같은 간단한 것을 사용하여 저장해야합니다.


model.save ( 'HydraBody.h5')


그런 다음이 가중치를 각 헤드에 로드하려고 합니다. HydraBody의 각 레이어 이름을 다음과 같이 지정하면됩니다.


model.add (Conv2D (32, (3,3), name= 'Conv1')


각 레이어의 이름을 지정하면 저장된 가중치의 아키텍처와 정확히 일치하지 않는 모델에 기본 가중치를 로드하는 방법이 있습니다.

반응형