作为一家国际知名半导体公司的人工智能技术专家,我在向客户介绍瑞萨的AI硬件和AI工具时,总会收到我关于机器学习算法的询问,例如:卷积神经网络、K均值算法或其他什么算法。但事实是,在构建人工智能解决方案的过程中,算法并不是最重要的因素(虽然是必要的),尤其是对于端侧应用。数据才是关键,一旦有了数据,真正起决定作用的,其实是隐藏在其中的“特征”(Feature)。
在机器学习的术语中,特征是作为算法输入的特定变量。特征可以是直接来自于输入数据中的原始值,也可以是对这些数据进行处理(预处理)后间接得到的值。有了合适的特征,几乎任何机器学习算法都能找到你要找的东西。如果没有好的特征,任何算法都无济于事。对于现实世界中的问题来说尤其如此,因为现实世界中的数据往往带有大量的固有噪声和差异,干扰和迷惑我们,妨碍我们直接通过数据看到真相。
我的同事Jeff(瑞萨AI COE部门的技术总监,前Reality AI独立公司的联合创始人)喜欢用这样一个例子跟同事们解释机器学习中关于特征的概念:
“假设我试图用人工智能模型检测我妻子何时回家,我会准备一组传感器,将其对准门口并收集数据。为了将这些数据应用于机器学习,我需要确定一组特征,这些特征能帮助模型将妻子与传感器可能检测到的其他任何事物区分开来。那么,最好用的特征会是什么呢?是能表明“她在那儿!”的那个特征。那将是完美的——一个具有完全预测能力的特征。这样一来,机器学习的任务就变得轻而易举了。”
诚然,如果能预知直接从底层数据中计算出完美特征的算法就最好了,实际上,深度学习通过多层卷积神经网络践行了这个思路,但这会带来大量的计算开销,并且需要大量的数据样本做支撑。正如在前文《深度学习的困局》中所阐述的那样。不过,还有其他方法,比如,使用Reality AI提供的工具集。
瑞萨的Reality AI工具基于连续采样的信号输入(如加速度、振动、声音、电信号等等)来创建分类器和探测器,而这些输入通常带有大量噪声和固有的信号波动。我们的价值在于,能够探索到那些以最低计算开销实现最强推测能力(关联度最高)的特征。Reality AI工具会遵循一套数学流程,先从数据中发现经过优化的特征,然后才会考虑使用这些特征来做出决策的算法(SVM或者NN)细节。Reality AI工具探索到越接近完美的特征,最终得到的推测结果就越好,需要参与训练和推理过程的数据更少,训练时间更少,结果更准确,并且所需的处理能力也更低。经过验证,行之有效。
这里举个例子说明有效的特征对后续判决起到显著作用。当以比较高的采样率(50 Hz及以上)对客观上世界的信号数据进行分析,比如,从振动或声音转化成的电信号进行采样得到的数据中发现某些规律或模式。在信号处理领域,工程师们通常采用频率分析方法提取信号特征。对于这类数据,机器学习的常见做法是,也是对输入数据流进行快速傅里叶变换(FFT),然后将这些频率系数中的峰值作为神经网络或其他某种算法的输入。
为什么采用这种方法呢?
一方面,是因为它很方便,毕竟数据工程师使用的所有数据处理工具都支持FFT,例如:MATLAB、Numpy、Scipy。
另一方面,也是因为他们理解这种方法,因为在学校里,每个人都会学习FFT。
同时,也是因为这种方法易于解释,因为其结果很容易与底层物理原理联系起来。
但是,FFT并不是总会提供最优的特征,它常会模糊掉重要的时间信息,而这些时间信息对于底层时序信号的分类或检测可能极为有用。
例如
在一项测试中,将Reality AI优化后的特征与FFT在一组中等复杂程度且带有噪声的信号上进行了比较。在图1中,展示了针对这一特定信号输入进行FFT处理后的时频图(或称为频谱图)。纵轴是频率,横轴是时间,在流信号上的滑动窗口中每次计算FFT。图中的颜色是热图,颜色越暖表示在该特定频率范围内的能量越高。
图1 测试信号的频谱图
把现在看到的这张图,同另一张图做个对比,见图2。图2是对当前这个分类问题,用Reality AI探索到的方法做出来的,它展示的是经过优化的特征。在图2中,细节展现得更丰富,之前模糊的地方现在都能分辨出来,而且降低了描述的复杂度(不需要使用不同的颜色在第三个维度上表达能量的分布情况)。如此,理解图中的内容也容易多了。
图2 测试信号在Reality AI探索到特征空间中的分布
仔细看这个图,
就可以试着解释这段信号的模式:
最基础的信号其实是一种低沉的(初始频率分布在较低的频段)、带着好几种音调(能量分布在多个频点)的嗡嗡声
同时还伴随着一阵一阵逐渐变响的啁啾声(有效频率分布的范围随着时间的推移在逐步升高)
另外还有一些突然出现又消失的其他信号(随着时间的推移,在某些频点出现能量后又消失)。
哈哈,你可能猜到了,这是一种独特的鸟在传递某种信息时发出的鸣叫声。
因为用了Reality AI探索出的方法,图中的信息不再模糊不清,那些干扰的噪声也被去掉了。所以,即使不是专业搞信号处理的人,也能一下子能看明白。现在,无论使用什么分类方法,要检测这些信号可比以前简单太多了。
一开始就对特征进行优化还有另一个关键的好处,可以提升最终分类器的计算效率。对于嵌入式解决方案而言,内存空间和计算负载都是最宝贵的资源,如果没有选对合适的特征,可能会导致最终可用模型的尺寸和计算复杂度急剧攀升,从而导致选型的芯片成本增加。
如前文《深度学习的困局》所述,深度学习也能够发现特征,不过效率不高。尽管如此,深度学习方法在处理某些使用信号数据的问题时非常成功,包括图像中的物体识别以及声音中的语音识别。对于广泛的各类问题,它都是一种可行的方法,但深度学习需要大量的训练数据,计算效率不是很高,而且对于非专业人士来说使用起来可能有难度。分类器的准确性往往对大量的配置参数有着敏感的依赖,这使得许多使用深度学习的开发者把大量精力放在调整预训练的模型上,而不是专注于为每个新问题找到最佳特征。
我的同事Jeff(同时作为数学家的他)也解释说,深度学习的本质上是“一种广义的非线性函数映射 ——数学原理很精妙,但与几乎任何其他方法相比,其收敛速度慢得离谱”。而Reality AI的方法则是针对信号进行了优化调整,通过探索和提取有效特征的方法,能够在使用较少数据的情况下实现更快的收敛。对于资源有限的端侧AI的应用场景,这种方法的效率将比深度学习高出好几个数量级。
虽然,深度学习在目前主流的AI产品中取得了显著的成功,这使得相关领域的人们将更多的关注放到了算法方面。在深度学习及其周边领域,机器学习算法已经有了大量令人兴奋的创新成果。但是,不要忘记一些基本的要义:
归根结底,
一切都来自于数据,与特征有关。
如您在使用瑞萨MCU/MPU产品中有任何问题,可识别下方二维码或复制网址到浏览器中打开,进入瑞萨技术论坛寻找答案或获取在线技术支持。
https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/
1
END
1
推荐阅读
让AI发生 | 一站式嵌入式AI开发平台:Reality AI Tools
视频介绍 | 使用AI思维定义嵌入式系统
扩展中高端视觉AI应用 | RZ V2N新产品介绍——高能效、先进AI技术