新智元报道  

来源:arXiv
编辑:好困
【新智元导读】GPU在深度学习的发展过程中无疑扮演着至关重要的角色,极大加快了模型的训练速度。最近索尼、大阪大学等研究员发现,显卡的好处不止这些,还能提高模型的准确度,只是没人用CPU训练,所以没发现而已!除此之外,使用GPU还可以和SGD一样跳出鞍点。
GPU和CPU训练同一个网络,竟然会产生不同的结果?
炼丹的小伙伴们都知道,深度神经网络的训练通常具有不确定性(uncertainty),这种不确定性可能来源于参数上的随机性、数据噪声或者是硬件相关的问题。
最近来自索尼、波兰的波兹南密茨凯维奇大学、大阪大学等研究员联合在arxiv上传了一篇论文,在研究神经网络不确定性的时候,突然发现由GPU引起的不确定性竟然可以提高深度神经网络的精度。
这种提升是相对于只是用CPU来训练神经网络的情况下来说的。使用GPU时,学习误差低于相同epoch使用CPU训练的模型。
如果按照这个结论的话,以往认为GPU只具有加速功能看来是不够全面的。
但研究人员还提到一点,就是这项研究结果并不适用于全部的神经网络模型,只是对于特定的模型才有用,像自编码器(autoencoder)中就没有观察到这个现象。
论文地址:https://arxiv.org/pdf/2109.01451.pdf
论文的实验也是简单粗暴,选几个模型,然后训练看结果,用到的设备硬件包括:
纯CPU设备:
Intel i5-4590, i7-6800K, i5-7600K, AMDRyzen-5-3600
带GPU的设备:
Intel i5-7600K + NVIDIA GTX-750Ti
i5-7600K + GTX-970
i7-6700K + GTX-1080
i7-7700K + GTX-1080Ti
i7-9700 + RTX-2080Ti
i5-7600K + RTX-2060 super
AMD Ryzen-5-3600 + RTX-2070 super
i5-9400 + Titan-RTX
(没有30系空气卡)
研究人员首先使用autoencoder和MNIST数据集评估了节点权重初始值和cuDNN函数状态的影响。从12个不同的随机选择初始值生成的学习曲线,从鞍点逃逸的曲线是很相似的,但损失降低的时间点却各有不同。
12个试验中有11个产生双相学习曲线(biphasic learning curve),而只有一个产生三相曲线(triphasic curve),表明存在多个不同的鞍点。
为了评估最终学习结果的差异,对5000个训练batch中最后50个batch的学习损失值取平均值,结果表明,从训练条件观察到的变化是随机初始值和cuDNN函数的共同作用导致的结果。
(a)可以看出12个值的平均±标准偏差为0.0074±0.00074;
(b)当关闭cuDNN功能后,也获得相似的结果0.0079±0.0012;
(c)在固定初始值的条件下,当cuDNN功能开启时,0.0076±0.00035;
(d)当初始值固定且cuDNN功能关闭时,12次训练的结果相同(0.0073±0)。
评估硬件架构对训练结果不确定性的影响时,使用固定初始值来消除软件相关的不确定性。从四个不同CPU和八个GPU得到的结果可以观察到,所有12种结构的变化相对较(0.0075±0.00020)。
除此之外,可以看到CPU和GPU之间的平均差异很小(CPU是0.0076±0.00023;GPU是0.0074±0.00017)
使用FPSI数据集对PredNet进行训练时,与自编码器相比,PredNet能够学习高度复杂的视频输入。
从12个不同的随机选择的初始值生成的学习曲线中可以看出,它的波动幅度要比自编码器更加强烈。这可能是由于输入数据主要是来自运动摄像机的第一人称视频,从而导致了场景之间的大量切换。
与自编码器一样,在12次训练中,逃离鞍点的时间点各不相同。
并且不同初始值和cuDNN状态都会影响损失值,其中随机初始值的影响更大。
预测神经网络 PredNet由哈佛大学提出,这项2016年的研究旨在探索和尝试复制人类大脑皮层的行为。
PredNet和AutoEncoder的模型架构在复杂性方面非常不同。自编码器的目的是重建图像,而非预测目标值。相比之下,PredNet 具有四个layer,每层使用卷积LSTM的表征神经元组成来预测。
研究人员得出结论: 虽然机制尚不清楚,但 GPU 硬件似乎有能力提高 DNN 的训练效果。并且GPU 可以更好地避免鞍点(即困在梯度下降法中的坡底)。
鞍点虽然是深度学习中无法忽视的一个阻碍,但是在最近关于随机梯度下降优化的相关研究中几乎都被忽略了。为了避免鞍点对学习的抑制,各种与随机梯度下降(SGD)相关的方法被引入到深度学习中。有学者认为,假设输入是非退化的且网络是过度参数化的,SGD可以在多项式时间内找到DNN训练目标的全局极小值。
SGD的随机性使深层神经网络能够成功地避免鞍点,但SDG也不是唯一能够避免鞍点的工具。GPU中的不确定性也可以作为避免鞍点的工具。
最后结论,GPU特定的计算处理比CPU更不确定,硬件衍生的不确定性(通常这种不确定性是不应该存在的,俗称bug)在某些情况下可能会成功地融入深度神经网络的训练中。
此外,在大脑相关的计算处理中,这种不确定性可能是一种有趣的现象,它包含大量的不确定性信号来产生新想法来跳出鞍点、产生奇迹等。
参考资料:
https://arxiv.org/pdf/2109.01451.pdf
继续阅读
阅读原文