0%

1_1_理论基础

简介

  • 深度学习 模型 相关理论基础

关于深度学习和模型的一些只言片语

  • 模型就像数学公式,推理就是去套公式
  • 数学公式需要数学家花很长时间才能推导出来,但是公式出来之后,小学生都能够套用公式快速算出结论
  • 所以模型需要性能极强的设备花很多时间才能训练好,但是很便宜的设备就能使用成熟的模型,快速得到想要的结果。

Coco(Common Objects in Context)

COCO(Common Objects in Context)是一个广泛使用的计算机视觉数据集,旨在推动物体检测、图像分割和图像理解等任务的研究和发展。COCO数据集由微软公司创建,是一个包含图像和标注的大规模数据集。

COCO数据集包含超过330,000张图像,涵盖80个常见的物体类别,例如人、动物、交通工具、家具等。每个图像都标注了物体的边界框、物体类别和可选的语义分割掩码。此外,COCO数据集还包含了图像关系和场景分类等附加任务的标注信息。

COCO数据集的目标是提供一个具有挑战性的视觉理解任务,以促进计算机视觉算法的发展。它广泛应用于物体检测、图像分割、姿态估计、图像生成和场景理解等领域的研究和评估。

许多深度学习模型和算法都使用COCO数据集进行训练和评估,以提高物体检测和图像分割的性能。此外,COCO数据集还举办了每年一次的COCO挑战赛,鼓励研究者提交他们的算法并进行比较和竞争。

总而言之,COCO是一个大规模的计算机视觉数据集,提供了丰富的图像和标注信息,用于推动物体检测、图像分割和图像理解等任务的研究和发展。

.engine 文件

关于深度学习、NVIDIA 和 .engine 文件的问题,我可以为你提供一些相关信息。

  1. 深度学习:深度学习是机器学习的一个分支,致力于模拟人脑神经网络的工作原理,通过构建多层神经网络来学习和解决复杂的模式识别和特征提取任务。深度学习在计算机视觉、自然语言处理、语音识别等领域取得了重大突破。

  2. NVIDIA:NVIDIA 是一家专门从事图形处理器(GPU)和计算平台的技术公司。NVIDIA 的 GPU 在深度学习领域得到了广泛的应用,因为它们在并行计算和加速深度神经网络方面表现出色。NVIDIA 提供了深度学习框架、GPU 加速库等工具,用于训练和部署深度学习模型。

  3. .engine 文件:在 NVIDIA 的上下文中,.engine 文件通常指的是 TensorRT 的引擎文件。TensorRT(Tensor Runtime)是 NVIDIA 开发的用于优化深度学习推理(inference)的库,它可以将训练好的深度学习模型进行优化,以便在生产环境中更快地执行推理。.engine 文件是 TensorRT 编译优化后的模型表示,其中包含了针对特定硬件和优化选项的模型表示,以提高推理性能。

    TensorRT 使用过程中,通常的步骤是:

    • 从深度学习框架(如 TensorFlow 或 PyTorch)中导出训练好的模型。
    • 使用 TensorRT 的 API 将模型转换为 .engine 文件,这个文件经过了优化以适应特定硬件。
    • 在推理时,加载 .engine 文件,使得模型能够在 GPU 上进行高效推理。

    这种方式可以显著提高深度学习模型的推理速度,并减少所需的资源。

需要注意的是,.engine 文件是 NVIDIA TensorRT 特定的文件格式,不同于其他深度学习模型的保存格式。如果你要使用 .engine 文件,你需要使用 TensorRT 的 API 进行加载和执行。详细的操作和使用方法可以参考 NVIDIA 的 TensorRT 文档和示例。

什么是深度学习

  • 深度学习是一种人工智能(AI)方法,用于教计算机以受人脑启发的方式处理数据。深度学习模型可以识别图片,文本,声音和其他数据中的复杂模式,从而生成准确的见解和预测。

为什么深度学习很重要

  • 人工智能(AI)试图训练计算机像人类一样思考和学习。深度学习技术推动了日常产品中使用的许多AI应用程序的发展,例如

    • 数字助理
    • 声控电视遥控器
    • 欺诈检测
    • 自动面部识别
  • 它也是自动驾驶汽车,虚拟现实等新兴技术的重要组成部分

  • 深度学习模型,是一些计算机文件,数据科学家训练这些文件,以使用算法或一组预定义步骤来执行任务。企业使用深度学习模型在各种应用程序中分析数据并作出预测。

深度学习的作用

  • 深度学习在汽车、航空航天、制造、电子、医学研究和其他领域有很多使用场景。以下是深度学习的一些示例:

    • 自动驾驶汽车使用深度学习模型自动检测路标和行人。
    • 国防系统使用深度学习在卫星图像中自动标记感兴趣的区域。
    • 医学图像分析使用深度学习自动检测癌细胞以进行医学诊断。
    • 工厂使用深度学习应用程序自动检测人员或物体何时位于机器的不安全距离内。
  • 可以将这些不同的深度学习使用场景分为四大类:计算机视觉、语音识别、自然语言处理(NLP)和推荐引擎。

  • 计算机视觉,是指计算机从图像和视频中提取信息及见解的能力。计算机可以使用深度学习技术来理解图像,就像人类一样。计算机视觉具有多种应用,如下所示

    • 内容审核,用于从图像和视频归档中自动删除不安全或不适当的内容
    • 面部识别,用于识别面部和多项属性,如睁开的眼睛、眼镜以及面部毛发
    • 图像分类,用于识别品牌徽标、服装、安全装备和其他图像细节
  • 语音识别,深度学习模型可以分析人类语音,尽管说话模式、音调、语气、语言和口音不尽相同。虚拟助手(如 Amazon Alexa)和自动转录软件使用语音识别执行以下任务:

    • 帮助呼叫中心座席并对呼叫进行自动分类。
    • 将临床对话实时转换为文档。
    • 为视频和会议记录添加准确的字幕以实现更广泛的内容覆盖范围
  • 自然语言处理,计算机使用深度学习算法从文本数据和文档中收集见解和意义。这种处理自然的、人工创建的文本的能力有几个使用场景,包括在以下功能中:

    • 自动虚拟座席和聊天机器人
    • 自动总结文件或新闻文章
    • 长格式文档(如电子邮件和表格)的业务情报分析
    • 用于表示情绪(如社交媒体上的正面和负面评论)的关键短语索引
  • 推荐引擎,应用程序可以使用深度学习方法来跟踪用户活动并开发个性化推荐。它们可以分析各种用户的行为,并帮助他们发现新产品或服务。例如,许多媒体和娱乐公司,例如 Netflix、Fox 和 Peacock,都使用深度学习来提供个性化的视频推荐

深度学习网络有哪些组成部分?

  • 深度神经网络的组成部分如下:
    • 输入层,人工神经网络有几个向其输入数据的节点。这些节点构成了系统的输入层
    • 隐藏层,输入层处理数据并将其传递到神经网络中更远的层。这些隐藏层在不同层级处理信息,在接收新信息时调整其行为。深度学习网络有数百个隐藏层,可用于从多个不同角度分析问题
    • 输出层,输出层由输出数据的节点组成。输出是或否的答案的深度学习模型在输出层中只有两个节点。那些输出更广泛答案的模型有更多的节点。

机器学习背景下的深度学习是什么

  • 深度学习是机器学习的子集。深度学习算法的出现是为了提高传统的机器学习技术的效率。传统的机器学习方法需要大量的人力来训练软件。
  • 例如,在动物图像识别中,需要执行以下操作:
    • 手动标记数十万张动物图像
    • 让机器学习算法处理这些图像
    • 在一组未知图像上测试这些算法
    • 找出某些结果不准确的原因
    • 通过标注新图像来改进数据集,以提高结果准确性。
  • 这个过程称为有监督学习。在有监督学习中,只有当您拥有广泛且充分多样化的数据集中,结果准确性才会提高。
  • 例如,该算法可能可以准确识别黑猫,但是不能准确识别白猫,因为训练数据集包含更多黑猫图像。在这种情况下,需要标记更多的白猫图像并再次训练机器学习模型。

深度学习相对于机器学习有什么好处?

  • 与传统的机器学习相比,深度学习网络具有以下优势:
    • 高效处理非结构化数据
      • 机器学习方法发现非结构化数据(如文本文档)难以处理,因为训练数据集可能有无限种变化。另一方面,深度学习模型可以理解非结构化数据并进行一般观察,而无需手动提取特征
    • 隐藏的关系和模式发现
      • 深度学习应用程序可以更深入地分析大量数据,并揭示可能尚未对其进行过训练的新见解。例如,考虑一个经过训练以分析消费者购买的深度学习模型。该模型仅包含您已购买的商品的数据。但是,通过将您的购买模式与其他类似客户的购买模式进行比较,人工神经网络可以向您推荐您尚未购买的新物品
    • 无监督学习
      • 深度学习可以根据用户行为进行学习,并随时间推移进行改进。它们不需要大量不同版本的标注数据集。例如,考虑通过分析您的键入行为自动更正或推荐词汇的神经网络。假设该模型是使用英语训练的,因此可对英语词汇进行拼写检查。但是,如果您经常键入非英语词汇,如 danke,神经网络也可以自动学习和更正这些词汇
    • 易失性数据处理
      • 易失性数据集具有各种不同的版本。银行的贷款还款额就是其中的一个例子。深度学习神经网络也可以对这些数据进行分类和排序,例如通过分析金融交易并标记其中一些交易以进行欺诈检测

模型训练和模型部署

  • 模型训练重点关注的是如何通过训练策略来得到一个性能更好的模型。整个流程包含从训练样本的获取(包括数据采集和标注),模型结构的确定,损失函数和评价指标的确定,到模型参数的训练,这部分更多是业务方去承接相关工作。

  • 一旦训练得到了一个指标不错的模型,如何将这个模型赋能到实际业务中,充分发挥其能力,这就是部署方需要承接的工作。

  • 因此,一般来说,学术界负责各种 SOTA(State of the Art) 模型的训练和结构探索,而工业界负责将这些 SOTA 模型应用落地,赋能百业

  • 模型部署一般无需再考虑如何修改训练方式或者修改网络结构以提高模型精度,更多的是需要明确部署的场景、部署方式(中心服务化还是本地终端部署)、模型的优化指标,以及如何提高吞吐率和减少延迟等。

感谢老板支持!敬礼(^^ゞ