83、人工智能物联网:架构、应用与挑战解析

人工智能物联网:架构、应用与挑战解析

1. 数据与特征分布模式

不同组织的数据和特征分布存在多种模式。例如,两个地区银行可能因地理位置不同拥有不同的客户群体,客户交集较小,但业务相似所以特征空间相近;而两个不同的地区组织可能拥有几乎相似的客户,但特征不同。具体可分为以下几种情况:
- 水平分布 :相似组织、同一地区、相似特征、几乎不同的客户。如两家同地区银行。
- 垂直分布 :不同组织、同一地区、不同特征、几乎相似的客户。如地区的电商公司和银行。
- 混合分布 :不同组织、不同地区、不同特征、不同客户。如不同国家的银行和电商公司。

2. 训练周期

训练过程可分为两个不同的周期:
- 梯度计算周期 :基于当前模型参数,通过对从训练数据中抽取的小批量数据进行反向传播来计算参数梯度。
- 优化周期 :消耗梯度计算周期中计算出的梯度,以更新模型参数。

3. 分布式机器学习拓扑结构

基于上述两个训练周期,有两种主要的机器学习(网络)拓扑结构将执行模型映射到独立设备集群:
- 集中式优化 :优化周期在中央节点运行,梯度计算代码复制到(AIoT)终端设备。

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A([中央节点]):::startend --> B(节点1):::process
    A --> C(节点2):::process
    A --> D(节点N):::process
  • 分布式优化 :两个周期都复制到每个(AIoT)终端设备,并进行某种形式的同步,以使不同的优化器协同工作。
graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    B(节点1):::process --> E(同步):::process
    C(节点2):::process --> E
    D(节点N):::process --> E
4. 联邦学习(FL)

2017 年提出的联邦学习旨在实现边缘节点或终端设备级别的本地和分布式机器学习训练,主要用于优化隐私问题。根据数据和特征分布模式,可分为以下三类:
- 水平联邦学习 :用于分析水平分布的数据。每个节点有自己的私有数据集,所有客户端使用相似特征空间的数据集协同训练全局 FL 模型。中央节点聚合所有节点的本地更新,计算新的全局更新,然后将其发送回所有节点进行下一轮本地学习,直到损失函数收敛或达到适当的准确率。例如智能家居中的语音助手,人们使用相同关键词但不同语音类型,中央节点平均本地语音更新以构建全局语音识别模型。
- 垂直联邦学习 :支持垂直数据分布,节点使用相同数据但特征不同。采用实体对齐方法收集节点重叠的数据样本,结合加密技术训练通用 AI 模型。如地区的电商公司和银行,虽数据特征不同但客户相似,可通过垂直 FL 合作训练 AI 模型,以根据客户在线购物行为估计最优个性化贷款。
- 联邦迁移学习 :处理具有不同样本和特征空间的分布式数据集。通过学习两个特征空间之间的共同表示(利用有限的共同样本集),对仅考虑一侧特征的样本进行预测。例如不同国家的银行和电商公司,客户群体交集小且特征空间重叠少,联邦迁移学习可提供解决方案,是现有 FL 系统的重要扩展。

5. 系统与 AI 进展

为满足 AIoT 应用需求,需使终端设备成为独立智能机器,这涉及 AIoT 设备和系统与 AI 方法的相互适配。
- 系统进展 :高级 AI 算法对处理能力要求高,通用 CPU 难以满足,因此采用硬件加速器提升性能。主要的硬件平台包括:
| 硬件平台 | 特点 | 优势 | 劣势 |
| ---- | ---- | ---- | ---- |
| GPU | 有大量小核心,最初用于游戏,后用于高性能计算 | 高内存带宽和吞吐量,可并行处理 AI 操作,加速训练和推理 | 能耗高,不适用于电池供电的 AIoT 终端设备 |
| FPGA | - | 低功耗,可重构 | 内存、I/O 带宽和处理能力相对有限 |
| CPU | - | - | 处理高级 AI 算法能力不足 |
| ASIC | - | 可通过内存层次结构和分配专用资源提高性能 | 开发周期长、成本高、灵活性差 |
- AI 进展 :在资源有限的 AIoT 终端设备或边缘服务器上运行内存密集型 AI 算法是挑战,相关工作主要分为两类:
- 设计紧凑网络 :设计参数数量减少的紧凑神经网络模型,如 Xception 和 ShuffleNet。
- 模型压缩 :通过压缩预训练网络,减轻学习模型负担,提高能源效率,加快推理速度且不降低准确率。模型压缩技术可分为五类:
- 低秩近似 :利用低秩卷积核的乘法替换高维核,有效减小模型大小和计算量。
- 知识蒸馏 :基于迁移学习,用大模型(教师模型)的蒸馏知识训练小模型(学生模型)。
- 紧凑层设计 :用多个紧凑层替换大卷积,减少参数数量和计算量,提高资源利用率。
- 网络剪枝 :移除不重要的参数,将密集网络转换为稀疏网络。
- 参数量化 :最初用于神经网络训练,半精度和混合精度训练的突破提高了 AI 加速器的吞吐量,但低于半精度需大量调优,多数量化研究用于推理。

6. AIoT 实现:工具和平台
6.1 基于容器的工具

考虑到边缘服务的隐私问题,有时无法将数据传输到云端,需在边缘节点处理数据。为此,提出了一些基于容器的工具。

以 Chen 等人提出的基于边缘计算的人员重识别(Re - ID)系统为例,Re - ID 用于从多个摄像头的不同角度和方向识别同一人。由于涉及个人隐私,图像数据不能发送到云端,必须在边缘服务器处理。该研究使用微服务(即 Kubernetes)在 AIoT 边缘计算网关设计 Re - ID 系统。

  • 微服务 :是一种轻量级、可扩展的服务设计架构,可视为可独立部署的小型应用程序,基于容器技术运行(共享主机内核,比虚拟机更快),但存在安全挑战,新的虚拟解决方案如 Kata Container 可解决此问题。
  • Kubernetes :是一个开源平台,用于自动化计算机应用程序的部署和管理,可实现自动缩放、弹性和高可用性。Chen 等人利用 Kubernetes 在边缘执行 Re - ID 计算,该方法通过边缘计算处理 AI 算法,可处理大量计算资源。所提出的框架部署在 AIoT 边缘计算网关,有四层结构,包括摄像头通信层、跟踪层、应用层和 AI 加速层,各层有相应功能。

模型开发在 Torchreid 上进行,这是一个基于 PyTorch 的 Re - ID 软件框架,支持 OSNet、ResNet50、Inception 和 MobileNV2 等 Re - ID 模型的开发、端到端训练和评估。为满足 TCP/用户数据报协议兼容性、低延迟和多路复用等要求,选择了 gRPC 协议。最后,通过 Kubernetes 和 Linkerd2 实现微服务,提供负载均衡。

6.2 Sophon Edge 平台

Sophon edge 是一个边缘 - 云协同计算平台,用于高效构建 AIoT 应用。它采用基于管道的计算模型,便于编程计算任务,并支持跨多个边缘服务器扩展。

  • 边缘节点 :作为计算服务器,负责管理 IoT 设备的连接和操作。支持多种通信协议,如 Modbus、MQTT、COAP、AMQP、ONVIF、RTSP、RTMP、UVC、OPCUA、HLS 和 GB28281,涵盖了 AIoT 领域的主流设备。AIoT 设备产生的原始数据被收集并转换为数据流,可通过多媒体网关或消息总线进行后续处理。边缘节点管理从云端接收或本地创建的多个管道,管道实例由流处理引擎执行,还可控制从云端接收的各种 AI 模型,用于在部署的管道实例中进行推理。边缘基础设施主要支持本地数据存储和向云端传输。
  • 边缘枢纽 :作为云服务器,控制边缘节点并执行处理密集型任务,如模型训练。还可控制共享管道,随着 AIoT 应用规模的增加,共享管道在边缘枢纽管理并分发到边缘节点,以降低成本。此外,存在一个模型仓库,将训练好的模型以容器镜像的形式存储,便于在边缘节点部署。
graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A([边缘枢纽]):::startend --> B(边缘节点1):::process
    A --> C(边缘节点2):::process
    A --> D(边缘节点N):::process
    B --> E(IoT设备1):::process
    C --> F(IoT设备2):::process
    D --> G(IoT设备N):::process
6.3 AIoT 相关性能基准测试

边缘计算为用户提供了大规模资源,其创建的分布式复杂系统运行条件随时间变化。因此,需要持续、快速地监控此类系统的性能日志,即性能基准测试。

常见的基准测试包括:
| 基准测试类型 | 用途 |
| ---- | ---- |
| CPU 或处理器相关基准 | 评估处理器性能 |
| Whetstone 基准 | 测量浮点运算性能 |
| Dhrystone 基准 | 评估整数性能 |

从 1990 年开始,陆续出现了 HPC 基准测试、网格基准测试、云基准测试和边缘基准测试,这表明分布式系统的基准测试越来越受到关注。

相关推荐

四维融合技术平台:物联网、大数据、AI与区块链的协同应用

四维融合技术平台通过整合物联网、大数据、AI和区块链四大前沿技术,构建了一个类似数字神经系统的解决方案。物联网负责实时数据采集,大数据平台进行深度分析,AI算法实现智能决策,区块链确保数据可信与可追溯。这种协同架构不仅提升了数据处理效率,还显著降低了运营成本。在智慧城市、智能制造等场景中,四维融合技术展现出强大的应用潜力,例如垃圾分类管理中的实时监测与动态调度。通过优化设备选型、分层共识机制和混合存储方案,平台在性能和成本控制上均取得突破,为产业数字化转型提供了可靠支撑。

weixin_32342535的博客 269

AI在制造业的实践:预测性维护与工业4.0转型

AI在制造业的实践:预测性维护与工业4.0转型

layneyao的博客 4257

工业物联网网关IOT-LINK硬件架构与软件生态解析

工业物联网网关作为连接现场设备与云端平台的关键节点,其硬件架构和软件生态直接影响系统可靠性。现代工业网关通常采用异构计算架构,结合高性能应用处理器与实时微控制器,以满足复杂协议处理与实时控制的双重需求。在通信能力方面,多模网络连接(包括WiFi 6、4G LTE和工业总线)成为标配,确保在各种工业环境下保持稳定连接。以Compulab IOT-LINK为例,这款基于NXP i.MX 9352 SoC的网关集成了AI推理能力(0.5 TOPS NPU)和丰富工业接口(CAN FD/RS485),配合完善的软件

weixin_42511832的博客 271

AI记忆框架对比:Mem0、MemOS与TiMem架构解析

AI记忆框架作为大语言模型的关键组件,正在经历从简单上下文窗口到专业系统的演进。其核心原理是通过分层存储和高效索引实现知识的持久化与快速检索,技术价值体现在提升模型对话连贯性、知识复用率和场景适应能力。典型应用包括智能客服、工业物联网和金融审计等场景。Mem0采用模块化设计实现灵活部署,MemOS以操作系统思维重构AI架构,TiMem则专注时序数据处理。测试数据显示,Mem0在常规查询延迟最低(P99<20ms),MemOS在多Agent并发场景记忆污染率仅0.3%,TiMem的时序异常检测F1分数达0.9

weixin_29056145的博客 339

企业元宇宙架构设计:核心原则与实施挑战

企业元宇宙作为数字化转型的重要方向,正逐步从概念验证迈向规模化落地。其架构设计面临异构系统整合、动态资源调度和AI能力集成等核心挑战。通过分层解耦的模块化设计和智能边缘计算范式,可以有效提升系统性能和用户体验。AI能力中台的构建进一步实现了计算机视觉、语音交互等基础能力的灵活组合。在工业数字孪生和金融服务等典型场景中,这些技术方案已展现出显著价值,如设备效率提升和客户转化率增长。未来,神经渲染技术和多模态大模型等前沿方向将持续推动企业元宇宙的演进。

weixin_26767391的博客 217

2025企业AI战略:架构重构与工程实践

AI-Native架构正在重塑企业数字化转型的底层逻辑,其核心在于构建动态感知、弹性决策和自进化知识的三层体系。与传统IT架构不同,这种新型架构通过实时数据流、微服务编排和知识图谱融合,实现了从单点智能到生态智能的跃迁。在工程实践层面,跨模态模型编排、持续学习流水线和可信计算框架成为关键能力栈,某跨境电商通过多模态平台将审核效率提升5倍,印证了技术落地的商业价值。随着决策智能系统的普及,复杂事件处理引擎和强化学习框架正在物流、金融等领域创造实时决策价值,而人机协同工作流引擎则解决了AI误报与效率平衡的行业痛

weixin_29061821的博客 281

嵌入式物联网在教育领域的创新应用:智能教室与个性化学习

本文探讨了嵌入式物联网技术在教育领域的创新应用,重点介绍了智能教室系统与个性化学习解决方案。通过STM32、Arduino等硬件平台的实际案例,展示了如何利用物联网技术实现环境监测、坐姿矫正等功能,显著提升教学效率与学生健康水平。文章还提供了详细的硬件配置、代码示例及通信协议选型建议。

weixin_29163797的博客 361

PCIe 6.0实战指南:从链路训练到信号完整性的避坑手册

本文是一份针对PCIe 6.0硬件工程师的实战避坑指南。文章深入解析了从NRZ到PAM4调制带来的信号完整性挑战,详细拆解了链路训练(LTSSM)的复杂过程与调试方法,并提供了从信道仿真到实验室实测(如使用Keysight示波器进行眼图与误码率分析)的完整信号完整性闭环验证策略,帮助工程师解决高速率下的链路不稳定与降速问题。

weixin_29306875的博客 341

海豚调度器(dolphinscheduler)再次使用,添加钉钉预警

1,首先我们部署是海豚调度器 1.3.8版本,由于页面只有邮件预警,所以在了解源码的同时,需要添加钉钉预警 2,说明,这一块是同事搞的,不是我搞的,新版本的dolphinscheduler已经有了钉钉模块,只是新版本还没有发布 3,我们现在只是添加简单的钉钉预警,任务成功或者失败会发送邮件+钉钉 4,具体操作 找到最新的源码devhttps://github1s.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-alert/src/ma...

qq_31866793的博客 3083

六维力传感器选型指南:电阻式vs电容式,哪个更适合你的工业场景?

本文深入解析六维力传感器在工业自动化中的选型要点,重点对比电阻式与电容式传感器的核心原理、环境适应性及成本结构。针对不同工业场景(如高精度装配、重载机器人等),提供专业选型建议,帮助工程师优化系统性能与经济效益。

weixin_42525005的博客 395

基于深度学习的ECG心电信号异常分类:从数据集到Transformer实战

心电图(Electrocardiogram, ECG)是诊断心血管疾病最常用、最无创的工具。随着可穿戴设备的普及,海量的心电数据需要自动、快速且准确地分析。人工智能,尤其是深度学习,在心电信号分类任务中表现出了超越传统规则算法的能力。本文将深入探讨ECG异常分类的技术细节,从心电数据的生理基础,到数据预处理,再到使用1D-CNN、LSTM、以及前沿的Transformer模型进行实战演练。文章末尾提供了完整的代码以及多个国际公开数据集的获取方式。

YOLO 188

CRC_16---ModBus 计算方法及代码实现

1、 CRC寄存器初始值为 0xFFFF;即16个字节全为1; 2、 CRC-16 / ModBus的多项式0xA001H (1010 0000 0000 0001B) ; ‘H’表示16进制数,‘B’表示二进制数。 计算步骤为: (1).预置 16 位寄存器为十六进制 0xFFFF(即全为 1) ,称此寄存器为 CRC 寄存器; (2).把第一个 8 位数据与 16 位 CRC 寄存器的低位相异或,把结果放于 CRC 寄存器; (3).检测相异或后的CRC寄存器的最低位,若最低位为1,CRC寄存器

1万+

【目标检测】基于yolov5的安全帽佩戴检测系统(附代码和数据集)

【目标检测】基于yolov5的安全帽佩戴检测系统(附代码和数据集)

学无止境、积少成多、厚积薄发 3105

Claude Code Auto Memory 的 Storage Location,SAP ABAP 项目里的本地记忆仓库应该怎么理解

本文介绍了 SAP ABAP 项目中 Claude Code 的 auto memory 机制,重点探讨了其存储位置的设计原理。auto memory 不是存储在项目目录中,而是默认位于 ~/.claude/projects/<project>/memory/,其中 <project> 基于 Git 仓库路径推导,确保同一仓库下的所有工作目录和分支共享记忆。记忆目录包含入口文件 MEMORY.md(仅加载前 200 行)和详细主题文件,这种分层设计类似 CDS View 架构思想。文章还分析了按 Git 仓

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 100

YOLOv8改进 | 特殊场景检测篇 | 最新的多尺度特征提取DICAM(全网独家首发,增强水下图像的质量)

本文给大家带来的最新改进机制是多尺度特征提取和通道注意力机制DICAM,深度Inception和通道注意力模块(DICAM)主要用于用于增强水下图像的质量、对比度和色偏。所提出的DICAM模型考虑了水下图像的比例退化和不均匀色偏,从而提高图像的质量。通过在两个公开的水下图像增强数据集上的广泛实验,验证了提出的模型在全参考和无参考图像质量评估指标方面。欢迎大家订阅我的专栏一起学习YOLO,购买专栏读者联系读者入群获取进阶项目文件!

Snu77的博客 2216

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 1、深入了解 Samba:跨系统网络连接的桥梁
下一篇: 28、探索手势交互与可穿戴设备在教育模拟中的应用
cherry
博客等级 码龄27年 59粉丝 1688原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值