海棠书屋 - 玄幻小说 - 重生之AI教父在线阅读 - 162. 网络的重参数化

162. 网络的重参数化

    马斯克的主要商业版图是汽车与火箭这样的重工业,其实原本与这个时间点的人工智能关系没有那么大。

    不过他个人的确是想法极其前沿又激进的一个人,造普通的车可不是他的风格。

    特斯拉不仅要带电,还要带自动驾驶!

    不仅如此,面对孟繁岐在视觉算法上的接连突破,他有一个大胆的想法。

    那就是希望为自己的特斯拉电车产业打造一个纯计算机视觉系统,而不借助其他技术手段。

    这是导致他此次再次来寻找孟繁岐,追求技术突破的主要原因。

    個人来说,他其实已经对上次的结果非常满意了,只不过他给自己的目标定的太高,想要完成这还远远不够。

    自动驾驶在深度学习发展起来之前就已经有了一些不错的成果,不过那些内容都是基于雷达和传感器居多。

    主要通过激光雷达或者其他传感器来检测物体,以及这些物体距离车辆的距离。

    不过马斯克觉得,这与人类cao作车辆的方式不大一样,太不酷了。

    想想人类是怎么开车的?

    一个人在驾驶汽车的时候,基本上就是纯视觉的,只靠看就能驾驶。车辆上那些镜,主要就是为了方便人看到周围和后面。

    可能偶尔有一些听觉的辅助效果,比如鸣笛,不过不是特别关键。主要还是视觉系统在起到作用。

    马斯克称之为第一原理思维,他希望做出的智能系统完全按照人类的逻辑去驾驶车辆,而不是借助传感器,毕竟人类可没有这样的超能力。

    但是视觉系统完全是基于大量的相机的,非常依赖高精度的检测算法,这就会带来很多的问题。

    如果检测到的东西数据集中没有见过怎么办?那还能检测到吗?

    基于激光雷达的传感器办法,不管碰到什么,总是可以检测到粒子和物体,它的原理像不像人类不说,至少不那么容易直接撞上去。

    纯依靠视觉的智能系统那可就不好说了,必须先用网络处理图像,然后加以分析。

    一旦分析出错,出现了误判,那是必撞无疑,肯定会发生车辆事故,一头创死在上面。

    马斯克激进的技术策略和喜好导致了一个问题,那就是人工智能算法要做的事情太多了。

    想要完全弃用传感器,那四面八方都得安装车载摄像头才行,才能保证前后左右都看得清楚。

    此外,还有一个重要的事情,那就是距离的估计。

    对于人类来说,根据一张图片去判断其中距离的远近,实在太过容易,可这对人工智能视觉算法来说,不是一件容易的事情。

    以现在的技术条件,需要进行非常复杂的标注,去分析样例图片中各个部位和像素的距离远近。

    因为图片毕竟是2D平面的,而自动驾驶是一个需要掌握好空间距离的任务。

    通过大量不同角度的平面图片,来重构一个三维的空间,甚至鸟瞰视角的三维空间是必要的。

    不过现在这还只是空中楼阁,马斯克再次联系孟繁岐的来意非常简单,就是希望这个作为骨干的神经网络可以再快一点,或者计算量再小一点。

    否则以目前的情况看,特斯拉很难负担得起这个运算量。

    实际上,马斯克没有对这件事情抱有特别大的希望。在他看来,孟繁岐上次给出的方案已经好到非常离谱了。

    在这个大家才刚开始复现DreamNet,还没把残差的原理和一些变种搞明白的时间点,孟繁岐已经针对各种不同平台的其他运算设备,做了相当多的实验。

    从而通过优化算子结构,调整特定计算过程的方式,将这个核心的骨干网络参数量减少了接近十倍。

    运算快了这么多,性能却没什么变化,这已经非常不得了了。

    马斯克有这一问,也是私下里的随口一提。

    但他名头太大,以往自己做的事情又太疯狂,导致孟繁岐听着他那颇为低沉,有磁性的声音之时,当了真。

    还真以为这是个非常严肃认真的需求。

    “自动驾驶的热度确实也快起来了,我专门针对这方面做点优化工作,也不算亏。”

    孟繁岐一边利用着重生优势开始抄底一些车企的股票,一边开始着手实现一个巧妙的加速并且节省内存的方式。

    这个新的优化办法叫做网络结构的重参数化。

    这半年来,视觉方法性能的突飞猛进来自于孟繁岐提出的残差方法,也就是将y=F(x)变为y=F(x) x。

    这里的写法比较简便,将一系列复杂的cao作,抽象归纳为F(),在实际运算过程中,这个F()还是比较复杂的,往往需要算上好一会。

    但在计算的时候,就有一个问题了,原本y=F(x)运算开始的时候,就不再需要继续存储x这个变量了,因为它已经在参与F(x)的运算。

    在运算过程当中,它会变成其他的中间变量,然后最终变为我们所想要的y。

    可在残差办法当中,y=F(x) x,x这个原始的输入,是不能够舍弃的。

    必须有空间一直被占用着,用来存放这个x,因为它还等着最后加上去呢。

    在比较复杂,分辨率比较高的任务当中,这个变量的大小是相当可观的。

    这种情况有没有办法可以规避?规避之后,残差方法带来的性能提升能不能不要被影响?

    答案当然是肯定的,完全可以做到。

    孟繁岐准备实现的这种结构重参数化,其最核心的思想就是模型训练和实际使用推理的分离。

    首先构造一系列结构(一般用于训练),并将其参数等价转换为另一组参数(一般用于推理),从而将这一系列结构等价转换为另一系列结构。

    在现实场景中,训练资源一般是非常丰富的,可以在大型的服务器上得到。

    而推理的时候,计算资源往往会比较有限,因此大家更在意的是推理时的开销和性能。

    想要训练时的结构较大,具备好的某种性质,比如性能特别好,准确率特别高。

    但在推理的时候,则把结构变小变快,同时在数学上等价于大型的结构。

    孟繁岐的这个新办法,就提供了这种可能,他相信,重参数 移动端网络的算力削减,将会成为自动驾驶领域的一大催化剂。