https://codingsmu.tistory.com/151
1. concatenate
2개 이상의 모델을 합치는 방법
단순하게 2개의 모델을 엮어주는 역할을 한다.
ex. 인풋이 (10,3)은 모델1과 인풋이 (10,3)인 모델2를 엮을 경우 concatenate 시점에서는 그냥 단일 모델처럼 (10,6)의 형태로 엮인다.
✔️ 합쳐지는 레이어 부분에서 노드들이 단순하게 더하기 형태로 합쳐진다.
concatenate는 두군데 존재한다. keras.layers와 keras.layers.merge 이 두 곳중에 아무 곳에서나 import 해주면 됨
concatenate() 함수에 매개변수로 상단 2개의 모델 최하위 레이어의 이름을 리스트 방식으로 입력한다.
✔️ concatenate이 아닌, Concatenate 클래스를 사용해주어야 함!
사용법은 concatenate와 유사하고, ()을 더 붙여주면 된다!
https://github.com/yenyen31/Artificial-Intelligence-in-Finance/blob/main/CH05/ch05_1.py
결과 분석)
약간의 오차가 있지만, 최초 입력한 원 데이터와 비교하면 큰 문제가 되진 않음을 알 수 있다.
x1, x2 이 2개의 데이터셋이 앙상블이 되어 501에서 600이 나오는 구조이다. 그냥 봐서는 연관성이 없어 보이는 구조이고 이 가운데 60%를 train, 20%를 validation, 나머지 20%를 test셋으로 사용하고, test셋으로 predict한 것이다!
2. Merge Layer
concatenate처럼 모델에서 합치는 것이 아닌, 데이터상에서 컬럼을 합쳐서 단일 모델로 구성하는 방법
1) Add
keras.layers.Add()
layers끼리의 단순한 덧셈.
동일한 모양의 텐서 목록을 입력으로 사용하고 하나의 텐서(같은 모양)을 반환한다.
2) Subtract
keras.layers.Subtract()
layers끼리의 단순한 뺄셈.
동일한 모양의 크기 2인 텐서 목록을 입력으로 사용하고 동일한 모양의 단일 텐서(입력[0]-입력[1])을 반환한다.
3) Multiply
keras.layers.Multiply()
layer들끼리의 입력 목록을 (요소 별로) 곱하는 레이어
동일한 모양의 텐서 목록을 입력으로 사용하고 하나의 텐서를 반환한다
4) Average
keras.layers.Average()
인풋 리스트의 평균을 내는 레이어
동일한 모양의 텐서 목록을 입력으로 사용하고 하나의 텐서를 반환한다
5) Maximum
keras.layers.Maximum()
입력 목록의 최대(요소 별로)를 계산하는 레이어
동일한 모양의 텐서 목록을 입력으로 사용하고 하나의 텐서를 반환한다
6) Minimum
keras.layers.Minimum()
입력 목록의 최소(요소 별로)를 계산하는 레이어
동일한 모양의 텐서 목록을 입력으로 사용하고 하나의 텐서를 반환한다
7) Concatenate
keras.layers.Concatenate(axis=-1)
입력 목록을 연결하는 레이어
연결 축을 제외한 동일한 모양의 텐서 목록을 입력으로 사용하고 모든 입력의 연결 인 단일 텐서를 반환한다.
디폴트는 axis = -1이다
✔️ concatenate와 주의해야 함!
8) Dot
keras.layers.Dot(axes, normalize=False)
두 텐서에서 샘플 간 내적을 계산하는 레이어
2개의 텐서 a와 b의 모양 (batch_size, n) 목록에 적용되는 경우 출력은 모양의 텐서(batch_size, 1)가 됩니다.
여기서 각 항목 i는 a[i]와 b[i] 사이의 내적이다.
9) add
keras.layers.add(inputs)
Add와 같은 결과를 나타내지만, 함수형 add는 사용법이 다르다!
10) subtract
keras.layers.subtract(inputs)
Subtract과 같은 사용법이고 동일하게 ()을 주의해야 한다!
11) multiply
keras.layers.multiply(inputs)
Multiply()와 동일한 방법. ()사용 주의해야 한다!
12) average
keras.layers.average(inputs)
Average()와 동일한 방법. ()사용 주의해야 한다!
13) maximum
keras.layers.maximum(inputs)
Maximum()와 동일한 방법. ()사용 주의해야 한다!
14) minimum
keras.layers.minimum(inputs)
Minimum()와 동일한 방법. ()사용 주의해야 한다!
15) concatenate
keras.layers.concatenate(inputs, axis=-1)
Concatenate()와 동일한 방법. ()사용 주의해야 한다!
디폴트 axis = -1 이다.
16) dot
keras.layers.concatenate(inputs, axes, normalize=False)
inputs는 2개 이상의 텐서이다.
normalized()는 L2 정규화의 여부이다.
디폴트는 False이다.
Dot()와 동일한 방법. ()사용 주의해야 한다!
'DeepLearning' 카테고리의 다른 글
딥러닝으로 걷는 시계열 예측 [CH07] RNN (0) | 2023.05.31 |
---|---|
딥러닝으로 걷는 시계열 예측 [CH06] 회귀 모델 총정리 (0) | 2023.05.24 |
딥러닝으로 걷는 시계열 예측 [CH04] 회귀 모델의 판별식 (0) | 2023.05.20 |
딥러닝으로 걷는 시계열 예측 [CH03] 회귀 모델 (0) | 2023.05.20 |
딥러닝으로 걷는 시계열 예측 [CH02] 딥러닝 시작 (0) | 2023.05.20 |