机器学习是让计算机从大量数据中提取有用信息,并最终具备决策能力的过程。为了更好地理解这一点,我们先来看一张图:
这张图通过六个小框框形象地展示了数据分析、机器学习以及知识和信息的本质,即:
机器学习的各种技术,无论是大数据还是传统的机器学习,都是为了实现这些步骤中的某个环节。最终的目标是让计算机拥有智慧,而智慧是难以量化的,目前只能通过大量知识的学习来实现。
机器学习需要硬件的支持。硬件设备相当于计算机的“身体”,但与人类的身体结构完全不同。人类大脑包含大量的细胞和神经元,而计算机主要依靠CPU、磁盘和电路板等基本组件。
实际上,当前的计算机主要是为了处理逻辑规则而设计的,而不是为了实现机器学习。人类认为自己拥有智慧,因此我们希望通过机器学习让计算机像人一样思考。
然而,当前的计算机硬件并不具备类似人类大脑的功能,如大量的脑细胞和神经元。因此,我们需要通过模拟的方法来实现类似的效果。目前广泛使用的深度神经网络就是利用计算机的计算能力来模拟成千上万的神经元,从而达到仿真的效果。
这种模拟过程需要更高的配置和更多资源。相比之下,传统的机器学习基于统计学,将复杂的思维问题简化为可以通过规则和逻辑表达的问题,因此计算机可以直接利用逻辑计算能力,无需经过复杂的仿真过程。
这些信息可以帮助我们在选择技术方案和采购硬件时做出更明智的决定。
有了硬件的支持,为了让计算机拥有智慧,它需要具备一定的理解和思考能力。早期人们认为人是通过规则来认识世界的,因此将规则录入到计算机中。例如,通过天上有乌云且天气闷热来判断是否会下雨。然而,这种方法的工作量很大,且难以应对复杂的现实情况。
后来,数学发挥了重要作用,特别是基于统计学的机器学习。这种方法通过调整特征来分析结果的影响,从而提取出有用的特征集合,作为机器判断的依据。这种方法不仅速度快,而且效果很好。
然而,人并不是通过规则来认识世界的。例如,人能识别出某样东西是狗,并不是因为它们符合某种可以穷举的规则。人还能灵活地思考和做事,并能实时应对突发情况。这些行为都是基于不断预测和处理异常的结果。
因此,机器学习需要学习的不是规则,而是模式。深度学习正是通过这种方式让计算机更接近人类的思维方式,学会经验和知识。
既然机器学习学习的是知识和经验,那么它如何学习呢?对于计算机而言,它只能识别0和1的数字。因此,如何让计算机理解“我路过了一个非常美丽的臭水沟”、“我路过了一个还算不错的臭水沟”和“我路过了一个臭水沟”这三个句子的意思相同呢?
简单来说,通过一种方式将文字转化为一串0和1的数字序列。例如,将每个句子分解为词汇,并进行词干处理和停词过滤,然后使用one-hot编码将整个句子转化为向量。通过余弦夹角公式,可以比较这些向量的相似度。
这种方法虽然强大,但仍然存在局限性。计算机只能理解字面意思,无法理解隐喻或上下文关系。例如,计算机无法知道“宽阔”和“开阔”是近义词。
因此,我们需要一种方法让计算机在文本中学习更多的隐含意义。例如,通过Word2Vec的Skip-gram和CBOW算法,可以让计算机学习词汇之间的关系。这些算法可以将相似的词汇映射到相近的向量空间中,从而让计算机理解词汇之间的关联。
总的来说,机器学习是通过将人类的知识转化为向量,利用数学规律来发现其中的关系,并用业务视角解释这些关系。如果发现已有的关联,计算机可以做出决策;如果发现新的关联,则可以称为创新。
机器学习既能够学习,也知道如何学习。作为开发者或企业,我们应该如何合理运用这些技术呢?
首先,不要期望有一种机器学习方法可以解决所有问题。机器学习方法的应用需要针对具体的业务场景,不能盲目追求通用解决方案。
其次,不要期望低成本就能获得机器学习带来的效益。在应用机器学习时,必须明确其适用场景和合理使用方法。
在很多企业中,机器学习的应用场景主要包括以下几种:
对于具体业务问题,需要聚焦于真实的业务场景,按照以下流程操作:
对于提供SaaS服务来说,难点在于如何针对性地提供服务。现有的开源服务较多,但关键在于如何提供高效、高并发且持续训练的服务。
许多企业希望构建一个机器学习平台,提供标注、存储、算法开发、训练和发布等功能。然而,这种平台的建设和维护成本较高,且最终价值可能难以体现。
因此,在构建PaaS服务时,除了基于可弹性扩展的系统完成相应服务外,还需要考虑不同的库和服务的实现。此外,线上需要有足够的反馈机制,用于核心的校验和持续训练。
在享受机器学习带来的红利时,我们也需要关注其缺陷及合适的使用方案。只有更好地评估技术和业务的适应性,才能最大化地发挥机器学习的价值和意义。