MATLAB 开发浅神经网络

MATLAB提供了用于管理大型数据集的工具和功能,用于机器学习、神经网络、深度学习、计算机视觉和自动驾驶的专门工具箱。

需几行代码,MATLAB就可以让你实现神经网络 开发,而不必成为专家。快速启动,创建和可视化模型,并将模型部署到服务器和嵌入式设备。

使用MATLAB,可以将结果集成到现有的应用程序中。MATLAB可以在企业系统、集群、云和嵌入式设备上自动部署神经网络模型。


典型的神经网络设计工作流

译文:每个神经网络应用程序都是独特的,但开发网络通常遵循以下步骤:

  • 访问和准备数据
  • 创建神经网络
  • 配置网络的输入和输出
  • 调整网络参数(权值和偏差)以优化性能
  • 训练网络
  • 验证网络的结果
  • 将网络集成到生产系统中

浅网络的分类和聚类

MATLAB和Deep Learning Toolbox提供了用于创建、训练和模拟浅神经网络的命令行函数和应用程序。这些应用程序使得开发用于分类、回归(包括时间序列回归)和聚类等任务的神经网络变得很容易。在这些工具中创建网络之后,你可以自动生成MATLAB代码来捕获你的工作并自动化任务。


预处理、后处理和改进你的网络

对网络输入和目标进行预处理,提高了浅层神经网络的训练效率。后处理可以对网络性能进行详细分析。MATLAB和Simulink提供工具帮助你:

  • 使用主成分分析降低输入向量的维数
  • 对网络响应与相应目标进行回归分析
  • 将输入和目标标在[-1,1]范围内
  • 对训练数据集的均值和标准差进行归一化
  • 在创建网络时使用自动的数据预处理和数据分割

提高网络的泛化能力有助于防止神经网络设计中常见的过拟合问题。当网络已经记住了训练集,但还没有学会泛化到新的输入时,就会发生过拟合。过拟合在训练集上产生的误差相对较小,但是当新的数据呈现给网络时,误差就大得多了。

改进泛化的两种解决方案包括:

  • 正则化修正了网络的执行函数(训练过程中最小化的误差的度量)。通过包含权重和偏差的大小,正则化产生的网络在处理训练数据时表现良好,在面对新数据时表现出更平滑的行为。
  • 早期停止使用两种不同的数据集:用于更新权值和偏差的训练集和用于在网络开始过拟合数据时停止训练的验证集。

代码生成和部署

使用Deep Learning Toolbox和MATLAB Coder™、GPU Coder™和MATLAB Compiler™,可以将经过训练的网络部署到嵌入式系统,或者将它们与广泛的生产环境集成。

可以使用MATLAB Coder为训练过的网络生成C和C++代码,这样能够在PC硬件上模拟一个训练过的网络,然后将网络部署到嵌入式系统中。

可以使用MATLAB编译器和MATLAB Coder SDK™部署训练有素的网络作为C/C++共享库,Microsoft®。NET程序集,Java类,和Python包从MATLAB程序。

还可以在已部署的应用程序或组件中训练网络模型。


Simulink支持

Deep Learning Toolbox提供了一套在Simulink中构建浅层神经网络的模块。所有的块都与Simulink编码器™兼容。这些街区被分为四个库:

描述
Transfer function blocks取一个净输入向量并生成一个相应的输出向量
Net input function blocks取任意数量的加权输入向量、加权层输出向量和偏置向量,返回一个净输入向量
Weight function blocks将神经元的权值向量应用到输入向量(或层输出向量)以获得一个神经元的权值
Data preprocessing blocks将输入和输出数据映射到最适合神经网络直接处理的范围

或者,你可以在MATLAB环境中创建和训练你的网络,并自动生成用于Simulink的网络仿真块。这种方法还允许你以图形方式查看你的网络。






公众号

关注公众号,获取一手资讯

“ MATLAB 开发浅神经网络 ” comments 0

评论/回复

电子邮件地址不会被公开。 必填项已用*标注