如何使用RAPIDS和CuPy时加速Gauss 秩变换

描述

正如在 批量标准化纸 中所解释的,如果神经网络的输入是高斯的,那么训练它就变得容易多了。这很清楚。如果你的模型输入不是高斯的, RAPIDS 会在眨眼间把它转换成高斯的。

高斯秩变换 是一种新的标准化技术,用于转换输入数据以训练深层神经网络。最近,我们在 预测分子竞争性质 中使用了这种技术,它很容易将 m 消息传递神经网络模型 的精度提高了一个显著的幅度。这篇博文将展示如何使用 RAPIDS cuDF 和 Chainer CuPy 实现 GPU 加速的Gauss 秩变换,并使用 pandas 和 NumPy 替换来实现 100 倍加速 。

介绍

输入归一化是训练神经网络的关键。高斯秩变换的思想最早是由 迈克尔·贾勒。 在他的 塞古罗港的安全驾驶预测 挑战的胜利解中提出的。他训练去噪自动编码器,并尝试了几种输入标准化方法。最后,他得出这样的结论:

我在过去发现的最棒的东西是 GaussRank ,它能直接发挥作用。这通常比标准的 mean / std 定标器或 min / max (标准化)好得多。

工作原理

有三个步骤可以将任意分布下的连续值向量转换为基于秩的高斯分布,如图 1 所示。

神经网络

图 1 :高斯秩变换。

CuPy 实现非常简单,非常类似于 NumPy 操作。实际上,只需更改导入的函数,就可以将整个进程从 CPU 移动到 GPU ,而无需任何其他代码更改。

神经网络

神经网络

神经网络

神经网络

神经网络

神经网络

神经网络

神经网络


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分