“黑盒子”发展史
随着2012年AlexNet在ImageNet图像识别比赛一举拿下冠军,比赛成绩完全碾压亚军,使得深度学习、卷积神经网络变得火热起来。目前的深度学习发展方兴未艾,回想起深度学习的发展史,还真可以用波澜起伏来形容。就如上图所示。
最早的神经网络思想起源于1943年数学家沃尔特·皮茨(W.Pitts)和心理学家沃伦·麦克洛克(W.McCulloch),当时是希望计算机能够模拟人类的神经元反应过程。这种新奇的想法和尝试也激起了当代其他数学家和科学家的研究兴趣。
1969年,美国数学家Minsky认为当时的MCP仅仅能解决线性问题。而生活中基本是不存在线性问题的,大多数都是非线性问题,这相当于直接给神经网络判了死刑。于是,神经网络的研究开始变少,甚至停滞。
1986年,现代深度学习大牛Hinton在1986年发明了适用于多层感知器(MLP)的BP算法,并采用Sigmoid进行非线性映射,有效解决了非线性分类和学习的问题。该方法引起了神经网络的第二次热潮。
1989年,Robert Hecht-Nielsen证明了MLP的万能逼近定理,即对于任何闭区间内的一个连续函数f,都可以用含有一个隐含层的BP网络来逼近该定理的发现极大的鼓舞了神经网络的研究人员。也是在1998年,LeCun发明了卷积神经网络-LeNet,并将其用于数字识别,且取得了较好的成绩,不过当时并没有引起足够的注意。随后的一段时间,是深度学习发展的沉淀时间。这段时间,决策树、SVM、AdaBoost、随机森林等统计学习方法相继提出。在这些算法的基础上,数学和统计学蓬勃发展。
2011年,ReLU激活函数被提出,有效的解决了神经网络梯度消失的问题。AlexNet就是应用了ReLU作为卷积层的激活函数,成功将卷积神经网络带入人们的视野。
“黑盒子”在自动驾驶应用
自AlexNet以后,Yolo、Inception、ResNet、MobileNet、GAN等系列网络如雨后春笋般涌现,在各个行业都有应用。自动驾驶行业当然也不例外。
在自动驾驶的识别过程中,常常使用Yolo网络作为物体识别的Baseline,Faster-RCNN用来做分割网络,MobileNet做分类网络等。决策过程也用到深度学习LSTM网络。由此可见,深度学习神经网络在自动驾驶领域中应用十分广泛。比如Waymo公司、Mobileye等解决方案供应商就广泛应用深度学习技术在自动驾驶领域。由于卷积神经网络出色的特征提取能力,目前已经可以实现端到端实时的进行分析决策判断。然而,现实世界的路况复杂程度远超深度学习网络的遍历规模,目前仍然会有大量的Corner case出现于智能驾驶算法中。通常情况是解决了一个,又出现另一个。也可能一波不平一波又起。
由于神经网络的参数一般是千万量级的,所以对调试人员来说完全是个黑盒子,我们只知道它能够完成某种功能,却不知道如何运作的,也不能够知道到底是哪里除了问题导致Corner Case。通常,网络设计者也仅仅通过经验来操刀网络超参数。同时,特征提取过程虽然可以可见,但是可视化后的有效信息也不够让人完全理解网络做了什么,什么可以完善。
就是这样的一个黑盒子让许多ADAS或智能驾驶开发者头疼,因为目前没有一个好的量化方法能够告知他们黑盒子究竟哪里能改进?设想一下,一个比较完善的智能驾驶系统,有着几千行甚至几万行的代码工作量,遇到corner case想要debug是比较困难的。
目前,有许多公司开始开发便于汽车开发者debug的平台。比如Foretelllix公司和Metamoto合作的仿真测试平台,可以验证智能驾驶算法,内置了评估系统Analytics&Merics 来将智能驾驶系统的表现可视化,让客户明确可以改进的方向。由于算法本身是一个黑箱子,所以只有程序员开发者能够知道算法的表达,这一个平台可以从某种意义上把算法可视化。主要验证深度学习算法,能够端到端的给出算法的各项指标,通过corner case等反馈也能让用户了解如何有针对性的改进深度学习神经网络。在收集传感器信息→感知算法\融合算法处理→预测过程→决策过程→控制汽车 这一个pipeline中,通过这个平台能够方便debug,找到千万行代码中哪一环节出了问题。这样就能够帮助智能驾驶功能开发者快速的debug,同时,让其他不懂编程的同事能够看懂算法的优劣势,在宣传产品的时候能够做到有的放矢。
自动驾驶要真正实现还有很长一段路要走,可视化的仿真测试平台或许是根不错的拐杖。
欢迎关注我们,了解更多(自动驾驶解决方案)