杰弗里·辛顿:深度学习教父
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》
创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)
杰弗里·辛顿:当坚持遇见突破,AI迎来新纪元
一、人物简介
杰弗里·埃弗雷斯特·辛顿(Geoffrey Everest Hinton),1947年12月6日出生于英国伦敦,是一位享誉世界的英国-加拿大双重国籍的认知心理学家和计算机科学家,被誉为"深度学习之父"或"人工智能教父"。
作为人工神经网络和深度学习领域的开创性人物,辛顿的研究成果彻底改变了人工智能领域,推动了语音识别、图像分类和自然语言处理等技术的革命性发展。
图片:杰弗里·辛顿
辛顿出生于一个学术氛围浓厚的家庭,他的父亲霍华德·埃弗雷斯特·辛顿(Howard Everest Hinton)是一位杰出的昆虫学家,他的三个兄弟姐妹也都从事学术研究工作。这样的家庭背景为他后来的学术生涯奠定了坚实基础。
辛顿性格坚毅,学术道路上充满曲折但从不放弃自己的信念。他曾表示自己在研究生阶段经历了"风暴般的职业生涯",每周都会与导师发生激烈争论。他常常以"再给我六个月时间来证明神经网络的有效性"为由,坚持自己的研究方向。这种坚持不懈的精神使他最终取得了突破性的成就,尽管在早期他的研究被学术界广泛质疑。
二、学术背景
1. 早期教育与学术探索
辛顿的学术道路充满了变数和探索。他在剑桥大学期间曾多次转换学习领域,先后学习过自然科学、艺术史和哲学,最终在1970年获得了实验心理学学士学位。这种跨学科的学习经历为他后来的跨界研究奠定了基础。辛顿在本科阶段就对大脑神经网络的运作方式产生了浓厚的兴趣,这种兴趣后来塑造了他在人工智能领域的开创性工作。他的本科论文专注于视觉感知,为他日后在神经网络和深度学习方面的研究奠定了基础。
辛顿曾表示:"我一直深信,让人工智能工作的唯一方法是以类似人脑的方式进行计算。这是我一直追求的目标。我们正在取得进展,尽管我们仍然需要了解更多关于大脑实际工作原理的知识。"这种信念贯穿了他的整个研究生涯。
2. 学术历程
辛顿的学术经历可以概括为以下几个重要阶段:
- 1970年:在剑桥大学获得实验心理学学士学位
- 1978年:在爱丁堡大学获得人工智能博士学位,导师是克里斯托弗·朗格-希金斯(Christopher Longuet-Higgins)
- 之后:曾在苏塞克斯大学、加州大学圣地亚哥分校和卡内基梅隆大学工作
- 1987年:加入加拿大多伦多大学,并成为加拿大高级研究院(CIFAR)的研究员
- 1998-2001年:在伦敦大学学院创建并领导了盖茨比计算神经科学部门
- 2001年:回到多伦多大学继续进行神经网络模型的研究
- 2004-2013年:担任加拿大高级研究院"神经计算与适应性感知"项目负责人
- 2012年:在教育平台Coursera上提供免费的神经网络在线课程
- 2013-2023年:在谷歌大脑团队担任副总裁和工程研究员,同时在多伦多大学任教
- 2017年:共同创立并担任多伦多向量研究所(Vector Institute)的首席科学顾问
- 2023年5月:宣布辞去谷歌职务,以便能够自由地谈论AI的风险
3. 学术挑战与坚持
辛顿的学术道路并非一帆风顺。在他早期的研究生涯中,神经网络研究被学术界广泛质疑。他在英国难以获得研究资金支持,这也是他前往美国工作的原因之一。尽管面临这些挑战,辛顿依然坚持自己的研究方向,最终证明了神经网络和深度学习的巨大价值。
辛顿对学术研究的热情和坚持不懈的精神体现在他的一句名言中:“从长远来看,由好奇心驱动的研究效果更好…真正的突破来自于人们专注于他们感兴趣的事物。”
三、重大贡献
1. 反向传播算法(Backpropagation)
辛顿与大卫·鲁梅尔哈特(David E. Rumelhart)和罗纳德·威廉姆斯(Ronald J. Williams)共同推广了反向传播算法在神经网络训练中的应用。这一算法使神经网络能够通过调整内部权重来学习,是深度学习的核心基础之一。
反向传播算法的工作原理是通过计算网络输出与期望输出之间的误差,然后将这个误差沿着网络反向传播,逐层调整权重,从而不断优化网络性能。
值得注意的是,尽管辛顿等人的1986年论文广泛推广了这一算法,但他们并不是最早提出这一方法的研究者。实际上,反向传播是自动微分的一个特例,最早由芬兰数学家塞波·林纳因马(Seppo Linnainmaa)在1970年提出,而保罗·韦尔博斯(Paul Werbos)在1974年首次提议将其用于训练神经网络。辛顿自己也承认:“大卫·E·鲁梅尔哈特提出了反向传播的基本思想,所以这是他的发明。”
2. 玻尔兹曼机(Boltzmann Machine)
1985年,辛顿与大卫·阿克利(David Ackley)和特里·塞诺夫斯基(Terry Sejnowski)共同发明了玻尔兹曼机,这是一种基于物理学中的玻尔兹曼分布的随机递归神经网络。玻尔兹曼机由一组神经元单元组成,这些单元可以做出随机决策(开或关)。每个单元都与其他单元有双向连接,权重是固定的,且存在对称性(即wij = wji)。
玻尔兹曼机的主要目标是最大化"共识函数"(Consensus Function),这一函数可以表示为:
C F = ∑ i ∑ j ⩽ i w i j u i u j CF\:=\:\displaystyle\sum\limits_{i} \displaystyle\sum\limits_{j\leqslant i} w_{ij}u_{i}u_{j} CF=i∑j⩽i∑wijuiuj
玻尔兹曼机可以学习数据集中的概率分布,适用于降维、分类、回归、协同过滤、特征学习和主题建模等任务。这一发明对图像分类和创建等领域产生了重要影响。这一工作也是他2024年获得诺贝尔物理学奖的主要贡献。
3. 受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)
辛顿对玻尔兹曼机进行了改进,提出了受限玻尔兹曼机(RBM)。在RBM中,神经元被分为可见层和隐藏层,且只有不同层之间的神经元才能相互连接,同一层内的神经元之间没有连接。这一限制使得学习算法更加高效,能够应用于实际问题。RBM被广泛应用于无监督学习和预训练深度神经网络。
4. 深度信念网络(Deep Belief Network)
辛顿在2006年提出的深度信念网络是深度学习领域的重要突破,它解决了深层神经网络训练中的困难问题,为后来的深度学习浪潮铺平了道路。深度信念网络通过堆叠多个RBM并使用一种称为"贪婪逐层预训练"的方法来训练,这使得深层网络的训练变得可行。
5. AlexNet
2012年,辛顿与他的两位研究生亚历克斯·克里热夫斯基(Alex Krizhevsky)和伊利亚·苏茨科维尔(Ilya Sutskever)开发了一个八层神经网络程序,命名为AlexNet,用于识别ImageNet(一个大型在线图像数据集)上的图像。AlexNet的表现比下一个最准确的程序高出40%以上。这一成就被视为深度学习革命的开端,标志着深度学习从学术研究走向实际应用的重要转折点。
6. 胶囊网络(Capsule Networks)
2017年,辛顿与谷歌大脑的两位同事萨拉·萨布尔(Sara Sabour)和尼古拉斯·弗罗斯特(Nicholas Frosst)发表了论文《胶囊之间的动态路由》(Dynamic Routing Between Capsules),提出了胶囊网络的概念。传统的卷积神经网络在识别不同方向或位置的同一对象时存在困难,而胶囊网络旨在通过编码对象的空间信息来克服这一限制。
辛顿希望通过胶囊网络最终赋予机器与人类相同的三维视角——让它们在只从一个角度学习咖啡杯的样子后,能够从任何角度识别咖啡杯。这代表了辛顿对计算机视觉发展的新思路。
7. 前向-前向算法(Forward-Forward Algorithm)
2022年,辛顿在神经信息处理系统会议(NeurIPS)上介绍了一种新的神经网络学习算法,称为"前向-前向"算法(Forward-Forward Algorithm)。这是他对神经网络训练方法的又一创新尝试。
8. 其他贡献
辛顿对神经网络研究的其他贡献包括分布式表示(Distributed Representations)、时延神经网络(Time Delay Neural Network)、专家混合(Mixtures of Experts)、Helmholtz机(Helmholtz Machines)和专家产品(Product of Experts)等。2007年,他合著了一篇关于无监督学习的论文《图像变换的无监督学习》(Unsupervised learning of image transformations)。2008年,他与劳伦斯·范德马滕(Laurens van der Maaten)共同开发了可视化方法t-SNE,这一方法被广泛应用于高维数据的可视化。这些工作极大地推动了人工智能领域的发展。
四、学术思想与影响
1. 神经网络与类脑计算的哲学
辛顿的研究哲学始终围绕着一个核心信念:模仿人脑是实现人工智能的唯一途径。他曾明确表示:"我一直深信,让人工智能工作的唯一方法是以类似人脑的方式进行计算。"这一理念贯穿他的整个研究生涯,引导他在神经网络研究中不断探索。
在辛顿看来,人工智能研究有两条主要路线:一条基于逻辑,试图让计算机像人类一样推理;另一条基于生物学,试图让计算机像动物一样感知、行动和适应。辛顿选择了后者,这也是深度学习的基本理念。
辛顿对传统神经网络也持有批判态度,他认为:"卷积神经网络中使用的池化操作是一个巨大的错误,而它工作得如此之好是一场灾难。"这表明他始终在思考如何改进现有技术,而不是固守已有成果。
2. 深度学习革命的启动者
辛顿认为:"大型语言模型、图像生成和蛋白质结构预测方面的惊人进展表明,深度学习革命才刚刚开始。"他的工作奠定了现代人工智能的基础,推动了语音识别、计算机视觉和自然语言处理等多个领域的快速发展。
辛顿的工作彻底改变了AI研究的范式。在他的贡献之前,符号主义和基于规则的系统在AI研究中占主导地位。而他的神经网络和深度学习方法提供了一种全新的思路,让机器能够从数据中学习,而不必显式编程规则。这一转变使得AI能够处理之前被认为难以用传统编程方法解决的问题,如图像和语音识别、自然语言理解等。
3. 学术传承与人才培养
除了直接对人工智能研究的贡献外,辛顿通过教育者和导师的角色对该领域产生了重大影响。他的许多学生和博士后研究员已成为人工智能领域的领军研究人员,进一步扩大了他的影响力。
他在多伦多大学和谷歌的工作培养了一代又一代的AI研究人才。他的两位著名学生亚历克斯·克里热夫斯基(Alex Krizhevsky)和伊利亚·苏茨科维尔(Ilya Sutskever)分别成为了AI领域的重要人物,后者现在是OpenAI的联合创始人和首席科学家。辛顿还在2012年在Coursera平台上提供免费的神经网络在线课程,使得深度学习知识能够惠及全球学习者。
4. 学术合作与"深度学习三巨头"
辛顿与约书亚·本吉奥(Yoshua Bengio)和扬·勒坤(Yann LeCun)一起被称为"深度学习三巨头"。三人在2018年共同获得图灵奖,这反映了他们在深度学习领域的共同贡献和合作关系。三人都是加拿大高级研究院"机器与大脑学习"项目的成员,共同推动了深度学习的发展。
5. 工业应用与技术转化
辛顿的研究成果已经被广泛应用于工业界,对多个领域产生了革命性影响:
- 语音识别系统:谷歌的语音识别系统使用了基于辛顿研究的深度学习技术,大幅提高了识别准确率
- 图像识别技术:辛顿的AlexNet开创了深度学习在计算机视觉中的应用,现在的人脸识别、物体检测等技术都受益于此
- 自然语言处理:大型语言模型如GPT系列的基础也可以追溯到辛顿的深度学习研究
- 医疗诊断:辛顿曾表示:“AI在理解医学图像方面已经与放射科医生相当”,这为医疗领域带来了革命性变化
- 自动驾驶汽车:自动驾驶技术大量使用深度学习算法处理视觉信息和决策
- 药物设计:AI在药物发现和设计中的应用也得益于深度学习方法
6. 创业与产业化
辛顿不仅是学术研究者,也积极参与技术产业化。2012年,他与两位研究生成立了DNNresearch公司,专注于深度神经网络技术。2013年,谷歌以4400万美元收购了这家公司,辛顿也加入了谷歌大脑团队。2017年,他共同创立了多伦多向量研究所(Vector Institute),促进AI技术与产业的结合。
这些努力将学术研究成果转化为实际应用,加速了深度学习在产业界的落地,使得这一技术能够在更广泛的领域产生影响。
五、荣誉与奖项
辛顿因其在人工智能和深度学习领域的开创性贡献,获得了众多国际性奖项和荣誉:
1. 诺贝尔物理学奖(2024年)
2024年,辛顿与约翰·霍普菲尔德(John Hopfield)共同获得诺贝尔物理学奖,以表彰他们 “为使用人工神经网络的机器学习奠定的基础性发现和发明” 。
2. 图灵奖(2018年)
2018年,辛顿与约书亚·本吉奥(Yoshua Bengio)和 杨立昆(Yann LeCun)共同获得被称为"计算机科学诺贝尔奖"的图灵奖,以表彰他们在深度神经网络领域的概念性和工程性突破,使深度神经网络成为计算的关键组成部分。他们三人被誉为"深度学习三巨头"。
3. 其他重要奖项
- 伊丽莎白女王工程奖(2025年)
- VinFuture大奖(2024年)
- 皇家学会皇家奖章(2022年)
- BBVA基金会前沿知识奖(2016年)
- IEEE/RSE沃尔夫森詹姆斯·克拉克·麦克斯韦奖(2016年)
- 加拿大工程学会Killam奖(2012年)
- 赫茨伯格加拿大科学与工程金奖(2010年)
- IJCAI研究卓越奖(2005年)
六、近期动态与观点
1. 离开谷歌与AI安全担忧
2023年5月,辛顿宣布辞去谷歌的职务,这一决定在科技界引起了轩然大波。他向《纽约时报》表示离职的原因是为了能够"自由地谈论人工智能的风险",而不受谷歌商业利益的约束。在接受MIT技术评论采访时,他说道:“只要我还受雇于谷歌,我就无法做到这一点。”
辛顿的离职标志着他对AI态度的重大转变。他向媒体解释:"我突然改变了我对这些技术是否会比我们更聪明的看法。"导致这一转变的关键因素是ChatGPT等大型语言模型(尤其是GPT-4)的快速发展,这让他意识到机器的智能发展速度远超他的预期。
2. 对人工智能风险的具体担忧
辛顿的担忧主要集中在以下几个方面:
-
技术性失业:他担心AI可能导致大量人失业,而且新技术可能不会创造足够的替代工作岗位。他甚至建议英国政府考虑实施全民基本收入来应对这一问题。
-
错误信息传播:AI可能被用来生成和传播虚假信息,对社会秩序稳定造成威胁。
-
存在性风险:最严重的是,辛顿表示:"我认为人类只是智能进化过程中的一个过渡阶段,这是完全可以想象的。"他担心AI最终可能会超越人类智能并取代人类。
3. AI监管与安全建议
面对这些风险,辛顿认为需要全球合作来制定AI监管框架。他建议建立类似于1997年《化学武器公约》的全球协议,为AI武器化设立国际规则。他强调,现在是进行实验了解AI并通过法律确保技术道德使用的关键时刻。
辛顿还特别关注"对齐问题"(alignment problem)——如何确保AI执行人类期望它做的事情。他认为这是一个特别困难的问题,因为在人类存在恶意行为者的世界中,要确保AI始终有益于人类极其困难。
4. AI的积极前景
尽管有这些担忧,辛顿并不后悔自己的工作,也看到了AI的巨大潜力:
-
医疗健康:辛顿指出:“AI在医疗领域几乎完全是有益的。它已经能够与放射科医生相媲美地理解医学图像,也将在药物设计方面表现出色。”
-
科学研究:他认为AI可以加速科学发现和创新,解决人类面临的复杂挑战。
-
生产效率:他表示:"提高效率应该让每个人都更幸福。"这表明他相信AI有潜力为社会整体创造更多价值。
5. 对未来的思考
辛顿对AI未来的展望既包含希望也充满警惕。他在接受采访时表示:“我们可能会回顾并将这一时刻视为一个转折点,人类必须决定是否进一步发展这些技术,以及如果发展了,如何保护自己。”
他承认在AI发展道路上存在极大的不确定性:“我们正在进入一个巨大不确定性的时期,我们正在处理以前从未处理过的事物。通常,当你第一次处理全新的事物时,你会犯错。而我们不能在这些事情上犯错。”
辛顿的最新观点反映了他作为科学家的诚实和责任感——即使这意味着他必须对自己毕生的工作表达担忧。他的转变提醒我们,科技发展需要同步思考其道德和社会影响。
七、人物特点与名言
1. 挑战权威的学术勇气
辛顿的一生充满了挑战权威的学术勇气。在神经网络研究被学术界广泛质疑的时期,他坚持自己的研究方向。他的父亲是一位相信大陆漂移理论的昆虫学家,而这一理论在20世纪50年代初被视为荒谬。辛顿似乎从父亲那里继承了这种敢于坚持非主流观点的勇气。
辛顿曾谈到自己的研究生涯:"我有一个风暴般的研究生经历,每周我们都会有一场大喊大叫的争论。我不断做交易,说’好的,让我再研究神经网络六个月,我会向你证明它们有效’。六个月结束时,我会说,'是的,但我差不多要成功了。再给我六个月。'"这种坚持不懈的精神最终使他取得了突破性的成就。
2. 知识广度与跨学科思维
辛顿不仅在计算机科学和认知心理学方面有深厚造诣,还从物理学、神经科学等多个学科汲取灵感。他将统计物理学的工具应用到玻尔兹曼机的开发中,将神经科学关于人脑的知识应用到神经网络设计中。这种跨学科的思维方式是他能够做出原创性贡献的关键因素之一。
3. 从学术到产业的实践精神
辛顿不仅是一位卓越的理论研究者,还积极将研究成果转化为现实应用。从成立DNNresearch公司到加入谷歌再到共同创立向量研究所,他始终致力于推动深度学习技术的产业化应用。这种理论与实践相结合的精神,使他的研究成果能够产生更广泛的社会影响。
4. 对AI的责任感
随着AI的快速发展,辛顿展现出了强烈的社会责任感。尽管他是深度学习的先驱,但他仍然勇于发声提醒人们AI可能带来的风险,甚至为此离开了谷歌。这种责任感体现了他作为科学家的良知和对人类福祉的关注。
5. 辛顿的经典名言
辛顿的一些经典名言不仅反映了他对人工智能和神经网络的深刻理解,也展现了他独特的思考方式和人生哲学:
- “从长远来看,由好奇心驱动的研究效果更好…真正的突破来自于人们专注于他们感兴趣的事物。”
- “我一直深信,让人工智能工作的唯一方法是以类似人脑的方式进行计算。这是我一直追求的目标。”
- “计算机会在美国人理解讽刺之前理解讽刺。”
- “在人工智能领域,圣杯是如何生成内部表示。”
- “放射科医生的角色将从做感知性工作(可能由一只训练有素的鸽子完成)转变为做更多认知性的工作。”
- “每个人都看着当前的技术,认为’好的,这就是人工神经网络’。他们没有意识到它是多么任意。我们只是把它编出来的!没有理由我们不应该再编出别的东西。”
- “我主要兴趣是尝试找到完全不同种类的神经网络。”
这些名言展示了辛顿作为科学家的创新精神、对人工智能发展的深刻洞察以及他对未来技术的开放态度。
八、结语
杰弗里·辛顿的学术贡献改变了人工智能的发展轨迹,使深度学习从理论走向实践,并推动了众多技术革新。作为"深度学习之父",他不仅仅是一位杰出的科学家,更是一位有远见的思想家,他既看到了人工智能的巨大潜力,也警惕其可能带来的风险。
辛顿的一生诠释了科学家的坚持与勇气、创新与责任。他在逆境中坚持自己的研究方向,最终证明了神经网络方法的价值;他不断创新,开发出一系列突破性的算法和模型;他敢于面对技术可能带来的风险,即使这意味着要对自己毕生的工作表达担忧。
他的学术精神提醒我们,科学进步不仅需要创新和突破,还需要负责任的态度和对潜在风险的警觉。在辛顿的引领下,人工智能领域正迎来蓬勃发展的新时代,而他的学术精神和科研成果将继续激励后来者在这一领域不断探索和创新。
正如辛顿所说:"我们正在进入一个巨大不确定性的时期,我们正在处理以前从未处理过的事物。"面对这一未知的未来,辛顿的工作和思想将继续指引着我们,帮助人类在探索AI这一强大工具的同时,确保它造福于人类社会。
专栏✅:《计算机名人堂》,欢迎订阅催更,谢谢大家支持!
创作者:Code_流苏(CSDN)
相关文章:
杰弗里·辛顿:深度学习教父
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 杰弗里辛顿:当坚持遇见突破,AI迎来新纪元 一、人物简介 杰弗…...
RHCE 第一次作业
一.定义延迟任务 1.安装邮件服务 [roothaiou ~]# yum install s-nail -y 2.配置邮件服务 [roothaiou ~]# vim /etc/mail.rc 3.测试邮件服务 [roothaiou ~]# echo 88888888 | mail -v -s Passion 13571532874163.com 4.设置定时任务 [roothaiou ~]# crontab -e 二.时间同步…...
库洛游戏一面+二面
目录 一面 1. ArrayList和LinkedList的区别,就是我在插入和删除的时候他们在时间复杂度上有什么区别 2. hashmap在java的底层是怎么实现的 3. 红黑树的实现原理 4. 红黑树的特点 5. 为什么红黑树比链表查询速度快 6. 在java中字符串的操作方式有几种 7. Stri…...
基于多模态深度学习的亚急性脊髓联合变性全流程预测与个性化管理技术方案
目录 技术方案文档1. 数据收集与预处理模块2. 多模态预测模型构建3. 术前风险评估系统4. 术中实时监测系统5. 术后并发症预测与护理6. 统计分析与验证模块7. 健康教育系统技术实现说明技术方案文档 1. 数据收集与预处理模块 功能:构建数据管道,清洗并整合多源数据 伪代码示…...
蓝桥杯日期的题型
做题思路 一般分为3个步骤,首先要定义一个结构体来存储月份的天数,第一循环日期,第二判断日期是否为闰年,第三就是题目求什么 结构体 static int[] ds{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 判断是否闰年的函数 public static void f(int m,int d){//被4整…...
【树形dp题解】dfs的巧妙应用
【树形dp题解】dfs的巧妙应用 [P2986 USACO10MAR] Great Cow Gathering G - 洛谷 题目大意: Bessie 正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会。当然,她会选择最方便的地点来举办这次集会。 每个奶牛居住在 N N …...
《AI大模型应知应会100篇》第20篇:大模型伦理准则与监管趋势
第20篇:大模型伦理准则与监管趋势 摘要 随着人工智能(AI)技术的飞速发展,尤其是大模型(如GPT、PaLM等)在自然语言处理、图像生成等领域的广泛应用,AI伦理问题和监管挑战日益凸显。本文将梳理当…...
线上教学平台(vue+springboot+ssm+mysql)含文档+PPT
线上教学平台(vuespringbootssmmysql)含文档PPT 该系统是一个在线教学平台,主要分为管理员和学员两个角色;管理员界面包含首页、交流中心、学员管理、资料类型管理、学习资料管理、交流论坛、我的收藏管理、留言板管理、考试管理…...
Being-0:具有视觉-语言模型和模块化技能的人形机器人智体
25年3月来自北大、北京智源和 BeingBeyond 的论文“Being-0: A Humanoid Robotic Agent with Vision-Language Models and Modular Skills”。 构建能够在现实世界具身任务中达到人类水平表现的自主机器人智体,是人形机器人研究的终极目标。近期,基于基…...
Fiddler 进行断点测试:调试网络请求
目录 一、什么是断点测试? 二、Fiddler 的断点功能 三、如何在 Fiddler 中设置断点? 步骤 1:启动 Fiddler 步骤 2:启用断点 步骤 3:捕获请求 步骤 4:修改请求或响应 四、案例:模拟登录失…...
决策树:ID3,C4.5,CART树总结
树模型总结 决策树部分重点关注分叉的指标,多叉还是单叉,处理离散还是连续值,剪枝方法,以及回归还是分类 一、决策树 ID3(Iterative Dichotomiser 3) 、C4.5、CART决策树 ID3:确定分类规则判别指标、寻找能够最快速降低信息熵的方…...
DDS信号发生器设计
一、基本概述 1.1 DDS简介 DDS信号发生器即直接数字频率合成(Direct Digital Frequency Synthesis,简称DDS)是一种利用数字技术生成信号的方法。它通过数字信号处理技术,将数字信号转换为模拟信号,从而生成高质量的正…...
23黑马产品经理Day01
今天过了一遍23黑马产品经理的基础视频 问题思考维度 抓住核心用户 为什么需要抓住核心用户? 主要原因:用户越来越细分,保持市场竞争力,产品开发推广更聚焦 做产品为什么要了解用户:了解用户的付费点,…...
18-21源码剖析——Mybatis整体架构设计、核心组件调用关系、源码环境搭建
学习视频资料来源:https://www.bilibili.com/video/BV1R14y1W7yS 文章目录 1. 架构设计2. 核心组件及调用关系3. 源码环境搭建3.1 测试类3.2 实体类3.3 核心配置文件3.4 映射配置文件3.5 遇到的问题 1. 架构设计 Mybatis整体架构分为4层: 接口层&#…...
东方潮流亮相广州益民艺术馆|朋克编码“艺术家潮玩”系列开幕引爆热潮
4月15日,由我的宇宙旗下公司朋克编码携“艺术家潮玩”系列亮相广州白云益民艺术馆,标志着其全国文化推广计划正式启航。本次展览围绕“潮玩艺术东方文化”展开,融合传统文化与当代潮流,以年轻化方式赋能中国文化出海。 展览现场潮…...
充电宝项目:规则引擎Drools学习
文章目录 规则引擎 Drools1 问题2 规则引擎概述2.1 规则引擎2.2 使用规则引擎的优势2.3 规则引擎应用场景2.4 Drools介绍 3 Drools入门案例3.1 创建springboot项目 引入依赖3.2 添加Drools配置类3.4 创建实体类Order3.5 orderScore.drl3.6 编写测试类 4 Drools基础语法4.1 规则…...
C++零基础实践教程 文件输入输出
模块八:文件输入输出 (数据持久化) 在之前的模块中,我们学习了如何使用程序处理数据。然而,当程序结束运行时,这些数据通常会丢失。数据持久化 (Data Persistence) 指的是将程序中的数据存储到非易失性存储介质(如硬盘…...
SpringAI+DeepSeek大模型应用开发——1 AI概述
AI领域常用词汇 LLM(LargeLanguage Model,大语言模型) 能理解和生成自然语言的巨型AI模型,通过海量文本训练。例子:GPT-4、Claude、DeepSeek、文心一言、通义干问。 G(Generative)生成式: 根据上…...
数据中台进化史:从概念萌芽到价值变现的蜕变之路
在数字化转型的浪潮中,数据中台已成为企业驾驭数据、驱动业务创新的关键力量。回顾数据中台的发展历程,犹如一场从混沌到有序、从萌芽到成熟的精彩蜕变,它由湖仓一体、数据治理平台、数据服务平台三大核心要素逐步构建而成,每一个…...
【Java学习笔记】运算符
运算符 运算符的类型 算数运算符 赋值运算符 关系运算符(比较哦啊运算符) 逻辑运算符 三元运算符 位运算符(需要二进制基础) 一、算数运算符 运算符计算范例结果正号77-负号b11; -b-11加法9918-减法10-82*乘法7*856/除法9…...
【python】OpenCV—Tracking(10.6)—People Counting
文章目录 1、功能描述2、代码实现3、效果展示4、完整代码5、涉及到的库函数6、参考来自 更多有趣的代码示例,可参考【Programming】 1、功能描述 借助 opencv-python,用 SSD 人形检测模型和质心跟踪方法实现对人群的计数 基于质心的跟踪可以参考 【pyt…...
JavaSE学习(前端初体验)
文章目录 前言一、准备环境二、创建站点(创建一个文件夹)三、将站点部署到编写器中四、VScode实用小设置五、案例展示 前言 首先了解前端三件套:HTML、CSS、JS HTML:超文本标记语言、框架层、描述数据的; CSS…...
智慧城市像一张无形大网,如何紧密连接你我他?
智慧城市作为复杂巨系统,其核心在于通过技术创新构建无缝连接的网络,使物理空间与数字空间深度融合。这张"无形大网"由物联网感知层、城市数据中台、人工智能中枢、数字服务入口和安全信任机制五大支柱编织而成,正在重塑城市运行规…...
Linux常用命令
一、history 用于显示历史命令。 history 10显示最近10条历史命令。!200使用第200行的指令。history -c清空历史记录。 二、pwd 用于显示当前绝对路径。 pwd显示当前绝对路径。 三、ls 用于以行的形式显示当前文件夹下所有内容。 ls -a显示所有内容,包括隐藏文…...
【AI】SpringAI 第二弹:接入 DeepSeek 官方服务
一、接入 DeepSeek 官方服务 通过一个简单的案例演示接入 DeepSeek 实现简单的问答功能 1.添加依赖 <dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-openai</artifactId> </dependency> 2…...
QT的信号槽的直接触发,队列触发,自动触发
在Qt中,信号槽机制是一个非常强大的特性,它用于实现对象之间的通信。除了默认的直接触发方式之外,Qt还提供了队列触发等不同的触发方式。 1. 直接触发(Direct Connection) 直接触发是最常见的连接方式,信…...
typescript html input无法输入解决办法
input里加上这个: onkeydown:(e: KeyboardEvent) > {e.stopPropagation();...
工厂能耗系统智能化解决方案 —— 安科瑞企业能源管控平台
安科瑞顾强 政策背景与“双碳”战略驱动 2025年《政府工作报告》明确提出“单位国内生产总值能耗降低3%左右”的目标,要求通过产业结构升级(如高耗能行业技术革新或转型)、能源结构优化(提高非化石能源占比)及数字化…...
栅格数据处理
一、栅格数据的引入与基本操作 (一)加载栅格数据 在 ArcPy 中,栅格数据可以通过 arcpy.Raster 类来加载。例如,如果你有一个存储在本地路径下的栅格数据文件(如 GeoTIFF 格式),可以这样加载&a…...
C语言文件操作
本文重点: 什么是文件 文件名 文件类型 文件缓冲区 文件指针 文件的打开和关闭 文件的顺序读写 文件的随机读写 文件结束的判定 什么是文件 磁盘上的文件是文件。 但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件 程序文件 包括源程序文…...
毛笔书体检测-hog+svm python opencv源码
链接:https://pan.baidu.com/s/1l-bw8zR9psv1HycmMqQBqQ?pwd2ibp 提取码:2ibp --来自百度网盘超级会员V2的分享 1、毛笔字检测运行流程 如果解压文件发现乱码,可以下载Bandizip 解压文件 数据集在百度网盘里面 将文件名字改成images c…...
基于YOLOV11的道路坑洼分析系统
基于YOLOV11的道路坑洼分析系统 【包含内容】 【一】项目提供完整源代码及详细注释 【二】系统设计思路与实现说明 【三】图形化界面与实时检测统计可视化功能 【技术栈】 ①:系统环境:Windows/MacOS/Linux多平台支持,推荐NVIDIA GPU加速 ②…...
【系统搭建】DPDK安装配置与helloworld运行
一,安装相关依赖 1. 安装依赖 sudo apt update && sudo apt install -y \build-essential libnuma-dev meson ninja-build pciutils#安装Python3与PIP3 sudo apt install python3-pip2. 升级 pip 和 setuptools sudo apt install python3-pip python3-de…...
Distortion, Animation Raymarching
这节课的主要目的是对uv进行操作,实现一些动画的效果,实际就是采样的动画 struct texDistort {float2 texScale(float2 uv, float2 scale){float2 texScale (uv - 0.5) * scale 0.5;return texScale;}float2 texRotate(float2 uv, float angle){float…...
架构风格(高软59)
系列文章目录 架构风格 文章目录 系列文章目录前言一、架构风格定义?二、架构风格分类总结 前言 本节讲明架构风格知识点。 一、架构风格定义? 二、架构风格分类 总结 就是高软笔记,大佬请略过!...
免费使用RooCode + Boomerang AI + Gemini 2.5 Pro开发套件
若您正在寻找利用免费AI工具简化应用开发的方法,这份指南将为您揭开惊喜。 我们将详解如何免费整合RooCode、Boomerang AI智能代理与Google Gemini 2.5 Pro API,在Visual Studio Code中实现自动化编程加速。 这套方案能让您在几分钟内从创意跃迁至可运行原型。 套件构成与…...
《MAmmoTH2: Scaling Instructions from the Web》全文翻译
《MAmmoTH2: Scaling Instructions from the Web》 MAmmoTH2:从网络规模化采集指令数据 摘要 指令调优提升了大语言模型(LLM)的推理能力,其中数据质量和规模化是关键因素。大多数指令调优数据来源于人工众包或GPT-4蒸馏。我们提…...
解决Ubuntu终端命令不能补全的问题
使用命令: sudo vi /etc/bash.bashr 把框出的部分取消注释,取消后截图如下,保存退出: 使用命令env -i bash --noprofile --norc, 进行测试,查看tab自动补全是否可以使用。 tab键可正常使用, env -i bash …...
知识图谱与其它知识库的关系
知识图谱与其它知识库的关系 知识图谱与传统知识库:解构数据连接的哲学知识图谱的商业价值:连接带来的革命选择知识图谱还是传统数据库?一个实用指南 知识图谱的出现,正在改变了我们组织和理解信息的方式。 这种技术不仅仅是一种数…...
STM32基础教程——DMA+ADC多通道
目录 前言 编辑 技术实现 连线图 代码实现 技术要点 实验结果 问题记录 前言 DMA(Direct Memory Access)直接存储器存取,用来提供在外设和存储器 之间或者存储器和存储器之间的高速数据传输。无需CPU干预,数据可以通过DMA快速地移动࿰…...
波束形成(BF)从算法仿真到工程源码实现-第十一节-非线性波束形成算法工程化
一、概述 本节我们对非线性波束形成算法进行工程化,运行在respeaker core v2平台上,算法实时率在0.046左右。更多资料和代码可以进入https://t.zsxq.com/qgmoN ,同时欢迎大家提出宝贵的建议,以共同探讨学习。 二、算法实现 2.1 …...
Windows安装Rust版本GDAL
前言 笔者想安装GDAL,这是一个开源的地理数据库, 笔者到处搜索,最后看到这位大佬写的这篇文章,终于成功了。 aliothor/Windows-Install-Rust-Gdal-Tutorial: Windows Install Rust Version Gdal Stepshttps://github.com/aliot…...
OpenCv高阶(六)——图像的透视变换
目录 一、透视变换的定义与作用 二、透视变换的过程 三、OpenCV 中的透视变换函数 1. cv2.getPerspectiveTransform(src, dst) 2. cv2.warpPerspective(src, H, dsize, dstNone, flagscv2.INTER_LINEAR, borderModecv2.BORDER_CONSTANT, borderValue0) 四、文档扫描校正&a…...
常用正则化技术dropout
在深度学习中,Dropout 是一种常用的正则化技术,用于防止神经网络过拟合。它的核心思想是随机丢弃(临时关闭)网络中的部分神经元,迫使模型不依赖单一神经元,从而提升泛化能力。 1. Dropout…...
66.加1
目录 一、问题描述 二、解题思路 三、代码 四、复杂度分析 一、问题描述 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外&#…...
Tecnomatix Plant Simulation 2302安装教程
Tecnomatix Plant Simulation 2302安装教程,这个比较简单,只有4步即可完成。 第1步:获取并下载安装包 Follow WX account and reply: 2302, get the installation package link. 下载安装包至电脑本地,打开安装包文件如下图所示…...
Flutter 与原生通信
Flutter 与原生之间的通信主要基于通道机制,包括 MethodChannel、EventChannel 和 BasicMessageChannel。 MethodChannel:用于 Flutter 与原生之间的方法调用,实现双向通信,适合一次性的方法调用并获取返回值,如 Flut…...
关于postman的使用(一)
postman创建被测系统结构 改为被测系统名称 添加一级功能 添加接口测试 请求发起前脚本和请求发起后脚本 请求前运行脚本(需要一个随机的岗位名称): 上述脚本功能是自动生成一个岗位名称并且配置它为postman的变量下面是调用 请求后运行脚本…...
【c语言】深入理解指针1
深入理解指针1 一、数组名的理解二、使用指针访问数组三、一维数组传参本质四、二级指针 一、数组名的理解 数组名就是数组首元素的地址,类型是指针类型,但是存在两个例外: sizeof(arr) : 整个数组在内存中的大小 &arr : 整个数组的地址…...
leetcode14.最长公共前缀
暴力逐个比对最长前缀 class Solution {public String longestCommonPrefix(String[] strs) {String prefix strs[0];for (int i 1; i < strs.length; i) {prefix longestCommonPrefix(prefix, strs[i]);}return prefix;}private String longestCommonPrefix(String st…...