登录
首页精彩阅读走进机器学习的神奇魔法世界
走进机器学习的神奇魔法世界
2019-08-12
收藏
走进<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>的神奇魔法世界

作者 | William G. Wong

出品 | CDA数据分析师

英文标题 | Machine Learning: The Magic is How it Works

虽然人工智能的发展还没有达到人类的想象和预期,但机器学习工具已经可以使应用程序做一些神奇的事情了。

最近,我和朋友谈论人工智能(AI)和机器学习(ML),大家认为,如果用魔术这个词代替AI或ML,那么很多讨论和研究会包含相当多有用的信息量。形成这总现状的原因有很多,包括对AI,ML等当前发展的误解,更具体地说,深度神经网络DNN) - 特别是ML模型实际上在做什么和理解ML模型如何被协同使用。

希望工作中涉及到ML的人们能够接受我的解释,因为他们的目标是那些想要理解和使用ML的工程师,即使ML公司正在大肆宣传的炒作,但实际上他们还没有做到宣传的程度。超过一半的人正在研究ML,但只有一小部分实际上将其纳入产品中。然而这个数字正在快速增长。

ML只是AI领域的一部分,许多ML工具和模型可供使用,或者正在使用,或者正在开发中(图1)。DNN只是其中的一部分; 其他神经网络方法进入混合,但后来更多。

走进<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>的神奇魔法世界

神经网络只是人工智能研究的机器学习部分的一部分。

开发人员应该更多地考虑ML模型,如快速傅里叶变换(FFT)或卡尔曼滤波器。它们是构建具有特定功能的构建块,可以与类似的工具,模块或模型结合使用来解决问题。将黑盒子串在一起的想法是可行的。FFT和DNN模型之间的区别在于配置。前者有一些参数,而DNN模型需要训练。

某些类型的神经网络的训练需要数千个样本,例如照片。这通常在云中完成,这样可以应用大量的存储和计算能力。训练后的模型可以在终端使用,因为它们通常需要较少的存储和计算能力作为其训练对应物。可以在两种情况下使用AI加速器来提高性能并达到降低功率要求。

滚动机器学习模型

可以训练大多数ML模型以使用不同的训练样本集提供不同的结果。例如,猫照片的集合可以与某些模型一起使用以帮助识别猫。

模型可以执行不同的功能,例如检测,分类和分割。这些是基于图像工具的常见应用。其他功能可以包括路径优化或异常检测,或提供推荐等。

单个模型通常不会提供大多数应用程序所需的所有处理,输入和输出数据可能会受益于额外的处理。例如,降噪对于模型的音频输入可能是有用的。降噪可以由传统的模拟或数字滤波器提供,或者同时存在于ML模型中。然后可以使用输出来识别音素,单词等,因为数据被处理直到可能识别语音命令。

同样,可以使用模型或过滤器来识别图像中的感兴趣区域。然后可以将该子集呈现给基于ML的识别子系统等等(图2)。详细程度取决于应用程序。例如,基于视频的门打开系统可能需要区分人和动物以及运动方向,使得门仅在人朝向它移动时打开。

走进<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>的神奇魔法世界

可以使用不同的工具或ML模型来识别感兴趣的区域,然后对这些区域进行隔离和处理以区分诸如人和汽车之类的物体。

模型可以是定制的和预训练的,或者由开发者创建和训练。很大程度上取决于应用程序的要求和目标。例如,保持机器运行可能意味着跟踪系统中电动机的操作。可以从提供给电动机的功率到噪声和振动信息记录和分析许多因素。

H2O.ai和XNor等公司正在为那些不想从头开始或使用可能需要集成和定制的开源模型的人提供预建或定制的模型和培训。H2O.ai拥有针对特定平台和服务的Enterprise Steam和Enterprise Puddle等软件包。XNor的AI2Go使用菜单式方法:开发人员首先选择目标平台,如Raspberry Pi,然后是行业,如汽车,然后是一个用例,如舱内物体分类。最后一步是根据延迟和内存占用限制选择模型(图3)

走进<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>的神奇魔法世界

显示的是XNor AI2Go菜单选择过程的尾部。开发人员可以通过指定内存占用和延迟时间来缩小对理想模型的搜索范围。

这不是关于DNN的全部

在处理神经网络和类似技术时,开发人员需要牢记许多因素。涉及概率,ML模型的结果通常以百分比定义。例如,训练识别猫和狗的模型可能能够提供图像包含狗或猫的高度置信度。水平可以较低,区别于狗与猫等等,以至于识别出特定品种的动物。

通过额外的培训,百分比通常可以提高,但变化通常不是线性的。可能很容易达到50%的标记,90%可能是一个很好的模型。但是,可能需要很多训练时间才能达到99%。

最大的问题是:“在决策过程中有哪些应用要求以及有哪些替代方案?”这就是为什么在安全性和安全性是重要设计因素时使用多个传感器的原因之一。

由于开源解决方案的可用性,包括TensorFlow和Caffe等平台,DNN一直很受欢迎。他们已经从Xilinx,NVIDIA,Intel等公司那里获得了广泛的硬件和软件支持,但它们并不是唯一可用的神经网络工具。卷积神经网络(CNN),递归神经网络RNN)和尖峰神经网络(SNN)是其他一些可用选择。

SNNS通过使用BrainChip和埃塔计算。BrainChip的Akida开发环境(ADE)旨在支持SNN模型的创建。Eta Compute 通过SNN硬件增强了其超低功耗Cortex-M3微控制器。虽然所有神经网络方法都存在权衡,但SNN比DNN及其同类产品更容易训练。

Neurala的终身DNN(LDNN)是另一种ML方法,类似于DNN,具有较低的SNN训练开销。LDNN是多年来开发的专有系统。它支持使用近似轻量级反向传播的连续学习,允许学习继续而无需保留初始训练信息。LDNN还需要更少的样本来达到与传统DNN相同的培训水平。

DNN相比,精确度和识别水平存在折衷,但这种差异与涉及SNN的差异相似。由于涉及的因素很多,包括培训时间,样本等,因此不可能在系统之间进行直接比较。

LDNN可以受益于通用GPU(GPGPU)提供的AI加速。SNN更加轻巧,使其更易于在微控制器上使用。即便如此,只要模型不是太苛刻,DNN就可以在微控制器和低端DSP上运行。图像处理可能不实用,但是跟踪电机控制系统上的异常是可行的。

克服ML挑战

处理ML时存在许多挑战。例如,过度拟合是基于培训的解决方案遇到的问题。当模型与训练数据类似的数据很好地工作时,会发生这种情况,但对于新的数据则很差。LDNN使用基于阈值的自动合并系统,可减少冗余权重向量并重置权重,同时保留新的有效异常值。

ML模型可以高精度地成功解决许多任务。然而,这并不意味着所有任务,无论它们是传统的分类或分割问题,都可以适应。有时,改变模型可以帮助或开发新模型。这是数据工程师可以派上用场的地方,尽管它们往往很少见且价格昂贵。

调试模型也可能是一个挑战。ML模块调试与调试传统程序有很大不同。调试在应用程序中工作的模型是另一个问题。请记住,模型的精度通常低于100%; 因此,需要设计应用程序来处理这些条件。对于非关键应用程序而言,这不是一个问题。但是,像自动驾驶汽车这样的应用需要冗余,重叠的系统。

雪崩式的进步

新系统继续来自学术界和研究机构。例如,“使用神经形态传感器学习感知运动控制:迈向超维度主动感知”是马里兰大学工程系的一篇论文。Anton Mitrokhin和Peter Sutor Jr.,CorneliaFermüller和计算机科学教授Yiannis Aloimonos开发了一个用于集成传感器数据,ML分析和控制的超维度管道。它使用自己的超维记忆系统。

ML过去一直没有像其他编程工具那样进步。即使不转向专用硬件,改进也很显着。部分原因在于改进了软件对优化的支持,这些优化可提高准确性或性能,同时降低硬件要求。开发人员面临的挑战是确定要使用的硬件,使用什么ML工具以及如何将它们结合起来以解决其应用问题。

现在制作大多数系统是值得的,而不是等待下一次改进。一些平台将向上兼容; 但是,其他人可能不会。使用硬件加速解决方案将限制可支持但具有显着性能增益的ML模型,通常是多个数量级。

使用ML的系统并不神奇,它们的应用可以使用传统的设计方法。它们确实需要新的工具和调试技术,因此首次采用ML不应该是轻率的任务。另一方面,回报可能很大,ML模型可能经常提供传统编程技术和框架所不具备的支持。

如上所述,单个ML模型可能不是特定应用所需的。组合模型,过滤器和其他模块需要了解每个模块,因此不要假设它只是选择ML模型和进行有限数量的培训。在某些情况下这可能就足够了,特别是如果应用程序与现有模型匹配,但在尝试之前不要指望它。

数据分析咨询请扫描二维码

客服在线
立即咨询