社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【深度学习】研究揭秘:神经网络越大、表现越好的“神秘力量”

机器学习初学者 • 3 年前 • 267 次点击  



对人类来说,对生拇指(opposable thumbs)的出现是一个重大的时刻。那么,如果在进化过程中大自然又赐给我们额外的拇指,人类使用工具的能力是否会更强呢?情况可能不会有太大改观,毕竟一只手有一个拇指就够了。


但对神经网络而言,并非如此。


神经网络已经成为执行类人任务(human-like)的领先AI系统。随着其规模越来越大,理解力也随之增强。这无疑对研究者来说,惊喜与挑战并存。


基本的数学结果表明,网络差不多大就可以了,但现代神经网络的规模往往远超出预测需求——这种情况被称为过度参数化(over-parameterization)。


一般来说,只要参数的数量大于要满足的方程的数量,就可以使用参数化模型类进行数据插值。


而深度学习中一个令人费解的现象是,模型的训练参数比这个经典理论所暗示的要多得多。具体而言,求解n个方程一般只需要 n 个未知数。然而,革命性的深度学习方法围绕着高度参数化的模型,从 n 个训练数据点学习的参数远远超过 n 个。



NeurIPS 会议上发表的一篇题为“A Universal Law of Robustness via Isoperimetry”论文中,微软研究院的 Sébastien Bubeck 和斯坦福大学的 Mark Sellke 对规模扩展成功背后的奥秘提供了新的解释:找到一个拟合d维数据的平滑函数至少需要nd参数。


换句话说,d 因子的过度参数化对于平滑插值是必要的,这也恰好表明,深度学习中使用的大尺寸模型是有用的,而非框架的弱点。


而且,神经网络必须比传统的预期要大得多,才能避免某些基本问题。


这一发现为一个持续了几十年的问题提供了普适性的见解。


“这是一个非常有趣的数学理论结果。”瑞士洛桑联邦理工学院的Lenka Zdeborová说道。“他们以一种非常普遍的方式证明了这一点。因此,从该意义上说,它将成为计算机科学的核心。”


对神经网络规模的标准期望,来自于对它们如何记忆数据的分析。但要理解记忆,首要做的是理解网络。


神经网络的一个常见任务是识别图像中的物体。为了创建这样的网络,首先,研究人员需要提供大量的图像和标签,以训练其学习数据之间的相关性。然后,网络将会在所看到的图像中进行正确的识别。换句话说,训练会使网络记住数据。更值得注意的是,一旦网络记住了足够多的训练数据,它还能以不同程度的准确度预测从未见过的物体标签,即泛化。


可以说,网络的规模决定了它的记忆量。


这点可以借助图形的方式加以理解。想象一下,在xy平面上得到了两个数据点。接下来,你可以将这些点与一条由两个参数(线的斜率和穿过垂直轴时的高度)描述的线相连接。如果给定其他人这条线,以及其中一个原始数据点的x坐标,那么,他们只需查看这条线(或使用参数)就可以找出相应的y坐标。因为,这条线已经记住了这两个数据点。


当然,神经网络与之类似。例如,图像由数百或数千个值描述——每个像素对应一个值。构成这个组合的自由值,在数学上就等价于高维空间中的点的坐标,而坐标的数量称为维数。


一个古老的数学结果表明,要用曲线拟合n个数据点,需要一个包含n个参数的函数。当神经网络在 20 世纪 80 年代首次作为一股力量出现时,思考同样的事情是有意义的。无论数据的维度如何,他们应该只需要n个参数来拟合n个数据点。


“这不再是将会发生的事情,”德克萨斯大学奥斯汀分校的 Alex Dimakis 说。“现在,我们常规地创建神经网络,它的参数比训练样本的数量还要多,这意味着书必须重写。”


他们正在研究神经网络需要加强的另一种特性——鲁棒性,即网络处理微小变化的能力。例如,一个鲁棒性差的网络可能已经学会了识别长颈鹿,但它会将一个几乎没有修改的版本错误地标记为沙鼠。2019 年,在 Bubeck 和同事们意识到这个问题与网络规模有关时,也试图进行一些与之相关的定理证明。


据研究推测,鲁棒性法则应该适用于所有的两层神经网络。在本文中,研究团队也证明了它实际上适用于任意光滑参数化函数类,只要参数的大小至多为多项式。而且多项式大小限制对于有界深度神经网络是必要的。


Bubeck 说:“我们当时正在研究对抗的例子,然后网络规模就强行加入了进来。于是,我们意识到这或许是一个令人难以置信的机会,因为涉及到了解规模本身的一系列问题。”


在研究过程中,这对搭档证明了过度参数化对于网络鲁棒性的必要程度。随后,他们通过计算需要多少个参数来将数据点与具有等同于鲁棒性的曲线拟合,得出了平滑性(smoothness)。


为了充分理解该点,再次回想平面中的曲线,其中 x 坐标表示单个像素的颜色,y 坐标表示图像标签。由于曲线是平滑的,如果对像素颜色稍加修改,沿着曲线移动一小段距离,相应的预测只会发生很小的变化。另一方面,对于明显锯齿状的曲线,x 坐标的微小变化可能诱发y坐标的剧烈变化。


这项研究表明,平滑拟合高维数据点并非需要 n 个参数,而是高达 n × d 个参数,其中 d 是输入的维数(例如,对于 784 像素的图像,d 值为 784)。


换句话说,如果你希望网络能可靠地记忆其训练数据,过度参数化不仅有帮助,而且是强制性的。这一证明依赖于高维几何的一个奇怪的事实,即在球面上随机分布的点彼此之间几乎都是一个直径的距离。点之间的巨大间隔意味着用一条平滑的曲线拟合它们,需要许多额外的参数。


“这个证明非常简单——不需要复杂的数学运算,而且说明了一些非常普遍的原理,”耶鲁大学的 Amin Karbasi 说。


该结果提供了一种新颖的方法,以更好地理解为什么简单的神经网络扩展策略却如此有效。


除了这次的研究之外,其他相关的一些研究,也揭示了过度参数化之所以有用的原因。例如,它可以提高训练过程的效率,以及网络的泛化能力。虽然依据目前所知,过度参数化对于鲁棒性是必要的,但尚不清楚鲁棒性对其他事物究竟有多重要。但是,如果能将其与过度参数化联系起来,新的研究便给出了明示,鲁棒性极有可能比人们想象的更重要。




    
往期精彩回顾




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127840
 
267 次点击