购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 MATLAB常用工具箱简介

在2.5节中,我们介绍了一元非线性回归及MATLAB的cftool回归工具,读者可能已经感受到了工具箱的强大之处。许多MATLAB的GUI应用不仅可以省去大部分的编程工作,而且能够快捷地提供许多可视化的结果。

本节主要介绍机器学习中一些常见的工具箱,高效地利用这些工具箱将会大大减少学习成本。虽然如此,也希望读者不要过分依赖于工具箱。为了提高模型的可控性,还需要读者提高自身的编程能力。

3.2.1 函数句柄与搜索路径

在许多工具箱中,函数句柄经常作为输入使用,因此这里有必要先了解函数句柄。函数句柄(function handle)是MATLAB中的一类特殊数据结构,类似C语言中的指针,能够将一个函数封装成一个变量,并作为其他函数的输入。函数句柄可以用“@+函数名”的形式调用,如ezplot(@rosenbrock)。

要使自定义的函数能够在MATLAB中直接使用,必须要将相应的函数文件(M文件)添加到MATLAB的搜索路径中。例如,在桌面上创建一个M文件并自定义一个函数如下:

示例文件:rosenbrock.m

如果在MATLAB的命令窗口中直接调用rosenbrock函数,则会出现如下错误:

以上错误信息的大致意思是由于rosenbrock未定义而导致错误。实际上,这个错误是由于rosenbrock.m文件没有被MATLAB引擎搜索到。因此,要将rosenbrock.m文件添加到搜索文件中才可避免该错误。首先,在MATLAB命令窗口中输入pathtool命令,弹出对话框如图3.7所示。通过Add Folder添加所需的路径,单击Save按钮保存解即可完成搜索路径的添加。

添加完搜索路径后,再次调用rosenbrock函数即可得出结果。

   >> rosenbrock([1,1])
   f=0
   ans=0

图3.7 将rosenbrock函数所在的文件路径添加到搜索路径中

3.2.2 优化工具箱

优化工具箱(Optimization tool)是一个十分有用的工具。根据2.3.1节的介绍我们知道,模型的训练过程实际上是风险函数的寻优过程。使用MATLAB优化工具箱,可以求解各种无约束、带约束优化问题。

在MATLAB命令窗口中输入optimtool即可打开优化工具箱窗口,如图3.8所示。

图3.8 优化工具箱窗口

优化工具箱的详细用法不在本书的讨论范围之内,本节只是简略介绍其用法与注意事项。如果读者想要深入了解该工具箱,可以阅读帮助文档。选择图3.8中的Help菜单,然后选择相应的子菜单即可。

这里仍旧以rosenbrock.m文件为例,该文件中的rosenbrock函数 的数学表达式如下:

求解在约束条件 下,函数 f ( x 1 , x 2 )的最小值。

首先,使用优化工具箱求解相应的问题。注意,如果一个函数有多个特征,则一定要用向量来表示它。如图3.9所示,将特征设置为单独变量是不可取的。

图3.9 必须将函数的输入设置为向量

从约束条件中可以看出,rosenbrock函数的约束条件为非线性约束。为此,需要建立约束函数的M文件以生成函数句柄。但请注意,一定要将约束条件转化成如图3.10所示的小于或等于0的形式。就这样,我们将约束条件写成相应的函数文件,以作为函数句柄。

图3.10 将不等式约束条件转化成小于或等于0的形式

约束条件的函数文件:constrain_sample.m

注意: 一定要将函数文件的路径设置到搜索路径上。

完成约束条件的设置后,打开优化工具箱,选择相应的求解器并设置算法,将问题输入问题区中。完成问题区的设置之后,单击结果区中的Start按钮,然后查看相应的结果,如图3.11所示。

图3.11 设置问题区并查看运行结果

从结果区中可以看出,函数在点(0.786,0.618)取得最小值,其最小值为0.0457。

3.2.3 统计与机器学习工具箱

MATLAB 2016及以上版本提供了一个强大的机器学习工具箱Statistics and Machine Learning Toolbox,其官方介绍如下

Statistics and Machine Learning Toolbox提供了用于描述数据、分析数据及为数据建模的函数和App。用户可以使用描述性统计量和绘图进行探索性数据分析,对数据进行概率分布拟合,生成进行蒙特卡洛仿真的随机数并执行假设检验。回归算法和分类算法允许通过数据进行推断并构建预测模型。

对于多维数据分析,Statistics and Machine Learning Toolbox提供了特征选择、逐步回归、主成分分析(Principlc Component Analysis,PCA)、正则化及其他降维方法,让用户能够识别影响模型的变量或特征。

统计与机器学习工具箱提供了有监督和无监督的机器学习算法,包括支持向量机(SVM)、提升决策树和装袋决策树、KNN、K均值、K中心点、层次聚类、高斯混合模型(GMM)及隐马尔可夫模型,可以使用许多统计算法和机器学习算法来计算因为太大而无法存储在内存中的大型数据集。

统计与机器学习工具箱包含4个GUI应用,具体打开方式和使用方法如表3.1所示。

表3.1 统计与机器学习工具箱GUI应用一览表

以Classification Learner应用为例,打开该应用,在New Session中导入数据。导入数据后,在图形窗口中会自动生成数据一览并默认生成分类模型树。这里选择KNN模型进行展示,单击Train按钮开始训练,如图3.12所示。

图3.12 ClassificationLearner示意1

训练完成后,可以在绘图区画出一些可视化的评价指标,如图3.13所示。

图3.13 ClassificationLearner示意2

从图3.13中可以看出模型的精确度较高。也可以在Current Model中查看模型参数,如近邻个数 k 的取值,并且可以在Export Model中将模型导出到工作区中,以便后继使用。

除了上述GUI应用工具外,就像Python的模块一样,统计与机器学习工具箱提供了许多有用的函数,读者可以自行登录MathWork官网参阅相应的帮助文档。

3.2.4 深度学习工具箱

第1章中讲过,深度学习是机器学习的一种方法。深度学习主要采用多层的神经网络来完成机器学习任务。鉴于深度学习的应用日益广泛,MATLAB单独提供了一个深度学习工具箱,以下是其官方文档的描述

Deep Learning Toolbox提供了一个通过算法、预训练模型和应用程序来设计和实现深度神经网络的框架。可以使用卷积神经网络(ConvNet、CNN)和长短期记忆(LSTM)网络对图像、时序和文本数据执行分类和回归。应用程序和绘图可帮助用户可视化激活值、编辑网络架构和监控训练进度。

对于小型训练集,可以使用预训练深度网络模型(包括SqueezeNet、Inception-v3、ResNet-101、GoogLeNet和VGG19)以及从TensorFlow-Keras和Caffe导入的模型中执行迁移学习。

要加速对大型数据集的训练,可以将数据分布到桌面计算机上的多核处理器和GPU中(使用Parallel Computing Toolbox),或者扩展到群集和云端。

深度学习工具箱提供了多个GUI应用,其打开方式与用途如表3.2所示。

表3.2 深度学习GUI应用一览表

以Neural Network Start工具为例,打开该工具,弹出如图3.14所示的对话框。

图3.14 NeuralNetworkStart工具

根据英文指示,用户可以轻松完成各种设计网络模型的训练与应用。

3.2.5 其他有用的工具

除了前面介绍的工具箱之外,比较有用的工具箱还有计算机视觉工具箱(Computer Vision Toolbox)、信号处理工具箱(Signal Processing Toolbox)、图像处理工具箱(Image Processing Toolbox)和文本分析工具箱(Text Analysis)。在实际应用中,机器学习的输入不仅包括数值型,还包括图像、语音信号和一系列文本等,而这些工具箱可用于处理这种类型的输入,使之转化为数字特征。善用这些工具箱,将会搭建一座通往实际应用的桥梁,让机器学习不再是屠龙之技。 2a0fsoKawKs9+v9j2taVovfiVcBcctMPK3u9MceV2IdWwu5CNzPn6IbkEBkLf7FT

点击中间区域
呼出菜单
上一章
目录
下一章
×