AI 与胚胎结合?系统生物学家 Patrick Müller 利用孪生网络对斑马鱼胚胎展开研究

「文智助手」全场景办公AI助理AI+OPC全流程实践方案(大赛作品) 阅读详情

300 万张图片+1.5 万个斑马鱼胚胎的数据集,系统生物学家 Patrick Müller 成功实现基于 AI 的胚胎识别。

作者|加零

编辑|三羊

在动物发育过程中,胚胎随着时间的推移会发生复杂的形态变化,研究者们希望能够客观地量化发育时间和速度,并提供标准化的方法以分析早期胚胎所处阶段,更好地认知进化与发育流程。

之前,学者们对于胚胎发育阶段和胚胎发育形态转化的认知来源于显微观察。但胚胎发育的阶段转化并不是理想化、稳定化的,存在非常多的影响因素,以至于研究人员很难观察到某一特定发育状态。观察胚胎形态推定所处的发育时间和发育阶段这一过程,目前仍是偏向主观的。

为了客观建立发育时间与发育速度的关系,系统生物学家 Patrick Müller 领导康斯坦茨大学研究人员,开发了一套基于孪生网络的深度学习方法,通过图像对比,它能够自动捕捉胚胎发育过程,并在没有人为干预的情况下识别胚胎发育特征阶段点。目前,相关成果已发表于「Nature Methods」。

论文发表于「Nature Methods」

获取论文:

https://www.nature.com/articles/s41592-023-02083-8

01 实验过程

数据集:整合大量胚胎图像

利用高通量成像 Pipeline 和基于 ResNet101 的图像分割,研究者们构建了一个包含 300 万张图片和 1.5 万个斑马鱼胚胎的数据集,以产生单个胚胎的发育轨迹。每个胚胎被单独跟踪,输入模型时以不同颜色的边界框划分。开展每个实验时创建一个单独的 JSON 文件,其中包含属于各个类别的胚胎信息。

图像处理图示

模型架构:孪生网络模型

孪生网络结构由两个相同结构的并行神经网络构成,可以同时接收两个图片作为输入,并且两个神经网络之间权值共享,通过基于特征嵌入的相似度计算,对图像进行比较。

以下是孪生网络的结构图示:

孪生网络结构

构成孪生网络的神经网络结构如下:

基于 ResNet50 的神经网络

主干网络:基于 ImageNet 数据集,带有预训练权重的 ResNet50 架构作为主干网络;

嵌入模型头部 (model head):主干网络的输出被压平传递至嵌入模型头部,其由三个密集层组成,每层之间有批量归一化层,产生一个 size 为 (1, 256) 的输出/嵌入;

迁移学习:除了卷积块5和模型头层之外,ResNet50 骨干网络的所有层都被冻结。将 ResNet50 生成的特征嵌入结合在一个距离层中,计算训练过程中不同输入的网络生成嵌入之间的欧几里得度量。

算法训练:三联体损失训练

算法训练过程如下:

构建图像三联体:图像三联体由三张胚胎图像组成,分别为锚定图像 (anchor image),处于随机发育阶段 t1 的胚胎图像;正向图像 (positive image),类似发育阶段 t1 的图像(输入神经网络 1)或者经过图像增强处理的锚定图像(输入神经网络 2);负向图像 (negative image),发育阶段 t2 ≠ t1 的胚胎图像。

图像三联体图示

三联体损失训练:将构建完成的图像三联体传递给孪生网络,基于下方公式计算三联体损失 (Triplet loss),以最小化锚定图像和正向图像的相似性,并最大化锚定图像和负向图像的相似性。

三联体损失计算公式

A 表示锚定图像,P 表示正向图像,N 表示负向图像

迭代训练:神经网络 1 使用了 30 万个斑马鱼胚胎图像三联体进行了 10 个 epoch 的训练;神经网络 2 使用了 100 万个图像三联体进行了 2 个 epoch 的训练,并对锚定图像进行了增强处理,使用 NVIDIA GeForce RTX3070 (ASUS) 进行 GPU 加速训练。

分任务训练:对图像相似性、胚胎分期、发育速度和温度、药物诱导导致的胚胎发育变化分别进行了对应训练。

02 实验结果

结果 1:利用相似性图对胚胎自动分期

将测试图像与一组胚胎图像比较,计算它们之间的余弦相似度,获得相似性评分以分类胚胎图像。

测试胚胎与参考图像的相似性图

比较测试图像与时间序列的发育胚胎图像,得到相似性随时间变化的曲线,从中提取出两个主要特征:

· 曲线的峰值指示了测试图像胚胎位于哪个发育阶段。

· 曲线的非峰值区域包含了额外信息,如峰宽度和与远程胚胎阶段的相似性,反映了不同时间点的形态相似性。

胚胎年龄预测示意图

孪生网络可以对一个胚胎的一组时间序列图像进行识别预测,构建基于预测发育阶段的轨迹,实现准确的胚胎分期。

结果 2:探究发育速度与温度的函数关系

以前,量化胚胎发育的温度依赖性需要手动或半自动注释发育时间,这大大限制了可以在合理的时间跨度内分析的实验数量。

利用构建的孪生网络自动分析发育速度的温度依赖性变化,实验方案为:23.5 ℃ 和 35.5 ℃ 之间的斑马鱼胚胎和 18 ℃ 到 36 ℃ 的青鱼胚胎,每个温度条件下分析 100 至 200 个斑马鱼胚胎或 20 至 100 个青鱼胚胎。

实验结果如图所示:

不同温度下斑马鱼和青鱼胚胎发育分析图

a,d:斑马鱼和青鱼的年龄估计示意图;

b,e:斑马鱼和青鱼在不同温度的发育情况;

c,f:斑马鱼和青鱼在不同温度下估计生长率的自然对数。

· 温度变化对两种胚胎的发育速率产生了显著影响。较低温度下,胚胎发育速率较慢,而较高温度则导致发育速率显著加快。面对 10℃ 的温度变化时,发育速率大致变化了两倍。

· 使用孪生网络量化分析温度依赖的发育速率,利用 Arrhenius 方程拟合数据。在物种特定的温度范围内,线性拟合的斜率给出斑马鱼和米达卡的表观活化能分别为 65 kJ/mol 和 77 kJ/mol。这些表观活化能与其他变温动物(如青蛙、果蝇或酵母)相似,明显不同于恒温动物(如小鼠或人类)。

· 与理想化猜测不同,在较高温度区域,两种胚胎的发育速率均不再加速,而是趋于稳定。在较低温度区域:斑马鱼的发育线性减缓,温度低于 23℃ 胚胎停止发育;青鱼胚胎则表现出非线性发育的特征,长时间停滞在发育的原始囊阶段。

结果 3:量化胚胎进化过程中的自然变异性

研究发现,尽管胚胎受到基因变异、外部干扰以及基因表达中的噪音和随机性影响导致生长速率和发育阶段的偏差,但总会完成进化过程。

胚胎的进化差异图示

利用孪生网络评估同龄胚胎中个体表型的差异,实验结果如图所示:

胚胎发育图

左图表示不同时间后预测的胚胎发育阶段百分比,0 分钟(绿色)、400 分钟(蓝色)、800 分钟(紫色);

右图表示胚胎的平均相似值随时间下降。

在早期胚胎发育阶段,预测的胚胎发育阶段具有较窄的分布,而随着分段期的开始,预测的胚胎发育阶段的分布宽度增加。这表明,在胚胎发育过程中,个体之间的差异逐渐增加,但平均相似性值却随着时间降低。

在 300 多万多张斑马鱼胚胎图像数据中,约有 1% 的胚胎发育异常,常见原因是自发性崩解或背腹极性缺陷。使用孪生网络,研究人员能够在早期阶段就检测出发育异常的胚胎。这些异常胚胎在预测的正常发育范围之外表现出较低的平均相似性值。

发育异常胚胎图示

结果 4:鉴定药物处理的胚胎表型

胚胎发育受到多种信号分子的协调作用,而调节它们的活性可能导致胚胎表型变化。在斑马鱼发育过程中,有七个主要的信号通路,在这些通路中,骨形成蛋白 (BMP)、视黄酸 (RA)、Wnt、成纤维细胞生长因子 (FGF) 和 Nodal 信号通路主要调控生殖层定向和前后背腹轴的形成,Sonic Hedgehog (Shh) 和平面细胞极性 (PCP) 信号通路则控制身体轴的延伸和形态发生。

研究人员对孪生网络在检测异常胚胎方面的效用层面展开测试,结果如下图所示:

未经处理的胚胎与药物处理后胚胎的表型对比

a:未经处理的胚胎作为药物处理的胚胎表型参考;

b - i:不同药物处理胚胎与未处理胚胎相似性变化;

j:胚胎数目对异常检测准确性的依赖性。

比较未经处理的胚胎与经过 BMP、Nodal、FGF、Shh、PCP 和 Wnt 抑制剂处理以及 RA 暴露的胚胎的表型,发现未经处理的胚胎之间存在高相似性值,而受小分子药物处理的胚胎与未经处理的胚胎之间的相似性值通常较低。

对时间点进行统计分析,确定胚胎群体与参考群体显著偏离的时间点,从而检测到具有表型缺陷的胚胎群体,检测的准确性取决于分析的胚胎数量和干扰类型。

此外,研究还探究了该方法在识别不同穿透率和严重程度表型时的准确性。使用不同水平 BMP 通路抑制导致的斑马鱼胚胎的已知表型范围,结果如图所示:孪生网络能够准确检测到发育偏差,对于具有高穿透性的表型或使用高剂量小分子 BMP 信号通路抑制剂引起的明显表型,仅需要少量胚胎即可进行准确检测,而轻微的表型则需要约 30 个胚胎。

不同水平 BMP 通路抑制下斑马鱼胚胎表型变化

这些分析表明,仅使用正常发育胚胎图像训练的孪生网络,能够以无偏见的方式检测胚胎表型变化。

结果 5:自动推导胚胎发育时期

通常情况下,可以使用参考胚胎图像来评估测试胚胎的发育时间,但是对于新发现或未经表征的物种,可能无法获得这样的参考图像。

研究者提出,可以利用孪生网络计算测试图像与同一胚胎在早期时间点的其他图像的相似性判断发育阶段。

对斑马鱼胚胎进行相似性分析的结果如图所示:

胚胎发育时期推导

a:计算测试胚胎与来自同一胚胎的以前采集时间点的图像之间的相似性;

b:代表性相似矩阵。

在不同的发育时期,相似性呈现出独特的分布特征。他们观察到了一个共同的模式:高相似性值在局部聚集,而在更远的时间点,相似性值较低且呈现平稳状态。

有趣的是,孪生网络评估的图像对之间的局部和全局统计相似性,与发育过程中关键阶段的顺序是一致的。落入平稳阶段的胚胎具有稳定的形态,突显了发育中的主要时期,如经典的分裂、囊胚、胚胎盘、器官发生和分段阶段。与此相反,落入平稳阶段之间的边界的胚胎代表着发育形态发生主要变化的短暂时期。

接下来,研究者尝试将这种方法推广到其他物种,包括青鱼(medaka)和三棘刺魚(three-spined stickleback)。结果显示,孪生网络对这些形态多样的胚胎序列生成了信息丰富的图谱。

自动检测青鱼和三刺鱼胚胎的发育时期和转变

进一步研究中,他们将这种方法应用到亲缘关系更远的线虫(Caenorhabditis elegans),研究者们利用来自不同独立来源的开放数据,如已发表的论文和YouTube视频,训练和评估网络,成功自动识别出C. elegans的第一次分裂周期,形成前四个原胚细胞。

这些结果表明,Twin Network 方法能够用于针对不同生物体系,以及广泛范围的图像数据集,自动生成不同物种的发育图谱,而无需先前针对此目的专门训练的模型。

03 孪生网络vs.数字孪生网络

5G 时代,数字孪生网络屡被提及。同时,和他名称相仿的「孪生技术」—— 孪生网络也在图像识别领域崭露头角。二者虽然概念不同,但在某些领域却展现出了合力。

首先注意,这是两个完全不同的概念。

Twin Network:一种深度学习架构,主要应用于图像检索、图像匹配、图像分类等领域,通过学习图像的嵌入表征,实现图像相似性的比较和分析。

Digital Twin Network:物理实体的虚拟模型,它通过实时数据更新和仿真技术,与其对应的物理实体进行交互,并可以模拟物理实体在不同条件下的行为和性能,主要应用于工业制造、物联网、城市规划、航空航天等领域。

作为一种 AI 算法,Twin Network 可从自身优势为数字孪生网络赋能增效。

比如工业设备的数字孪生中,孪生网络可以比较不同时间点的设备图像,以了解设备状态的变化和差异;数字孪生城市规划中,孪生网络可以处理监控探头拍摄图像数据,对交通流量和路况进行实时监测和模拟等等。

综合来看,Twin Network 通过结合图像数据和深度学习技术,为 Digital Twin Network 提供图像相关的支持和应用,提高数字孪生的信息获取、监测和决策能力。

不只是 Twin Network,其他的 AI 工具也将进一步为数字孪生赋能。

船载 OpenHarmony AIS 航海工作台:告警与防碰撞预警系统 船载OpenHarmony AIS航海工作台的告警与防碰撞系统,集成十余类告警(超速、偏航、会遇、SOS等),通过网格空间索引实现高效邻近判定,保障实时性。告警管理器统一调度规则、去重、通知与日志,支持悬浮球、语音、跑马灯、弹窗多渠道触达,确保航行安全。SOS紧急通道独立运行,避免干扰。系统设计强调性能优化与多场景适配,为航海安全提供核心支撑。 阅读详情

相关推荐

AI 应用开发:四维架构落地实战——以 HR Agent 为例拆解感知·推理·记忆·执行【意图路由、规划编排、长期记忆、工具执行、面试题】

本文基于四维架构(感知·推理·记忆·执行),以HR Agent为例,系统拆解大模型应用从“聊天”到“生产可用”的落地路径。通过Spring AI实现意图路由、规划编排、RAG检索与工具调用,结合真实踩坑复盘,揭示架构化设计对安全、成本与可维护性的关键价值,为AI Agent工程化提供可复用的实战框架。

王大师企业官方博客 1195

AI 与胚胎结合?系统生物学家 Patrick Müller 利用孪生网络对斑马鱼胚胎展开研究...

本文约4200字,建议阅读9分钟 300 万张图片+1.5 万个斑马鱼胚胎的数据集,系统生物学家 Patrick Müller 成功实现基于 AI 的胚胎识别。在动物发育过程中,胚胎随着时间的推移会发生复杂的形态变化,研究者们希望能够客观地量化发育时间和速度,并提供标准化的方法以分析早期胚胎所处阶段,更好地认知进化与发育流程。之前,学者们对于胚胎发育阶段和胚胎发育形态转化的认知来源于显微观察。但胚...

数据派THU 325

STK中的传感器、雷达、发射机、接收机、天线

本文根据STK手册介绍了传感器、雷达、发射机、接收机、天线等对象的基本属性,简略分析了它们的不同之处。

wangyulj的专栏 1万+

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 346

PLSQL 14.0.6 下载使用教程

众所周知,PLSQL 只是一个oracle第三方开发测试工具,它依赖oracle 客户端搭配使用,但是oracle 客户端有2G,相当庞大,不建议安装。所以我们如果下载安装好PLSQL,再下载好轻量级的支持远程链接的oracle客户端,这样搭配使用可以的话就最好了,答案是可以的。 第一步: PLSQL 下载与安装 PLSQL 14.0.6 下载地址 : https://www.allroundautomations.com/registered-plsqldev/ 下载下来,除了安装路径更改一下,

qq976511508的博客 2135

从零开始:IBM V3700控制器更换与机器代码升级全流程指南

本文详细介绍了IBM V3700存储系统控制器更换与机器代码升级的全流程指南。从前期准备、硬件更换到版本同步,逐步解析如何应对503错误等常见问题,确保系统稳定运行。通过实战案例和优化建议,帮助工程师高效完成维护任务,提升存储系统可用性。

weixin_28365523的博客 312

AI 问数真的能替代 BI 报表吗?

AI问数赋能自然语言查询,提升临时分析效率,但无法替代传统报表。报表适用于稳定输出与持续监控,AI则擅长探索性提问。企业用好AI问数,关键在于夯实数据模型、统一指标口径、健全权限体系与结果校验机制。合理组合报表、仪表板与AI,才能实现高效、准确的业务洞察。

葡萄城技术团队博客 253

2026保姆级:1小时搞定C# OPC UA客户端开发——PLC与上位机全量数据交互零基础教程

本文介绍了使用C#开发OPC UA客户端的核心流程和关键代码实现。文章首先指出工业上位机开发中OPC UA的重要性,并针对新手常见问题提出了1小时掌握核心功能的解决方案。重点内容包括:选择官方.NET Standard库的优势、5分钟搭建开发环境的步骤、OPC UA客户端架构与通信流程的图解说明,以及完整的客户端基础类代码实现,涵盖了连接管理、证书配置、安全认证等关键功能。通过本文提供的代码模板,开发者可快速实现与PLC等工业设备的稳定数据交互。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 803

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 561

第81篇:Vibe Coding时代:LangGraph + Eval评估体系实战,解决 Agent 优化全靠感觉的问题

本文介绍了一个为LangGraph Coding Agent设计的评估体系解决方案。文章首先指出了当前AI Coding Agent开发中的常见问题:优化过程缺乏客观评估标准,导致改进效果难以量化。随后提出了一个完整的评估框架,包括评估指标(任务成功率、质量指标、安全指标、成本指标和流程指标)、项目结构设计和评估案例集。 核心内容包括: 设计了JSON格式的评估案例集,覆盖正常任务、边界任务和高风险场景 实现了模拟Agent输出的演示代码 构建了多维度评分系统,包括关键词匹配、禁用词检测和成本评估 提供了评

sundong_81的博客 48

【AI智能体】QClaw 对接GitHub处理自动化任务实战操作详解

QClaw 对接GitHub处理自动化任务实战操作详解

congge 4871

ChatGPT、Perplexity、Gemini 与 AI Overviews 引用对比:谁的引用更可信

AI 引擎的引用机制差异很大:ChatGPT 以行内引用加 Sources 列表呈现来源,Perplexity 几乎逐句可溯源,Gemini 在回答中内嵌相关来源链接,AI Overviews 则把多源聚合答案与来源列表一起放在搜索结果顶部。本文从引用透明度、来源偏好、可干预性 3 个维度对比这 4 个引擎,并给出 GEO 的 3 点启示,帮企业在多引擎环境下提升被引用的概率。

淡然一笑 的专栏 182

MIKE水动力笔记17_MIKE文件转shp、统计每个单元格的面积

MIKE的工具箱中自带一个转shp的工具,然后可以拖进ArcGIS中很方便的统计每个单元格的面积和每个网格点的水深。

晏长街的博客 4153

AI Agent之核心框架

A: 显式 Thought 有三类价值:可解释性(便于人类审计)、可调试性(定位哪一步选错工具)、学习信号(可做监督微调或评估中间步骤质量)。ReAct 把推理与 可执行行动 绑定,每一步行动后都有 真实 Observation 反馈,从而用工具结果约束生成,降低闭卷幻觉。做完不等于结束——还要 评估做得好不好,把 教训 记下来,下次 带着教训重试,反思作为 记忆,影响后续尝试的策略。工作流程:Action → Evaluation → Reflection → Retry。A: 普通 CoT 只在。

剑雨巍巍的博客 250

网页内容抓取的艺术:使用R语言解析动态网页

本文探讨了使用R语言处理动态网页数据的方法。针对AJAX加载的学术网站,传统的静态抓取和RSelenium方法存在会话终止、浏览器错误等问题。通过分析发现内容通过admin-ajax.php加载,提出使用httr2模拟POST请求获取数据,配合rvest解析HTML内容。该方法避免了浏览器自动化的弊端,实现了高效稳定的动态内容提取,为处理类似AJAX网站提供了通用解决方案。

m0_74337424的博客 55

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

AI 应用开发工程师技术实践:大模型接入、通用组件封装与性能优化

本文提出AI应用从PoC到生产的核心挑战:模型调用的持续可用、可控与可优化。通过构建统一LLM网关实现多供应商路由与故障转移,封装对话、工具调用与RAG组件以解耦业务逻辑,结合前缀缓存、批处理与流式背压治理等性能优化手段,形成“接通→接稳→接快”的工程路径,最终以工程化能力决定AI应用的生产可用性。

2301_79189962的博客 614

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

抽象主义人工智能和生命体AI的内在联系

彭军辉提出“抽象主义人工智能”作为第四大AI范式,批判符号主义、连接主义、行为主义剥离生命本体的误区,确立“智能是现象,生命是本体”的核心公理。主张原生智能必须依附具备存续诉求的生命本体,提出“生命体AI理论”,构建七层演化阶梯与自闭环工程框架,强调智能不可跳过底层存续机制直接模拟语言。该体系为生成式AI提供科学边界,推动从“仿真表象”向“原生智能”的范式跃迁,开辟硅基人工生命新赛道。

抽象主义人工智能和生命体AI 151

深度学习工具包 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")

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

OpenClaw 深度调查:把 AI 助手做成你自己的控制平面

对 openclaw/openclaw 的完整技术尽调:Gateway 架构、Agent 运行时、工具与沙箱、30 个消息通道、181 个插件、安全信任边界、工程代价与采用建议。17 章 / 10 张图,全部数字标注口径,数据截至 2026-10-31。

厚积薄发 284

AI赋能智慧港口建设|造形家快速生成港口全要素三维场景

随着智慧港口、港口数字孪生项目的持续推进,港口三维场景的需求日益旺盛。传统港口三维建模,往往需要航拍倾斜摄影采集数据,再人工搭建吊机、岸桥、船舶、集装箱等大量工业设施模型,项目周期长、人力成本高,修改迭代繁琐,制约港口可视化项目落地效率。国产AI三维建模工具,依托卫星影像 AI 识别能力,无需航拍作业,一键快速搭建港口完整三维场景,为港口数字孪生、方案汇报、投标演示提供高效的场景解决方案。

m0_69539167的博客 47

企业微信iPad协议详解:接口接入、实时消息同步与语音转码实践

深入解析企业微信iPad协议的技术架构与开发思路,涵盖API接口接入、长连接通信、实时消息同步、Silk语音转码、异常重连及高并发优化,帮助开发者了解企业微信自动化系统的设计与实现。

欢迎来到祖安! 416

Product Hunt 热榜 2026-11-13:Plurai Simulation、YouArt Desktop App、Omnigraph

2026-11-13 Product Hunt 新产品精选:Plurai Simulation、YouArt Desktop App、Omnigraph。汇总 15 款产品的中文介绍、功能关键词和产品链接。

LaughingZhu的博客 475

AI作图软件技术选型:从4个技术维度出发的实测对比

AI作图软件技术选型:从4个技术维度出发的实测对比

Vbaoke的博客 247

【AI Agent面试系列】AI Agent可观测、评测、安全相关的知识点

之前的文章介绍了和,本文主要介绍AI Agent的测评、可观测等知识。

321

Docling 原理解读:是什么、为什么、怎么样

从论文视角拆解 Docling 的整体架构、DoclingDocument 数据模型、PDF 预处理、版面分析、OCR、TableFormer 双解码器、阅读顺序与装配流程,并解释版面框与 OCR 框的区别。

PLANTTHESON的博客 365

WorkBuddy 实战:一句话需求 → 七屏可交互原型,户外徒步 App 的 AI 设计全流程

WorkBuddy 实战:一句话需求 → 七屏可交互原型,户外徒步 App 的 AI 设计全流程,跟着博主一起来还原整个过程。

夜郎King的博客 5006

从认识人工智能到理解机器学习:我的 AI 入门第一课

正式开始学习人工智能之前,我对 AI 的认识其实比较模糊:知道 ChatGPT、知道大模型,也知道现在很多岗位都在谈 AI,但如果有人问我“人工智能到底是什么”“机器是怎么学会识别一只猫的”,我未必能从头到尾讲清楚。上午的课程更偏向行业全景:人工智能的发展、研究方向、NLP、岗位分工、学习路线和 AI Coding 工具。下午的课程更偏向技术基础:机器学习的原理、有监督学习、深度学习、模型训练和评估方法。

chh563的博客 501
上一篇: 【ScienceAI Weekly】IBM新AI芯片提效25倍;清华大学发AI辅助框架;DeepMind新工具预测220万新晶体
下一篇: Nature 确认:大语言模型只是没有感情的「学人精」
HyperAI超神经
博客等级 码龄7年 8873粉丝 1753原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值