机器学习常见的两个大坑

机器学习常见的两个大坑
大家都知道,不管是什么学科都有很多陷阱,由于我们对这一知识的了解不够,就很容易掉进这个坑里,所以说我们一定要加强知识储备。而在机器学习中有很多前辈们总结下来的陷阱,在这篇文章中我们给大家介绍一下机器学习中常见的两个大坑,希望能够帮助的大家尽早脱坑。

首先我们给大家介绍一下第一个坑,那就是系统边界模糊和巨型系统。其实机器学习系统与其他软件系统相比,有一个显著的特点,那就是它是建立在实验性、探索性开发的基础上的。尤其是在初次搭建系统的时候,很难做到在完整设计的指导下开发,而大多是一边探索尝试一边开发,到最后达到上线要求的时候,系统也就随之成型了。不过这样构建出的系统,有个很大的问题,就是很容易做成一个边界模糊、模块耦合、结构复杂的“巨型系统”,这种系统的典型特征包括三点,第一就是模块间不可拆分,样本、特征、训练等步骤都偶合在一起。第二就是很多实验性、探索性代码遍布其中,搞不清楚哪些在用,哪些已失效。第三就是pipeline特别长,其中包括一些可能已经无用的流程。

那么为什么会出现这样的系统呢?重要原因之一就是前面提到过的,机器学习系统的探索式的本质。在刚开始做系统的时候,可能样本处理、特征处理这些都比较简单,所以就都写在了一起。随着各个流程处理的精细化、复杂化,每个步骤都在变复杂,但是由于这种变化是在慢慢发生的,导致系统慢慢变得不可控。

机器学习中第二个坑就是不重视基础数据架构建设,一般来说,数据是机器学习系统的核心,这里面包括各种样本数据,原始特征数据,处理后的特征数据,支撑数据等等,那么提供这些数据的系统和架构也是同样重要的,机器学习系统在构建初期,对待各种数据的态度往往是辅助性质的,认为这些数据只是为了模型服务的原料,而没有把它们本身作为严肃的子系统来对待,所以这些数据的架构往往缺乏设计,大多比较随意,可能会有很多难以复用代码。不过这容易导致出一个严肃而复杂的问题,这个问题不是一两个简单方法就可以解决的,而是需要从数据源开始做仔细的设计,设计时充分考虑数据可能的用法,并留有一定扩展性,保证数据的可用性和可探索性。

在这篇文章中我们给大家介绍了关于机器学习中容易存在的问题,其实这些问题都是值得我们关注的。所以说,我们在学习机器学习的时候一定要注意好这些问题,这样我们才能够更好解决其中的问题。