Return to site

问题转化:让机器学习服务于市场需求

机器学习技术经历几十年的发展,最近在计算机视觉、语音识别、自然语言翻译、棋牌博弈、自动驾驶、艺术合成等领域取得了较大的成功,接近甚至超过了人类水平。尽管如此,这些技术仍然很“弱智”,处于任务驱动阶段。即,给定一个具体任务和预先定义好的数据输入,机器学习能够在给定样本和目标函数的情况下优化模型,然后依据模型处理数据,实现“判别分类”、“回归计算”和“数据生成”等基本功能[1]

市场需求是多种多样的。工业界对于机器学习的需求可以归纳为两方面,一方面希望机器能够替代人,从而节约成本、提高效率;另一方面希望机器超过人(如同AlphaGo),从而提高企业的服务质量。对此,算法部门的工作是扮演桥梁的作用:理解各种市场需求,将其转化为机器学习问题,实现相应算法以解决该问题。

然而,并不是所有市场需求都是能够轻松解决的。常常听到算法工程师抱怨,正在处理的问题难度非常大,尝尽了各种各样的模型和算法,仍然与市场需求的性能依旧相距甚远。更有甚者,项目的失败导致市场部门和算法部门的猜疑,一个认为算法部门能力不足导致浪费资源,一个责怪需求不当导致浪费精力。尤其是在新技术探索应用时,市场看到的是理论可行性以及技术背后的巨大市场,殊不知从理论可行性出发找到可行的实际技术应用常常如同大海捞针一般(例如,基于红外光的无创血糖检测技术)。

那么,该如何消除市场与算法的认知差异,提升机器学习应用于具体业务的成功率和效率?我们采用的是任务分解与假设检验的方法(此处的“假设检验”是借用统计学的概念,与统计学相关方法有相似之处但又略有不同,详见后续案例)。使用这种方法,算法部门能够更好地理解需求,快速评估对应的机器学习问题的复杂度和预期性能,进而与市场部门进行更有效的沟通,使得双方的对问题复杂度有共同的认知,提升机器学习在业务应用中的成功率和工作效率。

以下案例是我们对ECG(心电图)R-wave进行模式识别时的任务分解与假设检验过程。在该案例中,市场部门确定的需求如下:现有的Pan-Tompkins算法[3]在识别R-wave波峰时存在误判,概率性导致后端应用出错,期望设计算法提升准确率。

首先,分析上述需求中机器学习所擅长的问题。识别R-wave波峰可以理解为对ECG信号中的极值进行分类,判别给定极值是否是图1所示的R-wave波峰。现有的Pan-Tompkins算法是一种基于规则的分类算法,而规则算法最大的弊病在于其较低的泛化性,即,当输入信号存在新类型的噪声(例如测量位置变化、运动干扰、心脏病变等)时,规则算法性能快速下降,这种情况下如果添加新的规则,会导致程序复杂度呈指数上升,维护难度大。这导致Pan-Tompkins算法不再适合穿戴设备的R-wave识别。相比而言,基于统计的机器学习算法具有学习能力,能够适应新类型的噪声,正适合存在新类型噪声的穿戴设备信号分析。在此案例中,我们将市场需求转化为机器学习的“判别分类”问题。

图1 一个正常窦性心律的ECG信号 [2]

然后,进行数据实验以评估问题的复杂度,简单来说,就是要通过简单实验考察可能引起R-wave误判的噪声类型有哪些。本案例中的ECG是由智能穿戴设备采集到的一维时序信号,我们采用人工可视化的方式对其进行考察。考察发现,Pan-Tompkins算法误判的ECG多种多样,有的信号是人都难以判别的。进一步分析,我们认为这些复杂多样的信号可以分解为6种基本形态,其中一种是标准ECG形态,另外五种是由于引入噪声干扰产生的,如图2所示。

最后,进行任务分解和假设检验。考察上述六种基本形态,基本形态a在数据库中占大多数,且现有算法不易判错;对于基本形态b,现有算法常常把T-wave判别为R-wave;对于基本形态c,现有算法表现不稳定,有时判别左侧极值为R-wave,有时判别右侧极值为R-wave;对于基本形态d,现有算法常常将Q-wave或者S-wave判别为R-wave;对于基本形态e,现有算法常常将噪声误判为R-wave;在基本形态f中,心率不齐导致部分R-wave信噪比降低,现有算法表现不稳定,常出现漏判。据此,可将机器学习问题从易到难分解为以下几个子任务:

任务1:由于现有Pan-Tompkins算法对标准ECG具有较好的识别率,可以用于在数据库中产生大量样本并训练深度学习模型(CNN,卷积神经网络),检验目标是在测试数据集上获得与Pan-Tompkins算法表现接近的判别效果。

任务2:假设ECG基本形态b、c、d中R-wave的可以通过Q、R、S、T四种极值的形态和相对顺序进行判别,可以利用任务1所获得的模型与时序关系产生Q、R、S、T四种极值的样本集,据此训练四分类的深度学习模型(CNN),检验目标是在训练数据集上发现冲突样本(即,深度学习模型判别结果与标签不一致的样本),由人来判别严重冲突样本是否需要进行标签校正,通过多轮迭代逐渐改善模型效果(主动学习)。

任务3:假设ECG具有一定的周期特性,训练RNN(循环神经网络)模型,利用周期性能够估计出信号中R-wave出现的置信区间,进而利用形态模式找出信噪比较低的R-wave,检验目标是找出漏识的R-wave。

图2 智能穿戴设备采集ECG示例

通过以上步骤,所产生的模型在检测R-wave问题上获得了很高的precision和recall,基本接近人的水平,从而很好的满足了市场需求。

需要注意的是,任务分解和假设检验原则:每个子任务都必须注明先决条件或者某些特殊假设,目标必须是明确的,可以通过precision、recall等性能指标进行检验的。这就保证了机器学习任务能够有节奏地向前推进,另一方面,可以与市场部门更好地沟通,使得算法以外的部门对问题的复杂度有更清晰的认识,进而完善产品设计和路线图(Roadmap)规划。

小伙伴们,这样的机器学习任务很有意思吧?如果你对此感兴趣,或者有独特的想法和建议,欢迎联系我们深入交流(algo@lohas-tech.com.cn)。

参考文献

[1] Christopher M.. Bishop. Pattern recognition and machine learning. Springer, 2006.

[2] https://en.wikipedia.org/wiki/Electrocardiography, 20170328

[3] Pan, Jiapu, and Willis J. Tompkins. "A real-time QRS detection algorithm." IEEE transactions on biomedical engineering 3 (1985): 230-236.

All Posts
×

Almost done…

We just sent you an email. Please click the link in the email to confirm your subscription!

OKSubscriptions powered by Strikingly