使用MATLAB学习神经网络
神经网络是一种通过使用相互连接的节点进行学习的自适应系统。神经网络在很多应用中都很有用:你可以使用它们进行聚类、分类、回归和时间序列预测。在本视频中,您将通过一个示例演示神经网络是什么以及如何在MATLAB中使用它们®.该视频概述了如何训练神经网络,根据智能手机的传感器数据对人类活动进行分类。
你还将学习如何创建一个网络;准备数据;培训、验证和改善你的人际网络;更新并部署你的网络。
大家好,欢迎回到另一个MATLAB视频。今天我们将讨论神经网络,我们将训练一个神经网络来根据智能手机的传感器数据对人类活动进行分类。
神经网络在许多应用中都很有用——它们可以用于聚类、分类、回归和时间序列预测。
神经网络是一个通过使用相互连接的节点进行学习的自适应系统。
神经网络由一个或多个层组成。它们至少包括3层:输入层、隐藏层和输出层。
一般来说,该算法涉及一系列数学运算,计算每个节点上输入的加权和。
每一层中的每个神经元都有可调的输入权值和可调的偏置。
神经网络通过调整所有这些权重和偏差来操作(训练),并在整个训练阶段将误差最小化,以获得更准确的结果。
让我们通过演示进一步讨论这个问题
这个例子使用了传感器数据,其中包含了人们在进行5种不同活动时佩戴的智能手机的测量数据——走路、坐着、躺着、上楼和下楼。
该分析的目标是建立一个模型,使用神经网络自动识别给定传感器测量的活动类型。
我们首先导入数据集,其中包含活动标签和来自传感器的统计测量值。
在这种情况下,我们正在解决一个分类问题,并将创建一个用于模式识别的神经网络。
创建不同类型的网络有不同的功能。使用文档确定功能并了解更多关于网络类型的信息。
让我们用默认值创建一个简单的前馈模式识别网络。
创建网络
在这种情况下,我们正在解决一个分类问题,并将创建一个用于模式识别的神经网络。
创建不同类型的网络有不同的功能。使用文档确定功能并了解更多关于网络类型的信息。
让我们用默认值创建一个简单的前馈模式识别网络。
网络变量包含有关参数和方程的信息,并将随着模型列车的更新而更新。
你可以想象网络。默认值是一个隐藏层中有10个神经元。
您可以访问包括权重和偏差在内的层信息。这些目前是空的,因为我们还没有训练模型。
接下来,我们将包括分割训练、验证和测试数据的比率。该网络使用这些信息来评估准确性,并在训练过程中优化参数。
在我们训练网络之前,必须准备好数据
模式识别网络期望变量沿着行,观察值沿着列。我们可以简单地调换示例中的数据来实现这种安排。
对于这种类型的网络,预测器和响应,或X和Y变量必须是数字。您可以使用一个虚拟变量来表示分类数据,如活动,作为1和0的矩阵。
现在我们准备使用训练数据训练网络!
您可以在网络训练时检查进度,并在需要时尽早停止。
现在,网络已经完成了训练,并包含了从数据中学习到的更新的参数值。
记住,有一个隐藏层有10个节点和一个输出层。我们的数据集有5个类,所以有5个输出节点。
权重和偏差已经更新了从训练中确定的值。
现在我们可以测试网络并使用测试数据预测活动。
结果是每个班级的归属分数。
我们可以确定预测的类别,并将数值转换为原始标签进行比较。
找出准确度并绘制混淆矩阵来评估分类。
躺着和坐着几乎都是正确的分类。虽然大多数人都是正确的,但不同类型的走路偶尔也会被归为一类。
这似乎是一个很好的网络,有合理的错误分类,但你可以探索改进的方法。
改善网络有很多策略。
我们可以尝试更新一些参数来训练和评估网络。具体参数请参见相关文档。
这里的输出并没有太大的改善。我们可以继续调整或尝试不同类型的网络。
例如,你可以创建一个有更多隐藏层的网络,或者一个深度神经网络。MATLAB中支持多种类型的深度网络,以及用于深度学习的资源。欲了解更多信息,请点击下方描述中的链接。
总有改进的空间,但这个模型似乎表现得足够好,准确率达到92%。现在,我们可以采取步骤准备在生产环境中使用该模型或与系统集成。
部署时,将步骤捕获到函数中,还需要保存网络或重新创建网络。
您可以生成MATLAB函数或Simulink图来模拟神经网络。使用genfunction在一个MATLAB函数文件中创建包括所有设置、权重和偏置值、函数和计算在内的神经网络。
现在我们的神经网络可以在Simulink模型中使用,也可以包含在用C/ c++、Java、Python等语言编写的应用程序中。有关更多信息,请参阅文档。
现在我们在MATLAB中对神经网络有了更深入的了解,我们可以更有效地训练和评估这些模型。
要获得更多练习,您可以搜索文档中的示例。
感谢收看,下次视频见。
相关产品2022世界杯八强谁会赢?
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。