【机器学习】从入门到第一个模型

2017 年 10 月 10 日 产业智能官 腾讯云技术社区

作者:李春晓

导语:

“从入门到第一个模型”差点就成了“从入门到放弃”。本文是机器学习在运维场景下的一次尝试,用一个模型实现了业务规律挖掘和异常检测。这只是一次尝试,能否上线运转还有待考究。试了几个业务的数据,看似有效,心里却仍然忐忑,担心哪里出错或者有未考虑到的坑,将模型介绍如下,请大侠们多多指教,帮忙指出可能存在的问题,一起交流哈。

背景:

业务运维需要对业务基础体验指标负责,过去的分析都是基于大数据,统计各个维度及其组合下关键指标的表现。比如我们可以统计到不同网络制式下打开一个app的速度(耗时),也可以获取不同命令字的成功率。针对移动APP类业务,基于经验,我们在分析一个指标时都会考虑这些因素:App版本、指标相关的特有维度(比如图片下载要考虑size、图片类型; 视频点播类要考虑视频类型、播放器类型等)、用户信息(网络制式、省份、运营商、城市)等。这些维度综合作用影响关键指标,那么哪些维度组合一定好,哪些一定不好?耗时类指标的表现往往呈现准正态分布趋势,其长尾永远存在并且无法消除,这种情况要不要关注? 针对命令字成功率,有些命令字成功率低是常态,要不要告警?过去我们会通过在监控中设置特例来避免告警。有没有一种方法,能自动识别常态与非常态?在机器学习如火如荼的现在,也许可以试一试。

目标:

  1. 挖掘业务潜在规律(针对耗时这类连续值指标,找出引起长尾的因素)

  2. 监控业务指标时,找出常态并忽略常态,仅针对突发异常产生告警并给出异常的根因。

之后就是艰苦的屡败屡战,从入门到差点放弃,最终搞出第一个模型的奋战史了。最大的困难是没写过代码,不会python,机器学习理论和代码都要同步学习;然后就是在基础薄弱的情况下一开始还太贪心,想要找一个通用的模型,对不同业务、不同指标都可以通用,还可以同时解决两个目标问题,缺少一个循序渐进入门的过程,难免处处碰壁,遇到问题解决问题,重新学习。好在最终结果还是出来了,不过还是要接受教训:有了大目标后先定个小目标,理清思路后由点及面,事情会顺利很多。

接下来直接介绍模型,过程中走的弯路就忽略掉(因为太多太弱了,有些理论是在遇到问题后再研究才搞明白)。

基本思路:

1.通过学习自动获取业务规律,对业务表现进行预测(ET算法),预测命中的就是业务规律,没命中的有可能是异常(请注意,是有可能,而非绝对);

2.将1的结果分别输入决策树(DT)进行可视化展示;用预测命中的部分生成业务潜在规律视图;用未命中的来检测异常,并展示根因。

步骤简介(以耗时这个指标为例):

1. 准备两份不重合的数据,一份用于训练,一份用于预测

例:视频播放类业务的维度(如版本,机型,视频来源,视频编码类型等各种已有特征),及耗时数据

2. 将目标问题转化为分类问题,有可能是常见的二分类,也有可能是多分类,视情况而定

将耗时这种连续性指标转为离散值,目标是产生三个分类:“极好的/0”,“一般的/1”,“极差的/2”,将耗时按10分位数拆分,取第1份(或者前2份)作为“极好的”样本,中间几份为“一般的”的样本,最后1(或者2)份为“极差的“样本 。 这里的“极差的”其实就是正态分布的长尾部分。如下图,第一列是耗时区间(未加人工定义阈值,自动获取),第二列是样本量。

3. 特征处理

3.1 特征数值化

这里表现为两类问题,但处理方式都一样:

(1)文本转数值

(2)无序数值需要削掉数值的大小关系,比如Appid这类,本身是无序的,不应该让算法认为65538>65537

方法:one-hot编码, 如性别这个特征有三种取值,boy,girl和unknown,转换为三个特征sex==boy,sex==girl,sex==unknown, 条件满足将其置为1,否则置为0.

实现方式3种:自己实现;sklearn调包;pandas的get_dummies方法。

One-hot编码后特征数量会剧烈膨胀,有个特征是手机机型,处理后会增加几千维,同时也要根据情况考虑是否需要对特征做过于细化的处理。

3.2 特征降维

是否需要降维,视情况而定,我这里做了降维,因为特征太多了,如果不降维,最终的树会非常庞大,无法突出关键因素。

所谓降维,也就是需要提取出特征中对结果起到关键影响因素的特征,去掉不重要的信息和多余信息,理论不详述了,参考:http://sklearn.lzjqsdd.com/modules/feature_selection.html

本文用了ET的feature_importance这个特性做降维,将5000+维的数据降至300左右

4. 用ET算法(随机森林的变种,ExtraTreesClassifier)训练一个分类模型(三分类)

4.1 评价模型的指标选取

对于分类算法,我们首先想到的准确性 precision这个指标,但它对于样本不均衡的场景下是失效的。举个例子,我们有个二分类(成功和失败)场景,成功的占比为98%。这种样本直接输入训练模型,必定过拟合,模型会直接忽略失败的那类,将所有都预测为成功。此时成功率可达98%,但模型其实是无效的。那么应该用什么?

对于二分类,可用roc_auc_score,对于多分类,可用confusion_matrix和classification report

4.2 样本不均衡问题处理

本文用的例子,显然0和2的数量非常少,1的数量是大头。为了不对1这种类型产生过拟合,可对0和2这两类做过抽样处理。

常见的有两类算法:

(1)直接复制少数类样本

(2)SMOTE过抽样算法(细节略)

这里两种算法都用过,最终选了SMOTE,不过本文研究的数据上没有看出明显差别。

少数类的过抽样解决了大类的过拟合问题,同时也带来了小类的过拟合,不过这里的模型正好需要让小类过拟合,我们就是要把表现“极好”和“极坏”的部分找出来,表现平平的在异常检测时加入关注。过拟合这个问题,不用过于恐惧,反而可以利用。举个例子,“患病”和“不患病”这种分类场景,宁可将“患病”的检出率高一些。如下图这个分类报告,对于小类样本(0和2),我们需要利用recall高的特性,即把它找出来就好;而对于大类样本,我们需要precision高的特性,用于做异常检测。

4.3 模型参数选取

Sklearn有现成的GridSearchCV方法可用,可以看看不同参数组合下模型的效果。对于树类算法,常用的参数就是深度,特征个数;森林类算法加一个树个数。

Max_depth这个参数需要尤其注意,深度大了,容易过拟合,一般经验值在15以内。

4.4 模型训练好后,用测试数据预测,从中提取各个类别预测正确的和不正确的。

例:

预测正确的部分:获取预测为0,2,实际也为0,2的样本标示;

预测错误的部分:获取预测为0和1,实际为2的样本标示(根据情况调节)

5. 输入决策树进行可视化展示,分别做业务规律挖掘和异常检测

这里DT算法仅用于展示,将不同类别的数据区分开,必要时仍然要设置参数,如min_samples_leaf, min_impurity_decrease,以突出关键信息。

还可以通过DecisionTreeClassifier的内置tree_对象将想要找的路径打出来

以下分别给出例子:

5.1 业务规律挖掘

视频点播场景,取0和2这两类预测正确的部分,输入DT,如下图,自动找出了业务潜在规律,并一一用大数据统计的方式验证通过,结论吻合。这个树的数据相对纯净,因为输入给它的数据可以理解为必然符合某种规律。

5.2. 异常检测

本文模型还在研究阶段,未用线上真实异常数据,而是手工在测试数据某个维度(或者组合)上制造异常来验证效果。

针对成功率,可以视容忍程度做二分类或者三分类。

二分类:取一个阈值,如99%,低于99%为2,异常,否则为0正常。缺点是如果某个维度上的成功率长期在99%以下,如98%,当它突然下跌时会被当做常态忽略掉,不会告警。

三分类:99%以上为0, 96~99% 为1,低于96%为2,这种方式会更灵活。 三种分类也分别对应其重要性。重点关注,普通关注,忽略。

下图是一个二分类的例子(手工将平台为IPH和播放端为client的置为异常):

最后:这里只是一次小尝试,如果要平台化上线运转,还要很多因素要考虑,首要就是模型更新问题(定时更新?避免选取到异常发生时段?),这个将放在下阶段去尝试。



延展阅读:机器学习实践指南

来源:Linux技术

在今天的文档中,我会列出 7 个步骤(和 50 多个资源)帮助你开启这个令人兴奋的计算机科学领域的大门,并逐渐成为一个机器学习高手。 -- Karlijn Willems

本文导航
  • -1、 学习必要的背景知识 …… 03%

  • -2、 不要害怕在 ML 的“理论”上浪费时间 …… 24%

  • -3、 开始动手 …… 40%

  • -4、 练习 …… 60%

  • -5、 项目 …… 65%

  • -6、 不要停止 …… 72%

  • -7、 利用一切可以利用的资源 …… 86%

  • -现在你可以开始了 …… 95%

编译自: https://medium.freecodecamp.org/how-machines-learn-a-practical-guide-203aae23cafb

作者: Karlijn Willems

译者: Flowsnow

你可能在各种应用中听说过机器学习(machine learning,ML),比如垃圾邮件过滤、光学字符识别(OCR)和计算机视觉。

开启机器学习之旅是一个涉及多方面的漫长旅途。对于新手,有很多的书籍,有学术论文,有指导练习,有独立项目。在这些众多的选择里面,很容易迷失你最初想学习的目标。

所以在今天的文章中,我会列出 7 个步骤(和 50 多个资源)帮助你开启这个令人兴奋的计算机科学领域的大门,并逐渐成为一个机器学习高手。

请注意,这个资源列表并不详尽,只是为了让你入门。 除此之外,还有更多的资源。

1、 学习必要的背景知识

你可能还记得 DataCamp 网站上的学习数据科学[1]这篇文章里面的信息图:数学和统计学是开始机器学习(ML)的关键。 基础可能看起来很容易,因为它只有三个主题。 但不要忘记这些实际上是三个广泛的话题。

在这里需要记住两件非常重要的事情:

  • 首先,你一定会需要一些进一步的指导,以了解开始机器学习需要覆盖哪些知识点。

  • 其次,这些是你进一步学习的基础。 不要害怕花时间,有了这些知识你才能构建一切。

第一点很简单:学习线性代数和统计学是个好主意。这两门知识是必须要理解的。但是在你学习的同时,也应该尝试学习诸如最优化和高等微积分等主题。当你越来越深入 ML 的时候,它们就能派上用场。

如果是从零开始的,这里有一些入门指南可供参考:

  • Khan 学院[2] 对于初学者是非常好的资源,可以考虑学习他们的线性代数和微积分课程。

  • 在 麻省理工学院 OpenCourseWare[3] 网站上学习线性代数[4] 课程。

  • Coursera course[5] 网站上对描述统计学、概率论和推论统计学的介绍内容。

统计学是学习 ML 的关键之一

如果你更多喜欢阅读书籍,请参考以下内容:

  • 线性代数及其应用(Linear Algebra and Its Applications)[6]

  • 应用线性代数(Applied Linear Algebra)[7]

  • 线性代数解决的 3000 个问题(3,000 Solved Problems in Linear Algebra)[8]

  • 麻省理工学院在线教材[9]

然而,在大多数情况下,你已经对统计学和数学有了一个初步的了解。很有可能你已经浏览过上面列举的的那些资源。

在这种情况下,诚实地回顾和评价你的知识是一个好主意,是否有一些领域是需要复习的,或者现在掌握的比较好的?

如果你一切都准备好了,那么现在是时候使用 R 或者 Python 应用这些知识了。作为一个通用的指导方针,选择一门语言开始是个好主意。另外,你仍然可以将另一门语言加入到你的技能池里。

为什么这些编程知识是必需的?

嗯,你会看到上面列出的课程(或你在学校或大学学习的课程)将为你提供关于数学和统计学主题的更理论性的介绍(而不是应用性的)。 然而,ML 非常便于应用,你需要能够应用你所学到的所有主题。 所以最好再次复习一遍之前的材料,但是这次需要付诸应用。

如果你想掌握 R 和 Python 的基础,可以看以下课程:

  • DataCamp 上关于 Python 或者 R 的介绍性课程: Python 语言数据科学介绍[10] 或者 R 语言编程介绍[11]。

  • Edx 上关于 Python 或者 R 的介绍性课程: Python 语言数据科学介绍[12] 和 R 语言数据科学介绍[13]。

  • 还有很多其他免费的课程。查看 Coursera[14] 或者 Codeacademy[15] 了解更多。

当你打牢基础知识后,请查看 DataCamp 上的博客 Python 统计学:40+ 数据科学资源[16]。 这篇文章提供了统计学方面的 40 多个资源,这些资源都是你开始数据科学(以及 ML)需要学习的。

还要确保你查看了关于向量和数组的 这篇 SciPy 教程[17]文章,以及使用 Python 进行科学计算的研讨会[18]。

要使用 Python 和微积分进行实践,你可以了解下 SymPy 软件包[19]。

2、 不要害怕在 ML 的“理论”上浪费时间

很多人并不会花很多精力去浏览理论材料,因为理论是枯燥的、无聊的。但从长远来看,在理论知识上投入时间是至关重要的、非常值得的。 你将会更好地了解机器学习的新进展,也能和背景知识结合起来。 这将有助于你保持学习积极性。

此外,理论并不会多无聊。 正如你在介绍中所看到的,你可以借助非常多的资料深入学习。

书籍是吸收理论知识的最佳途径之一。 它们可以让你停下来想一会儿。 当然,看书是一件非常平静的事情,可能不符合你的学习风格。 不过,请尝试阅读下列书籍,看看它是否适合你:

  • 机器学习教程(Machine Learning textbook)[20], Tom Mitchell 著,书可能比较旧,但是却很经典。这本书很好的解释介绍了机器学习中最重要的课题,步骤详尽,逐层深入。

  • 机器学习: 使数据有意义的算法艺术和科学(Machine Learning: The Art and Science of Algorithms that Make Sense of Data)(你可以在这里[21]看到这本书的幻灯片版本):这本书对初学者来说非常棒。 里面讨论了许多实践中的应用程序,其中有一些是在 Tom Mitchell 的书中缺少的。

  • 机器学习之向往(Machine Learning Yearning)[22] :这本书由吴恩达(Andrew Ng)

    编写的,仍未完本,但对于那些正在学习 ML 的学生来说,这一定是很好的参考资料。

  • 算法与数据结构(Algorithms and Data Structures)[23] 由 Jurg Nievergelt 和 Klaus Hinrichs 著。

  • 也可以参阅 Matthew North 的

    面向大众的数据挖掘(Data Mining for the Masses)[24]。 你会发现这本书引导你完成一些最困难的主题。

  • 机器学习介绍(Introduction to Machine Learning)[25] 由 Alex Smola 和 S.V.N. Vishwanathan 著。

花些时间看书并研究其中涵盖的资料

视频和慕课对于喜欢边听边看来学习的人来说非常棒。 慕课和视频非常的多,多到可能你都很难找到适合你的。 下面列出了最知名的几个:

  • 这个著名的机器学习慕课[26],是吴恩达(Andrew Ng)

    讲的,介绍了机器学习及其理论。 别担心,这个慕课讲的非常好,一步一步深入,所以对初学者来说非常适用。

  • 麻省理工学院 Open Courseware 的 6034 课程的节目清单[27],已经有点前沿了。 在你开始本系列之前,你需要做一些 ML 理论方面的准备工作,但是你不会后悔的。

在这一点上,重要的是要将各种独立的技术融会贯通,形成整体的结构图。 首先了解关键的概念:监督学习(supervised learning)和无监督学习(unsupervised learning)的区别、分类和回归等。 手动(书面)练习可以派上用场,能帮你了解算法是如何工作的以及如何应用这些算法。 在大学课程里你经常会找到一些书面练习,可以看看波特兰州立大学的 ML 课程[28]。

3、 开始动手

通过看书和看视频了解理论和算法都非常好,但是需要超越这一阶段,就要开始做一些练习。你要学着去实现这些算法,应用学到的理论。

首先,有很多介绍 Python 和 R 方面的机器学习的基础知识。当然最好的方法就是使用交互式教程:

  • Python 机器学习:Scikit-Learn 教程[29],在这篇教程里面,你可以学到使用 Scikit-Learn 构建模型的 KMeans 和支持向量机(SVM)相关的知名算法。

  • 给初学者的 R 语言机器学习教程[30] 用 R 中的类和 caret 包介绍机器学习。

  • [Keras 教程:Python 深度学习25[31] 涵盖了如何一步一步的为分类和回归任务构建多层感知器(MLP)。

还请查看以下静态的(非互动的)教程,这些需要你在 IDE 中操作:

  • 循序渐进:Python 机器学习[32]: 一步一步地学习 Scikit-Learn。

  • 循序渐进:使用 Keras 开发你的第一个神经网络[33]: 按这个教程一步一步地使用 Keras 开发你的第一个神经网络。

  • 你可以考虑看更多的教程,但是机器学习精要[34]这篇教程是非常好的。

除了教程之外,还有一些课程。参加课程可以帮助你系统性地应用学到的概念。 经验丰富的导师很有帮助。 以下是 Python 和机器学习的一些互动课程:

  • 用 scikit-learn 做监督学习[35]: 学习如何构建预测模型,调整参数,并预测在未知数据上执行的效果。你将使用 Scikit-Learn 操作真实世界的数据集。

  • 用 Python 做无监督学习[36]: 展示给你如何从未标记的数据集进行聚类、转换、可视化和提取关键信息。 在课程结束时,还会构建一个推荐系统。

  • Python 深度学习[37]: 你将获得如何使用 Keras 2.0 进行深度学习的实践知识,Keras 2.0 是前沿的 Python 深度学习库 Keras 的最新版本。

  • 在 Python 中应用机器学习[38]: 将学习者引入到机器学习实践中,更多地关注技术和方法,而不是这些方法背后的统计学知识。

理论学习之后,花点时间来应用你所学到的知识。

对于那些正在学习 R 语言机器学习的人,还有这些互动课程:

  • 机器学习介绍[39] 可以让你宏观了解机器学习学科最常见的技术和应用,还可以更多地了解不同机器学习模型的评估和训练。这门课程剩下的部分重点介绍三个最基本的机器学习任务: 分类、回归和聚类。

  • R 语言无监督学习[40] ,用 R 语言从 ML 角度提供聚类和降维的基本介绍。 可以让你尽快获得数据的关键信息。

  • 实操机器学习[41]涵盖了构建和应用预测功能的基本组成部分,其重点是实际应用。

最后,还有很多书籍以偏向实践的方式介绍了 ML 主题。 如果你想借助书籍内容和 IDE 来学习,请查看这些书籍:

  • Python 机器学习(Python Machine Learning Book)[42],Sebastian Raschka 著。

  • 人工神经网络与深度学习导论:Python 应用实用指南(Introduction to Artificial Neural Networks and Deep Learning: A Practical Guide with Applications in Python)[43],Sebastian Raschka 著。

  • R 语言机器学习(Machine Learning with R)[44],Brett Lantz 著。

4、 练习

实践比使用 Python 进行练习和修改材料更重要。 这一步对我来说可能是最难的。 在做了一些练习后看看其他人是如何实现 ML 算法的。 然后,开始你自己的项目,阐述你对 ML 算法和理论的理解。

最直接的方法之一就是将练习的规模做得更大些。 要做一个更大的练习,就需要你做更多的数据清理和功能工程。

  • 从 Kaggle[45] 开始。 如果你需要额外的帮助来征服所谓的“数据恐惧”,请查看 Kaggle 的 Python 机器学习教程[46] 和 Kaggle 的 R 语言机器学习教程[47]。 这些将带给您快速的提升。

  • 此后,你也可以自己开始挑战。 查看这些网站,您可以在其中找到大量的 ML 数据集:UCI 机器学习仓库[48],用于机器学习的公开数据集[49] 和 data.world[50]。

熟能生巧。

5、 项目

虽然做一些小的练习也不错,但是在最后,您需要做一个项目,可以在其中展示您对使用到的 ML 算法的理解。

最好的练习是实现你自己的 ML 算法。 您可以在以下页面中阅读更多关于为什么您应该做这样的练习,以及您可以从中学到什么内容:

  • 为什么有许多先进的 API,比如 tensorflow,还需要自己手动实现机器学习的算法?[51]

  • 为什么要从头开始实现机器学习算法?[52]

  • 使用 Python 从头开始实现一个分类器,我能从中学到什么?[53]

接下来,您可以查看以下文章和仓库。 可以从中获得一些灵感,并且了解他们是如何实现 ML 算法的。

  • 如何实现机器学习算法[54]

  • 从头开始学习机器学习[55]

  • 从头开始学习机器学习算法[56]

开始时项目可能会很难,但是可以极大增加你的理解。

6、 不要停止

对 ML 的学习永远不能停止,即使你在这个领域工作了十年,总是有新的东西要学习,许多人都将会证实这一点。

例如,ML 趋势,比如深度学习deep learning现在就很受欢迎。你也可以专注于那些现在不怎么火,但是将来会火的话题上。如果你想了解更多,可以看看这个有趣的问题和答案[57]。

当你苦恼于掌握基础知识时,你最先想到的可能不是论文。 但是它们是你紧跟最新研究的一个途径。 论文并不适合刚刚开始学习的人,但是绝对适合高级人员。

  • 20 篇最新的机器学习和深度学习领域的顶级研究论文[58]

  • 机器学习研究杂志[59]

  • 优秀的深度学习论文[60]

  • 机器学习的一些最好的研究论文和书籍[61]

其他技术也是需要考虑的。 但是当你刚开始学习时,不要担心这些。 例如,您可以专注于 Python 或 R 语言 (取决于你已经知道哪一个),并把它到你的技能池里。 你可以通过这篇文章来查找一些感兴趣的资源。

如果您还想转向大数据,您可以考虑研究 Spark。 这里有一些有趣的资源:

  • 在 R 语言中使用 sparklyr 来了解 Spark[62]

  • Spark 数据科学与工程[63]

  • 介绍 Apache Spark[64]

  • Apache Spark 分布式机器学习[65]

  • 用 Apache Spark 进行大数据分析[66]

  • 初学者指南:用 Python 操作 Apache Spark[67]

  • PySpark RDD 速查表[68]

  • PySpark SQL 速查表[69]

其他编程语言,比如 Java、JavaScript、C 和 C++ 在 ML 中越来越重要。 从长远来看,您可以考虑将其中一种语言添加到学习列表中。 你可以使用这些博客文章来指导你选择:

  • 机器学习和数据科学最流行的编程语言[70]

  • 机器学习和数据科学最流行的语言是...[71]

学无止境。

7、 利用一切可以利用的资源

机器学习是一个充满难度的话题,有时候可能会让你失去动力。 或者也许你觉得你需要点改变。 在这种情况下,请记住,有很多资源可以让你打消掉这种想法。 查看以下资源:

播客是可以让你继续你的 ML 旅程,紧跟这个领域最新的发展的伟大资源:

  • 谈论机器[72]

  • 数据怀疑论者[73]

  • 线性化[74]

  • 本周的机器学习及 AI[75]

  • 机器学习 101[76]

当然,还有更多的播客。

文档和软件包源代码是深入了解 ML 算法的实现的两种方法。 查看这些仓库:

  • Scikit-Learn[77]:知名的 Python ML 软件包

  • Keras[78]: Python 深度学习软件包

  • caret[79]: 非常受欢迎的用于分类和回归训练 R 软件包

可视化是深入 ML 理论的最新也是最流行的方式之一。 它们对初学者来说非常棒,但对于更高级的学习者来说也是非常有趣的。 你肯定会被下面这些可视化资源所吸引,它们能让你更加了解 ML 的工作原理:

  • 机器学习的可视化介绍[80]

  • Distill[81] 使 ML 研究清晰,动态和生动。

  • 如果你想玩下神经网络架构,可以看下 Tensorflow - 神经网络游乐场[82]。

  • 更多的看这里:机器学习算法最佳的可视化方法是什么?[83]

学习中的一些变化更加能激励你。

现在你可以开始了

现在一切都取决于你自己了。学习机器学习是一个持续的过程,所以开始的越早就会越好。 运用你手边的一切工具开始吧。 祝你好运,并确保让我们知道你的进步。

这篇文章是我基于 Quora 问题(小白该如何开始机器学习[84])给出的答案。


作者简介:

Karlijn Willems,数据科学记者


via: https://medium.freecodecamp.org/how-machines-learn-a-practical-guide-203aae23cafb

作者:Karlijn Willems[85] 译者:Flowsnow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出



延展阅读:初学者必读的八个趣味机器学习项目 ‖ 教程+数据集


来源:elitedata   机械鸡                    

                                                                         






抽时间做项目是最好的一种投资方式,在项目中你会享受学习、保持积极性并能获得更快的进展。没有任何理论可以代替实践,虽然教材和课程能让你掌握一些基本原理,但在尝试应用时,你会发现具体操作起来比较困难。


因此项目有助于提高应用机器学习的技巧,此外在找工作中也会给自己增添一些筹码。


以下将具体介绍这八个项目,每个项目都能在一个周末完成,如果你喜欢的话,可以对其进行相关的扩展。


本文目录


1. 机器学习的角斗士

2. 扮演“点球成金”

3. 预测股票价格

4. 教会神经网络阅读的笔迹

5. 调查安然事件

6. 从Scrath开始写机器学习算法

7. 挖掘社交情绪

8. 改善卫生保健



1.机器学习的角斗士


这个项目被称为“机器学习的角斗士”,但它不是新的。这是围绕机器学习建立实际直觉最快的一种方式。目标是将现成模型应用到不同的数据集。本项目主要有3个原因令人感叹:


首先,你会根据直觉为问题找到对应的模型。该模型是否对数据丢失具有鲁棒性、该模型适合处理种类别特征?这都可以通过挖掘教材找到答案,但如果通过实践的话能学习得更好。


其次,本项目将教会你快速设计初始模型的技能。在实际应用中,如果不简单尝试的话难以知道哪些模型表现最好。


最后,这个练习可以帮助你掌握建模的流程。例如:


  • 导入数据

  • 数据清洗

  • 将数据集拆成训练/测试或交叉验证集

  • 预处理

  • 变换

  • 特征工程


因为使用现成的模型,这导致你有更多的机会专注于学习上述的这些关键步骤。


通过以下教程可以练习回归、分类和聚类算法。


教程


  • Python:sklearn——sklearn数据包官方教程

    (http://suo.im/2soaN8)


  • Scikit Learn预测葡萄酒质量——用于训练机器学习模型的分步教程

    (http://suo.im/4qWf3S)


  • R:插入符号——在线研讨会

    (http://suo.im/28G7jk)


数据源


  • UCI机器学习库——350多个可检索数据集,几乎涵盖每一个主题。

    (http://suo.im/2LAdKq)


  • Kaggle数据集——Kaggle社区上的100多个数据集。

    (https://www.kaggle.com/datasets)


  • Data.gov——由美国政府发布的开放数据集。

    (https://www.data.gov/)


2.扮演“点球成金”


在点球成金这本书中,奥克兰通过善于分析球员的球探,建立了一个有竞争力的阵容,但只需要支付只有1 / 3的纽约洋基队支付的工资。


首先,如果你还没读过这本书,你应该看看。


幸运的是,体育界有很多的数据可以玩,这些数据(球队、比赛、成绩和球员信息)都是可以免费获取。


有很多有趣的机器学习项目适合初学者。例如:


体育博彩——在每场球赛之前根据给出的数据预测得分;

人才搜索——利用高校统计数据预测哪些球员会拥有最好的职业生涯;

一般管理——基于球员各自的优势创建集群,建立一个全面的团队。

体育也是一个很好的实践数据可视化和探索性分析的领域,你可以使用这些技巧来帮助你决定在你的分析中应包含哪些类型的数据。


数据源


体育统计数据——体育运动和历史数据包含许多专业的体育比赛等,从网络上非常容易抓取这些信息。(http://www.databasesports.com/)

体育参考——另一种体育统计数据库。更杂乱的界面,但个别表可以导出为CSV文件。(http://www.sports-reference.com/)

cricsheet.org——国际棒球和IPL板球比赛的数据,IPL和T20国际比赛的CSV文件可以被获取。(http://cricsheet.org/downloads/)


3.预测股票价格


股票市场对于任何数据科学家们都很感兴趣。


首先,你有很多类型的数据,比如价格、全球宏观经济指标、波动率指数等。


其次,数据是非常精细的。你可以很容易地花费很少时间就能得到每一个公司的数据,这允许你可以创造性地思考交易策略。


最后,金融市场普遍存在反馈周期短的特点。因此,可以快速验证新的数据。


一些对于初学者友好的机器学习项目如下所示:


定量的价值投资——根据公司的季度报告预测6个月的价格走势。

预言——对三角洲之间的隐含和实际波动率建立时间序列模型,甚至递归神经网络。

统计套利——基于价格变动及其它因素寻找相似的股票,并寻找价格分歧的时机。

免责声明:构建交易模型在实践中的机器学习是简单的,但使他们的盈利是非常困难的。入市需谨慎,投资有风险。


教程


  • Python:sklearn投资——将机器学习应用于投资的系列视频。

    (http://suo.im/4CIIso)


  • R:R量化交易——对于R定量金融学详细的课堂笔记。

    (http://www.rfortraders.com/)


数据源


  • Quandl——数据市场,提供免费的金融和经济数据。

    (http://suo.im/vp6xq)


  • Quantopian——定量金融社区,开发交易算法提供了一个免费的平台。

    (https://www.quantopian.com/data)


  • 美国基础档案文件——5000多家美国公司5年的基本数据。

    (http://usfundamentals.com/download)


4.教会神经网络阅读笔迹


神经网络和深度学习是现代人工智能的成功故事。他们导致了图像识别的重大进展,文本自动生成甚至自动驾驶汽车等。


MNIST手写体数字分类的挑战是经典的切入点,该数据集对于初学者是友好的,并且足够小以至于适合在大多数的计算机完成这个挑战。


首先,建议阅读下面的教程第一章。它会教你如何建立一个神经网络,并以高精度的结果完成MNIST挑战。


教程


神经网络和深度学习(在线书籍)——第1章如何从零开始使用Python编写神经网络完成MNIST数字分类。http://neuralnetworksanddeeplearning.com/


数据源


MNIST——包含70000个标记的手写体数字图像。(http://yann.lecun.com/exdb/mnist/)


5.调查安然事件


安然事件造成有史以来最大的公司破产。在2000年度,安然是美国最大的能源公司,然而被揭露舞弊后,它在一年内就破产了。


幸运的是,我们已经有安然的电子邮件数据库,它包含150名前安然员工之间的50万封电子邮件,主要是高级管理人员。这也是唯一的大型公共的真实邮件数据库,这使得它更有价值。


事实上,数据科学家已经使用这个数据集进行多年的教育和研究。


初学者可以尝试的机器学习项目例子包括:


异常检测——按照小时发送和接收的电子邮件分布尝试检测异常行为导致公众丑闻的异常行为。

社交网络分析——建立员工之间的网络图模型来寻找关键人物。

自然语言处理——结合电子邮件元数据分析正文消息,并根据其目的对电子邮件进行分类。


数据源


安然邮件数据集——这是由CMU归档的安然的电子邮件。(http://www.cs.cmu.edu/~enron/)

安然数据描述(PDF)——安然电子邮件数据的探索性分析可以帮助你打好基础。

(http://suo.im/2bM571)


6.从Scratch开始写机器学习算法


从Scratch开始写机器学习算法的原因主要有两个:


首先,没有更好的办法来建立对其机制的真正理解。你将不得不考虑每一步,从而真正掌握这些机制。


其次,你将会学到如何数学指令工作翻译成公众代码。


开始时,建议你选择一种不太复杂的算法;在适应构建简单的算法后,尽量扩展他们以获得更多的功能;最后,如果你的算法不比那些现有的数据包快,不要气馁,因为这些数据包是多年的发展成果!


教程


  • Python:从Scratch开始Logistic回归(http://suo.im/1sXPJR)


  • Python:从Scratch开始k-近邻法(http://suo.im/2p1OPS)


  • R:从Scratch开始Logistic回归(http://suo.im/3cPQSe)



7.挖掘社交情绪


由于大量用户生成的内容,社交化媒体已经几乎成为“大数据”的代名词。挖掘这些丰富的数据可以发现舆论、前沿和公众情绪的趋势。


脸谱网、推特、微信等一系列社交平台让人应接不暇。此外,每一代都比他们的前辈在社交媒体上花费更多的时间,这意味着社交媒体数据和市场营销、品牌及商业更相关。


虽然有许多流行的社交媒体平台,但推特是练习机器学习经典的切入点。


使用推特数据,你会得到一个有趣的混合数据(推特内容)和元数据(位置、标签、用户、转发等),因此有很多方式对其进行分析。


教程


  • Python:挖掘Twitter数据——如何在推特数据进行情感分析

    (http://suo.im/tflKM)

  • R:机器学习的情感分析——短而甜蜜的情感分析教程

    (http://suo.im/2rALk4)


数据源


  • 推特API——推特API是流媒体数据的经典来源。(http://suo.im/CKCiA)


  • Stock Twits API——Stock Twits是一个社交投资平台,类似于一个交易者和投资者之间的推特,可以通过将时间戳和股票代码符号加入到时间序列数据集中扩展此数据集。(https://stocktwits.com/developers/docs)


8.改善卫生保健


由于机器学习而经历快速变化的另一个行业是全球健康与保健。


在大多数国家,成为一个医生需要多年的教育,这是一个要求很高的领域,长时间、高风险以及一个很高的门槛。


因此近年来,在机器学习的帮助下减轻了医生的工作量,提高了医疗系统的整体效率。


用例包括:


预防保健——预测对个人和社区层面的疾病爆发。

诊断服务——图像数据的自动分类,如扫描、X射线等。

保险——根据公开的风险因素调整保险费。

随着医院患者的病例现代化的发展,当我们收集更多的健康数据时,数据科学家将会有很大的可能去改善现存的医疗体系。


教程


R:为疾病预测建立有意义的机器学习模型

(http://suo.im/4qrHaJ)

卫生保健中的机器学习——微软研究院的优秀演讲

(http://suo.im/2wPFan)


数据源


大型健康数据集——大型健康数据集的收集

(http://suo.im/2VcIBhv)

data.gov/health——由美国政府提供的医疗保健相关的数据集。(http://suo.im/4wBUn5)

健康营养和人口统计——由世界银行提供的全球健康、营养和人口统计数据。

(http://suo.im/4dPW1I)




延展阅读:【解读谷歌TFX】基于TensorFlow可大规模扩展的机器学习平台


来源 :新智元


1新智元推荐  


来源:blog.acolyer.org

编译:常佩琦  弗格森


【新智元导读】 作者详细分析了Google通用机器学习平台和其实现过程。通过将上述组件集成到一个平台中,能够对组件进行标准化,简化平台配置,并将生产时间从数月缩短到数周,同时提供平台稳定性,最大程度地减少服务中断。 



KDD2017上,谷歌发布了基于TensorFlow的可大规模扩展的产品级机器学习平台TFX。(论文地址:http://www.kdd.org/kdd2017/papers/view/tfx-a-tensorflow-based-production-scale-machine-learning-platform)


创建和维护一个生成和部署机器学习模型的平台需要在多个组成部分中细致协调,包括一个基于训练数据生成模型的学习器,用于分析和验证数据及模型的模块,以及用于为模型提供服务的设施。


当数据随时间变化而需要连续生产新的模型时,这变得尤其具有挑战性。不幸的是,这种编排通常是由使用个别团队开发的特殊用途的胶合代码和自定义脚本进行的,导致重复性工作和脆弱的高技术债务系统。


作者详细分析了Google通用机器学习平台和其实现过程。通过将上述组件集成到一个平台中,能够对组件进行标准化,简化平台配置,并将生产时间从数月缩短到数周,同时提供平台稳定性,最大程度地减少服务中断。

 

在论文中,作者介绍了在Google Play应用商店中平台部署的案例研究,随着新数据流入,机器学习模型将不断更新。通过优化数据和模型分析,部署平台促使自定义代码减少,实验周期更快,应用程序安装增加了2%。


以下是博客acolyer上更为详细的介绍:




TFX:基于TensorFlow的规模生产机器学习平台




过去几年中,世界一流的在线产品和服务开发发生了巨变。 我们最近一直在关注的一系列论文可以帮助您了解上限的位置。


*新基线:到目前为止,您已经接受了自动化测试,持续集成,持续交付,也许是持续部署,而且您已经熟练地逐步推陈出新,监控行为,并在发现问题时停及时停止。


*此外,您已经建立了一个复杂的指标系统和一个连续实验平台。


*由于系统复杂性的增加,您可能还需要将其扩展到通用黑箱优化平台。


*但你还没有完成! 您优化过的所有机器学习模型都需要接受训练,验证和服务。 你需要一个机器学习平台。 这就是今天文章的主题,它介绍了Google TFX中的机器学习平台。


我为什么需要一个机器学习平台?


实现机器学习模型的代码只是在生产系统中使用机器学习的一小部分。 我们在“机器学习:技术债务的高息信用卡”一文中看到了大量部署机器学习的经验教训。数据需要转换和验证,模型验证需要与数据验证相结合,防止不良(尚未验证的)模型进入生产。你还需要一个可扩展的服务基础架构。 机器学习平台(TFX)的关键组成部分如下图所示:


图1:机器学习平台高级组件概览


我们的平台能够实现这些组件,可将生产中的最佳实践进行编码...通过将上述组件集成到一个平台中,我们能够标准化组件,简化平台配置,并从生产时间从数月缩短到数周, 同时提供平台稳定性,最大限度地减少中断。


数据分析,转换和验证


你和你的数据一样。在局势恶化之前,发现数据异常,这将节省大量时间。


数据中的小错误可能会在一段时间内以难以检测的方式显着降低模型质量(一些灾难性的错误会导致明显的故障,因此易于追踪),所以为了长远考虑,都任何一个机器学习平台应始终保持对数据的警惕性。


为了建立基准并监控更改,TFX会为每个数据集生成一组描述性统计信息。 这些包括功能存在和价值,跨功能统计信息和可配置切片。 这些统计数据需要大规模高效计算,并且在大型训练数据上精确计算可能是昂贵的。 在这种情况下,可以使用提供近似结果的分布式流算法。


TFX还包括支持功能冲突的一套数据转换。例如,TFX可以生成称为“词汇“的特征到整数的映射。当数据转换在训练和服务之间微不可分时,很容易弄乱事情。 TFX自动导出任何数据转换作为训练模型的一部分,以避免这些问题。


要执行验证,TFX依赖于提供模版化描述预期数据的模式。该模式描述功能及其预期类型,价和域。 TFX可以帮助用户自动生成其模式的第一个版本。

 

图2: 样本验证案例 


TFX给用户提供有用的异常信息警告。


我们希望用户能够同样严谨地处理数据错误和代码错误。为了促进上述做法,我们允许用户提交异常数据,就像任何能够被记录、追踪和解决的软件错误一样。


训练


 一旦你模型中的代码(当然是在TensorFlow中写的)被融入到TFX中,你就能轻松地转换学习的算法。不断的训练和开发机器学习模型是一个常见的生产使用案例,但是在许多场景下,要每次都从头开始再训练模型,对于时间和资源的消耗都是巨大的。


对于许多生产用例,机器学习模型的新鲜度至关重要...很多这样的用例也有巨大的训练集(O(100B)数据点),这可能需要几个小时(或几天)的训练…这需要在模型质量与模型新鲜度之间取舍。热启动是抵消这种取舍的实用技术,如果使用正确,它可以在更短的时间和更少的资源消耗下,获得与此前需要几个小时的训练才能获得的相同质量的模型。


TFX中内置了热启动,对网络中的热启动特征进行选择的功能也被提供,且已经在TensorFlow中开源。当使用热启动训练新版本的网络时,对应于热启动特征的参数从先前训练的模型版本中初始化,并且从那里开始微调。


评估和验证

 

TFX包含了一个模型评估和验证组件,旨在确保模型在向用户提供服务之前是“好”的。


机器学习的模型通常是包含大量数据源和交互组件的复杂系统的一部分,这些组件通常被纠缠在一起。这会创建一个大的平面,在上面,bug的错误可以扩展,也可能会发展处意外的互动,最终会不得不对机器学习模型进行降维,进而损害终端的用户体验。


新模型如何推广到生产中?当然通过A / B测试!模型首先通过持续的数据进行评估,以确定它们是否有足够的前景开始实时测试,TFX提供可以近似业务指标的代理指标。对于通过此测试的模型,团队进行到特定于产品的A / B实验,以确定模型在实时流量和相关业务指标上的实际效果。


一旦将模型推出到产品并不断更新,则使用自动验证来确保更新的模型是好的。我们使用简单的canary process验证了一个模型是安全。我们通过将模型质量与固定阈值以及基线模型(例如当前生产模型)进行比较来评估预测质量。


如果模型更新验证失败,则不会将其推送到服务中,并为所属产品团队生成警报。 


服务


TensorFlow服务为将要部署到生产环境的机器学习型号提供完整的服务解决方案。生产为需求服务,其中包括低延迟和高效率。对于大多数模型,使用常见的TensorFlow数据格式,但对于数据密集型(对CPU CPU密集型)网络,如线性模型,专门的协议缓冲区解析器是用惰性解析构建的。


在实施该系统时,要特别注意最小化数据复制。这对于稀疏数据配置来说尤其具有挑战性。专用协议缓冲区解析器的应用导致基准数据集加速2-5倍。


TFX和Google Play

  

Google推出TFX平台的第一支团队之一是Google Play,他们将其用于推荐系统。该系统在访问商店主页时建议相关的Android应用程序播放应用用户。培训数据集具有数百亿个示例,在生产过程中,系统必须以严格的延迟要求(几十毫秒)每秒处理数千个查询。


当我们将Google Play排名系统从之前的版本转移到TFX时,我们看到对新实验的迭代速度有所增加,减少了技术负债,提高了模型质量。

下一步


解释性?

 

随着机器学习变得越来越普遍,对于可理解性的强烈需求,模型可以向用户解释其决策和行为(以及在许多情况下使用诸如GDPR-AC等新立法的法律要求)。我们相信我们从部署TFX中学到的经验教训为构建交互式平台提供了基础,可为用户提供更深入的见解。




通过 TensorFlow 进行的机器学习 如何帮助可口可乐实现移动购买凭证


来源:机械鸡                    

中秋你可口可乐了吗?



在这篇客座文章中,可口可乐公司的 Patrick Brandt 将向我们介绍他们如何使用 AI 和 TensorFlow 实现无缝式购买凭证。

可口可乐的核心忠诚度计划于 2006 年以 MyCokeRewards.com 形式启动。“MCR.com”平台包含为每一瓶以 20 盎司规格销售的可口可乐、雪碧、芬达和动乐产品,以及可以在杂货店和其他零售商店购买的纸箱包装产品创建唯一的产品编码。用户可以在 MyCokeRewards.com 上输入这些产品编码来参加推广活动。



几年后的 2016 年:可口可乐的忠诚度计划仍然大受欢迎,用户已经输入了数以百万计的产品编码来参加促销和抽奖。不过,移动浏览在 2006 年还不存在,而到了 2016 年底已占据超过 50% 的份额。


为了响应这些浏览行为变化,Coke.com 作为一项移动优先网络体验启动,替代了原来的 MCR.com。将 14 字符编码手动输入到移动设备中着实是一种非常糟糕的用户体验,会影响我们的计划取得成功。我们希望为移动受众提供尽可能最好的体验,人工智能的最新进展带来了全新的机遇。

实现无缝式购买凭证的任务


多年来,可口可乐一直尝试使用现成的光学字符识别 (OCR) 库和服务读取产品编码,但收效甚微。我们的印刷工艺一般使用低分辨率点阵字体,瓶盖或纸箱媒介在打印头下面以非常快的速度运转。


这就产生了低保真字符串,让现成的 OCR 软件无法读取这些字符(有时人眼也很难阅读)。OCR 对简化移动用户的编码输入过程至关重要:用户应当能够为编码拍照,然后自动进行购买注册来参加促销。我们需要一个用途特定的 OCR 系统来识别我们的产品编码。



瓶盖和纸箱示例



我们的研究将我们引向了一种前景无限的解决方案:卷积神经网络。卷积神经网络是一系列“深度学习”神经网络中的一种,这些神经网络是现代人工智能产品的核心。


Google 已使用卷积神经网络从街景图像中提取出街道地址门牌号。卷积神经网络在识别手写数字方面的表现也相当不错。这些数字识别用例完美代表了我们一直尝试解决的问题类型:从包含小字符集并且小字符集中所含字符的外观千差万别的图像中提取字符串。


通过 TensorFlow 实现的卷积神经网络


过去,由于可用的训练和推理库极其复杂,开发像卷积神经网络一样的深度神经网络一直都是一项巨大的挑战。TensorFlow(Google 于 2015 年开放源代码的一种机器学习框架)旨在简化深度神经网络的开发。

TensorFlow 为不同种类的神经元层和热门损失函数提供了高级接口,简化了实现不同卷积神经网络模型架构的工作。快速迭代不同模型架构的能力大大缩短了我们公司构建自定义 OCR 解决方案所需的时间,因为我们可以在短短几天的时间内开发、训练和测试不同的模型。


TensorFlow 模型也非常便携:框架以原生方式支持在移动设备上(“边缘上的 AI”)或在远程托管于云端的服务器中执行模型。这就为许多不同平台(包括网络和移动设备)之间的模型执行带来了一种“一劳永逸”的方式。


机器学习:熟能生巧


任何神经网络的智慧都不会超过用于训练它的数据。我们知道自己需要大量带标签的产品编码图像来训练一个卷积神经网络,从而帮助我们实现性能目标。


我们的训练集分三个阶段构建:


  • 启动前模拟图像

  • 启动前真实图像

  • 我们的用户在生产中标记的图像


启动前训练阶段的第一项工作是以编程方式生成数以百万计的模拟产品编码图像。这些模拟图像包括倾斜、光照、阴影和模糊强度变化。


在模型仅使用模拟图像进行训练时,它对真实图像的预测准确率(即,可信度最高的 10 个预测中准确预测全部 14 个字符的频率)为 50%。这为迁移学习提供了一个基线:最初使用模拟图像训练的模型是将要使用真实图像训练的更准确模型的基础。

挑战现在就成了使用充足的真实图像丰富模拟图像以实现我们的性能目标。我们为 iOS 和 Android 设备构建了一款用途特定的训练应用,“训练人员”可以使用这款应用为编码拍照并添加标签;这些带标签的图像随后迁移到云存储中进行训练。


我们对瓶盖和纸箱上的数千个产品编码进行了生产测试,并将代码分配给多个供应商,他们使用这款应用创建初始的真实训练集。

即使是一个经过增强和丰富的训练集,也无法替代最终用户在各种环境条件下创建的图像。我们知道扫描可能导致编码预测不准确,因此我们需要提供一种能让用户迅速纠正这些预测的用户体验。


两个组件对提供这种体验至关重要:产品编码验证服务,它从我们最初的忠诚度平台于 2006 年启动以来就一直在使用(用于验证预测的编码是否是真实编码);预测算法,用于执行回归来确定 14 个字符位置上每个字符的可信度。


如果预测的编码无效,置信度最高的预测和每个字符的可信度水平将返回到界面。低置信度字符将突出显示,指导用户更新需要注意的字符。


错误纠正界面让用户可以纠正无效预测并生成有用的训练数据


这个界面创新实现了一个主动学习过程:反馈循环让模型可以将纠正的预测返回训练管道,逐步改进。我们的用户可以通过这种方式随着时间有组织地提高字符识别模型的准确率。



产品编码识别管道


针对实现最大性能进行优化


为了满足用户对性能的期望,我们为产品编码 OCR 管道建立了一些严格的要求:


  • 快速:我们在产品编码图像发送到 OCR 管道后需要平均一秒的处理时间

  • 准确:我们启动时的目标是实现 95% 的字符串识别准确率,并保证模型可以通过主动学习随着时间不断改进

  • 小型:OCR 管道需要足够小,以便直接分发到移动应用上,并在模型随着时间不断改进时能够适应无线更新

  • OCR 管道需要处理不同的产品编码介质:数十种不同的字体类型、瓶盖与纸箱包装介质组合


最初,我们探索了一种为所有产品编码介质使用一个卷积神经网络的架构。这种方式创建的模型过大,无法分发至移动应用,并且执行时间也比所需的时间长。我们在 Quantiphi, Inc. 的应用 AI 合作伙伴开始迭代不同的模型架构,并最终确定了一种使用多个卷积神经网络的架构。





这种新架构在不牺牲准确率的前提下显著减小了模型大小,不过仍然无法满足我们为移动应用提供无线更新支持的需要。


我们随后使用了 TensorFlow 的预构建量化模块,它可以通过减小相连神经元之间的权重保真度来减小模型大小。量化模块将模型大小减小了 4 系数,但是当 Quantiphi 使用一种名称为 SqueezeNet 的新方式取得突破后,模型大小显著减小。

SqueezeNet 模型由加州大学伯克利分校和斯坦福大学的一组研究人员于 2016 年 11 月发布。它采用小型但高度复杂的设计,根据 Imagenet 等热门基准的数据,它可以实现与大得多的模型相当的准确率水平。


在重新设计我们的字符识别模型架构以使用 SqueezeNet 卷积神经网络后,Quantiphi 将特定介质类型的模型大小减小了 100 系数。由于 SqueezeNet 模型本质上就比较小,可以构建更丰富的功能检测架构,凭借比我们第一批并非使用 SqueezeNet 训练的模型显著减小的大小实现明显提高的准确率。


我们现在拥有一个可以在远程设备上轻松更新的高度准确模型;我们在主动学习之前的最终模型的识别成功率接近 96%,可以带来 99.7% 的字符识别准确率(每 1000 个字符预测中仅有 3 个出错)。



具有不同类型遮挡、平移和照相机焦点问题的有效产品编码识别示例


通过 AI 跨越边界


人工智能的发展和 TensorFlow 的成熟让我们最终可以实现梦寐以求的购买凭证能力。自从 2017 年 2 月底启动以来,我们的产品编码识别平台已经为十多个促销活动提供帮助并生成了超过 18 万个扫描代码;它现在已成为可口可乐北美地区所有网络促销活动的核心组件。

迁移到由 AI 提供支撑的产品编码识别平台对我们非常有价值,两个主要原因包括:


  • 及时实现无缝式购买凭证,与我们向移动优先营销平台的整体转变保持一致。

  • 可口可乐避免了更新生产线中的印刷机以支持更高保真度字体(适合现有的现成 OCR 软件)的要求,节省了数百万美元的资金。


我们的产品编码识别平台是以 AI 为支撑的新能力在可口可乐公司内的首次大规模执行。我们目前正在多个业务领域探索 AI 应用,从产品开发到电子商务零售优化,不一而足。




延展阅读:机器学习在商业领域大有作为,但还需要跨过数据和政策的难关

来源:雷锋网

雷锋网消息,基于数据分析的机器学习(ML)正在重写企业处理数据的规则。机器学习和分析的研究已经在数据科学家的帮助下将大量数据形式转化成分析规则。现在,机器学习已经进入商业世界。但是,大多数公司并没有真正了解机器学习如何给他们的商业方式带来变化——或者如何改变组织在这个过程中的形态。公司希望通过机器学习进行流程自动化或完成数据驱动的任务来提高人的能力。而且,通过机器学习,企业也有可能变成供应商——从他们自己庞大的数据存储库中吸取经验教训,并将其授权给软件和服务提供商。

但是,实现这一目标将取决于未来5年机器学习能力的发展,以及这一进化对今天的长期招聘策略的影响。在无人监督的机器学习中,系统得到了大量的数据集,并且希望在没有人类的帮助下弄清楚自己需要寻找什么。

宝洁公司商业智能和分析服务总监 David Dittman 解释说,自己与其他大型美国公司面临的分析难题是“他们正在被‘机器学习和分析’技术所吸引,而不了解他们必须‘为它’建立基础,因为很艰难,很昂贵,而且需要远见。“ 相反, Dittman 说,公司错误地认为机器学习能够满足他们的愿景:“我不能让人工智能告诉我答案吗?”问题在于“人工智能”并没有真正发挥他们想要的作用。

机器学习目前分为两大类:监督和无监督。如果没有坚实的数据基础,这两种方式都不可行。


打破训练

(Yisong Yue是加州理工学院计算和数学的助理教授,他认为无人监督的机器学习在放射影像中诊断癌症等领域具有巨大的应用前景)

有监督的机器学习要求人类创建训练数据集,并验证训练的结果。加州理工学院的计算机和数学助理教授Yisong Yue解释说,语音识别是这方面的一个主要例子。“语音识别是在高度监督的方式下进行的,”Yue说。“你要从庞大的数据开始,先让人们说出某些特定的句子。”

但 Yue 说,收集并将足够的数据进行分类以此来监督训练是很有挑战性的。“想象一下,用各种各样的方式说出这些句子是多么的昂贵。数据科学家们需要对这些东西进行注释,这对于你想要解决的每一个任务来说都是无法扩展的。有监督的机器学习有一个基本的限制。”

无监督的机器学习减少了这种相互作用的影响。数据科学家选择一个大概的数据集,并且告诉软件找到其中的模式,不需要人首先弄明白软件需要寻找什么。由于需要的人工任务非常少,所以没有监督的机器学习(特别是在人工工作负载方面)的可伸缩性要高得多。但是,“无监督”一词可能会产生误导,其实数据科学家还是需要选择数据来进行检查。

Forrester Research 副总裁兼高级分析和机器学习首席分析师 Mike Gualtieri 说:“无人监督的机器学习软件被要求发现可能有用的数据集群,而人类则分析这些数据,并决定下一步做什么。”人们仍然需要对软件创建的数据分组进行分析。

但无人监督的机器学习的收益可能会更广泛。例如, Yue 说,无监督学习可能会在诸如癌症诊断等医疗任务中得到应用。他解释说,标准的诊断工作包括进行活体检查并将其送到实验室。问题在于,活组织检查本身就是人力密集型的分析工作 ,耗时且昂贵。当医生和患者需要立即知道是否是癌症时,等待活检结果可能会有医疗风险。今天,一位放射科医生通常会观察组织,他解释说,“放射科医师会做出一个预测——包含癌变组织的可能性。”

“有了足够大的训练数据,这可能是一种监督机器学习的应用,”Yue说。“假设我们取了这个数据表——组织的图像和活检结果——然后进行了监督的ML分析。“这将是一种劳动密集型的工作,但它可以检测到活检呈阳性的图像的相似性。

但是,Yue问道,如果把这个过程当做一个没有监督的学习努力,又该怎么办呢?

“假设我们有一个图像数据集,但我们没有活检结果,我们可以用它来确定我们可以用集群来预测什么。”假设样本数为1,000。软件会对图像进行分组,并寻找所有的相似点和不同点,这是基本的模式识别。“假设它找到了10个这样的簇,假设我只能承受10次活组织检查。”我们可以选择从每一个集群中测试一个,”Yue说。“这只是一系列步骤中的第一步,当然,这是对多种癌症的研究。”


导师与决策者

雷锋网了解到,无人监督的学习仍然需要人为其发现的数据集群或模式进行评价,它目前更适合通过突出显示可能感兴趣的数据模式来提高人类的表现。但是,有些地方可能很快就会由数据的质量和数量来改变。

Dittman 说:“我认为,现在人们正在大步跨入自动化,但是人们应该把注意力集中在扩大现有的决策过程上,”“5年后,我们将拥有合适的数据资产,然后你将需要更多的自动化和更少的扩充。”但现在还不是时候。今天,机器学习缺乏可用的数据。它不够细分,宽度上也不够。”

即使机器学习的数据分析变得更加复杂,但我们还不清楚它会怎么改变公司 IT 组织的架构。 Forrester 的 Gualtieri 预计,从现在起五年后,数据科学家的需求就会减少,这种情况就和网页开发人员类似。1995年对网页的Web开发人员的需求远远超过2000年,因为许多网页功能都是自动化并作为模块化脚本出售。他表示,机器学习也可能出现类似的转变,因为软件和服务提供商开始向商业机器学习平台提供应用程序编程接口。

据雷锋网了解,Gualtieri 预计,企业的“构建或购买”模式将会发生一个简单的变化。他解释说:“今天,你将会做出一个决定,雇佣更多的数据科学家。”随着这些api进入市场,它将转向“购买”,而不是“构建”。他补充说,“我们现在看到了这种情况的开始。”其中有几个例子是“Clarifai”,它是一家位于纽约的初创公司,可以通过视频搜索特定的时刻,比如观看数千个婚礼视频,学习交换戒指的仪式,或者“你可以亲吻新娘”,从图像中确定某人的情绪。

Dittman 同意 Gualtieri 的观点,公司可能会创建许多专门的脚本来进行机器学习任务的自动化。但他不同意这将导致五年内计算机科学工作的减少。

Dittman 解释说:“如果你看一下实践数据科学家的数量,那将会大幅增加,但它将会比技术的数字化要慢得多,因为机器学习会进入越来越多的空白领域。“考虑开放源代码趋势,数据科学家工具从代码生成到代码重用,从而开始变得更加容易和易用。

加州理工学院的 Yue 认为,数据科学家的需求将继续上升,因为机器学习的成功将会有更多的机器学习尝试。随着技术的进步,他解释说,越来越多的企业单位将能够利用机器学习,这意味着需要更多的数据科学家来编写这些程序。


从消费者到提供者

推动数据科学家持续需求的部分原因是对数据的渴求,使其更有效。 Gualtieri 看到了一些企业——大约5年之后,也将扮演供应商的角色。他说:“波音可能会成为特定领域机器学习的供应商,并将这些模块卖给那些可能成为客户的供应商。”

宝洁公司的 Dittman 认为,分析数据的两端都是数据,而代码则是高销售的,这可能是企业的一个新的主要收入来源。他解释说:“公司将开始从数据中获利。”“数据行业将会爆炸。数据绝对是爆炸式增长,但缺乏数据策略。获得业务案例所需的正确数据,这往往是一个挑战。”

但 Yue 有不同的顾虑。他说:“五年后,机器学习自然会与法律问题相冲突,我们对歧视,受保护的阶级有很严格的法律。“如果你使用数据算法来决定向谁贷款,你怎么知道这不是歧视性的?这是政策制定者的一个问题。”

Yue 提供了一个软件的例子,该软件发现了消费者贷款拖欠和那些白人消费者之间的相关性。该软件可以扫描每个客户的眼睛颜色,并使用这些信息来决定是否批准贷款。“如果一个人做出了这个决定,就会被认为是歧视性的,” Yue 说。

这个法律问题说明了数据分析师在无监督机器学习中的核心作用。该软件的工作是找到链接,但它表面上是人来决定如何处理这些链接。不管怎样,人力资源部门需要在相当长的一段时间内招募更多的数据科学家。


人工智能赛博物理操作系统

AI-CPS OS

人工智能赛博物理操作系统新一代技术+商业操作系统“AI-CPS OS:云计算+大数据+物联网+区块链+人工智能)分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利用AI-CPS OS形成数字化+智能化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生。


AI-CPS OS的真正价值并不来自构成技术或功能,而是要以一种传递独特竞争优势的方式将自动化+信息化、智造+产品+服务数据+分析一体化,这种整合方式能够释放新的业务和运营模式。如果不能实现跨功能的更大规模融合,没有颠覆现状的意愿,这些将不可能实现。


领导者无法依靠某种单一战略方法来应对多维度的数字化变革。面对新一代技术+商业操作系统AI-CPS OS颠覆性的数字化+智能化力量,领导者必须在行业、企业与个人这三个层面都保持领先地位:

  1. 重新行业布局:你的世界观要怎样改变才算足够?你必须对行业典范进行怎样的反思?

  2. 重新构建企业:你的企业需要做出什么样的变化?你准备如何重新定义你的公司?

  3. 重新打造自己:你需要成为怎样的人?要重塑自己并在数字化+智能化时代保有领先地位,你必须如何去做?

AI-CPS OS是数字化智能化创新平台,设计思路是将大数据、物联网、区块链和人工智能等无缝整合在云端,可以帮助企业将创新成果融入自身业务体系,实现各个前沿技术在云端的优势协同。AI-CPS OS形成的字化+智能化力量与行业、企业及个人三个层面的交叉,形成了领导力模式,使数字化融入到领导者所在企业与领导方式的核心位置:

  1. 精细种力量能够使人在更加真实、细致的层面观察与感知现实世界和数字化世界正在发生的一切,进而理解和更加精细地进行产品个性化控制、微观业务场景事件和结果控制。

  2. 智能:模型随着时间(数据)的变化而变化,整个系统就具备了智能(自学习)的能力。

  3. 高效:企业需要建立实时或者准实时的数据采集传输、模型预测和响应决策能力,这样智能就从批量性、阶段性的行为变成一个可以实时触达的行为。

  4. 不确定性:数字化变更颠覆和改变了领导者曾经仰仗的思维方式、结构和实践经验,其结果就是形成了复合不确定性这种颠覆性力量。主要的不确定性蕴含于三个领域:技术、文化、制度。

  5. 边界模糊:数字世界与现实世界的不断融合成CPS不仅让人们所知行业的核心产品、经济学定理和可能性都产生了变化,还模糊了不同行业间的界限。这种效应正在向生态系统、企业、客户、产品快速蔓延。

AI-CPS OS形成的数字化+智能化力量通过三个方式激发经济增长:

  1. 创造虚拟劳动力,承担需要适应性和敏捷性的复杂任务,即“智能自动化”,以区别于传统的自动化解决方案;

  2. 对现有劳动力和实物资产进行有利的补充和提升,提高资本效率

  3. 人工智能的普及,将推动多行业的相关创新,开辟崭新的经济增长空间


给决策制定者和商业领袖的建议:

  1. 超越自动化,开启新创新模式:利用具有自主学习和自我控制能力的动态机器智能,为企业创造新商机;

  2. 迎接新一代信息技术,迎接人工智能:无缝整合人类智慧与机器智能,重新

    评估未来的知识和技能类型;

  3. 制定道德规范:切实为人工智能生态系统制定道德准则,并在智能机器的开

    发过程中确定更加明晰的标准和最佳实践;

  4. 重视再分配效应:对人工智能可能带来的冲击做好准备,制定战略帮助面临

    较高失业风险的人群;

  5. 开发数字化+智能化企业所需新能力:员工团队需要积极掌握判断、沟通及想象力和创造力等人类所特有的重要能力。对于中国企业来说,创造兼具包容性和多样性的文化也非常重要。


子曰:“君子和而不同,小人同而不和。”  《论语·子路》云计算、大数据、物联网、区块链和 人工智能,像君子一般融合,一起体现科技就是生产力。


如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!


新一代技术+商业的人工智能赛博物理操作系统AI-CPS OS作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。





产业智能官  AI-CPS



用“人工智能赛博物理操作系统新一代技术+商业操作系统“AI-CPS OS:云计算+大数据+物联网+区块链+人工智能)在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的认知计算和机器智能;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链






长按上方二维码关注微信公众号: AI-CPS,更多信息回复:


新技术“云计算”、“大数据”、“物联网”、“区块链”、“人工智能新产业:智能制造”、“智能驾驶”、“智能金融”、“智能城市”、“智能零售新模式:案例分析”、“研究报告”、“商业模式”、“供应链金融”、“财富空间”


点击“阅读原文”,访问AI-CPS OS官网



本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!



版权声明产业智能官(公众号ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:erp_vip@hotmail.com





登录查看更多
1

相关内容

干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
160+阅读 · 2020年5月14日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
126+阅读 · 2020年3月15日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
189+阅读 · 2020年3月12日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
160+阅读 · 2019年10月28日
机器学习入门的经验与建议
专知会员服务
90+阅读 · 2019年10月10日
Python数据分析案例实战
炼数成金订阅号
5+阅读 · 2019年5月9日
干货 | 机器学习怎么从入门到不放弃!
THU数据派
6+阅读 · 2018年6月8日
机器学习-我妈妈也能看懂的入门篇
深度学习世界
4+阅读 · 2018年5月16日
Python 如何快速入门?
大数据技术
11+阅读 · 2018年4月9日
第二章 机器学习中的数学基础
Datartisan数据工匠
12+阅读 · 2018年4月5日
最适合机器学习新手的10种算法
论智
9+阅读 · 2018年1月23日
零基础概率论入门:最大似然估计
论智
12+阅读 · 2018年1月18日
【回顾】AI小白的机器学习入门之路
AI研习社
5+阅读 · 2017年11月16日
如何用 3 个月零基础入门机器学习?
AI研习社
6+阅读 · 2017年9月27日
Tutorial on NLP-Inspired Network Embedding
Arxiv
7+阅读 · 2019年10月16日
Arxiv
21+阅读 · 2018年8月30日
A Survey on Deep Transfer Learning
Arxiv
11+阅读 · 2018年8月6日
Arxiv
3+阅读 · 2018年3月28日
Arxiv
9+阅读 · 2018年3月23日
VIP会员
相关VIP内容
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
160+阅读 · 2020年5月14日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
126+阅读 · 2020年3月15日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
189+阅读 · 2020年3月12日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
160+阅读 · 2019年10月28日
机器学习入门的经验与建议
专知会员服务
90+阅读 · 2019年10月10日
相关资讯
Python数据分析案例实战
炼数成金订阅号
5+阅读 · 2019年5月9日
干货 | 机器学习怎么从入门到不放弃!
THU数据派
6+阅读 · 2018年6月8日
机器学习-我妈妈也能看懂的入门篇
深度学习世界
4+阅读 · 2018年5月16日
Python 如何快速入门?
大数据技术
11+阅读 · 2018年4月9日
第二章 机器学习中的数学基础
Datartisan数据工匠
12+阅读 · 2018年4月5日
最适合机器学习新手的10种算法
论智
9+阅读 · 2018年1月23日
零基础概率论入门:最大似然估计
论智
12+阅读 · 2018年1月18日
【回顾】AI小白的机器学习入门之路
AI研习社
5+阅读 · 2017年11月16日
如何用 3 个月零基础入门机器学习?
AI研习社
6+阅读 · 2017年9月27日
相关论文
Tutorial on NLP-Inspired Network Embedding
Arxiv
7+阅读 · 2019年10月16日
Arxiv
21+阅读 · 2018年8月30日
A Survey on Deep Transfer Learning
Arxiv
11+阅读 · 2018年8月6日
Arxiv
3+阅读 · 2018年3月28日
Arxiv
9+阅读 · 2018年3月23日
Top
微信扫码咨询专知VIP会员