Advertisement

机器学习在干什么?

阅读量:

摘要

机器学习是通过计算机从大量数据中归纳提炼出有价值的信息,并赋予其自主判断和决策的能力。在深入研究这一领域之前,请先附上一张图片用于总结说明:

[

](https://insights.thoughtworks.cn/wp-content/uploads/2019/10/1.png)

  1. 数据经历了处理与加工的过程后转变为信息。
  2. 由于信息之间产生了联系而构成了知识。
  3. 基于现有知识我们发现了某些新的关联性从而获得了洞见。
  4. 整合这些洞见我们构建了智慧。
  5. 将智慧传播至外部则构成了影响力。

要知道,在当今社会所使用的各种数据分析技术中无论是大数据分析还是机器学习算法都发挥着重要作用而这些技术都是围绕着数据处理的不同环节展开的最终这一环节就是机器学习的核心目标我们并不是简单地希望机器能够模仿人类的知识这只是一个手段我们的终极目标则是希望计算机能够具备智能化的能力然而智能化的过程又是难以量化的目前看来似乎只有通过大量积累的知识来进行经验的学习至少人类正是通过这种方式逐步发展起来的。

机器学习和硬件

在机器学习领域中,在深度神经网络模型中主要由硬件设施支撑才能实现有效的训练与推理任务;缺少了这些硬件设施,则难以取得实质性的进展;这与人体结构有着本质的区别;这样的类比并不完全恰当;两者之间存在巨大的差异性;人脑拥有海量的神经元或神经网络单元;而相比之下;计算机主要由这几块高性能处理器构成;几块存储介质以及一系列电子线路组成。

从我的角度来看,在当前大规模使用的机器中,并非专为机器学习领域设计。因为传统的计算机架构旨在处理基于纸带穿孔的逻辑运算——即通过简单的二进制信息解决问题的能力。那么如何赋予其类似人类的认知能力?那么我们就开始思考——为何机器学习总要强调人呢?在自然界中,唯有人类普遍认为自身具备独特的智慧与认知能力。因此,在这种背景下我们期待让人工智能展现出类似人类的认知水平,并以服务人类和社会为目标来解决复杂问题。

遗憾地发现目前的机器在硬件架构上都不达到人类的基本生理需求。具体而言,在大脑构造这一方面存在明显差距。人类大脑中充满了极其复杂的神经网络,在信息处理与储存方面展现出独特的优势。正是这些精密的结构使得人类能够展现智慧与思考能力。面对这种情况该如何解决呢?

最简单的办法就是模拟;因此,在当前技术条件下所有应用深度学习的方法都是借助于计算机强大的计算能力来构建大量人工神经元以实现仿真的目的;然后将生成的这个神经网络用于解决现实中的业务问题;相比之下,在运行过程中引入了仿真环节并随后进行处理相当于开启了一个虚拟环境来进行程序运行

有了这些基础条件作为前提,在这种情况下我们不得不面对一个现实:那就是深度学习相较于一般程序的工作模式需要投入更高的配置成本以及资源消耗。与此同时人们普遍认为传统机器学习更为高效的原因在于:它通过将问题转化为基于规则与逻辑的形式来处理从而使得计算机能够像执行常规程序那样无需经过复杂的仿真步骤直接运用计算能力来进行推理运算。

以上信息有助于我们在选择技术选型方案以及规划硬件采购流程的过程中进行评估分析,并根据自身需求合理选择最适合的方式。

从硬件发展的角度来看,在设想的情况下(假设),如果将计算机的硬件结构等同于无数个神经元的话,则未来我们在京东等平台能够买到一个这样的神经元并将其集成到计算装置中去使该装置更加智能化将会是一个理想的发展方向。目前各种AI芯片主要通过优化计算效率来不断提升其仿真能力(运算能力)。展望未来,在采购服务器时(即选择 server 产品时),可能会转向构建的是一个 neural network 系统而非传统的 hardware server架构。

机器学习学什么?

有了硬件基础的支持,在让计算机实现智慧的任务上我们必须要进行深入探索这意味着它必须进行思考而具体的思考方式是什么呢?前提是什么呢?是否应该让它了解一些基础知识?于是我们将这些基本逻辑构建起来形成一个完整的知识库之后就可以通过编程的方式将这些逻辑转化为算法进而实现智能化运算过程。如果选择手动录入程序的话但这种方式的工作量实在过大而且效率低下难以满足现代计算需求

还没有更好的选择吗?通过数学等技术的支持下,在应用统计机器学习的基础上,
我们可以通过调整特征来分析其对结果的影响。
科学地提取哪些特征,并将其组织成一个集合,
作为机器判断的依据。
并将这种知识以规则的形式描述出来,
以便计算机依仗这些规则做出决策。
整体而言,
这一切工作都是非常高效的,
具备了智能化能力。

到那一天的时候,人们意识到,有些事情并不是仅仅依靠规则就能理解的,比如人类能够识别出这是狗,并不是因为它们遵循某种可列举的规律,就像我们识别一个人即使只露出半张脸也能认出来一样,这不是一种单纯的依靠规律就能理解的现象,而是一种既不能完全穷举也不能进行精确描述的独特模式

另外,在行动中人们不仅具备灵活思考的能力,在行动时也会实时应对各种问题。这种能力源于持续不断的学习与适应。例如,在下班回家时取出钥匙准备开门。因为预计门会位于那个位置,在出门前就已经做好准备状态。整个过程都非常顺畅:人们总是先预判可能出现的情况并做好相应的准备。然而,在某一天取出钥匙却发现门已经不在那里(即出现异常情况)。这时人们就会打破原有的思维模式并采取新的应对策略(即重新学习)。这并非依靠固定的规则生活(而是始终保持着持续学习的状态:先预判、再验证、最后总结)。

那么机器学习的核心便是识别模式而非可穷举的规则,在传统方法难以处理复杂数据特征的情况下被突破性发展出了新的解决方案——深度学习这一领域便应运而生。这种难以捉摸的行为赋予了人工智能系统一种超越性的特质——它们不再依赖固定的编程逻辑而是能够自主发现数据中的潜在规律从而展现出非凡的学习能力。借助于深度学习算法的设计与应用,在理论上我们能够逐步积累和提炼出丰富的经验与知识

机器学习怎么学?

既然机器学习已知其主要任务是获取知识与经验,则这些知识与经验究竟是什么本质呢?它们是如何被获取的呢?对于一个再简单不过的装置而言,则它仅能识别二进制数值系统(即01),那要如何让它了解上述复杂问题呢?

我路过了一个令人难忘且特别迷人的下水道。
我路过了一个还称得上不错的下水道。
我路过了一个不太引人注目的下水道。

这三句话确实都表达了同一个观点吗?简单来说,请采用一种转换方法将这个文本转换为连续的二进制数字序列即可。具体来说呢?例如:

我/ 路过了/ 一个/ 非常美丽/ 的/ 臭水沟。

我/ 路过了/ 一个/ 还可以/ 的/ 臭水沟。

我/ 路过了/ 一个/ 臭水沟.

随后对文本进行词干预处理;接着执行停用词剔除;最后将经过预处理的文本通过one hot编码对词语进行表示,并整合成完整的序列。

[

](https://insights.thoughtworks.cn/wp-content/uploads/2019/10/1.1.png)

每个句子都能生成一组类似的向量序列。如何根据这组向量确定它们是否具有相似性?我们可以引用余弦相似度公式来评估它们之间的相似程度。

[

](https://insights.thoughtworks.cn/wp-content/uploads/2019/10/2-1.png)

通过余弦夹角就可以判断两个向量的相似度:

[

](https://insights.thoughtworks.cn/wp-content/uploads/2019/10/3-1.png)

似乎计算机的能力超乎寻常,并且能够确定两个句子的意思是否相同吗?但经过细致分析仍然会发现这种做法存在问题:

  1. 对于向量化的规则而言,我们仍然采用传统的规则制方法。
  2. 中国传统文化深厚,在上述算法下即便计算机再强大也难以承受处理大量向量化后的数据。
  3. 中国传统语言丰富,在这种情况下一些隐喻关系及语境联系无法得到充分展现。

说白了这种方法仅能理解表面意思既不能识别句子间的隐喻关系也不能分辨词语间的细微差别举个例子这种方法显然也无法区分'宽敞'与'宽阔'这两个同义词的区别

所以有必要开发一种能够通过该方法提取更多潜在语义信息的技术,并通过视觉化工具展示这些发现。

[

](https://insights.thoughtworks.cn/wp-content/uploads/2019/10/4-1.png)

[

](https://insights.thoughtworks.cn/wp-content/uploads/2019/10/5.png)

看上去这个图表非常复杂的样子。然而实际上这就是基于Word2Vec模型构建而成的Skip-gram和CBOW算法组合。这种技术主要用于解决哪些语言处理任务?

我拥有帅气的外表,在众人当中倍受喜爱。
张三拥有帅气的外表,在众人当中倍受喜爱。
那么我们可以确定存在一个函数使得:

复制代码
    f(我) = [非常,帅,大家,喜欢]
    
    f(张三) = [非常,帅,大家,喜欢] 

此时就能明确得知:我是张三,并且也能够获得其近义词或推理逻辑。其巧妙之处在于,并非word2vec需要一个强大的函数f()来处理这些内容,而是仅仅利用了中间生成的向量化表示。

探讨机器学习的学习机制。其实质就是将人类的知识信息编码为向量形式,并基于数学理论基础揭示数据间的内在联系。通过业务领域专家的理解与分析来赋予其意义。当数据间存在既定的关联关系时,计算机系统能够自主完成决策任务;若数据间不存在既定关联关系,这种新产生的联系则被称为'创新'或' novelty'。

如何合理使用机器学习这些技术到工程中?

那么机器学习不仅具备自主学习能力还能指导如何进行学习对于广大码农或是企业而言如何有效应用这一技术是一个值得探索的问题

对于机器学习问题而言,我们不宜过度依赖通用解决方案的期望;换言之,并不存在一种机器学习方法能够普遍适用于所有问题。一种理论上完美的模型设计旨在覆盖所有可能的输入分布情况;然而这种理想化的理论架构往往过于简单而无法有效应对具有特定针对性的问题(提醒注意)。

其次也别指望仅用有限的资金投入就能迅速获取机器学习所能提供的巨大利益。当我们在应用时就需要认识到其适用的领域以及采用正确的方式。

[

](https://insights.thoughtworks.cn/wp-content/uploads/2019/10/6-1.png)

该过程遵循标准数据探索步骤,并非独特路径。为了保证这一过程的有效执行, 我们必须建立一系列必要的基础设施支持, 其中主要包括数据获取、存储以及后续处理步骤。

在不少的企业来说,对机器学习的应用场景通常会有如下几类:

利用机器学习技术解决具体的业务问题

对这类问题来说,非常聚焦,是实在的业务场景,那么操作流程应该遵从:

[

](https://insights.thoughtworks.cn/wp-content/uploads/2019/10/7.png)

划分问题域是一个复杂的过程,在宏观上来看,在数据分类与预测中扮演着核心角色。无论是从宏观还是微观角度分析,在分类任务中构建适应特定领域的可扩展体系是一项高难度的技术挑战。

在构建特征集的过程中,除了需要考虑相关的数据采集之外,还应关注对应的特征关联分布等细节因素进行分析以确定合适的算法和预期效果。这样一来,在初期阶段就能够实现显著提升效率的目标。

机器学习模型的主要工作集中在前半段而非训练阶段。训练阶段通常等同于一般业务系统启动服务的过程。而前端的定义与划分则应归属于机器学习story编码的一部分。

提供机器学习现有解决方案模型的SAAS服务

在这一类服务中, 其主要挑战并非释放大量预训练模型, 而是如何具体化这些模型的应用. 尽管现有的开源模型可通过 readily available的方式获取并直接应用, 但其在提升实际效果和处理能力的同时实现持续优化也是重要任务.

[

](https://insights.thoughtworks.cn/wp-content/uploads/2019/10/8.png)

开发一个基础型SaaS系统相对较为简单;而构建一个基于功能模块化设计并能持续迭代改进的SaaS平台将面临极大的挑战。

因此,在构建SAAS平台时不仅需要依托于具有弹性扩展能力的系统架构来实现对应的服务功能,并且还需要根据不同的需求设计出一系列针对性的服务实现方案。此外,在线平台必须配备一套实时监测和反馈机制作为核心验证与持续优化的训练循环

提供机器学习构建PAAS服务

这一类的服务对大多数企业而言具有实现的可能性。普遍期望构建一个机器学习平台具备标注功能、存储功能以及算法开发能力,并能够满足从模型训练到部署的一站式需求。方便用户无需编程即可快速搭建和部署模型,并轻松分享其API接口。

思想上没有问题;然而,在实践中大多数情况下这种实施可能会导致成本上升或者最终的价值难以被明确体现出来。这是因为标注系统本身与ML平台之间并非呈强相关性;通常这类平台在企业中往往具有为企业赋能的作用

赋能指的是提高效率而非劳动力转移,因此:

[

](https://insights.thoughtworks.cn/wp-content/uploads/2019/10/9.png)

重点应放在特征与流程上而非辅助系统。而至于如何确定标定位置及标定方式,则无需在意也无需去考虑标定细节。这类服务通常由专门的团队负责完成这些工作。

乍一看会觉得两者毫无关联。然而实际上了解卷积神经网络的工作原理以及熟练使用TensorFlow这样的工具并不是一件困难的事。真正使这项技术能够切实为社会创造价值的关键在于攻克一系列工程化难题包括架构设计流程优化团队协作能力以及相关技术的扩展性问题等等。这些方面共同构成了推动深度学习技术落地的重要要素就像很多人能编写汇编代码(如C、C++),但真正能够设计操作系统使这些语言产生实际效益的人却少之又少。

尾声

当我们体验着机器学习技术带来的巨大优势时


请收看我们的精彩内容!欢迎关注微信公众号:ThoughtWorks洞察

全部评论 (0)

还没有任何评论哟~