第九周:机器学习

目录

摘要

Abstract

一、RNN

1、引入

2、RNN的分类

二、LSTM

1、基本结构 

2、具体步骤

3、举例说明

4、原理理解 

总结 


摘要

本周主要围绕RNN进行探讨,从为什么需要这类”循环网络“入手,提到了”slot filling“技术,接着又对RNN的几个典型类别进行流程绘制及优缺点分析。总的来说,RNN有几种特殊情况——LSTM和GRU。本篇文章主要是对LSTM的基本结构、计算步骤进行了解和总结,最后还手写推导了一个具体的案例。LSTM和一般的network还是有一些区别,为了理解它和RNN的关系,又进行了对比分析。

Abstract

This week's discussion centers around RNNs, starting from why we need this kind of “recurrent networks”, mentioning the “slot filling” technique, and then mapping the flow and analyzing the advantages and disadvantages of several typical classes of RNNs. In general, there are several special cases of RNN - LSTM and GRU. this article mainly focuses on understanding and summarizing the basic structure and computation steps of LSTM, and in the end, it also handwrites and derives a specific case. there are still some differences between LSTM and general networks, and a comparative analysis is carried out in order to understand the relationship between LSTM and RNN. relationship with RNN, and then compared and analyzed.

一、RNN

1、引入

slot filling槽填充:一个关键词汇就是一个槽slot,从输入的句子当中发选出合适的词汇取值放入槽中称为填充filling。

在上图的例子当中,输入是一个句子。slot是”目的地“和”到达时间“,最终经过神经网络,筛选出其对应的词汇。

问题:如果使用前馈神经网络来实现slot filling,那么将会出现词义混淆的问题。

如上图一样,分不清Taipei是”目的地“还是”出发地“。但是可以看出,Taipei的前置动词是不一样的,如果神经网络可以有记忆,记住arrive和leave,就能解决这个问题。

解决:我们将输入的信息再传入下一层神经元的时候,先保存在一个hidden layer中,然后通过”记忆“计算输出。

RNN(Recurrent Neural Network)循环神经网络:是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的递归神经网络。

在本案例中,增加slot——”leave“和”arrive“,其中绿色方框是hidden layer、蓝色方框是memory、黄色和橙色方框分别代表输入和输出。当输入为”leave“或是”arrive“时,首先经过多层hidden layer最终输出是进行slot filling;其中hidden layer中的值会转而储存到memory中;当下一个输入在hidden layer中进行计算时,还要考虑到前一个memory中的值;最后计算”Taipei“的slot filling时,是考虑了前面单词的词义,解决了”前馈神经网络“的无记忆的问题。 

2、RNN的分类

Elman network&Jordan network

在Elman network中,前一个(输入的)hidden layer所得的值保存下来放到下一个(输入的)hidden layer中去;而在Jordan network中,前一个(输入的)output的值保存下来放到下一个(输入的)hidden layer中去。 

由实验所得,Jordan network一般要优于Elman network,是因为hidden layer没有target,而output有target(target的作用就是使预测值有一个对标的真实值),有target则认为是有参照物的,比较好控制。

Bidirectional RNN 

前面的方式,RNN都是将一个句子的单词“从头至尾”的单向读取。但是,也可以双向的读取各个单词,如下:

 

这样的话,当句子中的某个单词做input-output时,该方式不仅仅看过了前半部分的input,而且还看过了其后半部分的input,考虑的信息更多,最终的slot filling效果更好。 

二、LSTM

1、基本结构 

长短期记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络,是为了解决RNN存在的长期依赖问题而专门设计出来的,所有的RNN都具有一种重复神经网络模块的链式形式。 

LSTM的结构图如下所示: 

 

该结构中一共有三个控制信号,分别是input gate(控制memory cell的开关,只有“开”才会将信息保存至memory中 ) 、forget gate(决定memory cell何时重置清零)、output gate(控制memory cell的开关,只有“开”才会将memory中的信息读取出来)

LSTM的详细计算流程如下图:

字母含义介绍: 

z   输入

z_i “输入”控制信号

z_f “重置”控制信号

z_o “输出”控制信号

a   输出

c  memory中的值——{c}'  memory中更新后的值

g(z)f(z_i)f(z_f)f(z_o)h({c}')都是输入经过激活函数计算后的值 

2、具体步骤

step1 判断“输入门”是否开启

判断式g(z)f(z_i)

如果z_i是零(输入门关闭),那么式子也是零;如果z_i非零(输入门开启),那么式子非零(z不为零)

step2 判断“记忆门”是否开启

判断式cf(z_f)

如果z_f是零(记忆门关闭),那么式子也是零;如果z_f非零(记忆门开启),那么式子非零(c不为零)

step3 叠加记忆或者重置记忆

{c}'=g(z)f(z_i)+cf(z_f)

将step1和step2的两个式子相加得到该input信息在memory中的存储情况。总的来说,memory当中的取值取决于“输入门“控制 和”记忆门“控制二者。 

step4 判断”输出门“是否开启

判断式h({c}')f(z_o)

 如果z_o是零(输出门关闭),那么式子也是零;如果z_o非零(输出门开启),那么式子非零({c}'不为零)

3、举例说明

当{x_1x_2x_3} 的输入信息不断变化的时候,输出的分析如下图:

 

4、原理理解 

LSTM是RNN的一种特殊形式 ,其中的memory就可以看作是neural。一般的network当中,neural相当于一个处理input的function;LSTM中,memory也相当于一个function,只不过需要有4个对应的input。如下图: 

左图中的一个input只会乘以一个权重就放进neural中,右图中可以明显看出,一个input放进hidden layer当中的neural进行计算时,需要分为4个input,所以推测最初input的值应该是一个4维向量。 

然而,现实中的 LSTM会更加的复杂,结构如下图: 

 

每一个的计算都需要:该输入的4个input、上一输入的output、以及memory中存储的值。 

一般LSTM不止一层,会出现多层叠加的情况,如下: 

 

总结 

这周由RNN入手,进而深入学习了LSTM的基本原理和计算流程。接下来,我将学习RNN的另一种特殊形式——GRU,以及RNN所遇到的困难和解决方式。针对上周自注意力机制的学习,我将在后续查漏补缺,更进一步学习底层原理和计算的推导。 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

AT3340:支持BDS/GPS双模授时板数据手册

AT3340采用ATGM331C-5T31授时模块,是高授时精度的BDS/GPS双模接收机板卡,包含32个跟踪通道,支持GPS和BDS的单系统授时定位和双系统联合授时定位,可以通过上位机命令切换。其中的射频前端芯片和基带芯片全部由杭州中科微独立研发&a…

RAG数据集自动构造探索, 附prompt

从文档中手动创建数百个 QA(问题-上下文-答案)样本可能非常耗时且劳动密集。此外,人工生成的问题可能难以达到全面评估所需的复杂程度,最终影响评估的质量。通过使用合成数据生成,开发人员在数据聚合过程中的时间可以减…

嵌入式Linux:常见信号的默认行为

信号是一种软件中断,用于通知进程发生了某种异步事件。信号可以由用户、其他进程或操作系统内核产生。进程可以选择捕获并处理这些信号,或者忽略它们,让系统执行默认操作。 不可靠信号(非实时信号):编号为 …

观测云核心技术解密:eBPF Tracing 实现原理

前言 eBPF 是一种强大的内核技术,允许在内核中安全地执行自定义代码。通过 eBPF,开发者可以在不修改内核源码的情况下,对内核功能进行扩展和监控。eBPF Tracing 利用这一技术,对系统调用、内核函数等进行跟踪,从而实现…

【IPV6从入门到起飞】2-1 获取你的IPV6(手机、CPE等)

【IPV6从入门到起飞】2-1 获取你的IPV6(手机、CPE等) 1 IPV6就在身边2 手机IPV62.1 查看IPV62.2 IPV6 ping包测试2.3 IPV6入站测试 3 电脑通过CPE获取IPV63.1 拉不起宽带的打工人3.2 开始部署IPV6环境3.2.1 刷系统3.2.2 激活IPV63.2.3 设置防火墙入站&am…

JAVA - 关于防重复提交探讨

1、前端提交按钮做单次点击 2、后端接收判断请求的数据包,生成唯一key存redis,设置几秒的过期时间(缺陷:带时间戳的数据,需要做些逻辑判断) 3、后端代码逻辑redis分布式锁(缺陷:re…

P01-Java何谓数组

P01-Java何谓数组 一、数组声明创建 1.1 数组声明的语法 与c有所不同 在Java中,数组声明语法 首选语法: //数据类型[] 数组名称; int[] arr;次选,与c类似 //数据类型 数组名称[]; int arr[];1.2 数组创建语法 与c指针有所相似&#xff0…

从源码开始:打造智能化食堂采购与供应链管理平台

随着食堂规模的扩大和供应链的复杂化,这些问题更加突出。智能化的食堂采购平台可以通过自动化流程、数据分析和智能推荐,显著提高采购效率,减少浪费,并降低运营成本。 要打造这样一个平台,首先需要对食堂的日常运营需…

Python基础语法(多进程开发进程建数据共享进程锁进程池)

Python基础语法文章导航: Python基础(01初识数据类型&变量)Python基础(02条件&循环语句)Python基础(03字符串格式化&运算符&进制&编码)Python基础(04 基础练习…

【MATLAB源码-第259期】基于matlab的64QAM调制解调锁相环环载波同步仿真,对比前后星座图,输出锁相环响应曲线。

操作环境: MATLAB 2022a 1、算法描述 1. 概述 在现代数字通信系统中,为了提高频谱利用率和数据传输效率,经常采用多阶调制技术。64QAM(64阶正交幅度调制)便是其中的一种,它通过将数据映射到64个不同的复…

入门篇 LeetCode算法之旅启程 - 从零开始的编程进阶之路

你是否曾经在技术面试中因为算法题而汗流浃背?是否在日常编码中感觉自己的解决问题能力有待提高? 目录 LeetCode: 你的算法训练场为什么选择LeetCode?LeetCode平台使用指南1. 注册与登录2. 探索题库3. 解题过程4. 提交与反馈5. 学习与讨论6. 追踪进度7. 参与竞赛 制定你的…

【专项刷题】— 哈希表

1、两数之和 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 使用哈希表&#xff0c;将每次x target - nums[i]&#xff0c;查看哈希表中是否含有这个x值代码&#xff1a; public int[] twoSum(int[] nums, int target) {int n nums.length;Map<Integer,Inte…

坐牢第三十四天(c++)

一.作业 1.栈的手写 #include <iostream> using namespace std; // 封装一个栈 class stcak { private:int *data; //int max_size; // 最大容量int top; // 下标 public:// 无参构造函数stcak();// 有参构造函数stcak(int size);// 拷贝构造函数stcak(const s…

0903作业+思维导图

一、作业 1》多态的实现 1、代码 #include <iostream>using namespace std; //父类 class Person { public:string name;int age; public:Person(){}Person(string n,int a):name(n),age(a){}~Person(){}//纯虚函数virtual void show() 0; }; //子类1 class Stu:publ…

wsl下将Ubuntu从c盘移动到其他盘

一、概述 因为自己的C盘内存不足&#xff0c;加上之后需要在Ubuntu下面下载许多的内容和东西&#xff0c;需要将其移动到d盘上面&#xff0c;这样可以拥有更大的空间。这里记载了一下自己的操作过程。 二、具体步骤 &#xff08;一&#xff09;过程 1.查看当前系统中wsl分发版…

Haskell爬虫:连接管理与HTTP请求性能

爬虫技术作为数据抓取的重要手段&#xff0c;其效率和性能直接影响到数据获取的质量与速度。Haskell&#xff0c;作为一种纯函数式编程语言&#xff0c;以其强大的类型系统和并发处理能力&#xff0c;在构建高效爬虫方面展现出独特的优势。本文将探讨在Haskell中如何通过连接管…

技术Leader在训练团队思考力中的核心职责

引言 在技术驱动的行业中&#xff0c;技术团队的创新能力与问题解决能力往往直接关联到项目的成败与企业的竞争力。而这一切的基石&#xff0c;离不开团队中每一个成员的思考力。作为技术团队的领航者&#xff0c;技术Leader在培养和提升团队思考力方面扮演着至关重要的角色。…

【Godot4.3】基于纯绘图函数自定义的线框图控件

概述 同样是来自2023年7月份的一项实验性工作&#xff0c;基于纯绘图函数扩展的一套线框图控件。初期只实现了三个组件&#xff0c;矩形、占位框和垂直滚动条。 本文中的三个控件类已经经过了继承化的修改&#xff0c;使得代码更少。它们的继承关系如下&#xff1a; 源代码 W…

AI智能分析/智慧安防EasyCVR视频汇聚平台新版本(V3.6.0)播放鉴权与播放限制时长的区别介绍

随着科技的飞速发展&#xff0c;视频技术已成为现代社会不可或缺的一部分&#xff0c;广泛应用于安防监控、娱乐传播、在线教育、电商直播等多个领域。EasyCVR视频汇聚平台作为视频技术的佼佼者&#xff0c;不断推陈出新&#xff0c;通过功能更新迭代&#xff0c;为用户提供更加…

WEB服务与虚拟主机/IIS中间件部署

WWW&#xff08;庞大的信息系统&#xff09;是基于客户机/服务器⽅式的信息发现技术和超⽂本技术的综合。网页浏览器//网页服务器 WWW的构建基于三项核⼼技术&#xff1a; HTTP&#xff1a;超文本传输协议&#xff0c;⽤于在Web服务器和客户端之间传输数据。HTML&#xff1a;⽤…