论文标题

深度神经网络的Winograd卷积:有效的点选择

Winograd Convolution for Deep Neural Networks: Efficient Point Selection

论文作者

Alam, Syed Asad, Anderson, Andrew, Barabasz, Barbara, Gregg, David

论文摘要

卷积神经网络(CNN)大大提高了任务的准确性,例如对象识别,图像分割和交互式语音系统。 CNN需要大量的计算资源,因为集约化卷积层。快速卷积算法(例如Winograd卷积)可以大大降低这些层的计算成本,成本较差的数字特性,从而使计算的节省更大,从而呈指数级增加浮点误差。 每个Winograd卷积算法的一个定义特征是对多项式进行采样的一组真实点。点的选择会影响算法的数字精度,但是小卷积的最佳点仍然未知。现有工作仅将小整数和简单的分数视为候选点。在这项工作中,我们使用形式的点{-1/c,-c,c,1/c}提出了一种新颖的方法来选择点选择,并使用C。我们表明,这种形式的组导致Winograd变换矩阵中的取消,从而减少数字误差。我们从经验上发现,C的不同值的误差形成了跨真实价值范围的粗糙曲线,有助于定位C值以减少误差的值,并且可以使用非明显的真实评估评估点而不是整数或简单的分数来实现较低的错误。我们研究了一系列小额卷积的尺寸,并在1D和2D卷积的误差范围内减少了从2%到59%。此外,我们在选择提出的点的子集的情况下确定模式,这将始终导致误差较低。最后,我们实施了一个完整的Winograd卷积层,并使用它在实际数据集上运行深度卷积神经网络,并表明我们的建议点减少了错误,范围从22%到63%。

Convolutional neural networks (CNNs) have dramatically improved the accuracy of tasks such as object recognition, image segmentation and interactive speech systems. CNNs require large amounts of computing resources because ofcomputationally intensive convolution layers. Fast convolution algorithms such as Winograd convolution can greatly reduce the computational cost of these layers at a cost of poor numeric properties, such that greater savings in computation exponentially increase floating point errors. A defining feature of each Winograd convolution algorithm is a set of real-value points where polynomials are sampled. The choice of points impacts the numeric accuracy of the algorithm, but the optimal set of points for small convolutions remains unknown. Existing work considers only small integers and simple fractions as candidate points. In this work, we propose a novel approach to point selection using points of the form {-1/c , -c, c, 1/c } using the full range of real-valued numbers for c. We show that groups of this form cause cancellations in the Winograd transform matrices that reduce numeric error. We find empirically that the error for different values of c forms a rough curve across the range of real-value numbers helping to localize the values of c that reduce error and that lower errors can be achieved with non-obvious real-valued evaluation points instead of integers or simple fractions. We study a range of sizes for small convolutions and achieve reduction in error ranging from 2% to around 59% for both 1D and 2D convolution. Furthermore, we identify patterns in cases when we select a subset of our proposed points which will always lead to a lower error. Finally we implement a complete Winograd convolution layer and use it to run deep convolution neural networks on real datasets and show that our proposed points reduce error, ranging from 22% to 63%.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源