当前位置: 首页 > 科技观察

盘点机器学习算法在自动驾驶领域的应用_0

时间:2023-03-22 14:28:10 科技观察

融合车内、车外传感器的数据,评估驾驶员的情况,对驾驶场景进行分类,就需要机器学习。在这篇文章中,我们解释了不同的自动驾驶算法。自动驾驶汽车的设计和制造面临诸多挑战,如今各大公司纷纷广泛使用机器学习来寻找相应的解决方案。汽车中的ECU(ElectronicControlUnit)集成了传感器数据处理功能,如何充分利用机器学习来完成新任务变得至关重要。潜在的应用包括融合来自汽车内外传感器的数据,以评估驾驶员状况并对驾驶场景进行分类。这些传感器包括激光雷达、雷达、相机或物联网。运行在车载信息娱乐系统上的应用程序可以从传感器数据融合系统中获取数据。例如,如果系统检测到司机有状况,它就有能力将车开到医院。基于机器学习的应用程序还包括驾驶员语音和手势识别以及语言翻译。相关算法分为无监督和监督算法。它们之间的区别在于学习的方式。监督学习算法使用训练数据集进行学习,并能够持续学习直到达到设定的置信度水平(将错误概率降至最低)。监督学习算法分为回归、分类和异常检测、数据降维。无监督学习算法试图挖掘有限数据的价值。这意味着算法在可用数据中建立关系以检测模式或将数据集划分为子类别(取决于它们之间的相似性)。从广义上讲,无监督算法可以分为关联规则学习和聚类。强化学习算法是另一种机器学习算法,介于无监督学习和监督学习之间。对于所有训练示例,在监督学习中都有目标标签,在无监督学习中根本没有标签。强化学习有延迟的、稀疏的标签——未来的回报。基于这些奖励,代理学习适当的行为。了解算法的局限性和优势,开发更高效的学习算法是强化学习的目标。强化学习可以解决广泛的实际应用,从人工智能问题到控制工程或运筹学——所有这些都与开发自动驾驶汽车有关。这可以分为间接学习和直接学习。在自动驾驶汽车中,机器学习算法的主要任务之一是不断渲染周围环境并预测可能发生的变化。这些任务可以分为四个子任务:目标检测目标识别或分类目标定位运动预测机器学习算法可以简单地分为4类:决策矩阵算法、聚类算法、模式识别算法和回归算法。使用一类机器学习算法可以完成两个以上的子任务。例如,回归算法可用于对象定位和对象识别或运动预测。决策矩阵算法决策矩阵算法系统地分析、识别和评估信息集的性能和值之间的关系。这些算法主要用于决策。汽车是否需要刹车或左转是根据算法给出的置信度来识别、分类和预测物体的下一步动作。矩阵决策算法由各种独立训练的决策模型组成。在某种程度上,这些预测被整合起来做出整体预测,同时降低了错误决策的可能性。AdaBoosting是最常用的算法。AdaBoostingAdaptiveBoosting,或AdaBoost,是多种学习算法的融合。它可以用于回归或分类算法。与其他机器学习算法相比,它克服了过度拟合,并且通常对异常值和噪声数据敏感。为了创建稳健的复合学习器,AdaBoost使用多次迭代。因此,它也被称为“AdaptiveBoosting”。通过迭代添加弱学习器,AdaBoost创建了一个强大的学习器。一个新的弱学习器被添加到实体中,并调整权重向量以响应上一轮错误分类的示例。结果是分类器比弱学习器分类器具有更高的准确性。AdaBoost有助于将弱阈值分类器提升为强分类器。上图描述了AdaBoost在单个文件中的实现,代码简单易懂。该函数包含一个弱分类器和增强组件。弱分类器试图在一维数据中找到最佳阈值,将数据分为两类。增强组件迭代地调用分类器,并且随着分类的每一步,它都会改变错误分类示例的权重。因此,创建了一系列弱分类器,其行为类似于强分类器。聚类算法有时,系统获取的图片不是很清晰,导致难以定位和检测物体。有时,分类算法有可能遗漏检测到的对象,无法分类并报告给系统。这些可能是由不连续的数据、数据点太少或图像分辨率太低引起的。聚类算法的特点是从数据点中发现模式。与回归分析一样,聚类算法指的是一类方法和问题。典型的聚类算法包括层次聚类和基于质心的聚类算法。这些算法都关注数据的内部模式,准确地将数据分解为相似度最高的簇。K-means,多类神经网络(Multi-classNeuralNetwork)是最常用的算法。K-Means算法K-means是一种众所周知的聚类算法,它找到代表聚类结构的k个质心。如果一个点比其他质心更接近质心,则该点将分配给由最近的质心表示的簇。依次使用当前聚类的数据点找到一个新的质心,然后使用质心为新数据分配一个簇。K-Means算法——上图中,“x”用来表示簇质心,点用来表示训练样本。(a)原始数据集。(b)随机初始化簇质心。(c-f)k-means的2次迭代示意图。在每次迭代中,每个训练示例都被分配到最近的集群质心,并且每个集群质心都移动到分配给它的点的平均值。模式识别算法(分类模型)在高级驾驶辅助系统(ADAS)中,传感器获取的图像包含各种环境数据。需要对图像进行滤波,剔除一些不相关的样本,得到用于分类的实例数据。在分类之前,关键步骤是对数据集进行模式识别。此类算法称为数据缩减算法。数据缩减算法有助于减少数据集的边缘、对象的直线(拟合线段)和圆弧的边缘。一条线段与一条边匹配,在一个直角之后,匹配产生一条线段。与圆弧一样,圆弧匹配一系列直线段。以不同的方式将图像特征(圆弧和线段)组合起来形成特征,用来判断物体。利用PCA(主成分分析)和HOG(定向梯度直方图),SVM(支持向量机)经常被用作ADAS中的识别算法。还使用了K邻域(KNN)和贝叶斯决策规则。支持向量机(SVM)SVM依赖于决策平面的概念,它定义了决策边界。决策平面可以分离明显具有类关系的对象。如下所示。在此图像中,对象被分类为红色和绿色类。分隔边界线将红色和绿色对象分开。落在线左侧的新对象用红色标记,落在右侧的新对象标记为绿色。回归算法这些算法擅长进行事件预测。回归分析评价两个或多个变量之间的关系以及变量在不同尺度上的贡献,主要受三个指标的影响:1.回归线的形状2.因变量的类型3.自变量的个数(摄像头或雷达采集的图像)在ADAS的驱动和定位中起着重要作用。对于任何算法,最大的挑战是使用基于图像的模型进行特征选择和预测。环境的可重复性利用回归算法构建图像与该图像中对象位置之间关系的统计模型。利用采样图像的统计模型,可以进行快速在线识别和离线学习。该模型可以进一步扩展到不需要大量人体建模的其他对象。该算法返回对象位置作为在线阶段的输出和对象出现概率。回归算法可用于短期预测和长期训练。这类回归算法用在自动驾驶中,包括决策森林回归、神经网络回归、贝叶斯回归等。神经网络回归模型神经网络可用于回归、分类或其他无监督学习,以汇总未标记的数据,对这些数据进行分类,或在监督学习后预测连续值。神经网络经常在最后一层使用逻辑回归将连续值转换为变量,例如1或0(二元变量)。在上图中,“x”是输入,是从前一层神经元传播的特征。对于隐藏层中的每个神经元,将输入许多'x',每个'x'乘以相应的权重w。对于偏差,将乘积相加,然后将偏差添加到激活函数。激活函数常用的是ReLU(修正线性单元),因为它不像sigmoid激活函数那样扩展浅梯度。ReLU在隐藏层输出的激活值a相加后成为输出层的输出。这意味着用于回归的神经网络只有一个输出节点。该节点对激活求和并将它们乘以1的向量。网络的估计值,结果为“yPa”。“YPa”是映射所有“x”的独立变量。你可以用神经网络通过这种方式得到与'x'(多个独立向量)相关的函数,你可以找到你想要预测的'y'(独立变量)。