金融分析-Transformer模型(基础理论)

Transformer模型

1.基本原理

transformer的core是注意力机制,其本质就是编码器-解码器。他可以通过多个编码器进行编码,再把编码完的结果输出给解码器进行解码,然后得到最终的output。

1.1·编码器

数据在编码器中会经过一个self-attention的模块进行加权,之后得到一个特征象征Z。

Z的计算公式如下(z=Attention(Q,K,V)):

然后接着我们会进入到编码器的下一个模块---一个拥有两层全连接层的前馈神经网络(他的第一层激活函数是ReLU,第二层激活函数是一个线性激活函数,如下

FFN(Z)= max ( 0, ZW1 + b1 ) W2 + b2

)。

1.2·解码器

在解码器中它多了一个encoder-decoder Attention,两个Attention分别用于计算输入和输出的权值。

encoder-decoder Attention:我正在测试的股价和特征向量之间的关系。

在encoder-decoder attention中, Q 来自于解码器的上一个输出,K 和 V 则来自于与编码器的输出。如图

mask:是指掩码,指把某些值更新使其在参数更新时不产生效果。mask包括padding mask 和 sequence mask。

Padding Mask:(填充加忽略)每个批次输入序列长度是不一样,需要进行对齐。给较短的序列后面填充 0,对于太长的序列,截取左边的内容,把多余的直接舍弃。这些填充的位置加上一个非常大的负数(负无穷),这样的话,经过 softmax,这些位置的概率就会接近0。

Padding mask 通常是一个与输入序列形状相同的张量,其中的每个值都是一个布尔值(Boolean)。具体来说:

  • True:表示该位置是实际的输入数据。

  • False:表示该位置是填充的部分。

  • 为了屏蔽填充部分,padding mask 会被应用到 QK^TQKT 的结果上,具体操作如下:

    masked_attention_scores=attention_scores+padding_mask

    其中,padding mask 是一个与 attention scores 形状相同的张量,填充部分的值为负无穷(如 −∞),而实际输入部分的值为 0。这样,在经过 softmax 操作后,填充部分的权重会接近于零,从而被忽略。

Sequence mask:在序列建模任务中,特别是在自回归模型(如咱们这个Transformer中的解码器)中,模型需要逐个时间步生成输出。为了防止模型在生成当前时间步的输出时“看到”未来的信息,需要使用 sequence mask 来屏蔽未来时间步的信息。

Decoder的输出是浮点数的向量列表。把得到的向量映射为需要的词,需要线性层和softmax层获取预测为词的概率。

线性层是一个简单的全连接神经网络,它是由Decoder堆栈产生的向量投影到一个更大,更大的向量中,称为对数向量

假设实验中我们的模型从训练数据集上总共学习到十万个股价数据("output")这对应的Logits矢量也有十万个长度(每一段表示了一个唯一股价的得分)。在线性层之后是一个softmax层,softmax将这些分数转换为概率。选取概率最高的索引,然后通过这个索引找到对应的股价作为输出。

1.3·self-Attention

self-Attention :这个在我们的金融分析中可以理解为已经测试过的股价和现在正在测试印证的股价之间的关系。

其核心内容是为输入向量每个内容学习一个权重,比如说我输入了上海电气,三年来的1000多个股价数据作为输入向量。那么我的每一天的这个股价就可以学习到一个权重。而且每个股价的权重是由三个不同的向量组成的,分别是Query向量( Q ),Key向量( K)和Value向量( V ),长度均是64。它们是通过3个不同的权值矩阵由嵌入向量 X 乘以三个不同的权值矩阵 WQ,WK ,WV 得到,其中三个矩阵的尺寸也是相同的,均是 512*64。示例如下:

1.嵌入:首先是把输入转换成嵌入向量的X(带有位置编码)。

2.qkv向量:其次我们计算嵌入向量的 qkv三个向量值。

3.注意力打分(即本元素与全部元素间的关联性):接着计算score,对score进行归一化(除以K的维度平方根,及公式中的√dk)。

4.归一化:对score施以softmax激活函数,使得最后的列表和为1(softmax1+softmax2+...+softmaxn=1)

softmax的值表示其在整个向量中的表示程度。

5.加权求和:softmax点乘Value值 v ,得到加权的每个输入向量的评分v,最终求和,生成self-attention层的输出。

计算流程:

但是对于我们金融分析来说,我们并不需要十分了解self-Attention的底层逻辑,那么我把它的底层逻辑换算成简单的原理来解释一下。就是来计算每个数据和其他所有数据之间的关系。比如说我要分析360的股市,那么它有很多概念,网络游戏,AI语料,虚拟数字人,软件服务,信息安全等。(这里我们把360本身去除,为了方便例子理解)那么它的处理流程就可以简化为下图(其中的数字占比表示为自注意机制所得出的两者关系):

与上同理我们这里面所有的输入数据都会进行这一样的计算。

1.4.Multi-Head Attention(h个self-Attention的集合)

1.先把输入数据x输入到h个self-Attention中

得到特征矩阵Zi,i∈{1,2,..,h}

2.把h个特征矩阵Zi,i∈{1,2,..,h}按列向量拼成

一个大的特征矩阵(也可以通过前馈神经网络把

所有特征矩阵降为一个特征矩阵Z)

3.最后进行一层全链接得到z

1.5.Positional Encoding

在介绍Positional Encoding前必须先介绍Embedding,这是在输入的序列被送入编码器前发生,会在每个元素原始数据中嵌入一个数字,使所有元素的嵌入数组组成数字序列,最后嵌入层再把数字序列映射成嵌入向量。

由于模型没有Recurrence/Convolution,因此是无法捕捉到序列顺序信息的,为了使用序列的顺序信息,需要将tokens的相对以及绝对位置信息注入到模型中去。

transformer给encoder层和decoder层的输入添加了一个额外的向量Positional Encoding,维度和embedding(embedding是将这些离散的符号转换为连续的向量表示,从而使得模型能够处理这些符号,并捕捉它们之间的语义关系。)的维度一样,这个向量能决定当前元素的位置,或者说在一个输入矩阵中不同的元素之间的距离。这样,模型可以区分序列中不同位置的元素,从而更好地捕捉序列的顺序信息,计算方法如下

其中pos是指当前元素在输入数据中的位置,i是指向量中每个值的index,偶数位置,使用正弦编码,奇数位置,使用余弦编码dmodel 是词嵌入的维度。最后把这个Positional Encoding与embedding的值加,作为输入送到下一层。

1.6.残差模块与normalization

在transformer中,每一个子层(self-attetion,ffnn)之后都会接一个残差模块,并且有一个Layer normalization;

2个编码器与解码器的例子如下:

那为什么要引入残差呢?因为随着网络深度的增加,训练变得愈加困难,在基于随机梯度下降的网络训练过程中,误差信号的多层反向传播非常容易引发“梯度弥散”(梯度过小会使回传的训练误差信号极其微弱)或者“梯度爆炸”(梯度过大导致模型出现NaN)的现象。而残差的引入就能极大改善这个问题。

残差模块:y=F(x,w)+x 高速公路网络的“变换门”和“携带门”都为恒等映射时(即令T=1,C=1T=1,C=1),就得到了残差网络

  • xx 是输入。

  • F(x, w)F(x,w) 是网络中的一部分,通常是一个或多个卷积层。

  • yy 是输出。

F(x,w) 表示的是网络的“变换”部分,而 x 则是“携带”部分。当“变换门”和“携带门”都为恒等映射时(即 T = 1 和 C = 1),公式简化为:

y = x + F(x, w)

残差网络的核心思想是通过引入“跳跃连接”(skip connection)(跳跃连接允许输入x直接传递到输出,而不经过中间的变换层。这种设计使得网络可以学习到输入和输出之间的残差,而不是整个映射。),使得网络可以直接学习输入和输出之间的残差(即 F(x, w)),而不是直接学习输出。

在引入残差网络后,还需要对网络层输出的数据进行再归一化,来减小反向传播的偏差,这里我们使用layer normalization(归一化数据的一种方式,不过 LN 是在每一个样本上计算均值和方差,而每一个特征维度上进行归一化)。

参考文献:

https://blog.csdn.net/weixin_44695969/article/details/102997574 

https://blog.csdn.net/jiaowoshouzi/article/details/89073944 

https://blog.csdn.net/qq_41664845/article/details/84969266 

https://zhuanlan.zhihu.com/p/139595546 

http://jalammar.github.io/illustrated-transformer

https://zhuanlan.zhihu.com/p/48508221 

https://zhuanlan.zhihu.com/p/60821628 

https://blog.csdn.net/u013069552/article/details/108074349

https://blog.csdn.net/chen_yiwei/article/details/88671959

https://blog.csdn.net/li15006474642/article/details/104391202

https://blog.csdn.net/weixin_42035282/article/details/138375831

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

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

相关文章

创建vue3项目步骤以及安装第三方插件步骤【保姆级教程】

🎙座右铭:得之坦然,失之淡然。 💎擅长领域:前端 是的,我需要您的: 🧡点赞❤️关注💙收藏💛 是我持续下去的动力! 目录 一. 简单汇总一下创建…

大模型底座 Transformer 的核心技术解析

1. 引言 说明目标 在深度学习领域,Transformer架构已成为近年来最重要的技术突破之一。它最早由Vaswani等人在2017年的论文《Attention is All You Need》中提出,迅速成为自然语言处理(NLP)和其他序列建模任务的核心工具。传统方法…

利用git上传项目到GitHub

GitHub是基于git实现的代码托管。git是目前最好用的版本控制系统了,非常受欢迎,比之svn更好。 GitHub可以免费使用,并且快速稳定。 利用GitHub,你可以将项目存档,与其他人分享交流,并让其他开发者帮助你一…

联网功耗电流波形

飞行模式下,Wifi 可连接或不可连接的条件对比: 1. 基电流为 3.5 mA 的环境下, 网络不可连接时,会产生一个持续0.72s,平均电流为 54.8 mA 的电流波形 2. 基电流为 6.8 mA 的环境下, 网络可连接时,会产生一个持续4.64s,平均电流为 73.63 mA 的电流波形 …

【Sql优化】数据库优化方法、Explain使用

文章目录 一、金字塔优化模型二、SQL优化的利器:Explain工具1. Explain 的作用2. Explain 的用法 三、SQL优化方法(后续文章细讲)1. 创建索引减少扫描量2. 调整索引减少计算量3. 索引覆盖4. 干预执行计划5. SQL改写 四、通过 Explain 优化案例…

从〇开始深度学习(番外)——下载包

从〇开始深度学习(番外)——下载包 文章目录 从〇开始深度学习(番外)——下载包写在前面正文 写在前面 《从〇开始深度学习(番外)》系列主要记录一些细碎知识点和技能,与主线并不冲突。如果主线笔记中用得到番外篇的知识或技能,会…

Stream– ESP8266物联网应用,(客户端向服务器发送数据信息 客户端向服务器请求数据信息)

Stream– ESP8266物联网应用 Stream对于ESP8266-Arduino语言来说指的是数据序列。请留意:在C编程中Stream常被翻译作“流”。我们认为将Stream称为数据序列更加直观。因为数据序列这一概念有两个很关键特点。 第一个特点是“序”,即数据序列不能是杂乱…

ubantu安装Mysql

官方文档 MySQL :: MySQL 8.4 Reference Manual :: 2.5.2 Installing MySQL on Linux Using the MySQL APT Repository 1、下载发布包 下载之后就是如下文件,直接拖拽到shell上(如果没有安装rz,需要先安装rz) ll命令查看 2、安装…

i18n数据自动转化工具

效果&#xff1a; 代码&#xff1a; <template><div id"app"><buttonstyle"margin-top: 20px;width: 100px;height: 50px;background-color: #41b883;color: #fff;border: none;border-radius: 4px;font-size: 16px;"click"handleCli…

【经验分享】搭建本地训练环境知识点及方法

最近忙于备考没关注&#xff0c;有次点进某小黄鱼发现首页出现了我的笔记还被人收费了 虽然我也卖了一些资源&#xff0c;但我以交流、交换为主&#xff0c;笔记都是免费给别人看的 由于当时刚刚接触写的并不成熟&#xff0c;为了避免更多人花没必要的钱&#xff0c;所以决定公…

【html网页页面012】html+css制作品牌主题宏宝莱网页含视频、留言表单(7页面附效果及源码)

品牌主题宏宝莱网页制作 &#x1f964;1、写在前面&#x1f367;2、涉及知识&#x1f333;3、网页效果完整效果(7页)&#xff1a;代码目录结构&#xff1a;page1、首页page2、衍生品page3、包装设计page4、视频介绍page5、留言板page6、联系我们page7、详情页&#xff08;三层页…

CSS|08 浮动清除浮动

浮动 需求: 能够实现让多个元素排在同一行&#xff0c;并且给这些元素设置宽度与高度! 让多个元素排在同一行:行内元素的特性 给这些元素设置宽高:块级元素的特性 在标准文档流中的元素只有两种:块级元素和行内元素。如果想让一些元素既要有块级元素的特点也要有行内元素的特…

生活小妙招之UE CaptureRT改

需求&#xff0c;四个不同的相机拍摄结果同屏分屏显示 一般的想法是四个Capture拍四张RT&#xff0c;然后最后在面片/UI上组合。这样的开销是创建4张RT&#xff0c;材质中采样4次RT。 以更省的角度&#xff0c;想要对以上流程做优化&#xff0c;4个相机拍摄是必须的&#xff…

【从零开始入门unity游戏开发之——C#篇01】理论开篇,理解什么是编程

文章目录 前言前置条件进制什么是十进制、二进制二进制有什么用&#xff1f;为什么计算机用二进制而不用十进制&#xff1f;二进制转十进制十进制转二进制二进制运算 计算机中的数据存储单位什么是编程&#xff1f;什么是代码&#xff1f;什么是编程语言&#xff1f;常见的编程…

主流webgl 引擎 glsl 如何升级webgpu为 wgsl?

0、背景 SPIR-V、GLSL 和 WGSL 是三种不同的着色语言或中间表示形式&#xff0c;它们在现代图形编程中的关系如下&#xff1a; 1、playcanvas 方案: glsl 转 SPIR-V 转 wgsl 调研版本: "version": "2.4.0-dev"webgpu-shader.js transpile(src, shader…

快速部署一套K8s集群-v1.28

快速部署一套K8s集群-v1.28 1.前置知识点 1.1 生产环境可部署Kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式: kubeadmKubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。 二进制包从github下载发行版的二进…

04、GC基础知识

JVM程序在跑起来之后&#xff0c;在数据的交互过程中&#xff0c;就会有一些数据是过期不用的&#xff0c;这些数据可以看做是垃圾&#xff0c;JVM中&#xff0c;这些垃圾是不用开发者管的&#xff0c;它自己会有一套垃圾回收系统自动回收这些内存垃圾&#xff0c;以备后面继续…

深圳国威HB1910数字IP程控交换机 generate.php 远程命令执行漏洞复现

0x01 产品描述: 深圳国威主营国威模拟、数字、IP 交换机、语音网关、IP 电话机及各种电话机。深圳国威电子有限公司HB1910是一款功能强大的网络通信设备,适用于各种企业通信需求。 0x02 漏洞描述: 深圳国威电子有限公司HB1910数字IP程控交换机generate.php存在远程命令执行…

spring学习(spring的IoC思想、spring容器、spring配置文件、依赖注入(DI)、BeanProxy机制(AOP))

目录 一、spring-IoC。 &#xff08;1&#xff09;spring框架。(诞生原因及核心思想) 1、为什么叫框架&#xff1f; 2、spring框架诞生的技术背景。 &#xff08;2&#xff09;控制反转&#xff08;IoC&#xff09;。 &#xff08;3&#xff09;spring的Bean工厂和IoC容器。 &a…

深度学习camp-第J4周:ResNet与DenseNet结合探索

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 本周任务&#xff1a; 探索ResNet和DenseNet的结合可能性本周任务较难&#xff0c;我们在chatGPT的帮助下完成 一、网络的构建 设计一种结合 ResNet 和 Den…