서로 다른 종류의 특징을 한 모델에서 합친다
상품을 예측하는 모델에는 사진뿐 아니라 가격, 카테고리, 판매자 평점이 함께 필요할 수 있어. 픽셀과 구조화된 값은 같은 특징 공간에 있지 않으므로 한 텐서로 단순히 쌓으면 안 돼. 영상은 합성곱 경로가 필요하고 10차원 메타데이터는 Dense 레이어가 알맞아. Functional API는 두 입력을 각자 처리한 뒤 하나의 학습 가능한 모델로 묶어줘.
갈라서 처리하고, 합친 뒤 예측해
코드 블록은 이 트랙의 패턴을 모두 모아. 이름을 붙인 입력 두 개를 만들고, 영상 경로는 Conv → pool → GlobalAveragePooling2D를 거쳐 64차원 특징 벡터를 내. 메타데이터 경로는 Dense 레이어로 처리한 다음 layers.concatenate로 두 벡터를 합쳐 공통 헤드에서 예측해. GlobalAveragePooling2D는 공간 차원을 고정 길이 벡터로 바꾸므로 입력 영상 크기와 무관하게 메타데이터와 연결할 수 있게 해.
멀티모달 모델에서는 어디서 입력을 합칠지가 중요한 선택이야. 이 예제는 각 종류를 독립적으로 처리하다 출력 헤드 근처에서 합치는 후기 융합을 사용해. 구조가 단순하고 경로별로 조정하기 쉬우며 메타데이터 경로를 건드리지 않고 사전 학습 영상 백본을 바꿀 수도 있어 좋은 기본값이야. 깊은 레이어 전에 입력을 섞는 초기 융합은 표현력이 더 클 수 있지만 학습과 디버깅이 어려워. 후기 융합으로 시작하고 두 입력의 깊은 상호작용이 필요하다는 증거가 있을 때만 바꿔.