当前位置: 首页 > news >正文

勘探开发人工智能技术:机器学习(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年如果你这么做会被业内人士笑话的).
图像分割, 或提取图片的边缘. 嗯, 这个和转成卡通风格也差不多.
机器翻译. 把句子编码成机器内部的表示 (一种新的世界语言?), 然后转成其它语言的句子.
输入一个头, 输出多个头, 就可以做多任务. 如在速度模型反演的同时, 进行边缘提取, 这样导致反演的结果更丝滑.

相关文章:

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

0 提纲 7.1 循环神经网络RNN 7.2 LSTM 7.3 Transformer 7.4 U-Net 1 循环神经网络RNN 把上一时刻的输出作为下一时刻的输入之一. 1.1 全连接神经网络的缺点 现在的任务是要利用如下语料来给apple打标签: 第一句话:I like eating apple!(我喜欢吃苹…...

代理类型中的 HTTP、HTTPS 和 SOCKS 有什么区别?

HTTP、HTTPS 和 SOCKS 都是代理(Proxy)协议,用于在网络通信中转发请求和响应,但它们在工作原理和用途上有一些区别。下面是它们之间的主要区别: HTTP代理: 工作原理: HTTP 代理主要用于转发 HTT…...

【STM32RT-Thread零基础入门】 3. PIN设备(GPIO)的使用

硬件:STM32F103ZET6、ST-LINK、usb转串口工具、4个LED灯、1个蜂鸣器、4个1k电阻、2个按键、面包板、杜邦线 文章目录 前言一、PIN设备介绍1. 引脚编号获取2. 设置引脚的输入/输出模式3. 设置引脚的电平值4. 读取引脚的电平值5. 绑定引脚中断回调函数6. 脱离引脚中断…...

fiddler抓包工具的用法以及抓取手机报文定位bug

前言: fiddler抓包工具是日常测试中常用的一种bug定位工具 一 抓取https报文步骤 使用方法: 1 首先打开fiddler工具将证书导出 点击TOOLS------Options------Https-----Actions---选中第二个选项 2 把证书导出到桌面后 打开谷歌浏览器 设置---高级…...

spring中时间格式化的两种方式

方法一:自己格式化 自己写一个格式化的类,把date类型的时间传进去: public class DateUtil {public static String formatDate(Date date){SimpleDateFormat simpleDateFormatnew SimpleDateFormat("yyyy-MM-dd HH:mm:ss");retur…...

【设计模式】原型模式

原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式之一。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接…...

Matlab的Filter Designer工具设计二阶低通滤波器

Matlab版本:2018b 本文要求:设计一个二阶巴特沃斯低通滤波器用于嵌入式软件滤波,传感器采样频率是20KHz,截止频率是333Hz,获取滤波系数,本文不包括二阶滤波推导和代码编写。 打开Matlab->APP->Filt…...

软件测试基础篇——LAMP环境搭建

LAMP 1、Linux系统的其他命令 find命令:在目录下查找文件 ​ 格式一:find 路径 参数 文件名 ​ 路径:如果没有指定路径,默认是在当前目录下 ​ 参数:-name 根据文件名来查找,区分大小写; -…...

使用dom4j将xml转为String并去掉所有格式

文章目录 功能描述实现代码 功能描述 有以下xml内容&#xff0c;需要转成String字符串。同时&#xff0c;要去掉文中所有格式。 <root><student><name>张三</name><sex>男</sex><age>16</age><class>1班</class>…...

wsl2安装docker引擎(Install Docker Engine on Debian)

安装 1.卸载旧版本 在安装 Docker 引擎之前&#xff0c;您必须首先确保卸载任何冲突的软件包。 发行版维护者在他们的存储库。必须先卸载这些软件包&#xff0c;然后才能安装 Docker 引擎的正式版本。 要卸载的非官方软件包是&#xff1a; docker.iodocker-composedocker-…...

百日筑基篇——python爬虫学习(一)

百日筑基篇——python爬虫学习&#xff08;一&#xff09; 文章目录 前言一、python爬虫介绍二、URL管理器三、所需基础模块的介绍1. requests2. BeautifulSoup1. HTML介绍2. 网页解析器 四、实操1. 代码展示2. 代码解释1. 将大文件划分为小的文件&#xff08;根据AA的ID数量划…...

【Spring专题】Spring之底层架构核心概念解析

目录 前言前置知识课程内容一、BeanDefinition&#xff1a;图纸二、BeanDefinitionReader&#xff1a;图纸注册器——Spring工厂基础设施之一2.1 AnnotatedBeanDefinitionReader2.2 XmlBeanDefinitionReader2.3 ClassPathBeanDefinitionScanner基本介绍总结使用示例 三、BeanFa…...

electron 使用node C++插件 node-gyp

node C插件使用&#xff0c;在我们常规使用中&#xff0c;需要使用node-gyp指定对饮的node版本即可 在electron的使用中&#xff0c;我们需要指定的是electron版本要不然会报错使用的v8内核版本不一致导致C扩展无法正常引入 electron官方文档-node原生模块 package.json {&quo…...

学习Vue:使用条件渲染指令(v-if,v-else,v-show)

在 Vue.js 中&#xff0c;条件与循环是实现动态交互界面的关键要素。通过使用条件渲染指令&#xff0c;您可以根据不同的条件决定是否显示或隐藏特定的内容。在本文中&#xff0c;我们将介绍三个常用的条件渲染指令&#xff1a;v-if、v-else 和 v-show&#xff0c;以及它们的用…...

【图像去噪的滤波器】非局部均值滤波器的实现,用于鲁棒的图像去噪研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Redis辅助功能

一、Redis队列 1.1、订阅 subscribe ch1 ch2 1.2 publish:发布消息 publish channel message 1.3 unsubscribe: 退订 channel 1.4 模式匹配 psubscribe ch* 模糊发布&#xff0c;订阅&#xff0c;退订&#xff0c; p* <channelName> 1.5 发布订阅原理 订阅某个频道或…...

快手商品详情数据API 抓取快手商品价格、销量、库存、sku信息

快手商品详情数据API是用来获取快手商品详情页数据的接口&#xff0c;请求参数为商品ID&#xff0c;这是每个商品唯一性的标识。返回参数有商品标题、商品标题、商品简介、价格、掌柜昵称、库存、宝贝链接、宝贝图片、商品SKU等。 接口名称&#xff1a;item_get 公共参数 名…...

linux系统部署jenkins详细教程

一、Linux环境 1、下载war包 官网下载地址&#xff1a; https://get.jenkins.io/war-stable/2.332.4/jenkins.war 2、将war包上传至服务器 创建目录/home/ubuntu/jenkins 上传war包至该目录 3、将jenkins添加到环境变量 进入环境变量文件 vim /etc/profile # 文件下方追加…...

Arduino驱动BME680环境传感器(环境传感器篇)

目录 1、传感器特性 2、硬件原理图 3、控制器和传感器连线图 4、驱动程序...

领航未来!探索开源无人机与5G组网的前沿技术

近年来无人机行业高速发展&#xff0c;无人机被广泛应用于航拍、农业、电力、消防、科研等领域。随着无人机市场不断增长&#xff0c;其对实时超高清图传、远程低时延控制、海量数据处理等需求也在不断扩张&#xff0c;这无疑给通信链路带来了巨大的挑战。 为应对未来的需求变…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...