1.循环神经网络的特点
x1——>y1的同时会产生a1,它包含了我们第一列处理信息的一些特点,然后这个a1就会被传送到y2上去,那么x2——>y2的序列中就会包含前一个的特点,依次类推,这就是我们的RNN结构**(前面的信息经过处理后,会作为一个新的输入作为后面信息的输入)**。
用公式表明:
2.RNN具体是怎么样实现的
1、得到语句对应的灰度数值
2、如何将词汇进行数值化:建立一个词汇-数值一一对应的字典。
第几个单词是人民,那么第几行为1,否则为0(多少个单词会被转换成n行1列)
2、计算损失函数
字典生成的第二种方式:
但是这种要求很高,需要理解单词的本意。
3.三种编码方式
在分类问题种,我们需要将样本的标签转为计算机能够理解的形式。
1.标签编码:
一般用于处理A,B,C没有关系的类别,方式简单,不过容易被计算机错误理解为A,B,C类的权重
2.序号编码:
序号编码和标签编码不太一样,每个类别分配一个数字,但是数字的话是存在一定的顺序关系的,一般处理优、良、差这种类别
3.one-hot编码:
在自然语言处理(NLP)中,英文到中文的翻译任务通常需要将单词或字符映射到数字表示形式。为了实现这种映射,可以使用one-hot编码。One-hot编码是一种表示离散变量的方法,其中每个变量被表示为一个长度等于词汇表大小的向量(或矩阵)。在英文到中文的翻译任务中,词汇表是指所有可能的英文单词。每个单词在词汇表中都有一个唯一的索引,可以使用这个索引来创建对应的one-hot编码。One-hot编码的原理很简单。假设词汇表中有n个单词,那么每个单词就可以表示为一个长度为n的向量,其中只有一个元素为1,其他元素都为0。这个元素的位置对应于该单词在词汇表中的索引。通过这种方式,每个单词都可以用一个唯一的向量表示。使用one-hot编码的好处是它能够保留变量之间的独立性。每个单词的编码都是互相独立的,没有直接的数值关系。这对于NLP任务中的分类、聚类等算法非常有用。然而,使用one-hot编码也存在一些限制。由于词汇表通常非常大,导致生成的向量维度也非常高。这会增加计算和存储的复杂性。此外,one-hot编码无法捕捉到词语之间的语义相似性,因为所有的单词都被视为彼此不同的离散值。总而言之,one-hot编码在英文到中文的翻译任务中被广泛使用,因为它是一种简单而有效的表示方法,可以将离散的英文单词映射到数字形式,方便进行后续的处理和分析。
4.不同的RNN模型
4.1多输入对多输出
i=j,语言翻译
4.2多输入单输出的RNN结构
场景示例:根据小明说的话判断他是正面情绪还是负面情绪。
4.3单输入对多输出的RNN结构
x1生成y1后,y1作为新的输入进入下一个序列生成y2,依次类推生成yi(文章生成,音乐生成)
5.普通RNN的结构缺陷:
当前边的序列信息传递到后部的时候,信息权重下降,导致重要信息丢失。
每一层反馈的梯度越来越小,距离越来越远,信息权重越来越低,可能损失函数就求解不出来了
6.LSTM(长短期记忆网络)解决普通的RNN结构问题
增加记忆细胞ci,可以传递前部远处部位信息。
1.LSTM的结构
LSTM主要分为忘记门、更新门、输出门。
忘记门:选择性丢弃ai-1和xi中不重要的信息(比如The student,这个The就丢掉了)。
更新门:给记忆细胞添加哪些重要信息,比如student就添加到ci-1中了。
输出门:筛选出需要输出的信息。
目的: 解决在网络结构很深的情况下,也能保留重要信息,解决了普通RNN求解过程中梯度消失的问题。
7.BRNN(双向循环神经网络)
**BRNN:**会从flare进行双向判断,往前的时候,也会将后续的序列信息考虑在内,比如Flare Zhao,这是一个大写的,后面 and David Chen又是一个大写的根据后的David Chen判断得出Flare是人名,
如何做的呢?
后面的xi结合di与前面的ai生成yi,同时di会给到前面序列提供生成yi-1.
9.DRNN(深层循环神经网络)
将单层的RNN叠加起来,然后和MLP结合起来,比如加一个隐藏层,所以耗时较长。