Keras에서 모델 병합의 중요성은 무엇입니까?


10

Keras에는 다음에 따라 두 모델을 "병합"하는 기능이 있다는 것을 알게되었습니다.

from keras.layers import Merge

left_branch = Sequential()
left_branch.add(Dense(32, input_dim=784))

right_branch = Sequential()
right_branch.add(Dense(32, input_dim=784))

merged = Merge([left_branch, right_branch], mode='concat')

머천트 NN의 요점은 무엇이며 어떤 상황에서 유용합니까? 일종의 앙상블 모델링입니까? 성능 측면에서 여러 "모드"(concat, avg, dot 등)의 차이점은 무엇입니까?

답변:


14

여러 가지 이유로 사용되며 기본적으로 여러 네트워크를 결합하는 데 사용됩니다. 좋은 예는 태그와 이미지와 같이 두 가지 유형의 입력이있는 경우입니다. 예를 들어 다음과 같은 네트워크를 구축 할 수 있습니다.

이미지-> 전환-> 최대 풀링-> 전환-> 최대 풀링-> 밀도

태그-> 임베딩-> 고밀도 레이어

이러한 네트워크를 하나의 예측으로 결합하고 함께 훈련시키기 위해 최종 분류 전에이 밀도 레이어를 병합 할 수 있습니다.

입력이 여러 개인 네트워크는 가장 명백하게 사용됩니다. 여기에는 RNN 내부의 이미지와 단어를 결합한 그림이 있습니다. 멀티 모달 부분은 두 입력이 병합 된 위치입니다.

멀티 모달 신경망

또 다른 예는 다음 레이어로 넘어 가기 전에 다시 추가되는 다른 회선이있는 Google의 시작 레이어입니다.

Keras에 여러 입력을 공급하기 위해 배열 목록을 전달할 수 있습니다. 단어 / 이미지 예제에는 두 가지 목록이 있습니다.

x_input_image = [image1, image2, image3]
x_input_word = ['Feline', 'Dog', 'TV']
y_output = [1, 0, 0]

그런 다음 다음과 같이 맞출 수 있습니다.

model.fit(x=[x_input_image, x_input_word], y=y_output]

죄송합니다. 어쨌든 작업 단계를 수행하는 피팅 단계에서 단일 네트워크에서 교육 인스턴스와 레이블에 대해 별도의 네트워크를 구축하는 것이 중요합니다. 병합이 가능하지만 "비 병합"에 비해 이점이 없다는 것을 알 수 있습니다.
Hendrik

피팅 단계에서 어떻게 공급합니까? 입력은 항상 분리되어 있으므로 레이블에 컨벌루션 레이어를 사용할 수 없으므로 이러한 레이어를 어떻게 든 병합해야합니다.
Jan van der Vegt

Keras에서는 model.fit()피팅에 X와 y를 모두 허용 하며이 model경우 "병합되지 않은"모델 일 수도 있습니다. 예를 들어 Sklearn의 다른 모델 유형과 매우 비슷합니다.
Hendrik

3
레이블은 내 측면에서 잘못 선택된 이름 일 수 있습니다. 그림과 해당 그림의 주석이 있고 그 조합이 고양이에 관한 것인지 분류하고 싶은 경우 두 가지 유형의 입력과 하나의 이진 출력이 있는지 분류하려고합니다 . 그들 사이의 시너지 효과를 얻으려면 레이어를 어딘가에 병합해야합니다. 두 사진, 상단에서 하나는 당신이 함께 분류해야한다는 바닥에서 일이 어디 또 다른 예입니다
Vegt 데르 월 반

3
@ 헨드릭 : "컴포넌트 모델"이 없으며, 하나의 모델 만 있습니다. 레이어 병합 기능으로 구현되는 복잡한 기능입니다. 홀드 아웃 테스트 데이터 세트에 대한 메트릭 (예 : 이미지, 관련 부분 텍스트 및 예측할 레이블로 다음 단어로 구성된 데이터가있는 이미지 / 단어 예)에 대한 메트릭을 사용하여 단일 모델에 대해 평가합니다. 원하는 경우 모델 내에서 레이어를 검사하여 현재 수행중인 작업을 확인할 수 있습니다. 예를 들어 CNN 피처 분석을 컨볼 루션 레이어에 적용 할 수 있습니다.
Neil Slater
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.