什么是机器学习?

机器学习无疑是当下最热门的技术之一,在不经意之间我们已经享受了机器学习技术带来的便利。微信基于语音识别技术的语音转文字功能,豆瓣 FM 的智能音乐推荐等都是机器学习的实际应用。本文将对机器学习做一个简单的介绍,涉及的话题包括基本概念和术语的介绍,以及机器学习的大致过程。希望读完本文你能对机器学习有一个更加具体的认识。

什么是机器学习

那么,什么是机器学习?我们也许可以在网络上找到一个权威的定义,但是看完定义对我们的理解也许并无多大的助益。其实我们可以从机器学习所做的事情来理解这个概念,机器学习的核心就是在数据中寻找模式,并利用模式来预测未来。举个例子,银行可以使用机器学习来做风险控制,因为银行拥有大量的信用卡交易数据。这些数据可以让银行发现高风险的行为模式,利用这个模式就能够预测某笔交易是否存在欺诈的可能性。

机器是怎么学习的呢?你可以停下来思考一下,你是怎么学习的。人类学习也是一个寻找模式的过程,比如我们小时候学写汉字的时候,要学习并记住构成汉字的笔画,然后根据一定的模式,我们便可使用笔画写(拼凑)出汉字。机器学习也一样,无非就是在数据中识别出一定的模式。例如,假设我们现在有一组信用卡交易数据,如下表所示:

姓名 金额(元) 是否为欺诈
王三 1976
李四 2200
王五 998
赵六 9760

从上表中的数据来看,欺诈交易有什么模式?姓王的都是诈骗犯?这显然不符合客观事实,如果数据太少就容易找到错误的模式,如果数据不够多就无法找到具有预测意义的模式。那我们就来看看更多的数据,这些数据包含的信息更加丰富:

姓名 金额(元) 发卡地 交易地 年龄 是否为欺诈
詹姆斯 1976.23 美国 俄罗斯 23
李四 2200.22 中国 中国 26
王五 998.12 中国 日本 43
赵六 9760.67 中国 美国 36
布川内酷 1760.32 日本 英国 27
艾伦 1602.23 美国 俄罗斯 25
艾伯特 1530.75 美国 俄罗斯 20
艾力克斯 2260.40 英国 韩国 68
亚度尼斯 2637.31 美国 俄罗斯 56
尼王八 5725.21 美国 俄罗斯 21

这次我们又能从数据中发现什么模式呢?如果你仔细看了,就会发现当信用卡的发卡地为美国,交易地为俄罗斯,且持卡者年龄为20多岁时,则该笔交易很可能就是欺诈交易。然而,这个模式真的具有预测意义吗?上表的数据量并不大,故此模式很大可能也没什么意义。为了找出具有预测意义的模式,我们必须要有足够多的数据,多到单凭人力无法从中发现模式,多到只能用软件来识别模式,这时机器学习就能派上用场了。

机器学习的过程

机器学习的过程如下图所示。首先你收集大量含有模式的数据,然后将这些数据“喂”给机器学习算法,让算法识别出数据中的模式。机器学习算法在处理完数据之后,会生成一种被称为模型(model)的东西。简单地说,模型就是能够在新的数据中识别出模式的代码。我们可以使用这种模型,让软件判断新的数据是否符合相关模式。例如,给软件输入当前的交易的数据,软件就可以判断当前交易为欺诈行为的概率。

机器学习过程

当然,上述过程是简化之后的,真正的机器学习过程是一个不断迭代的过程,要比上述过程复杂很多。真正的机器学习过程如下图所示:

机器学习详细过程

从上图可以看出,我们首先需要采集原始数据,数据的采集也需要按照一定的规则进行,因此这一步往往需要一些领域专家的参与。例如如果需要采集信用卡交易的数据,那你就需要对信用卡欺诈行为非常了解的专家,这样才能采集到合适的数据。采集到的数据我们称之为原始数据(raw data),由于原始数据往往比较混杂,可能会缺了某部分数据,也可能有重复或者无效的数据,因此并不能直接用于机器学习,必须经过数据预处理。处理好的数据便可以作为机器学习算法的输入数据,但是在这个过程中又会发现更多的问题,这时必须再次对数据进行预处理,因此这是一个迭代的过程。事实上,一般的机器学习项目中,大部分时间都花在了数据预处理这阶段。数据处理好之后,就可以让机器学习算法进行学习了,学习的结果的就是模型,但这并不是最终模型,学习的过程也是一个迭代的过程。因此,你必须不断的重复这几个过程,直到得到你觉得满意的模型为止。有了满意可用的模型,你就可以在应用程序中使用它了。尽管如此,这个过程也没有结束,你必须不断重复上述过程。为什么呢?因为这个世界在变,你也必须保证你模型能够符合最新的状况,才能让你的应用程序正常运转。

一些术语

机器学习有一些特定的术语,我们必须了解这些术语,这样阅读别人的文章的时候,才知道他们在说什么。首先我们来说说训练数据(Traning Data),所谓训练数据,就是我们处理好的,用于创建模型的数据。为什么称为训练数据呢?在机器学习的语境中,创建模型过程也叫做训练模型,因此用于创建模型的数据也叫训练数据。

另外,机器学习技术可以分为两大类,一类是有监督学习(supervised learning),另一类事无监督学习(unsupervised learning)。有监督学习是指你需要预测的值本身就在训练数据之中的学习。例如,在前文提到的信用卡交易数据中,每条记录中都包含了该交易是否为欺诈行为的数据,这种数据在机器学习中被称为标注数据(labeled data)。因此,上述关于某笔交易行为是否为欺诈的预测,采用的是有监督学习。反之,无监督学习是指你需要预测的值不在训练数据之中的学习。这两种学习方法都有人在使用,但相对而言,有监督学习更为常用。

总结

机器学习是一门很重要,并且将会越来越重要的技术。因此,每个人都应该有所了解,本文可以作为你了解这门技术的第一步。

若我的文章对你有帮助,可以考虑请我喝杯咖啡
0%