##谷歌大脑重磅研究:快速可微分排序算法,速度快出一个数量级
鱼羊 十三 发自 凹非寺 量子位 报道 | 公众号 QbitAI
快排堆排冒泡排 。排序 , 在计算机中是再常见不过的算法 。
在机器学习中 , 排序也经常用于统计数据、信息检索等领域 。
那么问题来了 , 排序算法在函数角度上是分段线性的 , 也就是说 , 在几个分段的“节点”处是不可微的 。这样 , 就给反向传播造成了困难 。
现在 , 谷歌大脑针对这一问题 , 提出了一种快速可微分排序算法 , 并且 , 时间复杂度达到了O(nlogn) , 空间复杂度达为O(n) 。
速度比现有方法快出一个数量级!
文章图片
文章图片
代码的PyTorch、TensorFlow和JAX版本即将开源 。快速可微分排序算法
现代深度学习架构通常是通过组合参数化功能块来构建 , 并使用梯度反向传播进行端到端的训练 。
这也就激发了像LeCun提出的可微分编程 (differentiable programming)的概念 。
虽然在经验上取得了较大的成功 , 但是许多操作仍旧存在不可微分的问题 , 这就限制了可以计算梯度的体系结构集 。
诸如此类的操作就包括排序 (sorting)和排名 (ranking) 。
从函数角度来看都是分段线性函数 , 排序的问题在于 , 它的向量包含许多不可微分的“节点” , 而排名的秩要比排序还要麻烦 。
首先将排序和排名操作转换为在排列多面体(permutahedron)上的线性过程 , 如下图所示 。
文章图片
文章图片
△排列多面体说明
在这一过程后 , 可以发现对于r(θ) , 若是θ出现微小“扰动” , 就会导致线性程序跳转到另外一个排序 , 使得r(θ)不连续 。
也就意味着导数要么为null , 要么就是“未定义” , 这就阻碍了梯度反向传播 。
为了解决上述的问题 , 就需要对排序和排名运算符 , 进行有效可计算的近似设计 。
谷歌大脑团队提出的方法 , 就是通过在线性规划公式中引入强凸正则化来实现这一目标 。
这就让它们转换成高效可计算的投影算子(projection operator) , 可微分 , 且服从于形式分析(formal analysis) 。
在投影到排列多面体之后 , 可以根据这些投影来定义软排序(soft sorting)和软排名(soft ranking)操作符 。
文章图片
文章图片
△软排序和软排名操作符
在此基础上 , 要想完成快速计算和微分 , 一个关键步骤就是将投影简化为保序优化 (isotonic optimization) 。
【##谷歌大脑重磅研究:快速可微分排序算法,速度快出一个数量级】
文章图片
文章图片
接下来是将保序优化进行微分 , 此处采用的是雅可比矩阵(Jacobian) , 因为它简单的块级结构 , 使得导数很容易分析 。
文章图片
文章图片
而后 , 结合命题3和引理2 , 可以描述投影到排列多面体上的雅可比矩阵 。
需要强调的是 , 与保序优化的雅可比矩阵不同 , 投影的雅可比矩阵不是块对角的 , 因为我们需要对它的行和列进行转置 。
最终 , 可以用O(n)时间和空间中的软算子雅可比矩阵相乘 。实验结果
推荐阅读
- 「IT之家」对标Apple Card:谷歌拟推Google Card借记卡
- 华为Mate30:华为宣布!P40基本已去谷歌!外媒:华为P40去谷歌依然是顶级旗舰
- 大型机@IBM危险了!谷歌云收购大型机公司
- 【抚州】重磅!临川区人民政府、抚州移动与万向新元数字经济暨5G战略合作签约仪式举行
- 技术@为楼宇安上“智慧大脑”,翠苑街道开创“一平台”数据互通模式
- 「全媒体聚焦」要和高通说再见了,谷歌宣布一大消息,华为又将迎来对手
- 『谷歌』外泄谍照显示谷歌拟推Google Card借记卡
- 『谷歌』Google Pixel 4系列手机即日起支持双卡双待
- 标准■Jabra Evolve2 系列重磅上市,开创专注力和协作力新的商业标准
- 开放平台■软硬一体化! 百度大脑开放平台发布“度目”视觉硬件系列产品