池化是神经网络从局部特征到全局理解的方式。CNN可能从224×224的特征图开始,池化到最终层的7×7,逐步汇总空间信息。在NLP中,对token嵌入进行平均池化是从token表示序列创建单个句子嵌入的标准方法。
在CNN中:步长为2的2×2最大池化取每个2×2区域,保留最大值,将每个空间维度减半。这实现了两件事:平移不变性(输入的小偏移不改变输出)和降维(后续层需要处理的值更少)。平均池化做同样的事但取均值,保留更多信息但对噪声的鲁棒性较差。
要从可变长度的token序列创建固定大小的嵌入,需要进行池化。常见策略:[CLS] token池化(使用特殊token的表示,如BERT)、平均池化(对所有token表示取平均——通常是句子嵌入的最佳选择)、最大池化(跨token取逐元素最大值)和加权池化(按注意力分数对token加权)。大多数嵌入模型因其简单性和有效性而使用平均池化。
在现代视觉架构中,全局平均池化取代了旧CNN用于分类的全连接层。全局平均池化不是将最终特征图展平为向量(这会创建数百万个参数),而是将每个特征图通道平均为单个数字。这产生了一个紧凑的表示,没有学习参数,起到了强正则化的作用。Vision Transformer使用[CLS] token采用类似的方法。