深度学习架构的设计模式:介绍

简介: 深度学习架构的设计模式:介绍

深度学习架构可以被描述为建立机器学习系统的新方法或风格。深度学习更有可能导致更先进的人工智能形式。这方面的证据是自十年来以来发生的巨大突破。在新的乐观的氛围中,我们现在又在一个新的AI春天。不幸的是,目前的深度学习状态似乎有太多的类似于炼金术的方式。每个人似乎都有自己的黑魔法设计架构的方法。因此,该领域需要向前迈进,争取化学,或者甚至可以进行深度学习的周期表。虽然深入学习仍处于发展初期阶段,但本书力求在深入学习中形成一些统一的思想。它利用称为模式语言的描述方法。

模式语言是从称为模式的实体衍生而来的语言,当组合形式解决复杂问题时。每个模式描述一个问题并提供替代解决方案。模式语言是表达从经验中得出的复杂解决方案的一种方法。改进语言表达的好处是,其他从业人员能够更好地了解复杂主题以及更好地表达解决问题的方法。

大多数计算机科学领域的文学,使用短语“设计模式”而不是“模式语言”。我们故意使用“模式语言”来反映深度学习领域是一个新兴而又快速发展的领域,并不像计算机科学中的其他主题那样成熟。我们描述的模式实际上不是模式,而是可能是根本的。我们决不会确定哪个是真正的根本,只有进一步的探索和澄清才能在这个领域达成共识。也许在将来,一个真正的设计模式书会出现,反映了这个领域的成熟度。

模式语言最初由克里斯托弗·亚历山大(Christopher Alexander)推出,用于描述企业和城镇的建筑。这些想法后来被面向对象编程(OOP)从业者采用来描述OOP程序的设计。 GoF的开创性书“设计模式”证明了这种方法的有效性。模式语言进一步扩展到其他领域,如用户界面,交互设计,企业集成,SOA和可扩展性设计。

在机器学习领域(ML)中,出现了一种称为“深度学习”的新兴实践。在ML中,有许多新的术语,如人造神经网络(ANN),随机森林,支持向量机(SVM)和非负矩阵因式分解(NMF)。然而这些通常指的是特定类型的机器学习算法。相比之下,深度学习(DL)并不是一种算法,而是一类倾向于表现出类似特征的算法。 DL系统是由多层(有时称为多级感知器)构成的ANN。这个想法并不是全新的,因为它是在20世纪60年代首次提出的。然而,在推进计算技术(即GPU)和更大的培训数据源的帮助下,对该领域的兴趣已经爆发。自2011年以来,DL系统在机器学习领域取得了令人印象深刻的成果。

当DL意识到实际上有很多算法,而不仅仅是一种类型时,与DL的混淆就会出现。我们发现传统的前馈网络也被称为全连接网络(FCN),卷积网络(ConvNet),循环神经网络(RNN)和较少使用的限制玻尔兹曼机器(RBM)。它们都具有共同的特征,因为这些网络是使用层次结构构建的。例如,一个常见的模式是使用可分层,对DL系统的构建的这种约束导致将机器演变成学习分类的一种增量方式。最近有许多模式被发现,对于从业者来说,这些模式的汇编将是富有成效的。

模式语言是描述和理解深度学习的理想工具。人们想相信深度学习有基于先进数学的坚实基础。大多数学术研究论文将会引发高阶数学,如路径积分,张量,希尔伯特空间,测量理论等,但不要让数学分散自己的实际,使我们的集体认识仍然很小。你看到的数学有其固有的局限性。物理科学家已经知道了这个世纪。我们以这样的方式制定理论,使得表达在数学上是方便的。数学上的便利意味着我们使用的数学表达式可以方便地被操纵到其他表达式中。例如,高斯分布是普遍存在的,不是因为它的一些神奇的结构,现实已经给了我们。它是普遍存在的,因为它在数学上是方便的。

模式语言已被许多模糊领域所利用。原始模式语言围绕着建筑(即建筑物和城镇)的讨论。有模式语言专注于用户界面,可用性,交互设计和软件过程。这些都没有简明的数学基础,但我们从这些模式语言中提取真正的价值。事实上,模式语言的规范与数学中新的代数或类别理论的创造并不是太远。代数是严格一致的,但它们纯粹是抽象的,可能不需要与现实有任何联系。然而,模式语言与现实有关,它们的一致性规则比代数更加轻松。在我们试图理解机器学习的复杂世界(或一般学习)中,我们不能总是将青蛙跳入数学。现实可能是这样的,我们目前的数学是无法描述正在发生的事情。

许多机器学习从业者在首次呈现“模式”这个想法时会遇到的另一个混乱是,他们错误地将其与在自己的领域中通常使用“模式”一词相关联。机器学习涉及开发执行模式识别的算法。所以当你用模式深入学习google的时候,你会发现涵盖模式识别主题的文学。这本书不是常规机器学习意义上的模式识别。

介绍

涵盖这本书的动机。为什么深入学习?涵盖这本书的结构。这本书的中心主题是,通过了解我们在深度学习实践中发现的许多模式及其相互关系,我们开始理解我们如何最好地撰写解决方案。

模式语言

模式语言是从称为模式的实体衍生而来的语言,当组合形式解决复杂问题时。每个模式描述一个问题并提供解决方案。模式语言是表达从经验中衍生出的复杂解决方案的一种方式,使得其他人可以更好地了解解决方案。本章将介绍“模式语言”的概念以及本书“模式”的结构。

理论

本章涵盖了对理解框架至关重要的一些基础数学。它提供了一些常用的术语和符号,将在整本书中使用。这本书不包括线性代数或概率的数学介绍材料。这已经在“深度学习”书中得到很好的涵盖。然而,本书将提出一个数学框架,作为如何推理神经网络的指导框架。这个框架是从类别理论,动力系统,信息理论,信息几何和博弈理论的构想。

方法

从其他软件开发方法(如敏捷开发和精简方法)获得灵感,并将其应用于深度学习领域。深度学习是一种新型的架构,其创建的学习机器类似于软件开发。然而,DL是不同的,因为系统能够发展自己。有足够的复杂性成为覆盖其上的一种结构所必需的,以帮助指导实践者的实践者。

规范模式

本章是阅读其他模式章节的推荐先决条件。在这里,我们讨论出现基本的模式,并了解其他DL模式的基础。

模型模式

本章涵盖实践中发现的各种模型。

复合模型模式

本章介绍了模型及其行为的集合。

内存模式

以前的模型章节探讨了普遍功能的培训。在本章中,我们将探讨如何集成内存以构建更强大的解决方案。

特征模式

本章将介绍用于表示输入和隐藏数据的各种方法。

学习模式

这一章在实践中发现了迭代学习方法。

集体学习模式

本章介绍了多种神经网络组合方法,以解决超出分类的问题。

解释模式

本章介绍网络可以向用户提供结果和反馈的不同方式。

服务模式

本章介绍了在现场部署神经网络时发现的操作模式。

应用

深度学习数据集

常问问题

停车场

TensorFlow实践

教程

黑魔法

块链

自行车自动化设计模式

观众和覆盖面

这种模式语言的观众是先前接触人工神经网络(ANN)的读者。对ANN的介绍或大学水平数学的介绍没有涵盖。为了一个很好的介绍,请阅读Ian Goodfellow,Yoshua Bengio和Aaron Courville的综合文字“深度学习”。这本图书书的覆盖范围比“深度学习”更为狭窄。本书着重于实践中运作良好的技术。因此,作为一个例子,尽管从历史的角度来看,我们并不重视限制玻尔兹曼机器。我们也忽略了本书涵盖的几个主题,如结构概率模型和蒙特卡罗方法,尽管它们在其他机器学习方法中的重要性。古典统计是一个重要的观点,但是在这本书中,我们认为这些古典概念在高度维度的领域中不能很好地转化。我们希望这个文本足够集中和紧凑,读者将会对如何应用这种新兴技术有一个坚实的看法。

我们也将严格避免对生物学可信性的讨论。这个话题超出了本书的范围,我们也认为,考虑到从原来的感知器提案以来已经过去了60年,这种讨论是不屑一顾的。半个世纪前提出的模式,最多只能说明一个实际的生物神经元如何运作的卡通形象。在许多神经网络文学中,我们发现这是一种荒谬的浪费纸,这种文学在基于生物灵感的手波波动下进行了一次尝试。

呈现人造神经网络(ANN)或深度学习(DL)的典型方法是采取历史观点,从1957年感知器建议开始。通过研究历史和思想如何随着时间的推移而有所了解。 ANN和DL研究的历史确实很有趣,并且解释了为什么DL成为过去几年的热门话题,但是从研究历史中获得的洞察力只能最小程度地提高对这一复杂主题的理解。

我们采用非常简单的逻辑方法对DL做出了很少的假设。我们做出的主要假设是,我们有一个学习机是一个动态系统,目的是找出最适合的模型,给出它所观察到的数据。所以我们只关心我们如何定义这个目标,我们将它定义为系统的熵。一个学习系统可以最大程度地减少它所观察到的内在模型与其内部模型之间的相对熵。我们从几个世纪的物理学知道的是,我们可以通过其测量的能量描述一个动力学系统,并且我们有关于控制系统演变的这种能量定义的方程式。以类似的方式,我们采取相对熵并定义内部机器模型的进化(也称为学习)方程。如果方程是不受约束的,则模型可以演化成许多不同的方式。因此,我们扔了一大堆约束,使机器不仅可以在合理的时间内学习,而且可以在内部模型中学习抽象。这些抽象是实现泛化所必需的,并允许机器准确地对先前从未遇到过的观察结果进行预测。

本书不涵盖性能优化的主题。还有其他的文本可以探索更快的算法以及分布式算法。理想情况下,可以使用已经支持优化GPU算法的最新框架以及并行计算的不同选项。例如TensorFlow已经支持Nvdia的最新的CuDNN库。此外,TensorFlow支持跨多个计算节点的分布式计算。有替代框架支持的分布式计算的替代实现,但这超出了本书的范围。

注意:这是一个进步的工作。像https://www.facebook.com/deeplearningpatterns一样接收更新。或者,按照媒体:https://medium.com/intuitionmachine

相关文章
|
27天前
|
设计模式 API 持续交付
深入理解微服务架构:设计模式与实践
【10月更文挑战第19天】介绍了微服务架构的核心概念、设计模式及最佳实践。文章详细探讨了微服务的独立性、轻量级通信和业务能力,并介绍了聚合器、链式和发布/订阅等设计模式。同时,文章还分享了实施微服务的最佳实践,如定义清晰的服务边界、使用API网关和服务发现机制,以及面临的挑战和职业心得。
|
1月前
|
设计模式 测试技术 持续交付
架构视角下的NHibernate:设计模式与企业级应用考量
【10月更文挑战第13天】随着软件开发向更复杂、更大规模的应用转变,数据访问层的设计变得尤为重要。NHibernate作为一个成熟的对象关系映射(ORM)框架,为企业级.NET应用程序提供了强大的支持。本文旨在为有一定经验的开发者提供一个全面的指南,介绍如何在架构层面有效地使用NHibernate,并结合领域驱动设计(DDD)原则来构建既强大又易于维护的数据层。
38 2
|
12天前
|
机器学习/深度学习 自然语言处理 计算机视觉
探索深度学习中的Transformer架构
探索深度学习中的Transformer架构
30 0
|
2月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
420 37
|
1月前
|
机器学习/深度学习 存储 人工智能
用60%成本干80%的事,DeepSeek分享沉淀多年的高性能深度学习架构
【10月更文挑战第2天】近年来,深度学习(DL)与大型语言模型(LLMs)的发展推动了AI的进步,但也带来了计算资源的极大需求。为此,DeepSeek团队提出了Fire-Flyer AI-HPC架构,通过创新的软硬件协同设计,利用10,000个PCIe A100 GPU,实现了高性能且低成本的深度学习训练。相比NVIDIA的DGX-A100,其成本减半,能耗降低40%,并在网络设计、通信优化、并行计算和文件系统等方面进行了全面优化,确保系统的高效与稳定。[论文地址](https://arxiv.org/pdf/2408.14158)
53 4
|
2月前
|
机器学习/深度学习 存储 人工智能
基于深度学习的认知架构的AI
基于深度学习的认知架构的AI是一类模仿人类认知过程的人工智能系统,旨在模拟人类感知、学习、推理、决策等复杂的认知功能。认知架构的目的是创建一个能够理解和处理复杂环境、实现自我学习和适应的AI系统
63 3
|
3月前
|
设计模式 存储 前端开发
MVC革命:如何用一个设计模式重塑你的应用架构,让代码重构变得戏剧性地简单!
【8月更文挑战第22天】自定义MVC(Model-View-Controller)设计模式将应用分为模型、视图和控制器三个核心组件,实现关注点分离,提升代码可维护性和扩展性。模型管理数据和业务逻辑,视图负责数据显示与用户交互,控制器处理用户输入并协调模型与视图。通过示例代码展示了基本的MVC框架实现,可根据需求扩展定制。MVC模式灵活性强,支持单元测试与多人协作,但需注意避免控制器过度复杂化。
42 1
|
3月前
|
机器学习/深度学习 自然语言处理 数据处理
|
3月前
|
机器学习/深度学习 并行计算 算法
深度学习驱动的声音生成:FunAudioLLM的创新架构
【8月更文第28天】随着深度学习技术的发展,声音合成的质量得到了显著提升。本文将介绍 FunAudioLLM —— 一种基于深度学习的声音生成框架,旨在创造高质量、自然流畅的声音内容。我们将探讨 FunAudioLLM 的核心技术、训练流程及其实现细节,并提供一些示例代码。
71 0
|
4月前
|
机器学习/深度学习 SQL 自然语言处理
现代深度学习框架构建问题之深度学习通用架构的定义如何解决
现代深度学习框架构建问题之深度学习通用架构的定义如何解决
50 3

热门文章

最新文章

  • 1
    C++一分钟之-设计模式:工厂模式与抽象工厂
    43
  • 2
    《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
    50
  • 3
    C++一分钟之-C++中的设计模式:单例模式
    58
  • 4
    《手把手教你》系列基础篇(九十三)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-上篇(详解教程)
    38
  • 5
    《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
    63
  • 6
    Java面试题:结合设计模式与并发工具包实现高效缓存;多线程与内存管理优化实践;并发框架与设计模式在复杂系统中的应用
    58
  • 7
    Java面试题:设计模式在并发编程中的创新应用,Java内存管理与多线程工具类的综合应用,Java并发工具包与并发框架的创新应用
    42
  • 8
    Java面试题:如何使用设计模式优化多线程环境下的资源管理?Java内存模型与并发工具类的协同工作,描述ForkJoinPool的工作机制,并解释其在并行计算中的优势。如何根据任务特性调整线程池参数
    50
  • 9
    Java面试题:请列举三种常用的设计模式,并分别给出在Java中的应用场景?请分析Java内存管理中的主要问题,并提出相应的优化策略?请简述Java多线程编程中的常见问题,并给出解决方案
    110
  • 10
    Java面试题:设计模式如单例模式、工厂模式、观察者模式等在多线程环境下线程安全问题,Java内存模型定义了线程如何与内存交互,包括原子性、可见性、有序性,并发框架提供了更高层次的并发任务处理能力
    78
  • 下一篇
    无影云桌面