Transformer-深度学习-台湾大学李宏毅-课程笔记

news2024/11/13 9:01:11

目录

  • 参考
  • Seq2seq
  • Sequence-to-sequence(Seq2seq)适用任务
    • 语音识别
    • 机器翻译
    • 语音翻译
    • 语音合成
    • 聊天机器人
    • 自然语言处理
    • 硬解任务:文法分析
    • 硬解任务:多标签分类
    • 硬解任务:目标检测
  • Sequence-to-sequence(Seq2seq)
  • Encoder
    • Transformer’s Encoder 原始论文设计
    • Transform’s Encoder 原始论文的设计是否最优?- 不是
  • Decoder
    • Autoregressive(AT)
      • Autoregressive Decoder 如何开始?- “begin”
    • Transformer’s Decoder
      • Transformer’s Encoder Vs Transformer’s Decoder
    • Decoder相比Encoder不同点:
      • masked self-attention vs self-attention
      • Decoder如何决定输出的Sequence的长度(何时停下来)?- “end”
    • Non-autoregressive(NAT)
      • NAT Decoder 如何决定输出的Sequence的长度(Begin个数)?
        • 方法一:classifier
        • 方法二:大于输出上限的begin个数
        • NAT优点
    • 为什么 NAT Decoder 通常比 AT Decoder 的表现差?
  • Encoder与Decoder间如何传递信息?- Cross Attention
    • Cross attention 原理
    • Cross attention 效果展示
  • Training
  • Tips(训练Seq2Seq模型)
    • Copy Mechanism
    • Guided Attention
    • Beam Search
    • Optimizing Evaluation Metrics
  • Exposure Bias

参考

暖焱:【深度学习】05-01-Transformer-李宏毅老师21&22深度学习课程笔记
B站:强烈推荐!台大李宏毅自注意力机制和Transformer详解!

Seq2seq

列举Seq2seq的适用任务。

encoder:输入向量序列,处理,输出向量序列。
Transformer’s Encoder 原始论文设计的结构。
Transformer’s Encoder 原始论文设计的结构并不是最优。

Sequence-to-sequence(Seq2seq)适用任务

输入一个序列,输出一个序列,但是输出序列的长度由模型自己来决定。

下面是Seq2seq的例子。

语音识别

在这里插入图片描述

语音辨识。输入一段声音讯号,经过语音识别,输出N个字符,但是无法得知具体输出的字符个数,所以只能由机器来自主决定输出多少字符。

机器翻译

在这里插入图片描述

机器翻译,输入某一种语言的一句话,经过翻译输出另一种语言的句子,但是输出的字符数是认为确定不了的,这种情况下只能通过机器自主决定。

语音翻译

在这里插入图片描述
台语是不普及的。很多人并不清楚。

在这里插入图片描述

语音翻译。 语音翻译与语音识别不同,考虑一种没有文字的语言(如:台语),输入该语言的语音到机器中,通过机器处理,得到一种人类可以理解的文字。

语音合成

在这里插入图片描述

语音合成:输入一串文字,输出一段语音。

聊天机器人

在这里插入图片描述

聊天机器人:收集对话来进行训练。但是对机器说出“Hi”的时候,机器会回复“Hello!How are you today?”。

自然语言处理

问答系统(Question Answering)

任何自然语言处理的问题都可以看做是QA问题。

在这里插入图片描述
学习更多:

The Natural Language Decathlon: Multitask Learning as Question Answering
LAMOL: LAnguage MOdeling for Lifelong Language Learning

自然语言处理

上述应用,使用客制化模型比使用通用Seq2seq可以得到更好的结果。

有些应用,即使不是Seq2seq模型的问题,仍用Seq2seq的模型处理。例如下面的例子。

硬解任务:文法分析

在这里插入图片描述

文法剖析

论文Grammar as a Foreign Language中,将文法剖析任务看做翻译任务,并且得到了很好的效果。

硬解任务:多标签分类

多标签分类任务(multi-label classification):一个输入对应多个类别。
在这里插入图片描述
多标签分类的处理方法:输入经过Seq2seq模型处理,机器自己决定输出多少个类别。

注意:

  • 多标签分类任务不能使用多分类任务的方法处理,因为输入对应的类别数不同,不能事先规定固定的输出类别数。

多类分类任务(multi-class classification) :是将输入样本分到多个互斥的类别中的一个。换句话说,每个样本只能被分配到一个类别。

处理方法:输入经过处理后输出多个类别的分数,取最高的1个类别为结果输出。

了解更多:

Order-free Learning Alleviating Exposure Bias in Multi-label Classification
Order-Free RNN with Visual Attention for Multi-Label Classification

硬解任务:目标检测

在这里插入图片描述
详细了解:End-to-End Object Detection with Transformers

Sequence-to-sequence(Seq2seq)

内部结构分为两个部分,一个是encoder另一个是decoder。

一个是编码器,一个是解码器。输入一个seq给Encoder, 处理的结果丢给decoder,然后decoder来决定输出一个什么样的seq。

在这里插入图片描述

Seq2Seq最开始是被用在翻译上面,下面是其结构。

在这里插入图片描述
详情了解:Sequence to Sequence Learning with Neural Networks

随着人们对seq2seq的研究越发深入,现在主要应用在transformer上面,结构如下图:
在这里插入图片描述
Transformer的经典论文:Attention Is All You Need

Encoder

Encoder主要工作就是输入一排向量,输出另外一排向量。但是这样子的工作很多模型都可以做到,比如self-attention(自注意力),RNN,CNN。Transform里面用的就是self-attention(自注意力)。

在这里插入图片描述

  1. 输入。
  2. Positional Encoding 位置编码,Self-attention 本身没有位置信息。
  3. 输入block。
  4. 多头注意力。
  5. add & norm。即 residual + layer norm
  6. fully connected network feed forward。
  7. add & norm。即 residual + layer norm。
  8. 输出block。
  9. 可重复多次block。

Transformer’s Encoder 结构如下:

  1. 在inputs的地方加上了positional encoding,之前有讲过如果只用self-attention,没有位置信息,所以需要加上positional的information。
  2. Multi-Head Attention:这里就是self-attention的block,然后专门强调说它是Multi-Head的self-attention。
  3. Add&Norm:residual加上layer normalization。
  4. Feed Forward: 是FC的feed forward network。
  5. N×:block会重复N次。

encoder里面会分成很多的block,每个block都是输入一排向量输出一排向量。

在这里插入图片描述

但是每个block并不是neural network的一层(layer),是因为一个block里面是好几个layer在做事情。

在这里插入图片描述

每个block里面的工作:

  1. 输入一排向量
  2. 经过self-attention处理
  3. 输出一排向量
  4. 再将输出的每个向量丢到fully connected的feed forward network里面
  5. output一排新的vector

Transformer’s Encoder 原始论文设计

原来的Transformer里面的block的结构较复杂。

原先的设计不只是输出一个vector,还要把输出的vector加上它的input得到新的output。这样的network架构叫做residual connection

这种架构在deep learning的领域应用非常的广泛。

[补充:为什么Encoder中要使用residual connection?]

在这里插入图片描述
得到residual 的结果以后在经过norm,这里的norm不是batch normalization,用的是layer normalization。
它做的事情比batch normalization更简单一点,简而言之layer norm就是输入一个向量输出一个向量,不用考虑batch的资讯,过程就是对同一个feature同一个example里面不同的dimension去计算它的mean跟standard deviation(batch normalization 是对不同feature不同example的同一dimension计算mean跟standard deviation),然后在经过标准化就是layer normalization的输出。
这个输出后面是FC的输入,而FC里面也有residual的架构,我们会把FC network的input跟它的output加起来做一下residual得到新的输出,再把这个输出做一次layer normalization得到的才是真正的输出,这个输出才是transform encoder里面一个block的输出。

下图 self-attention 之上,展示了layer norm的过程。

在这里插入图片描述

Bert也使用了Transform的encoder。

Transform’s Encoder 原始论文的设计是否最优?- 不是

例如在On Layer Normalization in the Transformer Architecture这篇论文中,提出将layer norm放入block中。
在这里插入图片描述

PowerNorm: Rethinking Batch Normalization in Transformers这篇论文中,分析回答了为什么transformer encoder中不是batch normalization而是layer nomalization,进而提出transformer encoder中使用power normalization,效果更好。

Decoder

在这里插入图片描述

Autoregressive(AT)

decoder其实有两种,下面介绍Autoregressive de decoder(AT),是通过语音辨识来详细了解它的运作过程。

首先,输入一个声音讯号,经过encoder输出一组vector,然后将这个输出当decoder的输入,最后产生语音辨识的结果。

Autoregressive Decoder 如何开始?- “begin”

Decoder 将 Encoder 的输出读进去。如何开始呢?给一个特殊的符号“BEGIN”。
在这里插入图片描述
如果要处理NLP的问题,每一个token都可以把他用一个One-Hot的Vector(其中一维是1,其他都是0)来表示,所以begin也是用One-Hot Vector来表示。然后decoder吐出一个向量,这个vector的长度非常长,跟vocabulary的size是一样的。

Vocabulary:首先知道decoder输出的单位是什么?

假设是中文的语音辨识,那这里vocabulary的size可能就是中文的方块字的数目。

要是英文的话,用字母数量太少,用单词数量又太多,所以可以用Subword当作英文的单位,即单词的字首字根的组合,数量适中。
在这里插入图片描述
因为在产生输出向量之前,通常会跑出一个Softmax,就跟做分类一样,做分类得到最终的输出前通常会跑一个Softmax, 所以这一个向量里面的分数,它是一个Distrubution,也就是向量对应的值总和为1。

然后输出的向量中的每一个中文的字都会对应一个数值,数值最高的那一个中文字就是最终的输出。
在这里插入图片描述
Decoder将自己的输出作为产生下一个字符的输入,所以,如果上一个输出错误,也会影响下一步的预测
在这里插入图片描述
输出是一个个产生的,串行,只能考虑左边的。

拥有begin和end标志。

Transformer’s Decoder

在这里插入图片描述

Transformer’s Encoder Vs Transformer’s Decoder

在这里插入图片描述
Decoder遮住中间一部分后,Encoder和Decoder没有太大差别。
在这里插入图片描述

Decoder相比Encoder不同点:

masked self-attention vs self-attention

self-attention考虑全部的输入
在这里插入图片描述

在这里插入图片描述

self-attention,如上图,输入一排vector,输出一排vector,这个vector的每一个输出都要看过完整的input之后才做决定,其实输出b1的时候其实是根据a1~a4所有的资讯去输出b1。

masked self-attention:只考虑左边的输入

在这里插入图片描述
在这里插入图片描述

masked self-attention 如上图,当self-attention转成Masked Attention的时候,他的不同点是,不能再看右边的部分,也就是产生b1的时候只能考虑a1的资讯,不能去看a2、a3、a4,产生b2的时候只能考虑a1、a2的资讯,不能考虑a3、a4的资讯,后面类似,最后产生b4时可以考虑a1~a4所有的资讯。这就是Masked的self-attention。
在这里插入图片描述

一开始decoder的运作方式它是一个一个输出的,是先有a1,再有a2,然后是a3、a4,所以当计算b2时是没有a3和a4的,所以没办法将后面的考虑进来。

这跟原来的Self-Attention不一样,原来的Self-Attention中a1到a4是一次整个输入到Model里面的。

Decoder如何决定输出的Sequence的长度(何时停下来)?- “end”

在这里插入图片描述

关键问题:Decoder自己决定输出的长度,但是到底输出的sequence的长度应该是多少呢?也就是机器如何决定该何时停下来。我们没办法决定,因为输出多少是非常复杂的,我们期望机器可以自己学到。

如下图,准备一个特别的符号“断”,用end来表示这个特别的符号,其实begin和end可以用同一个符号,因为begin只在开始时会出现一次。
在这里插入图片描述

机器要自己知道在将自己的输出“习”再次当作输入时,要能够判断出现在应该输出end。

在这里插入图片描述

Non-autoregressive(NAT)

在这里插入图片描述
AT是输入一个begin,输出一个字符,将该字符作为后续的输入,输入一个输出一个,依次产生字符。

NAT是一次性输入全部的begin,然后输出全部的字符。只需一个步骤即可完成句子的生成。

NAT Decoder 如何决定输出的Sequence的长度(Begin个数)?

方法一:classifier

另外取一个classifier,将encoder的input作为classifier的输入,classifier输出一个数字,该数字代表应该要输出的长度。

方法二:大于输出上限的begin个数

输入一堆begin的token,也就是大于输出上限值数量的输入,所以输出一堆的字符,忽略end后面的只取前面的字符。
在这里插入图片描述

NAT优点

(1)平行化(parallel):AT输出时是一个一个产生的,所以要输出100个字的句子,就要做一百次的decoder。但是NAT的decoder不管句子的长度如何,都是一个步骤就产生出完整的句子。速度上NAT的decoder会跑的比AT快。

(2)可以控制输出的长度(controllable output length)。例如语音合成时,如果想要系统讲话快一点,就可以把classfier的output除以二,讲话的速度就会变成二倍速。同理,放慢速度就将输出的长度乘以二。

这个NAT Decoder的想法是在有transformer和self-Attention的decoder以后才有的,因为以前如果用那个LSTM、RNN的话,就算给他一排Begin,也没有办法同时产生全部的输出,所以说在没有self-Attention,只有RNN、LSTM的时候,根本就不会有人想要做什么NAT的decoder。

NAT Decoder 通常比 AT Decoder 的表现差

为什么 NAT Decoder 通常比 AT Decoder 的表现差?

NAT(Non-Autoregressive Transformer)解码器和AT(Autoregressive Transformer)之间的性能差异主要与它们的生成方式和特点有关。

  • 生成方式不同:AT解码器是自回归的,即在生成每个输出时,它依赖于之前已生成的所有输出。而NAT解码器是非自回归的,它可以并行生成所有输出,无需等待先前的输出。这种并行生成的特性使得NAT解码器在生成速度上具有优势,因为不需要等待前一个标记生成完毕。

  • 信息缺失:由于AT解码器的自回归性质,它可以利用已生成的标记来指导下一个标记的生成过程。这种依赖关系使得AT解码器在每个时间步能够捕捉到更多的上下文信息,有利于生成准确的输出。而NAT解码器在并行生成时,无法利用后续生成标记的信息,可能会导致信息缺失和错误的累积。

  • 错误传播:由于NAT解码器的并行生成特性,一个生成错误的标记可能会影响后续标记的生成,导致错误的累积。这是因为NAT解码器无法在生成过程中进行修正。而AT解码器在生成每个标记时都可以进行修正和调整,减少了错误的传播。

Encoder与Decoder间如何传递信息?- Cross Attention

在这里插入图片描述

Cross attention,它是连接Encoder跟Decoder之间的桥梁,从图中可以看出,这个模块的输入部分,有两个箭头来自encoder,一个来自decoder。

在这里插入图片描述

Cross attention 原理

Cross Attention 出现在 Transformer 之前,且 Cross Attention 出现之后才出现了 self-attention。

Cross attention:用Encoder产生的所有的K、V和decoder中的Mask self-attention产生的q分别再做attention计算。

模块Cross attention实际运作过程:

在这里插入图片描述

如上图,decoder就是产生一个q,去encoder那边抽取资讯出来当作接下来decoder里面的Fully-Connected 的Network的Input。具体来说就是,q和 k 1 , k 2 , k 3 k^1,k^2,k^3 k1,k2,k3去计算分数,然后在和 v 1 , v 2 , v 3 v^1,v^2,v^3 v1,v2,v3做Weighted Sum做加权,加起来得到v,然后交给Fully-Connected处理。

在这里插入图片描述
然后持续这个步骤。

Cross attention 效果展示

该效果分析,并不是来自Transformer论文,而是出自论文 Listen, attend and spell: A neural network for large vocabulary conversational speech recognition。

该论文作者在斯坦福大学做了论文介绍。链接

该论文中的模型没有赢过当时最好的语音辨识系统,但是只差一点,该论文证明了Seq2Seq应用在语音辨识系统中似乎是有潜力的。

Cross Attention 出现在 Transformer 之前,且 Cross Attention 出现之后才出现了 self-attention。

在这里插入图片描述

原始论文中,所有Decoder层都是取最后一个Encoder层的输出。但是,并不是一定要这样设计,关于Decoder层如何取Encoder层的输出,可以有不同的设计。
在这里插入图片描述

Training

在这里插入图片描述

如上图,输入一段声音讯号,第一个而应该要输出的中文字是“机”,所以当把begin丢给decoder的时候,它的第一个输出要跟“机”越接近越好,即“机”这个字会被表示成一个One-Hot的Vector,在这个vector里面只有“机”对应的那个维度为1,而decoder的输出是一个Distribution是一个几率的分布,我们希望这个几率的分布跟One-Hot的Vector越接近越好。所以去计算Ground truth和distribution之间的Cross Entropy,希望这个Cross Entropy的值越小越好。
在这里插入图片描述

首先,已经知道输出应该是“机器学习”这四个字,然后告诉decoder它的正确输出应该是“机器学习”这四个中文字的One-Hot Vector,我们希望输出跟这四个字的One-Hot Vector越接近越好,在训练的时候每一个输出都会有一个Cross Entropy,每一个输出跟One-Hot Vector 跟他对应的正确答案都有一个Cross Entropy,最后希望所有的Cross Entropy的总和最小。

现在还有end的问题,机器要输出的不只是四个字,还有一个end,所以要让机器知道输出四个字以后,还要记着输出“断”。所以应该告诉decoder第五个位置的输出应该跟断的One-Hot Vector它的Cross Entropy越小越好。这个就是Decoder的训练。

Teacher forcing:训练时给正确的答案 Ground Truth 作为Decoder的输入。
在这里插入图片描述

这个训练会产生一个问题:训练的时候decoder会得到正确的答案作为输入,但是testing时没有正确答案,这中间显然会有一个Mismatch。

[待补充:如何解决这个Mismatch?]

Tips(训练Seq2Seq模型)

Copy Mechanism

Copy Mechanism,有些信息可以从输入的信息中复制过来,不需要机器生成(例:从文章中复制重要信息训练生成摘要)。

聊天机器人: 比如输入“你好,我是库洛洛”,但是“库洛洛”可能在机器的训练过程中一次都没有出现过。但是机器可以直接复制过来,回复“库洛洛你好,很高兴认识你”。

在这里插入图片描述
文章总结:

在这里插入图片描述
Get To The Point: Summarization with Pointer-Generator Networks

Seq2Seq模型有能力做到上述功能(从输入中复制一部分信息到输出信息中),例如:Pointer Network。
在这里插入图片描述
还有变形Copying network :Incorporating Copying Mechanism in Sequence-to-Sequence Learning

Guided Attention

机器学习可以看做是一个黑盒子,存在发生错误的可能性,例如:语音生成任务(将中文转化为语音)中,读4个发财、3个发财、2个发财都没有问题,但是1个发财时,机器只读“财”没有读“发”,机器漏字。

在这里插入图片描述

机器发生错误的情况,可以使用Guided Attention技术进行修正。

Guided Attention:强制机器看完全部的输入。要求机器去领导这个Attention的过程,要求机器做attention的时候是有固定的方式的,就是让机器以固定的attention模式学习。

在这里插入图片描述

对于语音合成或者语音辨识来说,我们想象中的Attention应该是由左往右的,上图中红色曲线代表Attention的分数,若是语音合成的话,应该先看最左边输入的词去产生声音,再根据中间的词汇去产生声音,最后看右边的词汇产生声音。

但是当你做语音合成时发现机器的读取顺序是颠三倒四的,显然是错的,无法合成出好的结果。而Guided Attention在这里要做的事情就是强迫Attention有一个固定的样貌,将这个必须从左到右的限制放到training里面,要求机器学到Attention就应该从左到右。

有哪些框架可以实现Guided Attention?

Monotonic Attention
Location-aware Attention

Beam Search

在这里插入图片描述

假设现在的decoder只能产生两个字,只能产生两个可能的输出一个是A,另一个为B。那对decoder而言,他做的事情就是在每一次第一个Time Step,在A、B里面决定一个,假如决定A以后将A当作输入在决定A、B要选哪一个,依次向后进行。在这个过程中,每一次Decoder都是选分数最高的那一个,但是有时候刚开始选分数高的,后面还是有可能差下来,还有时候一开始选择分数低点的,后面反而会更好。

有的任务中,树的分支很多,不可能穷举所有路径找到最优路径,可以通过Beam Search这个技术来找一个approximate(不是完全精准的估测的solution)。

Beam Search 是寻找最优路径的一个比较好的方法(有时有用,有时没用,看任务本身,任务目标本事很明确,结果确定的比较有用;有时候decoder有一些随机性比较好,比如语音合成TTS)

现在对于Beam Search的评价有好有坏,在 Sentence complication 任务中,如果使用 Beam Search 会出现严重的问题,机器会不断的产生重复文字。当然了,要看具体的任务需求,若一个任务它的答案非常明确,例如语音识别,有唯一明确的答案,一段语音识别结果只有唯一明确的答案。通常Beam Search就会比较有帮助。如果任务需要机器发挥一点创造力的时候,任务答案不唯一,Beam Search的帮助就会很小,这种任务中需要加入随机性,例如语音合成TTS。

,

Optimizing Evaluation Metrics

接下来有另外一个问题,在作业里面我们用的评估标准是BLEU Score,它是decoder先产生一个完整的句子以后跟正确的答案一整句作比较。是拿两个句子之间作比较才算出BLEU Score。但是在训练时显然不是这样的,训练时每一个词汇是分开考虑的,且Minimize的是Cross Entropy。

为什么不拿两个句子进行比较而是两个字进行比较?
因为两个句子间算BLEU score没有办法做微分,在两个字间进行比较才有办法处理。

Minimize Cross Entropy一定可以Maximizes BLEU Score吗?
不一定,因为这两个仅仅有一点关联,没有那么的直接相关,他们根本就是两个不同的数值。

训练时一般用cross Entropy,而测试时用BLEU Score。

在这里插入图片描述

能不能在 Training 的时候,就考虑 BLEU Score ?
Loss = BLEU Score 乘一个负号,那要 Minimize 那个 Loss 也等於就是 Maximize BLEU Score。

但是这件事实际上没有那麼容易,当然可以把 BLEU Score,当做训练的时候要最大化的一个目标,但是 BLEU Score 本身很复杂,它是不能微分的,之所以采用 Cross Entropy,而且是每一个中文的字分开来算,就是因为这样才有办法处理,如果要计算两个句子之间的 BLEU Score,这一个 Loss根本没有办法做微分,那怎麼办呢?记住一个口诀,遇到 Optimization 无法解决的问题,用 RL 硬 Train 就对了,遇到无法 Optimize 的 Loss Function,把它当做是 RL 的 Reward,把 Decoder 当做是 Agent,它当作是 RL, Reinforcement Learning 的问题硬做。

其实也是有可能可以做的,有人真的这样试过,当然这是一个比较难的做法,并没有特别推荐你在作业里面用这一招。论文:Sequence Level Training with Recurrent Neural Networks

Exposure Bias

训练跟测试居然是不一致的,测试的时候decoder看到的时自己的输出,所以它会看到一些错误的东西,但是在训练的时候decoder看考的是完全正确的,这个不一致的现象叫做Exposure Bias。

在这里插入图片描述

假设decoder在训练的时候永远只看到正确的东西,那么在测试的时候只要有一个错误就会一步错步步错。所以解决这个问题的一个可能的思路是给decoder的输入加入一些错误的东西,这被叫做Scheduled Sampling。但是这一思路可能会伤害到Transformer的平行化的能力。

Scheduled Sampling:在decoder进行训练的时候就给一些噪声(错误数据)。

在这里插入图片描述
Scheduled Sampling for Sequence Prediction with Recurrent Neural Networks
Scheduled Sampling for Transformers
Parallel Scheduled Sampling

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

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

相关文章

《动手学深度学习 Pytorch版》 10.5 多头注意力

多头注意力(multihead attention):用独立学习得到的 h 组不同的线性投影(linear projections)来变换查询、键和值,然后并行地送到注意力汇聚中。最后,将这 h 个注意力汇聚的输出拼接在一起,并且…

0024Java程序设计-毕业论文管理系统的设计与实现

文章目录 **目录**系统设计开发环境 随着高校的规模不断扩大,如何合理地利用教学资源、有效地加强教学管理工作,已成为各大高校关注的焦点。目前,在教学管理方面,特别是在学生学籍管理、成绩管理等方面都普遍采用了网络化管理手段,而对于课程设计这一重要的教学环节,则普遍采用…

暴跌5600亿!台积电没有想到,中国5G手机如此要命

自从国产5G手机上市以来,台积电的股价持续下跌,至今已下跌了蒸发770亿美元(约5600亿元),损失规模居亚洲之首,然而更可怕的是这款手机产生的影响正持续扩大,台积电可能面临生存危机。 一、台积电…

Maven项目用jetty在服务器部署与配置

Maven项目用jetty在服务器部署与配置 零.Jetty在服务器部署配置 0.1 修改jetty的默认端口 修改 $JETTY_HOME/etc/jetty.xml 文件, 将jetty.port的值改为指定自己需要的端口号即可, 默认为8080。 如下图 jetty 9 版本中,修改%JETTY_HOME%…

A股风格因子看板 (2023.10 第12期)

该因子看板跟踪A股风格因子,该因子主要解释沪深两市的市场收益、刻画市场风格趋势的系列风格因子,用以分析市场风格切换、组合风格暴露等。 今日为该因子跟踪第12期,指数组合数据截止日2023-09-30,要点如下 近1年A股风格因子检验统…

贝锐蒲公英推出二层组网功能,实现远程工业设备数据互通、扫描发现

工业物联是目前的发展趋势所在,包含人机互动、状态感知、设备监测、数据交互等应用场景,海量的设备需要实现互联网接入与管理能力。 但是,工业设备往往位于分散在各地的制造工厂或是户外,且不同地区通常使用了不同的网络运营商&am…

windows中毒

一.查看系统账户安全 1.查看服务器是否有弱口令、可疑账号、隐藏账号、克隆账号、远 程管理端口是否对公网开放 2.winr 查看他 二.检查异常端口 进程 查看端口 定位exe程序 3.另一种方法 d盾 火绒剑 xuetr 判断可疑进程 三.检查启动项 计划任务 服务 …

分享5款小而精的实用软件

分享是一种神奇的东西,它使快乐增大,它使悲伤减小。分享好用软件给大家的同时,我自己也能获得愉悦的心情。 1.鼠标点击特效——ClickShow ​ ClickShow是一款给鼠标点击加上特效的软件,可以让用户在点击鼠标时显示一层波纹特效,左键&#x…

ArcGIS中如何为跨带数据投影?

北京54、西安80高斯克吕格投影是我国常用的投影坐标系统,它们是一种分带投影方式,有3和6分带,不适合大范围内的投影使用。但是如果有份数据范围较大,跨越了多个度带,该选择哪个坐标系统进行投影转换呢? 在大范围内,常用的坐标系统有Albers等面积投影和Lambert等角投影,…

【C++面向对象】9. 重载

文章目录 【 1. 函数重载 】【 2. 运算符重载 】2.1 可重载运算符 / 不可重载运算符2.2 一元 运算符重载2.3 二元 运算符重载2.4 关系 运算符重载2.5 输入/输出 运算符重载2.6 和-- 运算符重载2.7 赋值 运算符重载2.8 函数调用() 运算符重载2.9 下标[ ] 运算符重载2.10 类成员访…

众和策略可靠吗?股权除息是好是坏?

可靠 股权除息,指的是公司在股息发放前,将公司股票分拆,以减少股东持有的股份,添加每股的股息金额。简略来说,就是将股份拆成更小的比例,每股股息也随之添加。 股权除息关于股东来说,好坏参半…

YB5302是一款工作于2.7V到6.5V的PFM升压型双节锂电池充电控制集成电路

YB5302 锂电输入升压型双节锂电池充电芯片 概述: YB5302是一款工作于2.7V到6.5V的PFM升压型双节锂电池充电控制集成电路。YB5302采用恒流和准恒压模式(Quasi-CVT™)对电池进行充电管理,内部集成有基准电压源,电感电流检测单元,电池电压检测电…

第二证券:企业债转常规后受理审核进入常态化运行阶段

第一批14单项目获受理 拟征集资金估计超550亿元 14单项目是企业债转常规后第一批受理的项目,标志企业债的受理、审理、发行等作业进入常态化运转阶段,企业债的审理透明度与功率将有用改善 沪深北证券生意所网站10月25日宣布的信息显现,14单…

CAN接口的PCB Layout规则要求汇总

随着时代高速发展,控制器局域网(CAN)接口的应用越来越广泛,尤其是在汽车电子、航空航天等领域中发挥着重要作用,为了确保CAN接口的可靠性和稳定性,工程师必须在其PCB Layout方面下功夫,下面来看…

酷开科技 | 酷开系统时时刻刻相伴你左右

作家张小娴曾说过一句话:陪伴,是最长情的告白。每个人都需要别人的陪伴,每个人也都要陪伴别人。无论是亲情、友情还是爱情,陪伴永远是这世间一切感情中最不可或缺的一部分。同样,酷开系统通过各种功能及大内容战略陪伴…

绩效考核有什么好处?除了考核员工外?

绩效考核的真正作用,根本不在”考核员工“!绩效考核的真正作用只有一个—— 辅助企业经营目标的达成。 只不过是因为企业想到达成这个经营目标,光靠老板是不可能的,必须靠”员工“,所以说考核员工只是手段&#xff0…

ITSS信息技术服务运行维护标准符合性证书申请详解及流程

ITSS信息技术服务运行维护标准符合性证书 认证介绍 ITSS(InformationTechnologyServiceStandards,信息技术服务标准,简称ITSS)是一套成体系和综合配套的信息技术服务标准库,全面规范了IT服务产品及其组成要素,用于指导实施标准化…

【文件加密软件】文字+视频超详细解析

文件加密软件是一种用于保护文件安全的工具,可以有效地防止未经授权的访问和数据泄露。随着信息化的不断发展,文件加密软件已成为企业和个人不可或缺的安全保障之一。 一、需求分析 文件加密软件的需求主要包括功能、性能和易用性等方面。 1、软件应具…

「实用技巧」后端如何使用 Eolink Apikit 快速调试接口?

程序员最讨厌的两件事: 写文档 别人不写文档 写文档、维护文档比较麻烦,而且费时,还会经常出现 API 更新了,但文档还是旧的,各种同步不一致的情况,从而耽搁彼此的时间,大多数开发人员不愿意写…

PDF编辑工具Acrobat Pro DC 2023中文

Acrobat Pro DC 2023是一款全面、高效的PDF编辑和管理软件。它提供了丰富的PDF编辑功能,如创建、编辑、合并、分割、压缩、旋转、裁剪等,让用户可以轻松处理各种PDF文档。同时,该软件还具有智能的PDF处理技术,可以自动识别和修复P…