勘探开发人工智能技术:机器学习(6)

0 提纲

7.1 循环神经网络RNN
7.2 LSTM
7.3 Transformer
7.4 U-Net

1 循环神经网络RNN

把上一时刻的输出作为下一时刻的输入之一.

1.1 全连接神经网络的缺点

现在的任务是要利用如下语料来给apple打标签:

  • 第一句话:I like eating apple!(我喜欢吃苹果!)
  • 第二句话:The Apple is a great company!(苹果真是一家很棒的公司!)

第一个apple是一种水果,第二个apple是苹果公司。
全连接神经网络没有利用上下文来训练模型,模型在训练的过程中,预测的准确程度,取决于训练集中哪个标签多一些,如果水果多,就打上水果的标签,如果苹果公司多,就打上苹果公司;显然这样的模型不能对未知样本进行准确的预测。
循环神经网络 (Recurrent Neural Network, RNN) 用于处理序列数据.

1.2 动机

序列数据中, 前后数据之间不是独立的, 而是会产生上下文影响. 如:

  • 文本, 机器翻译一个句子的时候, 不是逐个单词的翻译 (你可以发现近 10 年机器翻译的质量大幅提升, 最近的 chatGPT 更是火得一蹋糊涂);
  • 音频, 可以在微信中让机器把你讲的话转成文字;
  • 投票, 虽然股价预测不靠谱, 但根据时序进行预测却是人们最喜欢干的事情。

1.3 RNN的结构

在这里插入图片描述
左图如果不考虑 W W W,就是一个全连接神经网络:

  • 输入层:向量 x x x,假设维度为3;
  • 隐藏层:向量 s s s,假设维度为4;
  • 输出层:向量 o o o,假设维度为2;
  • U U U:输入层到隐藏层的参数矩阵,维度为 3 × 4 3×4 3×4
  • V V V:隐藏层到输出层的参数矩阵,维度为 4 × 2 4×2 4×2

左图如果考虑 W W W,可以展开为右图:

  • x t − 1 x_{t−1} xt1:表示 t − 1 t−1 t1时刻的输入;
  • x t x_t xt:表示 t t t时刻的输入;
  • x t + 1 x_{t+1} xt+1:表示 t + 1 t+1 t+1时刻的输入;
  • W W W:每个时间点的权重矩阵;
  • o t o_t ot:表示 t t t时刻的输出;
  • s t s_t st:表示 t t t时刻的隐藏层;

RNN 把前一时刻 (简便起见, 前一个单词我也称为前一时刻) 的输出, 当作本阶段输入的一部分. 这里 x t − 1 x_{t−1} xt1为前一时刻的输入, 而 s t − 1 s_{t-1} st1 为前一时刻的输出. 这样, 就把数据的前后联系体现出来了.

1.4 RNN的缺点

每一时刻的隐藏状态都不仅由该时刻的输入决定,还取决于上一时刻的隐藏层的值,如果一个句子很长,到句子末尾时,它将记不住这个句子的开头的内容详细内容。

2 长短期记忆网络LSTM

选择性的存储.

2.1 LSTM的原理

LSTM是高级的RNN,与RNN的主要区别在于:

  • RNN每个时刻都会把隐藏层的值存下来,到下一时刻再拿出来使用,RNN没有挑选的能力;
  • LSTM不一样,它有门控装置,会选择性的存储信息。既有记忆 (重要信息) 的功能, 也有遗忘 (不重要信息) 的功能.

在这里插入图片描述
LSTM多了三个门:

  • 输入门:输入的信息经过输入门,输入门的开关决定这一时刻是否会将信息输入到Memory Cell;
  • 输出门:每一时刻是否有信息从Memory Cell输出取决于这一道门;
  • 遗忘门:每一时刻Memory Cell里的值都会经历一个是否被遗忘的过程.

2.2 讨论?

遗忘也是一种功能吗? 当然是了.
所谓好了伤疤忘了痛, 如果一个人不会遗忘, 很快就精神失常了.
在这里插入图片描述
详细分析见:
https://mp.weixin.qq.com/s?__biz=MzU0MDQ1NjAzNg==&mid=2247535325&idx=1&sn=7d805b06916a3da299e20c0445f59a07&chksm=fb3aefd6cc4d66c06b0f2d5779c83861474d2442f9b3387a4b87f45f3218efc92c3335602678&scene=27

3 变形金刚Transformer:注意力机制

定位到感兴趣的信息, 抑制无用信息 (怎么有点像 PCA).

3.1 CNN及RNN的缺点

  • RNN:很难实现并行(左图,计算 b 4 b^4 b4需要串行查询 a 1 , a 2 , a 3 , a 4 a^1,a^2,a^3,a^4 a1,a2,a3,a4);
  • CNN:可以实现并行,需要堆叠多层的CNN才能学习到整个序列的特征(右图).

在这里插入图片描述

3.2 自注意力机制(self-attention)

采用自注意力机制层取代RNN来处理序列,同时实现序列的并行处理。
自注意力机制具体内容见https://blog.csdn.net/search_129_hr/article/details/129522922

在这里插入图片描述

3.3 注意力机制

数据有重要的数据不重要的数据。在模型处理数据的过程中,如果只关注较为重要的数据部分,忽略不重要的部分,那训练的速度、模型的精度就会变得更好。
如果给你一张这个图,你眼睛的重点会聚焦在红色区域:
在这里插入图片描述

  • 人看脸
  • 文章看标题
  • 段落看开头

在训练过程中,输入的权重也都是不同的,注意力机制就是学习到这些权重
最开始attention机制在CV领域被提出来,后面广泛应用在NLP领域。
在这里插入图片描述

3.4 Tranformer的原理

Transformer 主要分为两部分:Encoder编码器 和 Decoder解码器

  • Encoder:负责把输入(语言序列)隐射成隐藏层(图中第 2 步九宫格表示),即把自然语言序列映射为隐藏层的数学表达的过程;
  • Decoder:把隐藏层映射为自然语言序列。

在这里插入图片描述

4 U-Net

先编码获得内部表示, 再解码获得目标数据 (怎么有点像矩阵分解).

4.1 U-Net核心思想

U-Net 集编码-解码于一体, 是一种常见的网络架构.
如图所示, U-Net 就是 U 形状的网络, 前半部分 (左边) 进行编码, 后半部分 (右边) 进行解码.
在这里插入图片描述
编码部分, 将一个图像经过特征提取, 变成一个小矩阵(28 × 28). 前面说过: 深度学习本质上只做一件事情, 就是特征提取.
解码部分, 将压缩表示解压, 又变回大矩阵,完成图像分割任务.
从思想上, 压缩与解压, 这与矩阵分解有几分类似, 都是把数据进行某种形式的压缩表示.

输入的是原始图像,通过网络结构后得到的是分割后的图像。
最特殊的部分是结构的后半部分,该网络结构没有全连接层,只采用了卷积层,每个标准的卷积层后面都紧跟着一个Relu激活函数层

4.2 U-Net的应用

自编码器. 直接将输入数据作为标签, 看编码导致的损失 (更像矩阵分解了).
风格迁移:从一种风格转换为另一种风格. 如将自然照片转换成卡通风格, 将地震数据转换成速度模型 (2010年如果你这么做会被业内人士笑话的).
图像分割, 或提取图片的边缘. 嗯, 这个和转成卡通风格也差不多.
机器翻译. 把句子编码成机器内部的表示 (一种新的世界语言?), 然后转成其它语言的句子.
输入一个头, 输出多个头, 就可以做多任务. 如在速度模型反演的同时, 进行边缘提取, 这样导致反演的结果更丝滑.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/38455.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

06 json数据解析和列表控件

内容回顾 json数据解析 json ----- 对要传输的数据进行封装的工具 json是由json数组([]) 和 json对象({})在qt中,对JSON数据进行处理(解析和打包) JSON数据处理所要包含的类: QJsonDocument -----它的作用是将数据转换成json文档 QJsonArray ---- json数组,就是封装多个…

User-Agent介绍

User-Agent介绍 引言 在Web开发中,我们经常会遇到需要根据不同的用户设备或浏览器类型来进行特定处理的情况。为了达到这样的目的,我们可以使用User-Agent这个HTTP头信息字段来识别用户的设备和浏览器。本篇文章将介绍User-Agent的基本概念、用法以及在…

SpringBoot 学习(02): 从嵌入式系统到嵌入式Servlet SpingBoot 的进化之路

嵌入式系统 计算机操作系统启动后,会加载一系列的功能和服务,而这些东西都不是开发操作系统的人写的,如果想让一个生态快速崛起,那么操作系统的开发人,就要告诉大家,在这个操作系统上,你要遵守…

3.1 Ansible 的使用和配置管理

Ansible 的使用和配置管理 文章目录 Ansible 的使用和配置管理Ansible 基础Ansible 模块和变量主机管理和组织角色和剧本部署应用和配置自动化与批量操作Ansible 常见用例Ansible 最佳实践和性能优化 大纲 Ansible 简介和特点 介绍 Ansible 的定义和作用,以及它在配…

【Java】Guava的Striped类。

Striped类,它提供了一种线程安全的分段锁(Striped Locking)机制。 Striped类可以用于将一组资源或操作分成多个段(Stripes),每个段上都有一个独立的锁。这种机制可以在并发访问时提供更好的性能,因为不同线程可以同时访问不同的段而不会相互阻塞。通常,Striped锁适用于…

pytorch3d成功安装

一、pytorch3d是什么? PyTorch3D的目标是帮助加速深度学习和3D交叉点的研究。3D数据比2D图像更复杂,在从事Mesh R-CNN和C3DPO等项目时,我们遇到了一些挑战,包括3D数据表示、批处理和速度。我们开发了许多有用的算子和抽象&#xf…

【Visual Studio Code】--- Win11 安装 VS Code 超详细

Win11 安装 VS Code 超详细 概述一、下载 Vscode二、安装 Vscode 概述 一个好的文章能够帮助开发者完成更便捷、更快速的开发。书山有路勤为径,学海无涯苦作舟。我是秋知叶i、期望每一个阅读了我的文章的开发者都能够有所成长。 一、下载 Vscode Vscode官网 二、…

HTTP和HTTPS协议

目录 一、HTTP和HTTPS区别🌻 二、有了https还有使用http场景吗🍊 三、https协议的工作原理💥 四、https协议的优点和缺点🍞 一、HTTP和HTTPS区别🌻 HTTP(Hypertext Transfer Protocol)和HTT…

时序预测 | MATLAB实现基于KNN K近邻的时间序列预测-递归预测未来(多指标评价)

时序预测 | MATLAB实现基于KNN K近邻的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于KNN K近邻的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 基于KNN K近邻的时间序列预测-递归预测未来(多指标评价) …

macOS - 安装使用 libvirt、virsh

文章目录 关于 libvirt使用安装启动服务virsh 交互模式virsh 帮助命令 关于 libvirt libvirt 官网: https://libvirt.org/gitlab : https://gitlab.com/libvirt/libvirtgithub : https://github.com/libvirt/libvirt 只读,gitlab 的镜像 libvirt是一套…

机器学习之数据集

目录 1、简介 2、可用数据集 3、scikit-learn数据集API 3.1、小数据集 3.2、大数据集 4、数据集使用 ⭐所属专栏:人工智能 文中提到的代码如有需要可以私信我发给你😊 1、简介 当谈论数据集时,通常是指在机器学习和数据分析中使用的一组…

ES 概念

es 概念 Elasticsearch是分布式实时搜索、实时分析、实时存储引擎,简称(ES)成立于2012年,是一家来自荷兰的、开源的大数据搜索、分析服务提供商,为企业提供实时搜索、数据分析服务,支持PB级的大数据。 -- …

logstash 原理(含部署)

1、ES原理 原理 使⽤filebeat来上传⽇志数据,logstash进⾏⽇志收集与处理,elasticsearch作为⽇志存储与搜索引擎,最后使⽤kibana展现⽇志的可视化输出。所以不难发现,⽇志解析主要还 是logstash做的事情 从上图中可以看到&#x…

RDMA概述

1. DMA和RDMA概念 1.1 DMA DMA(直接内存访问)是一种能力,允许在计算机主板上的设备直接把数据发送到内存中去,数据搬运不需要CPU的参与。 传统内存访问需要通过CPU进行数据copy来移动数据,通过CPU将内存中的Buffer1移动到Buffer2中。DMA模…

【图像分类】理论篇 (4)图像增强opencv实现

随机旋转 随机旋转是一种图像增强技术,它通过将图像以随机角度进行旋转来增加数据的多样性,从而帮助改善模型的鲁棒性和泛化能力。这在训练深度学习模型时尤其有用,可以使模型更好地适应各种角度的输入。 原图像: 旋转后的图像&…

1.MySQL数据库的基本操作

数据库操作过程: 1.用户在客户端输入 SQL 2.客户端会把 SQL 通过网络发送给服务器 3.服务器执行这个 SQL,把结果返回给客户端 4.客户端收到结果,显示到界面上 数据库的操作 这里的数据库不是代表一个软件,而是代表一个数据集合。 显示当前的数据库 …

Python中的MetaPathFinder

MetaPathFinder 是 Python 导入系统中的一个关键组件,它与 sys.meta_path 列表紧密相关。sys.meta_path 是一个包含 MetaPathFinder 实例的列表,这些实例用于自定义模块的查找和加载逻辑。当使用 import 语句尝试导入一个模块时,Python 会遍历…

Golang通过alibabaCanal订阅MySQLbinlog

最近在做redis和MySQL的缓存一致性,一个方式是订阅MySQL的BinLog文件,我们使用阿里巴巴的Canal的中间件来做。 Canal是服务端和客户端两部分构成,我们需要先启动Canal的服务端,然后在Go程序里面连接Canal服务端,即可监…

Maven - 统一构建规范:Maven 插件管理最佳实践

文章目录 Available Plugins开源项目中的使用插件介绍maven-jar-pluginmaven-assembly-pluginmaven-shade-pluginShade 插件 - 标签artifactSetrelocationsfilters 完整配置 Available Plugins https://maven.apache.org/plugins/index.html Maven 是一个开源的软件构建工具&…

零食量贩店热潮:小县城的新零售革命

零食量贩店热潮:小县城的新零售革命 目录 引言零食量贩店的快速崛起零食量贩店的运营模式量贩零食店在小县城的影响技术在零食量贩店的应用未来展望结论 1. 引言 近年来,零食量贩店在我国小县城迅速发展,成为一种新型的零售模式。在一条街…