pooling이라 함은 AveragePooling과 MaxPooling을 들어본 적이 있고, 이 둘의 차이가 무엇인지 아는데 별로 오래 안 걸린다. 하지만, GlobalAveragePooling을 flatten 대신에 사용한다는 코드를 보면서 이 둘의 차이에 대해 궁금해져서 짧게나마 정리해서 남기려고 한다.
GlobalAveragePooling을 사용하는 경우는 총 parameter 수를 줄여서 overfitting을 방지해야하는 경우라고 한다. 이 pooling은 매우 작은 차원으로 축소하는 것이 특징이다.
GlobalAveragepooling은 FC layer의 대체 안으로 쓰일 수 있다
model = tf.keras.Sequential([
tf.keras.layers.Embedding(vocab_size, embedding_dim, input_length=max_length),
tf.keras.layers.GlobalAveragePooling1D(), # 이와 같이 Flatten 대신에 사용될 수 있다.
tf.keras.layers.Dense(24, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')
])