读书笔记:人工智能产品经理(五)

第五章 机器学习

机器学习是人工智能的分支,在机器学习产品研发的过程中,需要产品经理准确找到用户需求与机器学习技术的交集,为训练模型创造必要的计算资源,以及在产品研发期间为研发提供高质量的训练数据。基于以上工作内容,需要产品经理至少能掌握:

机器学习流程;

机器学习可以解决的问题分类;

算法的基本原理;

工程实践中算法、数据和计算资源三者间的依赖关系。

5.1 什么是机器学习

5.1.1 机器学习与几种常见概念的关系我们首先理解和区分四个联系紧密的名词:人工智能、机器学习、表示学习、深度学习。

人工智能是一个非常广泛的概念,目标是让计算机能够像人一样思考。

机器学习是人工智能的分支,是一种专门研究计算机怎样模拟或实现人类的学习行为,通过各种算法训练模型,并用这些模型对新问题进行识别和预测。

机器学习算法的性能,很大程度上依赖人为给定数据的表示或特征,特征选取的结果决定了最终的学习效果,而特征又会随着场景的变化而变化,依靠人工为一个复杂的场景设计特征需要耗费大量的人工和时间,为解决这个问题需要使用机器学习来挖掘出表示本身,而不仅仅是把表示映射到输出,这个就称为表示学习。

很多情况下,特征往往是不能被直接观察到的或事不可预测的,从原始数据提取特征是极其苦难的,普通的表示学习也难以满足人类的需求,于是人们发明了深度学习,它是一种试图由多重非线形变换构成的多个处理层对数据进行高层抽象的算法。它可以将复杂场景表示为嵌套的层次关系,已经在语音识别、机器视觉、自然语言处理与生物信息学等领域中被验证是一种非常有效的实现手段。

5.1.2 机器学习的本质人类是通过经验和知识去对事物进行判断并采取行动,而机器学习是通过对海量数据进行学习,构建了复杂的,有些时候无法解释的模型,当新的数据输入时,依靠该模型进行预测。人类的认知过程是“数据/信息”➡“专业知识/经验常识”➡“认知”,机器的过程是“数据”➡“认知”,人类的过程比机器认知过程多一步。从表面上看,人的效率更高,不需要每遇到一个问题就重新学一遍,然而事实证明,在某一个特定领域中,只要机器具备足够的运算能力和训练数据,它可以“一直学”,不断提高认知和推断能力,也就是说在特定领域,机器迟早会超越人类。在人类社会中,由于每个人的经历、经验、大脑构造、民族、信仰等各种方面存在巨大差异,导致人们面对同样的“输入数据”时,拥有不同知识的人将得出不同的结论和做出不同的判断。这些不同的判断和看法给人类带来了多样性,产生了不同的民族、信仰、习俗等缤纷的人类现象。反观机器学习,因为不存在知识的概念,只是简单粗暴地从数据中获取结果,所以当训练数据量接近时,不同的机器会产生极度接近的结果和判断能力,因此失去了多样性带来的创造力。5.2 机器学习流程拆解一个典型的机器学习流程需要经过以下流程:训练数据➡数据预处理➡处理后的数据➡训练预测模型(⬅模型验证)➡(没见过的数据➡)预测模型➡预测结果。

原始数据采集在监督学习场景中需要对数据进行标记,有时数据标记的工作往往非常耗时,在某些场景中的标记中国不仅对人的专业背景有较高的要求,而且完成标记所需要的周期极长,因此研究员正在努力研究可实现自动标记数据的工具。

数据预处理训练数据的“质”和“量”从某种意义上决定了机器学习的成败,但是原始训练数据的质量常常无法满足训练要求,例如原始数据具有不完整,嘈杂、不一致等缺陷,因此需要经过数据预处理过程才能将原始数据变成有效的训练数据集。机器学习的数据预处理与普通数据挖掘过程中的预处理流程和侧重点不同,而且不同机器学习场景对数据进行预处理的方式也不同。例如普通数据挖掘中的预处理就比较宽泛,包括数据清洗、数据集成、数据转换、数据消减、数据离散化等。而深度学习中数据预处理的过程主要包含数据归一化(包括样本尺度归一化、逐样本的均值相减,标准化)和数据白化。另外,在数据预处理阶段我们还需要将数据分为三种数据集,包括用来训练模型的训练集,开发过程中用于调参的验证集以及预测时所使用的测试集。

模型训练在正式开始模型训练之前,需要针对我们的训练目标进行分类。理解目标的本质对选择训练(学习)的方式至关重要,机器学习可以实现的目标可以被分为:分类、回归、聚类、异常检测等。前期算法工程师需要通过测试集和训练集,在集中可能的算法上做一些demo测试,再根据测试的效果选择具体的算法。这样可以避免后期由于大范围的模型训练策略改动而带来的损失。

模型评估模型的效果通常用“拟合程度“来形容。模型有过度拟合和失败两种情况,过度拟合通常是因为过度学习训练数据中的细节和噪音,以至于模型在新的数据上表现很差,从而导致模型泛化能力较差。模型复杂程度、参数、特征数以及训练数据的选取,都可能是导致过度拟合现象的原因。

调参对模型的评估结束后,可以通过调参的手段对训练过程进行优化。参数可以分为两类,一类是需要在训练之前手动设置参数,即超参数,另外一类是通常不需要手动设置,在训练过程中可被自动调整的参数。

推断机器学习的目标是利用数据来回答某种问题,因此推断或预测是机器学习回答问题的关键一步,同时也是机器学习价值体现的重要环节。

5.3 人工智能产品经理必备的算法常识

”算法“是指解题方案的准确、完整的描述,是一些列解决问题的清晰指令。算法代表着用系统的方法描述解决问题的策略机制。“模型”实际上是一种相对抽象的概念,在机器学习领域特指通过使用各种算法对数据进行训练后生成的一种“中间件”,当有新的数据输入到模型后会有相应的结果输出,而这个“中间件”就是模型。5.3.1 算法分类算法按照不同角度有多种分类方式。

按照模型训练方式可以分为监督学习、无监督学习、半监督学习和强化学习四大类。

按照解决任务的不同来分类,粗略可以分为二分类算法、多分类算法、回归算法、聚类算法和异常检测五种。

人工智能产品经理应主动了解和掌握每种常见算法的基本逻辑、最佳使用场景以及每种算法对数据的要求。这有助于建立必要的知识体系以及与研发人员进行良好的交流;在团队需要的时候提供必要的帮助;识别和评估产品迭代过程中的风险、成本、预期效果等。以下列出几种常见的算法集合:

监督学习。从给定的一组输入x输出y的训练集中,学习将输入映射到输出的函数,且训练集中的数据样本都有标签或目标,这就是监督学习。监督学习可以识别图片中的动物是猫还是狗,训练集中的图片应包含明确的猫或狗的标签。但是由于在某些场景中获得带有标签的训练数据成本非常高,监督学习由于过分依赖人类专家的指导,反而会限制机器的潜力。常见的监督学习算法包含以下几类人工智能神经网络类:自动编码器反向传播、玻尔兹曼机、卷积神经网络、Hopfield网络、多层感知器、径向基函数网络、受限玻尔兹曼机、回归神经网络、自组织映射、尖峰神经网络等。贝叶斯类:朴素贝叶斯、高斯贝叶斯、多项朴素贝叶斯、平均一依赖性评估、贝叶斯信念网络、贝叶斯网络等。决策树类:分类和回归树、迭代Dichotomiser 3、C4.5算法、C5.0算法、卡方自动交互检测、决策残端、ID3算法、随机森林、SLIQ等。线性分类器类:Fisher的线形判别、线性回归、逻辑回归、多项逻辑回归、朴素贝叶斯分类器、感知、支持向量机等。无监督学习。无监督学习和监督学习最大的区别就是无监督学习的训练数据没有标签。无监督学习的目标是从没人人为注释的训练数据中抽取信息、学习中分布中采样、去噪、寻找数据分布的流行或是将数据中的相关样本聚类。常见的无监督学习算法包含以下几类:人工神经网络类:生成对抗网络、前馈神经网络、逻辑学习机、自组织映射等。关联规则学习类:先验算法、Eclat算法、FP-Growth算法。分层聚类:单连锁聚类、概念聚类等。聚类分析:BIRCH算法、DBSCAN算法、期望最大化、模糊聚类、K-means算法、K均值聚类、K-medians聚类、均值漂移算法、OPTICS算法等。

半监督学习。在很多机器学习场景中,由于标签数据的获取成本较高,因此往往训练数据中的一部分有标签,另一部分没有标签,而且在工程实践中通常只有少量的标签数据和绝大多数的无标签数据。研究人员发现在无监督学习中混入一些有标签的数据,哪怕是数据量不多也会获得一项不到的模型质量。常见的半监督学习算法包含:生成模型、低密度分离、基于图形的方法、联合训练等。

强化学习。强化学习是一种让计算机通过不读尝试,从错误(反馈)中学习如何在特定的情境下,选择可以得到的最大的回报的行动,找到最后规律、达到学习的方法。强化学习包含:智能体、环境、智能体接收从环境传来的状态并作出行动,环境感知到智能体的行动后更新状态的同时,反馈给智能体一个奖励。智能体从这种不断试错的经验中发现最优方案,从而在这个过程中获取更多的奖励。强化学习与监督学习不同,它不是利用明确的行为来指导,而是利用已有的训练信息来对行为进行评价。强化学习与无监督学习也不同,无监督的学习的本质是从一堆未标记样本中发现隐藏的结构,而强化学习的目的主要是通过学习怎样获得最大奖励信号来反复尝试直到模型收敛。常见的强化学习算法包含:Q学习、状态-行动-奖励-状态-行动、DQN、策略梯度算法、基于模型强化学习、时序差分学习等。

深度学习。深度学习是一种试图使用由多种非线形变换构成的多个处理层,对数据进行高层抽象的算法。深度学习的好处是用无监督或半监督的特征学习和分层特征提取高效算法来替代手工获取特征。深度学习本质是让计算机用层次化的概念体系来理解和学习,而每个概念则通过与某些相对简单的概念之间的关系定义,从而实现通过简单概念学习复杂概念。典型的应用比如电商平台的商品推荐引擎,社交网络平台向用户推荐他可能关心的新闻,可能感兴趣的电影,可能需要的专家建议等。常见的深度学习算法包含:深度信念网络、深度卷积神经网络、深度递归审计网络、分层时间记忆、深度玻尔兹曼机、栈式自动编码器、生成对抗网络等。

迁移学习。迁移学习是一种吧已经训练好的模型参数,迁移到新的模型上来帮助新模型训练的学习方法。常见的迁移学习算法包含:归纳式迁移学习、直推式迁移学习、无监督式迁移学习、传递式迁移学习等。

5.3.2算法的适用场景算法的选择,通常要考虑以下因素,以便选出最合适的算法。数据量的大小、质量和数据本身的特性。机器学习要解决的具体业务场景中问题本质是什么。可以接受的计算时间是什么。算法精度要求有多高。算法按照解决任务类型,可以有以下分类

二分类。生活中有很多二分类问题,比如评价一个事物的好坏,美丑,值不值等,以及做一个决定,去不去看电影,打不打球,玩不玩游戏等。二分类支持向量机:适用于数据特征较多,线性模型的场景。二分类平均感知器:适用于训练时间短、线性模型的场景。二分类逻辑回归:适用于训练时间短、线性模型的场景。二分类贝叶斯点机:适用于训练时间短,线性模型的场景。二分类决策森林:适用于训练时间短,精准的场景。二分类提升决策树:适用于训练时间短、精准度高、内存占用量大的场景。二分类决策丛林:适用于训练时间短,精准度高、内存占用量小的场景。二分类局部深度支持向量机:适用于数据特征较多的场景。二分类神经网络:适用于训练精准度高,训练时间较长的场景。

多分类。二分类问题实际解决了非黑即白的问题,但这个世界上的问题和矛盾在很多情况下提供了多个选项(选项超过2个),如预测天气、视觉识别、手写体识别等。决绝多分类问题通常使用三种解决方案:第一种,从数据集和使用方法入手,利用二分类器解决多分类问题;第二种,直接使用具备多分类能力的多分类器;第三种,将二分类器改进成多分类器进而解决多分类问题。多分类逻辑回归:适用于训练时间短,线性模型的场景。多分类神经网络:适用于精准度高,训练时间较长的场景。多分类决策森林:适用于精准度高,训练时间短的场景。多分类决策丛林:适用于精准度高、内存占用较小的场景。“一对多”多分类:取决于二分类器效果。

回归。回归问题通常用来预测具体的数值而非分类。除了返回的结果不同,其他方面与分类问题相似。我们将定量输出,或者连续变量预测称为回归;将定性输出,或者离散变量预测称为分类。排序回归:适用于对数据进行分类排序的场景。泊松回归:适用于预测实践事件次数的场景。快速森林分为数回归:适用于预测分布的场景。线性回归:适用于训练时间短,线性模型的场景。贝叶斯线形回归:适用于线性模型,训练数据量较少的场景。神经网络回归:适用于精准度高、训练时间较长的场景。决策森林回归:适用于精准度高、训练时间短的场景。提神决策树回归:适用于精准度高、训练时间短、内存占用较大的场景。

聚类。聚类的目标就是发现数据的潜在规律和结构。聚类通常被用作描述和衡量不同数据源间的相似性,并把数据源分类到不同的蔟中。例如社交网络根据用户兴趣爱好以及在线行为为数据对社交人群进行划分。层次聚类:适用于训练时间短,大数据量的场景。K-means算法:适用于精准度高,训练时间短的场景。模糊聚类FCM算法:适用于精准度高,训练时间短的场景。SOM神经网络:适用于运行时间较长的场景。

异常检测。异常检测是指对数据中存在的不正常或非典型的个体进行检测和标志,有时也称偏差检测。异常检测看起来和监督学习问题非常相似,都是分类问题,都是对样本的标签进行预测和判断,但是实际上两者区别非常大,因为异常检测中的正样本非常小。还有,瑕疵的规律非常难找,也就是说下一个找到的异常点雨之前找到的任何一个异常点的特征都可能完全不同。异常检测还经常被使用在如下场景:信用卡欺诈检测、计算机安全监测、健康风险监测。一分类支持向量机:适用于数据特征较多的场景。基于PCA的异常检测:适用于训练时间短的场景。

关于读书笔记,我会将读书笔记分成2个阶段,第一阶段主要是书中知识的摘抄,必要时会调整顺序,这一阶段的主要目的是总结书中的精华。第二阶段我会开始一些拓展,加入一些自己的思考。简单来说,就是先把书读薄,再把书读厚。

书籍购买地址:

https://item.jd.com/12376742.html

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181016G21ZSR00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券