如今,机器学习算法被广泛用于制造无人驾驶汽车中出现的,各种挑战性的解决方案。通过在汽车中的ECU(电子控制单元)中结合传感器处理数据,有必要提高机器学习的利用以完成新任务。

潜在的应用包括通过来自不同外部和内部传感器(如激光雷达,雷达,摄像头或物联网)的数据融合来评估驾驶员状况或驾驶场景分类。

运行汽车信息娱乐系统的应用程序可以从传感器数据融合系统接收信息,例如,如果车辆注意到驾驶员受伤,则可以将汽车引导到医院。这种基于机器学习的应用程序还包括驾驶员的言语和手势识别和语言翻译。

算法分为无监督和监督算法,两者之间的区别是他们如何学习。

监督算法利用训练数据集学习,并继续学习,直到达到他们所期望的(最小化错误概率)程度。监督算法可以分为归类,分类和异常检测或维数缩减。

无监督算法尝试从可用数据中导出值。这意味着,在可用数据内,算法产生关系,以便检测模式或根据它们之间的相似程度,将数据集划分为子组。无监督算法可以在很大程度上被分类为关联规则学习和聚类。

加强算法是另一组机器学习算法,它处于无监督和监督学习之间。对于每个训练示例,在监督学习中有一个目标标签; 在无监督的学习中完全没有标签; 强化学习包括时间延迟和稀疏标签 - 未来的奖励。

代理学习根据这些奖励在环境中的行为。了解算法的局限性和优点,并开发高效的学习算法是强化学习的目标。强化学习可以解决大量实际应用,从AI的问题到控制工程或操作研究,这些都与开发自驾车相关。这可以分为间接学习和直接学习。

在自主汽车中,机器学习算法的主要任务之一是连续渲染周围环境,并预测可能对这些环境造成的变化。这些任务分为4个子任务:

  • 检测对象
    
  • 识别对象或识别对象分类
    
  • 物体定位与运动预测
    

机器学习算法被宽泛地分为4类:决策矩阵算法,集群算法,模式识别算法和回归算法。可以利用一类机器学习算法来完成2个以上的子任务。例如,回归算法可以用于对象定位以及对象检测或运动预测。

20170705_02_auto02

决策矩阵算法

决策矩阵算法系统地分析,识别和评估信息集和值之间关系的表现。这些算法主要用于决策。汽车是否需要制动或左转是基于这些算法对物体的下一次运动的识别,分类和预测的置信度。决策矩阵算法是由独立训练的各种决策模型组成的模型,在某些方面,将这些预测结合起来进行总体预测,同时降低决策中错误的可能性。

AdaBoosting

AdaBoosting是最常用的算法。自适应提升或AdaBoost是可以用于回归或分类的多种学习算法的组合。与任何其他机器学习算法相比,它克服了过度拟合,并且通常对异常值和噪声数据敏感。为了创建一个复合强大的学习者,AdaBoost使用多次迭代。

因此,它可以很好的适应。通过迭代添加弱势学习者,AdaBoost创造了一个强大的学习者。一个新的弱学习者被附加到实体和权衡载体,以调整被之前几轮错误分类的例子。结果是,具有比弱学习者的分类器高得多的分类器。

20170705_02_auto03

AdaBoost有助于将弱阈值分类器提升为强分类器。上面的图像描绘了AdaBoost在一个可以理解的代码的单个文件中的实现。该函数包含一个弱分类器和boosting组件。

弱分类器尝试在数据维度之一中定位理想阈值,将数据分为2类。分类器通过迭代部分调用,并且在每个分类步骤之后,它改变了错误分类示例的权重。正因为如此,创建弱分类器的级联行为就像一个强分类器。

聚类算法

有时,由系统获取的图像不清楚,难以定位和检测对象。有时,分类算法有可能丢失对象,在这种情况下,它们无法对系统进行分类并将其报告给系统。可能的原因可能是不连续数据,非常少的数据点或低分辨率图像。

聚类算法专门从数据点发现结构。它描述了类的方法和类的问题,如回归。聚类方法通常通过对分层和基于质心的方法进行建模来组织。所有方法都关注利用数据中的固有结构将数据完美地组织成最大共性的组。

K-means

K-means—多类神经网络是最常用的算法,是一个着名的聚类算法。K-means存储它用于定义集群的k质心。如果一个点比任何其他质心更接近该集群的质心,那么这个点被说成是在一个特定的集群中。通过根据当前分配数据点到集群和根据当前质心将数据点分配给集群,选择质心之间进行交替。

20170705_02_auto04

K均值算法 - 簇重心被描绘为十字,训练示例被描绘为点。(a)原始数据集。(b)随机初始聚类中心。(cf)运行2次k-means迭代的演示。每个训练示例在每个迭代中分配给最接近的聚类中心,然后将每个聚类中心移动到分配给它的点的平均值。

模式识别算法(分类)

通过高级驾驶辅助系统(ADAS)中的传感器获得的图像由各种环境数据组成; 需要过滤图像以通过排除不相关的数据点来确定对象类别的实例。在分类对象之前,模式的识别是数据集中的重要一步。这种算法被定义为数据简化算法。

数据简化算法有助于减少对象的数据集边缘和折线(拟合线段)以及圆弧到边缘。直到一个角落,线段与边缘对齐,并在此之后开始一个新的线段。圆弧与类似于弧的线段的序列对齐。以各种方式,将图像的特征(圆弧和线段)组合以形成用于确定对象的特征。

**支持向量机(SVM) **

PCA(原理分量分析)和HOG(定向梯度直方图),支持向量机(Support Vector Machines,支持向量机)是ADAS中常用的识别算法。还使用K个最近邻(KNN)和贝叶斯决策规则。

SVM依赖于定义决策界限的决策平面概念。决策平面分离由不同的类成员组成的对象集。下图给出了示意性示例。在这里,对象属于RED或GREEN类。分离边界线将红色和绿色物体分开。任何落在左侧的新对象都标记为RED,如果它落在左边,则将其标记为GREEN。

20170705_02_auto05

回归算法

这种算法有利于预测事件。回归分析评估2个或更多个变量之间的关系,并将变量的影响整理到不同的量表上,主要由3个指标驱动:

  • 回归线的形状
    
  • 因变量的类型
    
  • 自变量的数量
    

图像(摄像机或雷达)在启动和定位中在ADAS中起着重要作用,而对于任何算法,最大的挑战是开发基于图像的特征选择和预测模型。

通过回归算法来利用环境的重复性,以创建给定对象在图像中的位置与该图像之间的关系的统计模型。统计模型,通过允许图像采样,提供快速在线检测,可以离线学习。它可以进一步扩展到其他对象,而不需要广泛的人造型。对象的位置由算法返回,作为在线阶段的输出和对对象存在的信任。

回归算法也可以用于短期预测,长期学习。可以用于自动驾驶的这种回归算法是决策林回归,神经网络回归和贝叶斯回归等。

神经网络回归

神经网络用于回归,分类或无监督学习。他们对未标记的数据进行分组,对数据进行分类或在监督培训后对连续值进行预测。神经网络通常在网络的最后一层使用逻辑回归的形式,将连续数据变为1或0变量。

20170705_02_auto06

在上图中,“x”是输入,从网络上一层传出的特征。进入最后一层隐藏层的每一个节点,将馈送许多x,并将每个x乘以w,相应的权重,产品的总和被添加并移动到激活功能。

激活功能是ReLU(整流线性单元),通常用于像Sigmoid激活功能,在浅梯度上不饱和。ReLU为每个隐藏节点提供一个输出,激活a,并且激活被添加到通过激活和的输出节点中。

这意味着,执行回归的神经网络包含单个输出节点,并且该节点将先前层的激活总和乘以1.网络的估计“y hat”将是结果。'Y hat'是所有x映射到的因变量。您可以以这种方式使用神经网络来获取与您尝试预测的y(一个因变量)相关的x(自变量)。

(本文来源于微信公众号机械鸡)