本文主要是介绍【Python机器学习】卷积神经网络(CNN)——语义理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
无论是人类还是机器,理解隐藏在文字背后的意图,对于倾听者或阅读者来说的,都是一项重要的技能。除了理解单个词的含义,词之间还有各种各样巧妙的组合方式。
词的性质和奥妙与词之间的关系密切相关。这种关系至少有两种表达方式:
- 词序
- 词的临近度
这些关系的模式以及词本身存在的模式可以从两个方面来表示:空间和时间。两者的区别主要是:对于前者,要像在书页上的句子那样来处理——在文字的位置上寻找关系;对于后者,要像说话那样处理——词和字母变成了时间序列数据。这两者是密切相关的,但是它们标志着神经网络处理方式的一个关键区别。空间数据通常通过固定宽度的窗口来查看,而时间序列则可以对于未知的时间无限延展。
基本的前馈网络(多层感知机)能够从数据中提取模式,这些模式来自与权重相关的输入片段,但它无法捕捉到词条在空间或时间上的关系。不过前馈网络只是神经网络结构的开端部分,目前,自然语言处理领域中两个最重要的模型是卷积神经网络和循环神经网络,以及它们的各种变体。
下图中,对神经网络输入词传入3个词条。每个输入层神经元都与隐藏层神经元全连接,并各自具有不同的权重:
如果将这些词条的顺序修改并将其传入网络中,不出意料会得到一个不同的结果。因此要记住,每个输入位置与每个神经元都有一个特定的对应权重。
因为词条同事出现在一个样本中的不同位置,所以前馈网络可以学习词条之间的一些特定关系,但是看见很容易看出:对于5个、10个或50个词条的长句子(每个位置上都汉欧所有可能的词对、三元组等),这会称为一个棘手的问题
这篇关于【Python机器学习】卷积神经网络(CNN)——语义理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!