首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >理解短期记忆在符号序列分类中的作用

理解短期记忆在符号序列分类中的作用
EN

Data Science用户
提问于 2022-02-06 12:02:25
回答 1查看 100关注 0票数 1

我想用LSTM神经网络对蛋白质序列根据寄主种类进行分类。例如,我有这些字母序列(玩具示例,只是为了理解):

  • MNTQILVFIACVLIEAKGDKICL属于人类
  • AKGDKICLMNTQILVFIACVLIE属于人类
  • MNTQAKGDKICLILVFIACVLIE属于狗

只有根据子序列的位置,AKGDKICL的序列才不同,我的网络应该学会识别。LSTM网络能够做到这一点吗?

我正试图集中讨论长期短期记忆的意义。来自递归神经网络及其赋权数学简介

递归神经网络(RNN)是一种特殊类型的人工神经网络,适用于时间序列数据或涉及序列的数据。普通的前馈神经网络只适用于相互独立的数据点。然而,如果我们有一个序列中的数据,使得一个数据点依赖于以前的数据点,那么我们需要修改神经网络,以合并这些数据点之间的依赖关系。RNNs有“内存”的概念,它可以帮助它们存储以前输入的状态或信息,从而生成序列的下一个输出。

此外,来自递归神经网络在Python中的应用

递归神经网络(RNN)处理序列--无论是每日股价、句子还是传感器测量--一次只处理一个元素,同时保留先前在序列中出现的内容的记忆(称为状态)。递归是指当前时间步骤的输出变成下一个时间步骤的输入。在序列的每个元素中,模型不仅考虑当前输入,还考虑它对前面元素的记忆。这个内存允许网络在一个序列中学习长期依赖关系,这意味着在进行预测时,它可以考虑整个上下文,无论是句子中的下一个单词,情感分类,还是下一个温度测量。RNN是为了模仿人类处理序列的方式而设计的:我们在形成响应时考虑整个句子,而不是自己的单词。

然后,与受内存衰退影响的简单RNN不同,LSTM的概念是在较长的时间内存储事件(长期内存)。

因此,在我的简单练习中,这是从以下几个方面介绍的:如果我使用keras记号器将每个字母视为标记,我将为每个序列获得一个整数数组,如下所示:

代码语言:javascript
运行
复制
[7, 8, 9, 10, 1, 2, 3, 11, 1, 4, 5, 3, 2, 1, 12, 4, 6, 13, 14, 6, 1, 5, 2]

一旦我将这些符号序列转换成向量,我就可以将它们提供给LSTM网络,该网络能够捕获这些整数(符号)的顺序,并将其保存在内存中,并在必须对下一个序列进行分类时加以考虑。

举个例子,如果我给它几个像上面报道的序列,他能识别出如果子序列AKGDKICL位于序列的末尾或开头,它属于人类,而如果它在中间,它属于狗吗?这是长期短期记忆的意思吗?如果我选择序列中的每个符号作为标记,这是得到的吗?

EN

回答 1

Data Science用户

发布于 2022-02-07 04:10:15

每个问题的解决都从问正确的问题开始,然后寻找合适的解决方案。

根据我对您要解决的问题的理解,这是一个序列分类问题,是的,RNN是您可以遵循的方法之一。我不是蛋白质测序方面的专家,所以我只是想提供一个研究方向。

在应用RNN时,需要考虑两个重要因素:

  1. 标记,即你想要如何分裂你的蛋白质序列。一种方法是将序列分解成单个字符,在我看来,这将为算法学习模式带来不必要的噪音。更重要的是,这是一个基于领域知识的选择。从您的示例来看,您似乎已经对子序列有了先验知识,这应该是创建标记和限制此问题词汇表的方法。
  2. 嵌入,即标记化后蛋白质序列的矢量表示。如果是英语,你可以使用像GloVe这样的预先训练过的单词嵌入,但事实并非如此。我建议您搜索任何现有的基于蛋白质子序列的嵌入,以便为用例创建向量表示。如果没有,那么您可以继续使用令牌矢量化的通用框架之一。
票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/107897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档