从计算机视觉走向医疗AI,对话上海交大谢伟迪:定义问题比解决问题更重要

SAP财务模块必看:BAPI_ACC_DOCUMENT_POST扩展字段全攻略(含FIBF配置) 本文详细解析了SAP财务模块中如何利用BAPI_ACC_DOCUMENT_POST的EXTENSION1参数扩展自定义字段。文章从需求分析入手,对比了传统增强与BTE(业务交易事件)两种技术路径,并重点提供了基于FIBF配置的完整实战指南,包括数据结构理解、函数模块开发及配置步骤,帮助ABAP开发者和财务顾问高效、可维护地实现如WBS元素、税务代码等字段的灵活传递。 阅读详情

2012 年,在传说中的「末日之年」,移动互联网迎来了爆发期。随着 3G 网络的普及、智能手机价格下探,加之微信、米聊为代表的类通信应用以及电商、支付类的迅速崛起,该领域实现了新一轮增长。作为各类创新应用的基础,通信产业发展前景一片向好。

「我当时的理解是:通信技术成熟度已经很高,中国在技术上也走在了世界前列,各国间主要的争议更多的是通信协议问题,这已经超出了技术范畴」,彼时的谢伟迪在北京邮电大学完成了 4 年的本科学业,站在人生的分岔路口,他坦言「并不是十分喜欢这个专业,当然也有可能,是没学明白」。

随即,他选择了出国深造并转换赛道,先后在英国伦敦大学学院 (UCL) 与牛津大学 (University of Oxford),完成了计算机视觉领域的硕士及博士、博士后的学习与工作,并于 2022 年归国加入上海交通大学,将其在计算机视觉领域的积累带入医疗人工智能,尝试开辟新的战场。

可以说,谢伟迪教授从通信向计算机视觉,以及从计算机视觉向医疗人工智能的两次转身,亦是两个重要节点,抉择上的犹豫、攻坚新领域的挑战、成果面世后的成就感,皆是其履历上的闪光点。

近日,HyperAI超神经有幸与谢伟迪教授进行了一次深度访谈,从其个人经历出发,他向我们分享了从计算机视觉转型 AI for Healthcare 的经验心得,同时深入剖析了该行业的发展趋势。

通用医疗 AI 系统可以产生「智能涌现」

「很多人不理解我为什么要做通用医疗人工智能系统,明明特定的疾病诊疗模型具备更高的实用性」。在大模型赋能各行各业的今日,专用和通用一直是业内讨论的重点。专用模型能够在特定领域表现出更高的精确度和实用性,但泛化能力有限。通用模型的广泛知识面可以联通不同领域,但在特定领域的能力往往比不上专有模型。

在谢伟迪看来,专用模型和通用模型均有自己的优劣,「但开发通用医疗 AI 系统是我们必须要做的事」。他认为,通用意味着模型可以建立不同模态数据之间的隐层联系,从而产生所谓的「智能涌现」,这对疾病诊断是至关重要的,尤其是成因没有很明确的疾病。举例来讲,针对肺炎 A 和肺炎 B 的分类问题,如果用图像和文本去训练,即可以在底层串联这些多模态数据,识别两种肺炎症状的相同点和不同点,达到分类目的,然而,只用图像训练,网络不一定能学到这种关系。「所以说,从 Science Discovery 的角度来看,通用模型的价值很大」。

想要构建一个多模态的通用医疗模型,就要尽可能全面的将医学知识注入其中。然而,医疗领域的数据存在伦理、安全、质量等多方面因素的影响,一般很难获取使用。为了应对这个挑战,谢伟迪选择的做法是:把计算机视觉中的数据收集方法迁移到医疗领域,即从互联网上爬数据。「当然,我们知道,这种做法训练出来的大模型无法得到临床实用,但可以更好地培养人才,锻炼团队处理大数据的能力,比如收集、整理、清洗数据」。

举例来讲,团队汇集了超 3 万本医学书籍,全面爬取了 PubMed Central 中 400 万篇医学文献,还收集了互联网上中文、英语、俄语、日语等 8 个语种的医学论文、书籍,并将它们转换为能够训练语言模型的语料。

在这里插入图片描述

团队构建的数据集

进一步地,对互联网上公开的图像-文本数据进行挖掘,汇聚了超过 25 万的 3D 扫描,以及百万以上的 2D 医学论文图像。此外,为了训练通用分割模型,团队还对市面上可获得的近 120 个放射学影像公开的分割数据集进行了标准化处理,含超 3 万个 2D/3D 影像和百万级的像素级标注,覆盖了常见的各种放射学影像模态,例如,MR、CT、PET。深知医疗数据集对医疗 AI 研究的关键作用,团队将获取的大部分数据集进行开源。

在构建通用模型时,团队希望将获得的所有多模态数据联合训练,包括影像、文本、基因组学、ECG 信号等,并以影像上的病灶定位、文本级的诊断与报告作为最基本的输出形式。训练过程中,医学知识的嵌入也是实现通用功能中必不可少的一环。「这是因为,医院里诸多科室的任务不同,医生往往更关注自己的部分,我们希望通用模型能够覆盖全部的检查信息,处理任务时形成一步一步的思维链,完成鉴别诊断等任务」,谢伟迪介绍道。

在这里插入图片描述

多模态通用 Al 医疗大模型构想

当导师「两不管」时,默默积蓄力量

如前文所述,开发通用医疗 AI 系统时,谢伟迪的做法是将计算机视觉领域的方法搬到医疗领域,这是因为,此前他曾从事计算机视觉研究近 10 年,拥有深厚的知识积累。然而,最初选择该专业,对他而言却是「阴差阳错」。

本科的时候,谢伟迪就读于北京邮电大学。「因为对通信不感兴趣,所以我的本科成绩很差,担心自己找不到工作,才选择出国留学」,他笑言。

2012 年,谢伟迪进入英国伦敦大学攻读计算机视觉方向的硕士。这一次,他找到了感兴趣的方向,并对学业异常认真,「我的导师觉得我挺适合做这方面的科研,就建议我读个博」。他那时面临的问题是,由于英国的博士奖学金极少,是否要为了继续深造而选择自费读博。「导师把我推荐到了牛津大学,这样即使需要自费,这笔投资也更有价值」。

幸运的是,2014 年,为了更好地推动 AlphaGo 项目,DeepMind 决定加大对 AI 领域的人才培养,并和牛津大学合作开设奖学金,谢伟迪正是首届 Oxford-Google DeepMind 全额奖学金的获得者。虽然 DeepMind 的近 100 万元奖学金及时解决了他的经济压力,但他真正面临的问题是,两个导师的放养态度差点让他没办法毕业。

「读博的时候,我有两位很强的导师。一位是计算机视觉领域的 Andrew Zisserman 教授,他是皇家科学院的院士,也称得上是 CV 领域的奠基人之一;另一位是研究医疗影像的 J Alison Noble 教授,他是皇家科学院和工程院的两院院士。当时他们都认为我会更多参与到对方的研究中,这导致我处在了两不管的境地」。谢伟迪当时所在的牛津大学视觉几何组 (VGG) 因开发卷积神经网络 VGGNet 而备受瞩目,组内成员普遍在国际学术界上享有极高声誉,而他不仅要面对同期伙伴均快速提升的落差感,同时还要不断挖掘新的研究课题。

受 AlphaGo 的影响,当时深度学习一度爆火,谢伟迪也对生成式模型等产生了浓厚兴趣,然而,他的导师 Andrew Zisserman 教授则更倾向做「非热点但更有价值」的研究。「开周会的时候,我的同学可以向 AZ 汇报每周的工作进度,但我往往是拿一堆 paper 进去,又拿着一堆新的、要读的 paper 出来」。与此同时,由于英国对医疗影像数据的控制非常严格,没有数据就无法开展研究,在另一位导师 J Alison Noble 那里,他也无法得到反馈。「截止毕业的前一年,我只发了一篇 Workshops 论文,我向两个导师反馈,再这样下去怕是毕不了业」。

正所谓塞翁失马,焉知非福。由于多个选题被导师否定而无法实施,空闲时间他几乎阅读了那个时代计算机视觉领域的全部论文,这种积累也为他的未来科研奠定了坚实的基础。正如他所言,「我当时觉得,只要是导师能确定了我的 topic,我几天就能做完」。

2018 年,在两位导师的支持下,谢伟迪分别在计算机视觉、医疗图像等方向发表论文 7 篇,顺利毕业。AZ 也认可了他的实力,邀请他继续攻读博士后,专门做计算机视觉方向的研究,直到 2022 年回国。

在这里插入图片描述

谢伟迪毕业照

知识是计算机视觉与医疗的最本质区别

家庭与工作的平衡点困扰着无数人,谢伟迪也是如此。「选择回国是一个很突然的决定,虽然已经留在牛津,也看到了助理教授 offer 的机会,但我逐渐意识到,那里的环境并不适合我继续深入研究,另一方面,作为一位新手父亲,我当时的经济和精力都不足以支持家庭」。

在笔者看来,谢伟迪身上有一种独特而鲜明的性格,除了科研看重的谦逊务实之外,更多了一份果敢。决定回国的想法一出,他立马联系国内高校,没有考虑「海外优青」之类的帽子,也没有考虑「货比三家」,只把简历投给了上海交通大学,并顺利入职。

在这里插入图片描述

谢伟迪在交大上课

有趣的是,上海交大的张娅老师扮演了他入职过程中的「HR」,而和张娅老师相识,源于一篇发表的期刊论文。「2018 年的时候,张娅老师和她的学生想复现我曾发表的医疗影像相关论文,就加了我的微信」。正是这个契机为他后续归国铺就了桥梁,将简历发给张娅老师后,他很快得到回复,「幸运的是,学校很快就推进了整个过程」。

入职上海交大之后,除了继续原有的计算机视觉研究,他开始深耕医疗人工智能。「我当时想尝试一下 AI for Science 的研究,因为对医疗健康接触的比较多,也感兴趣,就选了这个方向」。

值得一提的是,2022 年,恰逢 ChatGPT 出现,谢伟迪决定从语言入手,放弃当时备受追捧的医疗影像输入。「我认为医疗与计算机视觉之间最本质的区别就是知识,因为医学更多的讲究寻证,而且有着系统且规范的知识,但视觉领域的医疗影像很难将知识嵌入模型」。在他的设想中,团队可以将医学知识嵌入到语言模型中,随后将视觉模型与语言模型对齐,就能将医学知识传递给视觉模型了。

笔者认为,或许是受到 Andrew Zisserman 教授的影响,在谢伟迪的身上,我们能深刻感受到他对科研的敏锐直觉,正如他对自己导师的评价:「AZ 的很多 topic 并不追求短期热点,而是着眼于长期的价值」。比如,在开发视觉-语言模型 PMC-CLIP 时,由于很多研究都是首次进行,团队的学生并不能完全理解这个项目的意义——为什么要把互联网所有的论文爬下来?为什么要提取图像和注释来训练模型……「甚至在提交论文时,MICCAI 还差点拒稿」。

然而,过了一段时间后,视觉-语言模型突然火爆,PMC-CLIP 模型也被 MICCAI 评为「Young Scientist Publication Impact Award, Final List」,成果也被认可。「我最初也很难说服我的学生这项研究到底有什么用,可能我比较幸运,选择的 topic 恰好是后来大家感兴趣的事」。

在访谈中,谢伟迪教授多次提及「幸运」——被牛津大学录取是幸运;首批获得 Oxford-Google DeepMind 奖学金是幸运;回国后顺利入职上海交大是幸运;研究方向与技术路径的选择亦是幸运……但在笔者看来,运气大多都不是空穴来风,或许是曾经一个举动埋下的伏笔,又或许是久而久之的积累蓄力推动了当下的正确抉择。

定义问题比解决问题更重要

值得一提的是,谢伟迪曾庆幸「自己选择的 topic 恰好是后来大家感兴趣的事」。但笔者认为,研究课题的选择恰恰反应了团队带头人在该领域的独到观察,而谢伟迪将其表示为「定义问题」,在他看来,定义问题比解决问题更重要,只要一个有意义的问题被定义下来,后续会有无数的人跟进和解决。因此,我们需要思考,在当下的这个阶段,什么问题是最值得让模型去解决的?这点很重要。

进一步地,当我们解决问题时,「人才-数据-算力」更是缺一不可。

当前,AI4S 的发展尚在初期,AI 从业者在模型构建和框架优化上更占优势,Science 从业者则更擅长精准定位垂直领域的科学问题,双方也一直在探索一种普适的合作模式。在这方面,谢伟迪团队选择与上海交大医学院的很多老师和同学们进行合作,充分利用其医学领域的专业知识,让他们担任顾问角色,帮助团队判断研究方向是否具备实际的医学价值。此外,他们还充当「质检员」的角色,负责抽样数据的质量,确保数据的干净程度达到 90% 或以上。

与此同时,随着团队建设的逐步完善,学生们已熟练掌握网络数据爬取技术,下一步面临的问题是,互联网数据资源接近枯竭。在这方面,团队希望与医院合作,获取更高质量的医学数据,尝试让模型进行落地。谢伟迪强调,「知识驱动」或「数据与知识联合驱动」,比单纯的「数据驱动」更重要,因此,团队希望将医学知识置于核心位置,和队友们一起解决更有实际意义的问题。

值得一提的是,长期以来,医疗 AI 的可解释性一直是医生们的「心头大病」。对此,谢伟迪认为,如果 AI 的性能足够强大,在诊断准确性上超越顶尖医生,可解释性将不再是问题。例如,Google 推出的 Med-PaLM 2 模型在美国 USMLE 执业医师资格考试中已取得 86.5 的高分,此外,他们的团队也曾连续推出医疗大语言模型 PMC-LLaMA、MMed-LLaMA,视觉-语言模型 MedVInT、RadFM ,通用分割模型 SAT 等,多个模型被行业视为 baseline,并在 NPJ Digital Medicine、Nature Communications、ICCV、ECCV、NeurIPS、MICCAI 等知名期刊/顶会上发表,这些成果的迭代速度正在逐步改变医生对 AI 的看法,建立高质量的合作关系将未来可期。

而在算力资源、资金保障方面,上海交通大学也为团队的前期研究和未来成果转化提供了全方位支持,学院不同团队之间也在积极探讨合作机会,学术氛围浓厚。

做有价值的研究

在与谢伟迪教授的交流中,他多次提到,希望做些有价值的研究。在他看来,团队以往的研究只能算是「学术界的一个 toy 原型」,小模型想要实现最终落地必须要进一步 scale up。他希望,这些原型能够给其他研究人员甚至工业界提供参考,告诉大家需要用什么样的数据、如何处理数据、怎么构建和训练模型、以及如何设定 instruction 等。

未来,团队计划构建面向临床的 super instruction,将医生感兴趣的 100 余个任务整合训练,让模型专注于解决实际临床需求。对此,他评价:「传统语言模型多用选择题来评估,但与医生交流时会发现,他们并不关心选择题得分有多高,而是更在意模型是否能够解决实际问题,比如胜任临床任务等」。

另外,团队已经开始下沉至基因组学、DNA、RNA 和氨基酸等层面的相关研究,突破过去依赖图像和文本的局限,他们希望为罕见病诊断和新药研发等创造更多的可能性,期待他们的未来成果。

更多成果详见谢伟迪 Google Scholar:

https://scholar.google.com/citations?user=Vtrqj4gAAAAJ&hl=zh-CN

OpenClaw实战系列03:Slack/Telegram国际版接入实战指南 在当今的软件开发和工作流自动化中,将项目管理工具与即时通讯平台集成已成为提高团队协作效率的关键。OpenClaw作为一个开源的自动化工具,通过接入Slack和Telegram国际版,可以实现实时通知、自动化任务触发和团队协作的无缝对接。本文将详细介绍如何实现OpenClaw与这两个主流即时通讯平台的集成。OpenClaw是一个开源的自动化工作流引擎,支持多种触发器和执行器,能够帮助开发团队实现CI/CD流程、任务调度、监控告警等自动化场景。模块化设计:支持插件化扩展多触发器支持。 阅读详情

相关推荐

ROS入门必学导航算法——Navigation

该平台集成了多款无人车底盘,包括履带式、四轮差速、阿克曼、麦克纳姆轮底盘等,以满足不同形式和配置的需求,并搭载了RTK定位系统、双目相机、深度相机和激光雷达等多种传感器,以满足开发者的科研需求。amcl节点接收里程计数据(通过"odom"话题)和激光雷达数据(通常通过"scan"话题),结合已知的地图,实时地估计出机器人在该地图上的位置。在ROS中,这是通过"tf库"变换实现的,通过将传感器数据转换到共同的参考系中,系统可以更容易地集成来自不同传感器的数据,并确保它们在相同的空间和时间范围内可用。

AMOVLAB(阿木实验室) 2909

活动报名 | 上交大副教授谢伟迪:视频自监督学习

本期为青源LIVE第44期线上直播活动,参与直播互动有惊喜????!最近,自监督学习的方法取得了显著的进步,其与监督学习的方法相匹配,甚至超过了监督学习的方法。然而,研究的重点是从i.i.d数据中学习可转移的表征,例如图像。但在具体应用中,网络仍然需要在下游任务上使用手动注释进行微调。本期青源LIVE邀请了上海交通大学副教授谢伟迪博士做题为《视频自监督学习》的报告。主讲人:谢伟...

BAAIBeijing的博客 4606

Python爬虫实战:5分钟搞定东方财富A股数据抓取(附完整代码)

本文提供了一套基于Python的A股数据自动化采集与分析系统构建方案。文章详细解析了如何通过稳健的爬虫框架从东方财富等公开数据源高效抓取A股数据,并设计数据库进行自动化存储与管理,特别适合量化研究和数据分析场景。

weixin_29062963的博客 4433

从计算机视觉向医疗AI,上海交大谢伟迪发布多项成果,登Nature子刊/NeurIPS/CVPR等

从计算机视觉走向医疗人工智能

HyperAI超神经 1463

S32K1XX调试--快速定位HardFault

1、背景 程序运行,发现程序跑飞到HardFault,但不清楚为什么会跑到HardFault中断处理函数去。 2、分析 要想知道为什么会跑到HardFault_Handler中去,就很有必要了解一下,程序上一条执行的是那条命令。 根据汇编指令可以定位上条指令,但如果对汇编指令不是很了解的话,那就很头疼了 根据单步运行也能实现定位,但如果程序量很大,又很杂,可能花费的时间就比较久些。 3、问题查找 提供一种不需要懂汇编指令的查找方法,方法如下: 在中断处理函数中插入以下代码,以及另外定义

ping_devil的博客 4019

QT实现Word读写

在windows环境下,我们可以通过ActiveQt实现Office自动化,相当于VB的VBA功能。 以下是一个实例: #include #include #include int main(int argc, char *argv[]) {     QApplication a(argc, argv);     //显示的打开一个word应用程序     QAxW

nameofhsw的专栏 1万+

招生|上海交通大学谢伟迪组科研实习

上海交通大学人工智能学院 (SAI) 谢伟迪课题组招 Computer Vision,AI4Science 方向科研实习,表现优异同学可获直硕/直博 offer。✦✦课题组简介✦MultiModal Perception Group 是上海交通大学人工智能学院的科研团队,负责人为谢伟迪副教授,于 2018 年在牛津大学视觉几何组 (VGG) 获得博士学位,导师是 Andrew Zisserman ...

HyperAI超神经 354

AF3 ProteinDataset类的_patch方法解读

AlphaFold3 protein_dataset模块 ProteinDataset 类  _patch 方法的主要目的是围绕锚点残基(anchor residues)裁剪蛋白质数据,提取一个局部补丁(patch)作为模型输入。

qq_27390023的博客 1147

活动回顾丨上海交大/浙江大学/清华大学/OpenBayes多位专家,覆盖医疗/地理信息/城市复杂系统/科研新范式

观点犀利,干货满满!

HyperAI超神经 1097

无人驾驶之车辆控制(1)纯跟踪(Pure Pursuit)算法与Stanley算法

目录引言1 Pure Pursuit纯几何跟踪算法1.1 车辆运动学自行车模型1.2 算法原理1.3 仿真测试2 Stanley算法2.1 算法原理2.2 仿真测试3 总结 引言 本文对Pure Pursuit以及Stanley control两种算法进行了调研以及初步的性能摸底。 1 Pure Pursuit纯几何跟踪算法 1.1 车辆运动学自行车模型 运动学是从几何学的角度研究物体的运动规律,...

zxxxxxxy的博客 2万+

纯JS实现SM3加密算法(兼容IE浏览器)

纯JS实现SM3加密,IE、谷歌、火狐等浏览器可以直接使用。

qianpou的博客 7354

Nature重磅!上海交大提出全球首个医学循证推理智能体,破解罕见病诊断难题!

首先,在新华医院,DeepRare 已经完成院内部署,我们正在进行紧张的内测,很快将正式用于罕见病诊疗的质控流程,帮助医生查漏补缺,守住诊断的 “安全底线”。,彻底改变了过去“不测基因就难确诊”的困境,为基层医院的快速筛查提供了强有力的工具。从实验室的代码,到医院的系统,再到一家名为 “观壹智能” 的创业公司,这个团队展示了 “医工交叉” 最理想的模样。此外,经新华医院专家团队验证,DeepRare生成的具备完整证据链的推理报告,获得了人类专家95.4% 的高度认可,真正做到了“有理有据”。

阿木寺的博客 284

弱网、高热、只有 32MB 内存:恶劣环境下嵌入式 SoC 音视频开发的“不死”法则

永远不要假设。你申请一个 1920 宽的图像,硬件为了对齐(比如 16 字节对齐或 256 字节对齐),实际分配的一行可能有 1936 甚至是 2048 字节。那个多出来的部分叫Padding。如果你写代码时用来计算数据量,或者用Width来做指针偏移:恭喜你,你的画面会像被风吹歪的百叶窗一样,产生斜切畸变。永远使用VB_CONF结构体里返回的u32Stride字段。这是区分新手和老手的试金石。第六章 ISP 调优(Tuning)实战:为什么你调出的画面像个“鬼片”?

大模型大数据攻城狮的专栏 1769

VALSE Webinar 20-23期 源头活水:自监督与无监督学习探讨

【B站】 报告时间:2020年09月16日(星期三)晚上20:00(北京时间) 主题:源头活水:自监督与无监督学习探讨 主持人:姬艳丽(电子科技大学) 报告嘉宾:谢伟迪(VGG, University of Oxford) 报告题目:Self-supervised Visual Representation Learning from Videos 术语 proxy task 自监督videos 存在问题: 1.训练太弱 2.与下游任务不匹配 解决目的: 学习一个好的表达来predict下一帧 面临挑战:

qq_40662074的博客 946

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

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

Mysssone的博客 228

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

6 款电商 AI 图片生成软件实测|国内 + 跨境卖家工具清单

电商 AI 作图工具已经从 "能不能用" 进入了 "好不好用" 的阶段。对于绝大多数卖家而言,现在的 AI 工具已经可以覆盖 60%-80% 的基础商品图需求,显著降低拍摄和设计成本。选择工具的核心逻辑不是 "哪款最强",而是 "哪款最适配你的品类、平台规模和团队能力"。垂直电商工具胜在工作流效率,通用生图工具强在创意上限,模板类工具赢在上手速度。建议根据自身业务阶段,搭配 1-2 款主力工具 + 1 款辅助工具,形成适合自己的视觉生产流程。

Mardi_Ladin的博客 401

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

我用 GPUWorks 在 M1 Pro 上搭了个发票识别原型

公司里经常要看电子发票。我想先做个小原型:把 PDF 发给一个自己部署的图文模型,让它提取发票类型、日期、交易双方和金额,再把结果交给同事核对。这个原型不用先接财务系统,先看看从部署到调用要走多少步,模型返回的内容能不能帮上忙。

鸽芷咕的博客 2万+

您您这可以把问小白的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。AI导出鸭

第三层是格式编译层。这个决策背后的判断很清晰:一个批量导出工具的价值,不在于“试三次”,而在于你真正用它处理了几十份技术文档、访谈记录或课程讲义之后,它是否值得留在你的工作流里。问小白的会话列表通过分页接口加载,AI导出鸭 在页面运行时建立旁路监听,捕获每一次分页请求返回的完整对话清单,包括会话 ID、标题、时间戳和隐藏的元数据字段。让AI导出回归优雅——这句话说的是:导出不该是体力活,而应该是一次完整的、可预期的文件交付。注意:这里的“批量”指的是左侧列表里的多个独立会话,不是一条会话内的多轮对话。

laoyunsi的博客 248

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

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

nice_lcj520的博客 503

河道漂浮物目标检测数据集

目标检测,yolo,河道漂浮物目标检测数据集

DL_data_set的博客 203

AI Agent之核心框架

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

剑雨巍巍的博客 201

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

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

2301_79189962的博客 559

AI前沿日报 · 2026-11-04 | 祛魅时刻:Astra“纯读权重“神话的崩塌

①Astra"裸权重通吃"被spaCy创始人Honnibal精准祛魅——仅1/3实验真裸读,数学能力提升依赖Python+50次迭代;②Simon Willison用Qwen 3.8-27B端侧复现权重空间编程;③Nvidia开源Auto-Ontology自动知识图谱;④$800开源全域抓取机器人Stringman;⑤OpenAI悄然重开Codex训练开关引信任危机;⑥DeepMind发布Gemini 4 Argon机器人基础模型;⑦美国科技巨头隐性AI债务达3.2万亿美元,6个月增90%。

johnsong2009的博客 575

大模型 Embedding 与向量相似度详解

Embedding 解决的问题:计算机不懂文字,但懂数字│▼文本 → 向量(1024维浮点数数组)│▼相似度解决的问题:怎么判断两个向量(文本)有多接近│▼余弦相似度:看向量方向的夹角,越接近0°越相似│▼最终效果:语义搜索——理解意思,而非字面匹配一句话总结:Embedding 把文字变成数字,余弦相似度比较数字的方向,两者结合实现了"理解语义"的搜索。

T3165919332的博客 92

GPT-1 架构和计算细节

下面配合框图,对 GPT-1 的每个组件做公式展开 + 数值实例(配置:12 层 × 768,12 头,FFN 3072,词表 40478,共 117M 参数)。GPT-1 把翻译模型的编码器-解码器砍掉一半,只留解码器,然后以"预测下一个词"为目标在 BooksCorpus 上预训练。与 2017 原版的四个架构差异(框图中标 ★):h0=E[token]+Epos[position],E∈R40478×768, Epos∈R512×768h^0 = E[\text{token}] + E_{pos}[\

eloudy的专栏 280
上一篇: 活动回顾 | 计算-网络-软件-算法-生态的协同发展,2024 Meet AI Compiler 圆满收官!
下一篇: 【vLLM 学习】安装
HyperAI超神经
博客等级 码龄7年 8873粉丝 1753原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值