Skip to main content
QUICK REVIEW

[论文解读] Improved Bilinear Pooling with CNNs

Tsung‐Yu Lin, Subhransu Maji|arXiv (Cornell University)|Jul 21, 2017
Advanced Neural Network Applications参考文献 29被引用 31
一句话总结

本文提出了一种改进的双线性卷积神经网络(B-CNN)架构,通过在二阶CNN特征上应用矩阵平方根归一化,并结合逐元素平方根和ℓ₂归一化,增强了特征表示能力。该方法在细粒度识别数据集上实现了2–3%的准确率提升,达到新的最先进水平,同时通过牛顿迭代法实现高效的GPU计算,并利用李雅普诺夫方程实现数值稳定的梯度计算。

ABSTRACT

Bilinear pooling of Convolutional Neural Network (CNN) features [22, 23], and their compact variants [10], have been shown to be effective at fine-grained recognition, scene categorization, texture recognition, and visual question-answering tasks among others. The resulting representation captures second-order statistics of convolutional features in a translationally invariant manner. In this paper we investigate various ways of normalizing these statistics to improve their representation power. In particular we find that the matrix square-root normalization offers significant improvements and outperforms alternative schemes such as the matrix logarithm normalization when combined with elementwise square-root and l2 normalization. This improves the accuracy by 2-3% on a range of fine-grained recognition datasets leading to a new state of the art. We also investigate how the accuracy of matrix function computations effect network training and evaluation. In particular we compare against a technique for estimating matrix square-root gradients via solving a Lyapunov equation that is more numerically accurate than computing gradients via a Singular Value Decomposition (SVD). We find that while SVD gradients are numerically inaccurate the overall effect on the final accuracy is negligible once boundary cases are handled carefully. We present an alternative scheme for computing gradients that is faster and yet it offers improvements over the baseline model. Finally we show that the matrix square-root computed approximately using a few Newton iterations is just as accurate for the classification task but allows an order-of-magnitude faster GPU implementation compared to SVD decomposition.

研究动机与目标

  • 通过探索超越标准逐元素操作的矩阵函数归一化方法,提升CNN中双线性池化机制的表征能力。
  • 研究不同矩阵归一化方案(特别是矩阵平方根与矩阵对数)在细粒度识别任务中对分类准确率的影响。
  • 开发一种在反向传播过程中计算矩阵函数梯度的数值稳定且高效的方法,尤其针对矩阵平方根。
  • 评估梯度计算中数值精度与最终模型准确率之间的权衡,特别是比较基于SVD与基于李雅普诺夫的梯度方法。
  • 通过牛顿迭代加速计算并最小化计算开销,实现矩阵归一化在深度网络中的实际部署。

提出的方法

  • 对双线性池化所得协方差矩阵应用矩阵平方根归一化,通过UΣ¹ᐟ²Uᵀ分解将对称正定(SPD)矩阵进行变换。
  • 将矩阵平方根归一化与逐元素平方根及ℓ₂归一化结合,以稳定并增强特征表示。
  • 使用李雅普诺夫方程求解器计算矩阵平方根的梯度,其数值精度高于基于SVD的梯度近似方法。
  • 在前向传播中使用少量牛顿迭代近似矩阵平方根,实现在GPU上快速推理且准确率损失极小。
  • 采用避免完整SVD分解的梯度计算方案,降低数值不稳定性并提升训练稳定性。
  • 通过比较基于李雅普诺夫的梯度(更精确)与基于SVD的梯度(较慢但更快)来评估梯度精度的影响,结果表明实际中准确率损失可忽略。

实验结果

研究问题

  • RQ1在双线性CNN中,当与逐元素归一化结合时,矩阵平方根归一化是否优于矩阵对数归一化?
  • RQ2能否通过迭代方法在GPU上高效计算矩阵平方根而不牺牲分类准确率?
  • RQ3梯度计算的数值精度如何影响双线性池化网络中的最终模型准确率?
  • RQ4矩阵归一化与逐元素归一化的组合在细粒度识别任务中是否具有互补性并带来实际益处?
  • RQ5在微调过程中省略矩阵归一化的简化训练方案是否仍能超越基线B-CNN模型?

主要发现

  • 将矩阵平方根归一化与逐元素平方根及ℓ₂归一化结合,在三个细粒度识别数据集上实现了2–3%的准确率提升,达到新的最先进水平。
  • 通过少量牛顿迭代计算的矩阵平方根方法,在准确率上与基于SVD的计算相当,但实现了GPU推理速度提升一个数量级。
  • 基于李雅普诺夫的梯度计算方法比基于SVD的梯度方法能训练出更精确的模型,尽管在边界情况处理得当时,最终准确率差异可忽略。
  • 即使仅使用一次牛顿迭代计算矩阵平方根,也能在计算成本极低的情况下实现相对于基线B-CNN的可测量准确率提升。
  • 基于SVD的矩阵对数归一化梯度计算在数值上不稳定,即使使用双精度算术也导致训练性能差,而矩阵平方根方法在单精度下依然稳健。
  • 所提方法在计算成本仅适度增加的情况下,性能优于或匹配BoostCNN与核池化等最先进方法。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。