Advertisement

SimGNN的PyTorch实现:用于快速图相似度计算的神经网络方法(发表于WSDM 2019)

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本文介绍了SimGNN在PyTorch框架下的实现,这是一种基于神经网络的方法,能够高效地进行图结构数据间的相似性计算,并被收录于WSDM 2019会议。 SimGNN的PyTorch实现:一种用于快速图相似度计算的神经网络方法(WSDM 2019)。摘要中的图形相似性搜索是基于图形应用的重要组成部分,例如查找与查询化合物最接近的类似物。 图形相似度/距离计算,如图编辑距离(GED)和最大公共子图(MCS),在图形相似性搜索和其他许多应用程序中起着核心作用,但实际上进行这些计算的成本非常高昂。受到神经网络方法最近在几种图形应用(例如节点或整个图像分类)中的成功启发,我们提出了一种新颖的基于神经网络的方法来解决这一经典且具有挑战性的图问题,旨在减轻计算负担同时保持良好的性能。该提议的方法称为SimGNN,并结合了两种策略:首先……

全部评论 (0)

还没有任何评论哟~
客服
客服
  • SimGNNPyTorchWSDM 2019
    优质
    本文介绍了SimGNN在PyTorch框架下的实现,这是一种基于神经网络的方法,能够高效地进行图结构数据间的相似性计算,并被收录于WSDM 2019会议。 SimGNN的PyTorch实现:一种用于快速图相似度计算的神经网络方法(WSDM 2019)。摘要中的图形相似性搜索是基于图形应用的重要组成部分,例如查找与查询化合物最接近的类似物。 图形相似度/距离计算,如图编辑距离(GED)和最大公共子图(MCS),在图形相似性搜索和其他许多应用程序中起着核心作用,但实际上进行这些计算的成本非常高昂。受到神经网络方法最近在几种图形应用(例如节点或整个图像分类)中的成功启发,我们提出了一种新颖的基于神经网络的方法来解决这一经典且具有挑战性的图问题,旨在减轻计算负担同时保持良好的性能。该提议的方法称为SimGNN,并结合了两种策略:首先……
  • Siamese-pytorch性比较孪生
    优质
    Siamese-pytorch是一款基于PyTorch框架构建的开源工具包,专门用于开发和研究图像相似度对比任务中的孪生神经网络模型。 该仓库实现了孪生神经网络(Siamese network),用于检测输入的两张图片之间的相似性。主干特征提取网络采用的是VGG16模型。所需环境为torch==1.2.0。 需要注意,训练Omniglot数据集和自定义数据集时需要使用两种不同的格式,请确保文件摆放正确。 对于训练所需的vgg16-397923af.pth权重文件可以在网盘中下载(具体链接信息未提供)。我将提供两个预训练模型的权重:一个是用于Omniglot数据集训练好的Omniglot_vgg.pth,可以直接使用进行预测;另一个是通用VGG16网络权重vgg16-397923af.pth,可用于其他数据集的训练。 预测步骤如下: a. 使用预训练模型进行。
  • (GNN) WSDM 2020.zip
    优质
    这段资料包包含了关于图神经网络(GNN)的相关研究内容,具体聚焦于2020年WSDM会议上的论文和资源。适合对图论和深度学习结合感兴趣的学者和技术人员研究使用。 第13届国际互联网搜索与数据挖掘会议(WSDM 2020)将于2020年2月3日至7日在美国休斯敦召开。该会议由CCF推荐,属于B类国际学术会议,并且得到了SIGIR、SIGKDD、SIGMOD和SIGWEB四个专委会的支持。在互联网搜索与数据挖掘领域内,WSDM享有较高的学术声誉。此次会议上共收到了615篇长文投稿,最终仅91篇文章被录用,录取率约为15%。
  • CapsGNN: PyTorch“胶囊(ICLR 2019
    优质
    CapsGNN是基于PyTorch框架实现的一种新型模型,结合了胶囊网络和图神经网络的优势,适用于处理图结构数据,已在ICLR 2019会议上展示。 CapsGNN 是一种基于胶囊图神经网络的PyTorch实现(ICLR 2019)。从图神经网络(GNN)学习到的高质量节点嵌入技术已被广泛应用在基于节点的应用程序中,并且一些应用已经达到了最先进的性能水平。然而,当使用从GNN学习得到的节点嵌入来生成图形嵌入时,简单的标量表示可能不足以有效保留节点或整个图的重要属性,导致次优的结果。 受到胶囊神经网络(CapsNet)的启发,我们提出了胶囊图神经网络(CapsGNN),利用了胶囊的概念以解决现有基于GNN的方法中的不足。通过采用胶囊形式来提取节点特征,并使用路由机制在图形级别上捕获重要信息,我们的模型能够为每个图生成多个嵌入。
  • Keras和孪生
    优质
    本研究提出了一种利用Keras框架下的孪生神经网络模型来评估图像间相似性的创新方法,旨在提高大规模图像数据库中快速准确地检索相关图片的能力。 本段落将探讨如何使用Keras框架构建基于孪生网络(Siamese Network)的图片相似度计算方法。孪生网络是一种深度学习模型,在解决图像匹配和识别问题上非常有效,尤其是在判断两张图片是否相似时表现突出。通过训练这种网络结构,我们可以获得一种量化不同图像之间相似性的手段。 首先我们要了解孪生网络的基本构成:它由两个共享权重的神经网络分支组成,这两个分支分别处理一对输入图像,并且它们会经历相同的层进行前向传播过程。最终比较这两张图片经过相同卷积操作后得到的不同特征表示以判断其相似性,通常采用欧氏距离或余弦相似度等方法来计算这种差异。 在Keras中实现孪生网络的步骤如下: 1. **定义输入层**:使用`Input`函数创建两个输入层,分别对应于孪生网络中的两张图像。 ```python input_a = Input(shape=(img_height, img_width, img_channels)) input_b = Input(shape=(img_height, img_width, img_channels)) ``` 2. **构建共享的卷积神经网络结构**:可以使用预训练模型如VGG16、ResNet,也可以定义自己的网络。这里我们采用简单的层结构: ```python def create_network(): base_model = ... # 定义你的网络结构 return base_model base_model = create_network() encoded_a = base_model(input_a) encoded_b = base_model(input_b) ``` 3. **计算相似度**:使用L1或L2距离等方法来衡量两个特征向量的差异性。这里我们选择用L2距离: ```python distance_layer = Lambda(lambda tensors: K.abs(tensors[0] - tensors[1])) similarity = distance_layer([encoded_a, encoded_b]) ``` 4. **定义损失函数**:孪生网络通常使用对比损失或Hinge Loss,此处采用后者: ```python def hinge_loss(y_true, y_pred): return K.maximum(1 - y_true * y_pred, 0) model = Model(inputs=[input_a, input_b], outputs=similarity) model.compile(loss=hinge_loss, optimizer=SGD(lr=0.001, momentum=0.9)) ``` 5. **加载数据**:准备一对图像作为训练样本。`load_data`函数用于生成正负样本: ```python def load_data(seq_names, data_number, seq_len): ... # 生成正样本和负样本 ... train_data = [train_data1, train_data2] train_labels = train_lab return train_data, train_labels ``` 6. **训练网络**:使用准备好的数据对模型进行训练: ```python train_data, train_labels = load_data(train_names, num_samples, seq_len) model.fit(train_data, train_labels, batch_size=32, epochs=10) ``` 完成上述步骤后,我们就可以利用该模型来计算任意两幅图像之间的相似度。只需将它们输入到网络中并获取输出的得分即可,在新的图片集中找到与给定图片最接近或类似的样本变得非常简单和高效。 总结来说,基于Keras框架构建的孪生网络提供了一种有效的方法来量化不同图像间的相似性程度,并且通过深度学习的能力提取高级特征后进行比较判断。经过适当的训练调整之后可以建立一个既准确又高效的图片相似度计算模型,这对于诸如图像检索、人脸识别和视频分析等领域具有重要的应用价值。
  • 使PyTorch分类
    优质
    本项目利用PyTorch框架构建并训练神经网络模型,旨在高效地进行数据分类任务。通过实验不同架构和优化策略,探索提高分类准确性的有效途径。 今天为大家分享一篇关于使用Pytorch实现神经网络分类方法的文章,希望能为读者提供有价值的参考。让我们一起来看看吧。
  • EGNN-PyTorch:基PyTorchE(n)等价
    优质
    简介:EGNN-PyTorch是一款采用PyTorch框架开发的库,专门用于实现具有平移和旋转不变性的E(n)等价图神经网络,适用于物理系统、分子动力学及材料科学等领域。 EGNN-Pytorch(WIP)中的实现最终可用于Alphafold2的复制。安装方法为:`pip install egnn-pytorch` 用法示例: ```python import torch from egnn_pytorch import EGNN layer1 = EGNN(dim=512) layer2 = EGNN(dim=512) feats = torch.randn(1, 16, 512) coors = torch.randn(1, 16, 3) feats, coors = layer1(feats, coors) feats, coors = layer2(feats, coors) ``` 带边的用法: ```python import torch from egnn_pytorch import EGNN layer1 = EGNN(dim=512) layer2 = EGNN(dim=512) feats = torch.randn(1, 16, 512) coors = torch.randn(1, 16, 3) feats, coors = layer1(feats, coors) ```
  • 中文语义人工研究.zip
    优质
    本研究探讨了利用人工神经网络技术计算中文词汇与句子之间语义相似度的方法,旨在提升自然语言处理任务中的理解精度。 《基于人工神经网络的中文语义相似度计算研究》探讨了人工智能领域尤其是深度学习在自然语言处理任务中的应用。该项目的主要目标是利用人工神经网络技术来准确地计算中文文本之间的语义相似度。 语义相似度计算是一项关键课题,它涉及理解和比较两个或多个文本的意义关系。由于汉字的多义性、词序的重要性以及成语等特殊表达方式,在中文环境中这一任务更具挑战性。深度学习模型如卷积神经网络(CNN)、循环神经网络(RNN)、长短时记忆网络(LSTM)和Transformer,因其强大的模式识别和序列建模能力,成为解决该问题的有效工具。 预训练模型也是研究的重要方面。例如BERT、RoBERTa、ALBERT等通过大规模无标注文本进行预训练,学习到丰富的语言表示。在计算语义相似度时,可以将输入的中文句子转化为向量表示,并利用余弦相似度或其他距离度量方法来评估两者之间的相似性。 模型结构优化也是关键环节。例如,双向RNN能够捕捉句子前后的依赖关系;而自注意力机制则允许Transformer模型理解全局上下文信息。此外,池化操作如最大池化或平均池化可以提取文本的关键信息。 实际应用中,为了提高泛化能力和适应性,通常会采用数据增强策略和对抗训练方法来增加多样性并强化鲁棒性。 评估方面,则常用STS-B(语义文本相似度基准)及GLUE等数据集进行测试。Pearson相关系数、Spearman秩相关系数以及F1分数是常见的评价指标。 项目还涉及模型的优化与部署,包括参数调优、选择合适的优化器如Adam或SGD,以及时效性的考虑和资源需求分析来实现模型压缩及量化等环节。 这个项目全面涵盖了人工智能和深度学习的关键方面,从模型选取到预训练、结构设计再到评估方法的应用。通过此研究,学生不仅能深入理解人工神经网络的工作原理,还能掌握解决实际问题的方法,并提升科研能力。
  • FPGA有限元
    优质
    本研究提出了一种基于FPGA的高效有限元神经网络计算方法,旨在加速复杂结构分析中的神经网络运算过程。通过硬件优化技术实现了算法并行化处理,显著提升了计算效率与精度。 在研究了离散模型结构的有限元方程组神经网络计算方法后,我们设计并实现了该计算方法的具体部分,并采用常用的硬件描述语言进行开发。此工作由梁振东和李海滨完成。