美文网首页Aidesign
AI产品经理修行—机器学习必知(上)

AI产品经理修行—机器学习必知(上)

作者: S夏薇 | 来源:发表于2019-05-22 10:05 被阅读0次

    概述:用“非技术背景PM”的思路,简单通俗地介绍机器学习,比较全面的介绍了PM工作中会涉及到的机器学习知识。重点讲解机器学习分类及算法运用,文章下篇会讲机器学习的算法相关知识。

    一、AI产品经理工作

    在AI产品的研发过程中,尤其是直接应用到机器学习算法的领域,产品经理需要做的事情是,准确找到用户需求与机器学习技术的交集,在产品需求的实现过程中,需要与研发人员沟通可行性,技术实现方式,并提供数据资源及其他资源的支持。

    基于产品工作内容和要求,需要产品经理至少掌握:(1)机器学习基本流程(2)机器学习可以解决的问题分类(3)常用算法的基本原理(4)工程实践中算法、数据和计算资源三者之间的依赖关系

    二、机器学习(Machine Learning, ML)

    机器学习是用交叉学科研究计算机怎么模拟或实现人类的学习行为,以获取新知识或技能,重新组织已有的知识结构使之不断改善自身的性能。从实践上来说,机器学习就是通过以往的数据,训练出模型,通过模型进行预测的方法。机器学习是人工智能技术的核心。为其AI技术提供学习方法和算法支持。

    三、机器学习基本流程

    机器学习的基本流程依次包括:原始数据采集——数据预处理——模型训练——模型评估-调参——推断,工作流程图如下

                                          [图 3-1机器学习处理过程图]

    三、为什么使用机器学习?

    因为之前从事的工作,是通过算法来提取数据中的价值点,设计满足用户需求的产品。所以学习AI的第一个疑问是我为什么要使用机器学习?

    思考这个问题之前,先分析网上流传的一个公式:

    传统编程:规则+数据=答案

    机器学习:数据+答案=规则

    这个公式是对两种方式工作流程的拆解,传统编程是通过规则和数据去推导结果,机器学习是通过数据和结果去训练模型,通过模型去预测新的结果。拆解完流程后,根据工作中的经验会发现在下面这四点,机器学习有很大优势。

    (1)需要进行大量手工调整或拥有长串复杂规则才能解决的问题,通过机器学习算法简化代码,提高代码的执行力。(算法逻辑规则太复杂,研发同学对你咆哮的场景是否仍记忆犹新)

    (2)机器学习可以根据新的数据,继续学习训练模型,根据当下业务适时更新,灵活性特别高。(传统编程需要结合新的数据,进行分析,然后重新编写代码,重新发布上线)

    (3)可以通过机器学习算法从海量数据中寻找数据的潜在规律和价值。(机器学习的工作方式,可以帮助我们从大量数据中发掘人工无法发现的价值点)

    (4)解决复杂规则问题,参数太多,变量复杂,人工几乎无法写出合适的规则。如提供“千人千面的个性化服务”,预测未来的走势等。(这是最重要的一点,对于简单的规则问题,传统编程算法在效果和效率上有绝对优势)

    四、机器学习分类

    1.根据学习模式将机器学习分类为监督学习、无监督学习和强化学习。

    监督学习

    监督学习主要应用于解决预测(回归)和分类问题。目标是能够给新数据以正确的标签。

    监督学习过程就是通过已知的样本数据(已知输入和对应的输出)进行模型训练,从而得到一个最优的模型,再将新数据应用到模型上,进行预测。所以样本数据需要提前划分为训练集、测试集。

    [图 4-1 用于监督学习(比如垃圾邮件分类)的加了标签的训练集]

    监督学习训练数据既有特征(feature)又有标签(label),通过训练,让机器可以自己找到特征和标签之间的联系,在面对只有特征没有标签的数据时,可以判断出标签。分类标签精确度越高,学习模型的准确度越高。监督学习在自然语言处理、信息检索、 文本挖掘、手写体辨识、垃圾邮件侦测等领域获得了广泛应用。

    无监督学习

    无监督学习主要应用于解决聚类、关联问题。样本数据没有标签,只有一定的特征,目标是通过对无标记样本数据的学习来揭示数据的内在性质及规律,根据规律(特征)推断分成不同类别,其分类不必十分准确。

    [图 4-2 非监督学习的一个不加标签的训练集]

    无监督学习常常被用于数据挖掘,用于在大量无标签数据中发现些什么。例如无监督学习应该能在不给任何额外提示的情况下,仅依据所有“猫”的图片的特征,将“猫”的图片从大量的各种各样的图片中将区分出来。

    强化学习

    强化学习就是算法学习如何应对环境,目标使计算机获得对没学习过的问题也可以做出正确解答的泛化能力。强化学习的训练数据是无标签的,通过动作、状态和反馈,训练出一系列策略的组合。

    强化学习过程中强调外界环境的反馈,通过学习怎么获得最大奖励信号来反复尝试直至模型收敛,是一种试错学习。强化学习模型核心主要有两步,第一就是将奖励、损失定义好,第二就是以主体较低成本不断尝试,总结不同状态下,奖励大的工作方式。比如炒菜,炒菜的过程就是不断调整火候、调味品多少、原料占比多少,在经过多次尝试反馈后,最终做出自己喜欢的味道。强化学习可以应用于解决回归、分类、聚类、降维问题。在机器人控制、无人驾驶、下棋、工业控制等领域获得成功应用。

    监督学习与无监督学习区别

    (1)监督学习与无监督学习的最大区别就是样本数据是否打标签,监督学习的训练数据是需要打标签的。

    (2)监督学习解决的是分类、回归问题,无监督学习算法解决的是聚类和异常检测问题。

    (3)无监督学习可以进行降维处理,经常参与深度学习中的特征提取,监督学习不可以。

    (4)监督学习更适合处理独立分布的数据,而无监督学习更适合处理非独立分布数据,更能挖掘出数据的价值。

    (5)监督学习的分类原因,都是通过人为建模得出的,解释性差。无监督学习的聚类方法有很好的解释性,它会告诉你,他们有多少特征有多少一致性,所以才被聚成一组。

    强化学习与监督学习、无监督学习

    强化学习与监督学习不同,它不是利用明确的行为(有标签的训练数据)来指导,而是利用已有的训练信息来对行为进行评价。强化学习与无监督也不同,无监督学习的本质是从一堆未标记样本中发现隐藏的结构,而强化学习的目的主要是通过学习怎么获得最大奖励信号来反复尝试直至模型收敛。

    强化学习有哪些缺点:(1)强化学习采样效率低,需要消耗大量的时间和资源来准备数据和训练。(2)强化学习的奖励函数设计困难。(3)强化学习效果不突出,用其他方法也能达到。

    2.根据学习方法可以将机器学习分为传统机器学习和深度学习

    传统机器学习

    传统机器学习从一些训练样本出发,试图发现不能通过原理分析获得的规律,实现对未来数据行为或趋势的准确预测。相关算法包括逻辑回归、隐马尔科夫方法、支持向量机方法、K 近邻方法、三层人工神经网络方法、Adaboost算法、贝叶斯方法以及决策树方法等。

    传统机器学习平衡了学习结果的有效性与学习模型的可解释性,为解决有限样本的学习问题提供了一种框架,主要用于有限样本情况下的模式分类、回归分析、概率密度估计等。传统机器学习方法共同的重要理论基础之一是统计学,在自然语言处理、语音识别、图像识别、信息检 索和生物信息等许多计算机领域获得了广泛应用。

    深度学习

    深度学习作为机器学习研究中的一个新兴领域,源于多层神经网络,深度超过8层的神经网络才叫深度学习。深度学习模型包括输入层、输出层、隐藏层,隐藏层数量越多,越能处理复杂的问题。

    深度学习的实质,是通过构建很多隐藏层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。因此,“深度模型”是手段,“特征学习”是目的。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。

    [图4-3 传统神经网络模型(左)与深度学习模型(右)]

    同传统机器学习方法一样,深度机器学习模式也有监督学习与无监督学习、强化学习之分.不同的学习框架下建立的学习模型很是不同.例如,卷积神经网络(CNNs)就是一种深度的监督学习下的机器学习模型,而深度置信网(DBNs)就是一种无监督学习下的机器学习模型。

    深度学习框架是进行深度学习的基础底层框架,一般包含主流的神经网络算法模型,提供稳定的深度学习 API,支持训练模型在服务器和 GPU、TPU 间的分布式学习,部分框架还具备在包括移动设备、云平台在内的多种平台上运行的移植能力,从而为深度学习算法带来前所未有的运行速度和实用性。目前主流的开源算法框架有 TensorFlow、Caffe/Caffe2、CNTK、MXNet、Paddle-paddle、Torch/PyTorch、Theano 等。

    深度学习与多层神经网络区别

    广义上说深度学习的网络结构也是多层神经网络的一种。传统意义上的多层神经网络是只有输入层、隐藏层、输出层。其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适。

    而深度学习中最著名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的。简单来说原来的多层神经网络,特征是人工挑选,深度学习,特征是由网络自己选择。

    传统机器学习与深度学习对比

    (1)数据依赖性:深度学习与传统机器学习最主要的区别在于随着数据规模的增加其性能不断增长。当数据很少时,深度学习算法的性能并不好。

    (2)硬件依赖:GPU时深度学习正常工作的必备硬件,与传统机器学习算法相比,深度学习更依赖安装GPU的高端机器。

    (3)特征处理:机器学习算法的性能依赖所提取的特征的准确度,在传统机器学习中,多数应用的特征都需要人工确定。深度学习尝试从数据中直接获取高等级的特征,这也是深度学习与传统机器学习算法的主要的不同。

    (4)问题解决方式:传统机器学习通常会将问题分解为多个字问题并逐个问题解决,最后结合所有自问题的结果获得最终结果。深度学习提倡直接的端到端的解决问题,会直接将输入数据进行运算得到输出结果。

    (5)执行时间:深度学习算法中的参数很多,因此训练一个深度学习算法需要很长的时间。最先进的深度学习算法ResNet完整地训练一次需要消耗2周的时间,而传统机器学习的训练只需要几秒钟到几小时的时间。

    (6)可解释性:深度学习节点和层方面的超参数依然很神秘,无法解释为何得出这样的结果。

    3.此外,机器学习的常见算法还包括迁移学习、对抗学习等。

    迁移学习

    迁移学习是指当在某些领域无法取得足够多的数据进行模型训练时,利用另 一领域数据获得的关系进行的学习。迁移学习可以把已训练好的模型参数迁移到新的模型指导新模型训练,可以更有效的学习底层规则、减少数据量。迁移学习意味着从复杂迁移到简单,而不是从一个逻辑系统迁移到另一个逻辑系统。

    目前的迁移学习技术主要在变量有限的小规模应用中使用,如基于传感器网络的定位,文字分类和图像分类等。未来迁移学习将被广泛应用于解决更有挑战性的问题,如视频分类、社交网络分析、逻辑推理等。

    对抗学习

    对抗学习是深度学习的分支,是当下比较热门的研究项目,目前的对抗学习主要是指生成对抗网络(GAN)。

    生成对抗网络(GAN)的思想是一种二人零和博弈思想,博弈双方的利益之和是一定。GAN中有两个这样的博弈者,一个人名字是生成模型(G),另一个人名字是判别模型(D),它们各自有各自的功能。在训练中,判别模型尽可能提取特征正确率增加的模型,判断样本是真实的还是假样本,生成模型尽可能“伪造”样本,让判别模型以为是真的结果。

                                                                              [图4-1 对抗网络模型]

    生成对抗网络中,判别器是监督学习,处理真假分类问题,生成器属于无监督学习,处理聚类问题,生成拥有真实数据特征的数据。

    五、深度学习与特征工程

    人们发现机器学习算法的性能,很大程度上依赖于数据的特征,特征选取的结果决定了最终的学习效果。

    传统机器学习的特征,都是依赖于人为给定的,依靠人工为一个复杂的场景设计特征需要消耗大量的人工和时间。同时,很多情况下特征往往是不能被直接观察到的,从原始数据中提取抽象的特征是极其困难的,于是人们发明了深度学习,使用深度学习来挖掘出特征本身,这也是深度学习与传统机器学习的主要区别。常用的特征提取的方法有:主成分分析(PCA)和线性判别分析(LDA)。

                                                               [图5-1 深度学习与传统机器学习流程]

    参考文章

    【1】人工智能产品经理-AI时代PM修炼手册

    【2】人工智能标准化白皮书

    【3】小白也能读懂的机器学习入门指南

    【4】机器学习中无监督与监督学习的七大区别

    【5】机器学习初学者必须知道的十大算法

    相关文章

      网友评论

        本文标题:AI产品经理修行—机器学习必知(上)

        本文链接:https://www.haomeiwen.com/subject/oefyzqtx.html