产品经理的AI实战:人工智能产品和商业落地
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3 理解机器学习的类型及其算法

2.3.1 机器学习的类型

机器学习是一个博大精深的领域,有多种划分方法,也有很多容易混淆的概念。产品经理要想理解机器学习,就需要从重要的分类和概念入手。机器学习的类型及其关系如下图所示。

机器学习的类型及其关系

机器学习可以分为以下5种类型。

1. 监督学习

监督学习就是机器在学习的过程中有人类进行监督。人类准备好用于训练的数据,并对数据做标记(也叫打标签),最后用做好标记的数据去训练机器。

例如,人类为了让机器能准确识别车或马,就需要准备很多张车和马的图片,并将每张图片进行标注,如图片0016是车、图片9302是马等,通过用这些标注好的图片来训练机器,可使机器具备识别车或马的能力。

监督学习有广泛的用途。以反垃圾邮件为例,人类对大量的邮件进行标注(是否属于垃圾邮件),并用这些标注数据去训练机器。机器就能从中总结出垃圾邮件的规律,从而具备识别垃圾邮件的能力。

2. 无监督学习

人类准备训练数据,但不对数据做标记,而是让机器尝试寻找出其中隐含的模式和规律。

人类不对数据做标记的原因主要有两个:一是人类对有些数据缺乏足够的先验知识,因此难以对其做出标注;二是标注成本太高。

3. 半监督学习

半监督学习是介于监督学习和无监督学习之间的一种机器学习,它使用的数据包含有标签和无标签两种。在实战中,通常无标签数据远远多于有标签数据。

4. 强化学习

不同于监督学习和非监督学习,强化学习不要求预先给定数据。它的基本过程是机器不断尝试各种行为,并且计算获得的回报,从而探索出总体回报较大的策略。

以战胜我国棋手柯洁的AlphaGo Zero为例,它就是基于强化学习的。人类只给它输入了基本的围棋规则,并没有教给它具体的下棋策略,而是让它自己去摸索。没有人类的指导也就意味着没有人类的约束,也正因如此它才摸索出一些人类都没有尝试过的下棋策略。

因为整个学习过程都没有人类监督,所以强化学习和无监督学习很容易混淆。其实两者是有本质区别的,无监督学习探索的是数据的模式和规律,而强化学习探索的是策略。

5. 深度学习

深度学习与以上4种机器学习的类型都有部分重叠。深度学习的“深”是指它的模型层次多且深。

深度学习的模型有很多种,如CNN(卷积神经网络)、RNN(递归神经网络)等。CNN是目前计算机视觉领域的主要算法。RNN衍生出了LSTM(长短期记忆网络)和GRU(门控循环单元)等算法。RNN及其衍生算法适合语音识别、机器翻译等应用场景。

不同的机器学习类型有各自适用的场景。在同一个场景中,采用不同的机器学习类型也会获得不同的效果。

以金融行业的反欺诈场景为例,针对这个场景,最初采用的是监督学习,本质就是让风险控制人员来培训机器识别欺诈。正因为依靠了人类监督,机器很难超越人的识别能力。新的欺诈方式(尤其是专业的团伙欺诈)往往不能被风险控制人员及时发现,而人类发现之后再去训练模型就会有一定延迟,这期间金融机构可能已经遭受了很大损失。其实,在这样的场景中,可以采用非监督学习,让机器自己从海量的数据中找出欺诈规律,识别出更多的欺诈行为,从而避免更多损失。

不同的机器学习类型对产品经理的工作会有不同的影响。产品经理应该重点关注的是机器学习对产品工作的影响,而不是机器学习本身的细节。例如,选定了监督学习就意味着需要准备有标注的数据,产品经理就要对数据和标注工作做出相应的规划,其所涉及的问题可能是“训练数据从哪里来”“要做哪些标注”“由谁来标注”等。

2.3.2 机器学习的算法

以上介绍的5种机器学习的类型,每一种都包含了很多具体的算法。机器学习的部分算法如下图所示。

机器学习的部分算法

机器学习具体的算法数以百计,就算专业的技术人员也不可能掌握如此多算法的细节,因此产品经理对算法有整体理解即可。为了便于读者理解,我专门准备了一个小例子。

想象一个场景:在一家马术俱乐部的停车场停了几辆车,俱乐部的马因为好奇走进了停车场,车和马混在了一起。我们从空中俯拍了一张照片,现在要机器把照片中的车和马区分开。人一眼就能看出来,但机器需要算法。这是一个分类问题,需要用到分类算法,下图就展示了逻辑回归、支持向量机、决策树3种分类算法及对应的结果。

逻辑回归、支持向量机、决策树的算法及结果

上图中的矩形框代表停车场,矩形框内的图标代表车和马,虚线是算法做出的分类。

第一种算法:逻辑回归只能通过直线来分离数据。在本例中,这个算法的效果不佳——有两辆车、一匹马没有被正确区分。

第二种算法:支撑向量机没有直线限制。在本例中,这个算法完美地完成了任务——准确地区分出了车和马。

第三种算法:决策树使用自动生成的规则来分类。在本例中,这个算法也完美地完成了任务。

AI的“智能”源于算法,它是通过数值计算的方式来解决问题的,这和我们人类有很大不同。它在解决问题时,针对同一个问题可能使用多个算法来解决,一个算法也可以用于解决多个问题。