안녕하세요 미니빅 입니다.

 

 

이전 part에서 했던 내용이 다대다, 다대일, 일대다 모델로 입, 출력의 수가 다를 때 어떻게 해야하는지

 

처리를 했었습니다.

 

 

이번 포스팅은 앙상블에 대해서 얘기해볼께요.

 

앙상블이란? 두 개의 모델을 합치거나, 빼는 등의 처리를 해서 합치는 과정을 얘기합니다.

 

간단히 말해서 모델 결합 이라고 합니다.

 

종류는 여러개가 있습니다만,

 

그중에서 concatenate(입력목록을 연결하는 클래스, 함수)로 작업하는 과정을 보여드리겠습니다.

 

이전 포스팅에서 나온 것처럼 1) 데이터 저장 을 하는데

 

두 개의 모델을 합쳐야해서, x1, x2로 두 개의 입력을 받습니다.

 

part5에서 얘기한 것처럼 transpose 해주고, 사이킷런을 통해서, train_test_split 함수를 사용하여 나눕니다.

 

 

이번에도 이전 파트에서 설명한 것처럼 2) 모델을 구성합니다.

 

단, 앙상블을 하기 위해서는 함수적 모델로 만들어야합니다.

 

두 모델의 입력값과 레이어들이 비슷하게 만들었으나,

 

두 모델의 레이어의 개수, 노드의 개수 등은 당연히 달라도 됩니다.

 

두 모델을 Contcatenate 클래스의 함수를 통해서 합치고, model을 구성 완료합니다.

 

 

실제 배우면서 포스팅을 하고 있는데요.

 

제가 이번에 좀 실수하거나 헷갈려 하는 부분이 있어서 한 번 집어보고 가려고 합니다.

 

위 예의 주석을 보시면 알 수 있으시 듯.

 

첫 번째 모델('1모델'이라고 지칭)과 두 번째 모델('2모델'이라고 지칭)을 모델로 완료하고 나서

 

앙상블하려고 시도했다가 실패했습니다.

 

Model 레이어를 통해서 합치지 말고 Dense 레이어를 합쳐야 한다는 것!

 

꼭 염두하시길 바랍니다.

 

앙상블 후에 몇 번의 모델을 좀 더 이어서 구성하고 Model 레이어로 마무리를 해주면 됩니다.

 

 

그 외 과정인 3)훈련, 4) 평가 및 예측 등은 앞에서 많이 해왔기에 이정도 마무리하겠습니다.

 

앙상블의 종류로는 여러개가 있는데 지금 사용된 concatenate 를 포함해 몇 가지가 더 있긴 합니다만.

 

해당 내용에 대해서는 아직은 미흡한 관계로 알려는 드리되, 나중에 추가 수정하도록 하겠습니다.

 

종류로는 Add, Subtract, Multiply, Average, Maximum, Minimum, Dot 등이 있습니다.

 

 

앙상블은 예시 정도만 올리고, 추후 보완해서 수정할께요

 

그럼 안녕!

+ Recent posts