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