在技术飞速发展的今天,机器学习(Machine Learning,简称ML)已经成为一个不可忽视的话题。正如马克·库班(Mark Cuban)所说:“如果不了解人工智能、深度学习或机器学习,那么请学习它,否则将在三年内成为恐龙。”这句话强调了对技术的快速适应和学习的重要性。
追溯到几十年前,机器学习的概念大约起源于20世纪60年代初,即第一台计算机系统发明后的几年。“机器”一词代表计算机、手机或任何包含电路并需要电力或电源供应的设备。“学习”指的是一个对象隔离、发现和复制模式的能力,并利用这些模式执行任务,类似于人类的功能。
机器学习是第四次工业革命中最热门的话题之一。在机器学习领域,利用程序员(开发者)和编程语言来进行教学和学习过程。流行的机器学习编程语言包括但不限于Python、Java、C++、C#、JavaScript。机器学习的主要目标是教会计算机如何利用过去的经验在未来表现得更好。
重要的是要知道,在机器学习中,程序员不会硬编码所有可能的程序输出。相反,开发者会编程应用程序的学习能力。基于这个应用程序之前学到的内容,它利用这些内容来决定当前或未来问题的结果。机器用于学习和被用来学习参考的点被称为模型。
在讨论不同类型的机器学习之前,必须理解围绕机器学习存在的学习框架,同时使用一个示例场景。假设访问一个出售各种葡萄的商店,这是第一次踏入这家商店。
由于没有商店出售的葡萄的性质的经验,决定品尝所有的葡萄,并根据它们的物理属性如颜色将它们分组标记。经过反复品尝后,得出自己的结论,决定哪种葡萄适合购买。已经完成了品尝,并现在知道哪些葡萄会是甜的或酸的。
回顾例子,看到结论是基于在训练和测试阶段发生的一系列事件。记住后面的陈述,机器学习框架包括ML输入、数据模型、ML输出和成功度量。
这是遇到的ML框架的第一部分。为此,必须品尝所有的葡萄,找到一组固定的葡萄属性,并在问题的整个过程中关注它们,因为这些属性将帮助每次品尝单个葡萄时选择更好的葡萄。在品尝葡萄的过程中,决定根据它们的物理属性和味道将它们分组标记。味道好的葡萄是想要达到的,因此这个组将被称为“训练”组。这是因为每次品尝一个葡萄时,“训练”组的葡萄将帮助做出更好的预测,判断一个葡萄是否会是甜的或酸的。
在品尝足够的葡萄后,已经将葡萄组扩大到足够大(例如,第一组有10个葡萄,全部是红黄色且味道甜;第二组有10个葡萄,全部是绿蓝色且味道酸)。有了足够多的甜葡萄和酸葡萄的数据,可以确认正在逐渐变得更加了解哪些葡萄是甜的,哪些是酸的,因此加强了正在获得经验和正在建立一个模型作为学习参考点的事实。正是这个模型帮助提前判断一个葡萄是否会是甜的或酸的。有了模型,将得到帮助选择甜葡萄和酸葡萄的协助——即使是第一次。
有了创建的模型,希望得到可靠的输出。机器学习框架的输出部分涉及验证模型是否正确。在过程的最初阶段,没有经验来帮助对甜葡萄和酸葡萄进行分类。然而,在训练之后,已经获得了足够的经验,使意识到预测哪个葡萄可能是甜的,哪个可能是酸的。这个框架的这一部分使能够以一定的确定性提前决定一个葡萄是否会是甜的或酸的。
这是指已经达到的准确度水平。如果让模型完全指导进行葡萄品尝,模型的指导是否正确?葡萄的味道是否完全符合模型所说的味道?重要的是要注意,在情景中,模型的成功并不一定意味着总是选择甜葡萄。成功因素取决于并由希望看到的最终结果来定义。如果正在寻找甜葡萄,那么这就是成功度量,然而,如果正在寻找酸葡萄,那么它将是它。
机器学习需要数据输入——在当今时代,数据无处不在。数据将以表格形式出现。这个表格将包含行和列。行被称为观测值,列被称为特征。用于教模型如何进行预测的信息部分被称为特征矩阵(矩阵,因为它有多个维度)。想要预测的信息部分被称为目标向量(向量,因为它是一维的)。
可能会经常看到目标向量被称为‘标签’。算法将使用特征矩阵并尝试找出教模型实现最准确预测结果的最佳方式。存在许多不同类型的机器学习,主要有四个类别。每种类型的机器学习都是根据特定类别内的算法的性质和类型来命名的。
在这种类型的ML中,向学习算法传递数据,它由特征矩阵和目标向量组成。监督机器学习包括以下算法:线性回归、K最近邻、朴素贝叶斯、决策树、随机森林、逻辑回归、支持向量机(SVM)。
这类机器学习包括主成分分析(PCA)、线性判别分析(LDA)、聚类算法、马尔可夫算法和神经网络。当处理这些算法时,只传递特征矩阵。因此,这意味着不传递目标向量。没有目标向量,无监督机器学习算法没有任何经验,不知道如何使用特征矩阵来达到结果,因此这些算法被留给从数据中自己得出结论。
为了理解,将简要解释神经网络。具体来说,将讨论前馈神经网络——之所以这样称呼,是因为数据被‘前馈’,深入网络——也被称为多层感知器或MLP。在这个神经网络中存在三种类型的层。在网络的开始,有一个输入层。在网络的结束,有一个输出层。在输入层和输出层之间,有一个隐藏层。有趣的是,神经网络中需要存在的隐藏层数量没有固定。所以,说的是,在输入层和输出层之间可能存在无限数量的隐藏层。这些具有许多隐藏层的神经网络(例如,100)被称为‘深度’神经网络,它们的领域被称为‘深度学习’。