深度学习简介-程序员宅基地

技术标签: 深度学习  人工智能  

一、深度学习简介

  1. 深度学习是一种基于神经网络的学习方法。和传统的机器学习方法相比,深度学习模型一般需要更丰富的数据、更强大的计算资源,同时也能达到更高的准确率。目前,深度学习方法被广泛应用于计算机视觉、自然语言处理、强化学习等领域。
  2. 深度学习的目标:学习样本数据的内在规律和表示层次。
  3. 深度学习的最终目标:让机器能够像人一样具有分析、学习能力、能够识别文字、图像和声音等数据。
  4. 深度学习在搜索技术、数据挖掘、机器学习、机器学习、自然语言处理、多媒体学习、语音识别、推荐和个性化技术以及其他相关领域都取得了很多成果。
  5. 深度学习的定义:是具有多层次特征描述的特征学习。(通过一些简单但非线性的模块将每一层特征描述(从未加工的数据开始)转化为更高一层的、更为抽象一些的特征描述。)
  6. 深度学习进步的表现:在图像分类与识别、语音识别与合成、人脸识别、视频分类与行为识别等领域都有着不俗的表现。列如:人脸识别采用深度学习方法后的识别率超过了目前非深度学习算法以及人类的识别率,深度学习技术在语音识别领域更是取得了突破性的进展,在大规模图像分类问题上也远超传统方法。
  7. 深度学习在生活中的运用:纹理识别、行人检测、场景标记、门牌识别等领域。
  8. 深度学习关键:这些层次的特征不是由人工设计的,而是使用一种通用的学习步骤从数据中学习获取的(学习得到的)。这些学习过程中获得的信息对文字、图像和声音等数据的解释有很大的帮助。
  9. 深度学习与人工智能、机器学习的关系:
  10. 深度学习的常见应用:图像分类、图像分割、图像生成、图像标题的生成、图像风格转换、目标检测、物体测量、物体分拣、视觉定位、情感分析、无人驾驶、机器翻译、文本到语音转换、手写文字转录和音频生成。

二、计算机视觉的基本任务

1.计算机视觉:shi

  • 计算机视觉是指使用计算机一级相关设备对生物视觉的一种模拟。
  • 主要任务:通过对采集的图片或视屏进行处理以获得相应场景的三维信息。
  • 计算机视觉是关于如何运用照相机和计算机来获取我们所需要的被迫拍摄对象的数据与信息的学问。
  • 形象地说,计算机视觉就是给计算机安装上“眼睛”(照相机)和“大脑”(算法),让计算机能够感知环境。以代替人眼对目标进行识别、跟踪和测量等操作,并对图像进行进一步的处理,使图像更适合人眼观察或传入仪器。
  • 运用的学科:包括计算机科学和工程、信号处理、物理学、应用数学和统计学、神经生理学和认知科学等学科。

2.计算机视觉的基本任务:

  1. 计算机视觉的基本任务包含图像处理、模式识别或图像识别、景物分析、图像理解等。除了图像处理和模式识别之外,它还包括空间形状的描述,几何建模以及认识过程。
  2. 实现图像理解是计算机视觉的终极目标。
  3. 图像处理技术:
  4. 图像理解技术:

3.计算机视觉的传统算法:

  1. 在深度学习算法出现之前,对于计算机视觉算法来说,大致可以分为以下5个步骤:
  2. 成功列子:(1)指纹识别算法 (2)基于Haar的人脸检测算法  (3)基于HoG特征的物体检测
  3. 缺点:(1)缺乏对特征的重视 (2)图像特征提取需要人力 (3)依赖特征算子

4.计算机视觉的主要应用

  1. 图像分类:

  • 图像分类是深度学习中最常见的应用之一。它的目标是将图像分到预定义的类别中。深度学习通过多层神经网络来学习图像的抽象特征。这些特征可以从原始像素值或者低级特征(如边缘、纹理等)中提取出来,然后通过多个隐藏层进行非线性组合和转换,最终得到高级语义特征。
  • 卷积神经网络(Convolutional Neural Network, CNN):主要用于图像分类和识别任务,包括LeNet、AlexNet、VGG、GoogLeNet、ResNet
  • 生成对抗网络(Generative Adversarial Network, GAN):用于生成新样本,主要包括GAN、DCGAN、WGAN等
  • 实际上,图像分类是分析一个输入图像并返回一个将图像分类的标签。
  • 标签总是来自预定义的可能类别集。 利用深度学习算法可以实现对猫的图像进行分类,
  • 图像分类的过程一般包括以下步骤:

2.目标检测

目标检测一般包括以下步骤:

  • 候选区域生成:使用一些候选区域生成算法,生成可能包含目标的区域。 特征提取:对每个候选区域提取特征,如颜色、纹理、形状等。
  • 目标分类:使用机器学习或深度学习算法,将每个候选区域分类为目标或非目标。
  • 边界框回归:对于被分类为目标的候选区域,通过回归算法校正其边界框的位置和大小。
  • 非极大值抑制(NMS):对于多个重叠的候选区域,保留具有最高置信度的目标,去除冗余的区域。

可以分为:

  • One-Stage目标检测:端到端,速度快。(YOLO、YOLOX)
  • Two-Stage目标检测:速度更慢,最开始提出。(SSD、R-CNN、Faster R-CNN)
  • 目标检测是机器视觉领域最主要的应用之一,例如,汽车违规行驶的检测会为了保障行车、行人的安全在路口安装交通检测系统,检测汽车的行驶速度是否超过限制、是否存在违规变道行为、是否存在闯红灯行为、是否遮挡车牌、是否系安全带等。 而人工检测存在着较多的弊端,如准确率低,长时间工作准确性更是无法保障,而且检测速度慢,容易出现错判和漏判。 因此,机器视觉在目标检测的应用方面也就显得非常重要。
  • 目标检测算法既可以进行分类任务,也可以进行检测任务,还可以进行目标追踪、实例分割。 YOLO系列:YOLOv1~YOLOv8、YOLOX、YOLOF是最常用的目标检测算法。

3.实例分割:

  • 在图像中检测和分割出每个特定目标像素,列如分割出每个人的轮廓

4.姿态评估:

  • 估计图像中人物的姿势或关节角度,入人体姿势估计、手势识别等

5.图像重建:

  • 是指通过一系列技术和算法对损坏、模糊或或缺的图像进行修复或恢复。

6.图像超分辨率:

  • 指通过一系列的算法和技术,降低分辩率的图像

7.图像标题生成:

  • 神经图像标题(Neural Image Caption, NIC)模型会自动生成介绍输入图像的文字。
  • 该模型由深层的卷积神经网络和自然语言语言处理的循环神经网络(Recurrent Neural Network,RNN) 构成。
  • 卷积神经网络提取图像特征,RNN生成文本。

8.图像风格转换:

  • 图像风格的变换是利用了卷积神经网络可以提取高层特征的效果,不在像素级别进行损失函数的计算,而是将原图像和生成图像都输入至一个已经训练好的神经网络里,在得到的某种特征表示上计算欧式距离(内容损失函数)。
  • 这样得到的图像与原图内容相似,但像素级别不一定相似,且所得图像更具鲁棒性。
  • 输入两个图像,计算机会生成一个新的图像。

9.物体测量:

  • 在日常生活中,物体测量通常是对物体的质量、长度、高度、体积等进行测量。
  • 在机器视觉应用中,使用光的反射进行非接触式测量,如右图所示,是某款手机使用非接触光学测量方法对桌子进行的测量。
  • 物体测量技术多用于工业方面,主要包括对汽车零部件、齿轮、半导体元件管脚、螺纹等进行测量。

10.物体分拣:

  • 物体分拣是建立在识别、检测之后的一个环节,通过机器视觉对图像中的目标进行检测和识别,实现自动分拣。
  • 在工业应用领域常用于食品分拣、零件表面瑕疵自动分拣、棉花纤维分拣等。
  • 同时,物体分拣在物流、仓库中的运用更为广泛,在分拣过程中,机器通过按照物品种类、物品大小、出入库的先后顺序等方法对物体进行分拣。

11.视觉定位:

  • 视觉定位要求机器能够快速准确地找到被测零件并确认其位置。
  • 在半导体封装领域,设备需要根据机器视觉取得芯片位置信息、调整拾取头、准确拾取芯片并进行绑定,这就是视觉定位在机器视觉工业领域最基本的应用。

三、自然语言处理

  • ChatGPT是一种基于OpenAI GPT(Generative Pre-trained Transformer)模型的对话生成模型。 它是OpenAI公司推出的一种自然语言处理模型,旨在通过生成自然流畅的对话响应来实现人机交互。 ChatGPT是通过在大量的对话数据上进行预训练,学习语言模式和对话流程,然后根据用户输入产生相应的回复。 它可以用于诸如客户服务、虚拟助手、编程帮助等任务,为用户提供实用的对话交互体验。 同时,OpenAI还通过与用户的交互来不断改进和优化ChatGPT模型,以提供更准确和有用的回复。
  • 深度学习自然语言处理(Natural Language Processing,NLP)是人工智能和语言学领域的分支学科。 自然语言处理包含机器理解、解释和生成人类语言的方法,因此,也将它描述为自然语言理解(Natural Language Understanding,NLU)和自然语言生成(Natural Language Generation,NLG)。 传统的NLP方法采用基于语言学的方法,它基于语言的基本语义和句法元素(如词性)构建。 基于深度学习的自然语言处理避开了对中间元素的需求,并且可以针对通用任务学习该任务本身的层次表示。 1966年自动语言处理咨询委员会的报告强调了机器翻译从流程到实施成本面临的巨大困难,导致投资方减少了在资金方面的投资,使得NLP的研究几乎停滞。
  • 自然语言,区别于计算机所使用的机器语言和程序语言,是指人类用于日常交流的语言。而自然语言处理的目的却是要让计算机来理解和处理人类的语言。
  • 自然语言的一个句子背后往往包含着不直接表述出来的常识和逻辑。

自然语言处理的基本问题:

  1. 语言建模:计算一个句子在一个语言中出现的概率。
  2. 中文分词:将中文句子恰当地切分为单个的词。
  3. 句法分析:通过明确句子内两个或多个词的关系来了解整个句子的结构。最终句法分析的结果是一棵句法树。
  4. 情感分析:给出一个句子,判断这个句子表达的情感。
  5. 机器翻译:最常见的是把源语言的一个句子翻译成目标语言的一个句子,最终预测出来的整个目标语言句子必须与给定的源语言句子具有完全相同的含义。
  6. 阅读理解:有许多形式。有时候是输入一个段落,一个问题,生成一个回答,或者在原文中标定一个范围作为回答,有时候是输出一个分类。
  7. 语言生成:通过模型和算法,使计算机能够生成符合语法和语义规则的人类语言。
  8. 信息检索:通过分析和索引大量的文本数据,使计算机能够快速准确地检索相关信息。
  9. 语言理解:通过分析文本和语音,使计算机能够理解人类语言的意义和目的。

四、深度学习与神经网络发展

  1. 现代深度学习
  • 卷积神经网络(CNN)是一种对人脑比较精准的模拟,它模拟了人脑识别图片时感知图片中的局部特征,之后将局部特征综合起来再得到整张图的全局信息的过程。其卷积层通常是堆叠的,低层的卷积层可以提取到图片的局部特征,高层的卷积能够从低层的卷积层中学到更复杂的特征,从而实现到图片的分类和识别。

2.现代深度学习的过程

  • 用学习好的卷积和对图像进行扫描,然后每一个卷积和会生成一个扫描的响应图,我们叫response map,或者叫feature map。如果有多个卷积和,就有多个feature map。也就说从一个最开始的输入图像(RGB三个通道)可以得到256个通道的feature map,因为有256个卷积和,每个卷积和代表一种统计抽象的方式。
  • 卷积就是两个函数之间的相互关系。在计算机视觉里面,可以把卷积当作一个抽象的过程,就是把小区域内的信息统计抽象出来。

3.池化操作。池化操作在统计上的概念更明确,就是一个对一个小区域内求平均值或者求最大值的统计操作。带来的结果是,如果之前输入有两个通道的,或者256通道的卷积的响应feature map,每一个feature map都经过一个求最大的一个池化层,会得到一个比原来feature map更小的256的feature map。

4.LeNet网络

  • 传统方法与神经网络方法的比较:

  • 传统方法与神经网络方法的比较:
  • 传统方法适用于特征工程比较成熟、数据较少或易解释性要求高的场景;
  • 神经网络方法适用于数据较大、特征难以手动设计或对模型性能要求较高的场景。
  • 在实际应用中,可以根据问题的特点和数据的性质选择合适的方法。

五.强化学习

  1. 强化学习

  • 监督学习是通过带有标签或对应结果的样本训练得到一个最优模型,再利用这个模型将所有输入映射为相应输出,以实现分类
  • 非监督学习是在样本的标签未知的情况下,根据样本之间的相似性对样本集进行聚类,使类内差距最小化,学习出分类器

2.与环境互动

  • 到目前为止,不管是监督学习还是无监督学习,我们都会预先获取大量数据,然后启动模型,不再与环境交互。 这里所有学习都是在算法与环境断开后进行的,被称为离线学习(offline learning)。
  • 离线学习有它的魅力: 好的一面是,我们可以孤立地进行模式识别,而不必分心于其他问题。  但缺点是,解决的问题相当有限。 这时我们可能会期望人工智能不仅能够做出预测,而且能够与真实环境互动。 与预测不同,“与真实环境互动”实际上会影响环境。 这里的人工智能是“智能代理”,而不仅是“预测模型”。 因此,我们必须考虑到它的行为可能会影响未来的观察结果。

3.强化学习

  • 定义:强化学习是机器学习的一个重要分支,它与非监督学习、监督学习并列为机器学习的三类主要学习方法。
  • 强化学习强调如何基于环境行动,以取得最大化的预期利益,所以强化学习可以被理解为决策问题。
  • 强化学习(reinforcement learning)应用:机器人、对话系统,甚至开发视频游戏的人工智能(AI)。
  • 深度强化学习(deep reinforcement learning)将深度学习应用于强化学习的问题,是非常热门的研究领域。
  • 强化学习的例子: 突破性的深度Q网络(Q-network)在雅达利游戏中仅使用视觉输入就击败了人类;  以及 AlphaGo 程序在棋盘游戏围棋中击败了世界冠军。

4.强化学习的四个因素:

5.强化学习算法的目标:

就是获得最多的累计奖励(正反馈)。

6.强化学习的特征:

  • 没有明确的标签:强化学习没有明确的标签来告诉智能体什么是正确的动作。必须通过与环境的交互来学习。
  • 延迟回报:奖励信号可能在未来的时间点才会到达,因此代理需要考虑长期回报而不只是当前的奖励。
  • 动态环境:环境可能是动态变化的,智能体必须能够适应环境的变化并调整策略。

7.强化学习算法简介

8.强化学习算法的应用

  • 交互性检索是在检索用户不能构建良好的检索式(关键词)的情况下,通过与检索平台交流互动并不断修改检索式,从而获得较准确检索结果的过程。
  • 新闻推荐需要:获取用户请求,召回候选新闻,对候选新闻进行排序,最终给用户推出新闻。        将用户持续浏览新闻的推荐过程看成一个决策过程,通过强化学习学习每一次推荐的最佳策略,提高用户的点击率。
  • 无人驾驶被认为是强化学习短期内能技术落地的一个应用方向,很多公司投入大量资源在无人驾驶上,其中百度的无人巴士“阿波龙”已经在北京、武汉等地展开试运营,自动无人驾驶的行车视野如下图所示。
  • 未来生活中,深度学习算法在交通领域的应用,可能会创造出一个完全智能调度的移动出行网络。
  • 游戏领域:强化学习在游戏中的应用非常广泛。例如,在电子游戏中,强化学习算法可以训练智能体来学习如何玩游戏,并制定最佳策略来获得高分或战胜对手。AlphaGo就是一个成功的示例,它通过强化学习击败了世界冠军围棋选手。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/2201_75559122/article/details/136432585

智能推荐

while循环&CPU占用率高问题深入分析与解决方案_main函数使用while(1)循环cpu占用99-程序员宅基地

文章浏览阅读3.8k次,点赞9次,收藏28次。直接上一个工作中碰到的问题,另外一个系统开启多线程调用我这边的接口,然后我这边会开启多线程批量查询第三方接口并且返回给调用方。使用的是两三年前别人遗留下来的方法,放到线上后发现确实是可以正常取到结果,但是一旦调用,CPU占用就直接100%(部署环境是win server服务器)。因此查看了下相关的老代码并使用JProfiler查看发现是在某个while循环的时候有问题。具体项目代码就不贴了,类似于下面这段代码。​​​​​​while(flag) {//your code;}这里的flag._main函数使用while(1)循环cpu占用99

【无标题】jetbrains idea shift f6不生效_idea shift +f6快捷键不生效-程序员宅基地

文章浏览阅读347次。idea shift f6 快捷键无效_idea shift +f6快捷键不生效

node.js学习笔记之Node中的核心模块_node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是-程序员宅基地

文章浏览阅读135次。Ecmacript 中没有DOM 和 BOM核心模块Node为JavaScript提供了很多服务器级别,这些API绝大多数都被包装到了一个具名和核心模块中了,例如文件操作的 fs 核心模块 ,http服务构建的http 模块 path 路径操作模块 os 操作系统信息模块// 用来获取机器信息的var os = require('os')// 用来操作路径的var path = require('path')// 获取当前机器的 CPU 信息console.log(os.cpus._node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是

数学建模【SPSS 下载-安装、方差分析与回归分析的SPSS实现(软件概述、方差分析、回归分析)】_化工数学模型数据回归软件-程序员宅基地

文章浏览阅读10w+次,点赞435次,收藏3.4k次。SPSS 22 下载安装过程7.6 方差分析与回归分析的SPSS实现7.6.1 SPSS软件概述1 SPSS版本与安装2 SPSS界面3 SPSS特点4 SPSS数据7.6.2 SPSS与方差分析1 单因素方差分析2 双因素方差分析7.6.3 SPSS与回归分析SPSS回归分析过程牙膏价格问题的回归分析_化工数学模型数据回归软件

利用hutool实现邮件发送功能_hutool发送邮件-程序员宅基地

文章浏览阅读7.5k次。如何利用hutool工具包实现邮件发送功能呢?1、首先引入hutool依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.19</version></dependency>2、编写邮件发送工具类package com.pc.c..._hutool发送邮件

docker安装elasticsearch,elasticsearch-head,kibana,ik分词器_docker安装kibana连接elasticsearch并且elasticsearch有密码-程序员宅基地

文章浏览阅读867次,点赞2次,收藏2次。docker安装elasticsearch,elasticsearch-head,kibana,ik分词器安装方式基本有两种,一种是pull的方式,一种是Dockerfile的方式,由于pull的方式pull下来后还需配置许多东西且不便于复用,个人比较喜欢使用Dockerfile的方式所有docker支持的镜像基本都在https://hub.docker.com/docker的官网上能找到合..._docker安装kibana连接elasticsearch并且elasticsearch有密码

随便推点

Python 攻克移动开发失败!_beeware-程序员宅基地

文章浏览阅读1.3w次,点赞57次,收藏92次。整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)近年来,随着机器学习的兴起,有一门编程语言逐渐变得火热——Python。得益于其针对机器学习提供了大量开源框架和第三方模块,内置..._beeware

Swift4.0_Timer 的基本使用_swift timer 暂停-程序员宅基地

文章浏览阅读7.9k次。//// ViewController.swift// Day_10_Timer//// Created by dongqiangfei on 2018/10/15.// Copyright 2018年 飞飞. All rights reserved.//import UIKitclass ViewController: UIViewController { ..._swift timer 暂停

元素三大等待-程序员宅基地

文章浏览阅读986次,点赞2次,收藏2次。1.硬性等待让当前线程暂停执行,应用场景:代码执行速度太快了,但是UI元素没有立马加载出来,造成两者不同步,这时候就可以让代码等待一下,再去执行找元素的动作线程休眠,强制等待 Thread.sleep(long mills)package com.example.demo;import org.junit.jupiter.api.Test;import org.openqa.selenium.By;import org.openqa.selenium.firefox.Firefox.._元素三大等待

Java软件工程师职位分析_java岗位分析-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏14次。Java软件工程师职位分析_java岗位分析

Java:Unreachable code的解决方法_java unreachable code-程序员宅基地

文章浏览阅读2k次。Java:Unreachable code的解决方法_java unreachable code

标签data-*自定义属性值和根据data属性值查找对应标签_如何根据data-*属性获取对应的标签对象-程序员宅基地

文章浏览阅读1w次。1、html中设置标签data-*的值 标题 11111 222222、点击获取当前标签的data-url的值$('dd').on('click', function() { var urlVal = $(this).data('ur_如何根据data-*属性获取对应的标签对象

推荐文章

热门文章

相关标签