InteractE: Improving Convolution-Based Knowledge Graph Embeddings by Increasing Feature Interactions

《InteractE》论文阅读 InteractE: Improving Convolution-based Knowledge Graph Embeddings by Increasing Feature Interactionsabstract1.introduction二级目录三级目录 by Increasing Feature Interactions) abstract 众多的知识图(knowledge graphs)suffer from不完整性(incompleteness),可以通过在known facts上进行缺失lin 阅读详情

其它关于卷积知识图谱补全:
ConvR:Adaptive Convolution for Multi-Relational Learning
ConvE:Convolutional 2D Knowledge Graph Embeddings
ConvKB代码:A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network

1 介绍

1.1 引言

本篇论文是对于论文ConvE的模型进行改进,与ConvR论文类似,其都发现ConvE在实现实体entity与relation之间,进行交互时,只是进行简单的进行entity和relation之间的向量进行简单的堆积,其交互能力很低(来源于ConvR论文),大于只有20%的交互,与ConvR相比,该论文InteractE采用另外一种策略,增加其交互能力。

1.2 提高交互方法

  • feature permutation(特征进行全排类)
  • a novel feature reshaping(新型的reshape方式)
  • circular convolution(循环神经网络)

2 模型

2.1 Feature Permutation

生成 e s e_s es​和 e r e_r er​的t-random排列, P t = [ ( e s 1 , e r 1 ) , . . . . , ( e s t , e r t ) ] \mathcal P_{t} = [(e_s^1, e_r^1), ....,(e_s^t, e_r^t)] Pt​=[(es1​,er1​),....,(est​,ert​)]作为一组,进行随机打乱,进行t次,每次随机打乱产生一组数据,产生t次数据,其作为输入数据的int_channel则为t,但由于所有的数据本质上是一样的,对每层进行卷积的卷积核应该一致,应该在初始时是一致的,在具体实现时采用分组卷积的形式。

2.2 Reshaping Function

在这里插入图片描述

  • Stack

堆叠的形式,ConvE在实现时采用这种方式,其交互能力很低,只有20%,但其操作比较简单。

  • Alternate

交替形式,其采用实体的feature和关系的feature交替的方式,能有效的提高交互,交互能力有所提升。

  • Chequer

这种方式交互更加彻底,其在使用时,将其所有元组进行交替,能够更加充分。

2.3 循环卷积

常规的卷积,在使用时,边界与边界之间没有任何关系,因此提出循环卷积,在卷积的时候,使其边界之间的内容进行交互。其交互的方式是使边界 ⌊ k / 2 ⌋ \lfloor {k/2} \rfloor ⌊k/2⌋,其中k为kernal_size。在实现时,将 ⌊ k / 2 ⌋ \lfloor {k/2} \rfloor ⌊k/2⌋左侧内容放到右侧边界, ⌊ k / 2 ⌋ \lfloor {k/2} \rfloor ⌊k/2⌋右侧内容放到左侧;同理下侧放到上侧,上侧放到下侧。
在这里插入图片描述
图解循环卷积:
在这里插入图片描述

2.4 整体模型图

在这里插入图片描述

  • 将头实体 e s 和 e r e_s和e_r es​和er​进行全排列,进行t次全排列,产生t个通道
  • 进行reshape,采用Chequer方式进行reshape
  • 进行卷积,采用循环卷积
  • 进行全连接,映射维度为 e s e_s es​的维度一致
  • 进行1-N评分,进行rank评分

2.5 评分函数

在这里插入图片描述

3 总结

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

4 代码

来源:在这

from helper import *

class InteractE(torch.nn.Module):
	"""
	Proposed method in the paper. Refer Section 6 of the paper for mode details 

	Parameters
	----------
	params:        	Hyperparameters of the model
	chequer_perm:   Reshaping to be used by the model
	
	Returns
	-------
	The InteractE model instance
		
	"""
	def __init__(self, params, chequer_perm):
		super(InteractE, self).__init__()

		self.p                  = params
		self.ent_embed		= torch.nn.Embedding(self.p.num_ent,   self.p.embed_dim, padding_idx=None); xavier_normal_(self.ent_embed.weight)
		self.rel_embed		= torch.nn.Embedding(self.p.num_rel*2, self.p.embed_dim, padding_idx=None); xavier_normal_(self.rel_embed.weight)
		self.bceloss		= torch.nn.BCELoss()

		self.inp_drop		= torch.nn.Dropout(self.p.inp_drop)
		self.hidden_drop	= torch.nn.Dropout(self.p.hid_drop)
		self.feature_map_drop	= torch.nn.Dropout2d(self.p.feat_drop)
		self.bn0		= torch.nn.BatchNorm2d(self.p.perm)

		flat_sz_h 		= self.p.k_h
		flat_sz_w 		= 2*self.p.k_w
		self.padding 		= 0

		self.bn1 		= torch.nn.BatchNorm2d(self.p.num_filt*self.p.perm)
		self.flat_sz 		= flat_sz_h * flat_sz_w * self.p.num_filt*self.p.perm

		self.bn2		= torch.nn.BatchNorm1d(self.p.embed_dim)
		self.fc 		= torch.nn.Linear(self.flat_sz, self.p.embed_dim)
		self.chequer_perm	= chequer_perm

		self.register_parameter('bias', Parameter(torch.zeros(self.p.num_ent)))
		self.register_parameter('conv_filt', Parameter(torch.zeros(self.p.num_filt, 1, self.p.ker_sz,  self.p.ker_sz))); xavier_normal_(self.conv_filt)
	#96
	def loss(self, pred, true_label=None, sub_samp=None):
		label_pos	= true_label[0]; 
		label_neg	= true_label[1:]
		loss 		= self.bceloss(pred, true_label)
		return loss

	def circular_padding_chw(self, batch, padding):
		upper_pad	= batch[..., -padding:, :]
		lower_pad	= batch[..., :padding, :]
		temp		= torch.cat([upper_pad, batch, lower_pad], dim=2)

		left_pad	= temp[..., -padding:]
		right_pad	= temp[..., :padding]
		padded		= torch.cat([left_pad, temp, right_pad], dim=3)
		return padded

	def forward(self, sub, rel, neg_ents, strategy='one_to_x'):
		sub_emb		= self.ent_embed(sub)
		rel_emb		= self.rel_embed(rel)
		comb_emb	= torch.cat([sub_emb, rel_emb], dim=1)
		chequer_perm	= comb_emb[:, self.chequer_perm]
		stack_inp	= chequer_perm.reshape((-1, self.p.perm, 2*self.p.k_w, self.p.k_h))
		stack_inp	= self.bn0(stack_inp)
		x		= self.inp_drop(stack_inp)
		x		= self.circular_padding_chw(x, self.p.ker_sz//2)
		x		= F.conv2d(x, self.conv_filt.repeat(self.p.perm, 1, 1, 1), padding=self.padding, groups=self.p.perm)
		x		= self.bn1(x)
		x		= F.relu(x)
		x		= self.feature_map_drop(x)
		x		= x.view(-1, self.flat_sz)
		x		= self.fc(x)
		x		= self.hidden_drop(x)
		x		= self.bn2(x)
		x		= F.relu(x)

		if strategy == 'one_to_n':
			x = torch.mm(x, self.ent_embed.weight.transpose(1,0))
			x += self.bias.expand_as(x)
		else:
			x = torch.mul(x.unsqueeze(1), self.ent_embed(neg_ents)).sum(dim=-1)
			x += self.bias[neg_ents]

		pred	= torch.sigmoid(x)

		return pred
论文笔记:AAAI 2020 InteractE: Improving Convolution-based Knowledge Graph Embeddings by Increasing 1. 前言 论文链接:https://arxiv.org/pdf/1911.00219.pdf github:https://github.com/malllabiisc/InteractE 现有的大多数知识图都存在不完整的问题,可以通过基于已知事实推断缺失的链接来缓解这种情况。一种实现此目的的流行方法是生成实体和关系的低维嵌入,并使用它们进行推断。 ConvE 是最近提出的一种基于卷积神经网络的知识图谱嵌入方法,它在实体和关系嵌入的2D重塑上应用卷积过滤器,以捕获其组件之间的丰富交互。但是,ConvE 可 阅读详情

相关推荐

可解释性机器学习_Feature Importance、Permutation Importance、SHAP

本文讲的都是建模后的可解释性方法。建模之前可解释性方法或者使用本身具备可解释性的模型都不在本文范围内~ 哪些特征在模型看到是最重要的? 关于某一条记录的预测,每一个特征是如何影响到最终的预测结果的? 从大量的记录整体来考虑,每一个特征如何影响模型的预测的? 为什么这些解释信息是有价值的 调试模型用 指导工程师做特征工程 指导数据采集的方向 指导人们做决策 建立模型和人之间的信任 本文主要讲三种方法: 特征重要性(Feature Importance) Permutation Importance SHAP

李梦瑶的博客 2万+

ConvR:Adaptive Convolution for Multi-Relational Learning

关于卷积的知识图谱补全: ConvE:Convolutional 2D Knowledge Graph Embeddings ConvKB代码:A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network ConvR论文:点击 1 介绍 本论文的思想是在ConvE论文的基础上进行改进,进行知识图谱补全。ConvE成功实现实体和关系之间的交互,但是实体和关系之间的交互非常少,仅仅只有百分

REfusing的博客 3627

请查收!顶会AAAI 2020录用论文之知识图谱篇

2020年人工智能顶级会议AAAI录用的知识图谱领域的研究论文已为您准备就绪,请查收!

语言智能技术笔记簿 5588

基于神经网络的知识图谱推理模型 (ConvE、ConvKB、ConvR、InteractE)

ConvE是一种使用嵌入上的 2D 卷积来预测知识图中缺失链接的模型,在学习及提取实体及关系的语义特征方面具有很强的优势。,dropout随机丢弃,防止过拟合,通常表示某种加权或融合。。通过这样处理,可以捕获源实体、目标实体和关系 r 之间的复杂交互关系。除此之外,该模型提出了1-N评分方法,采用一对 (s, r) 并针对所有实体 o 对其进行评分 ,使得模型的评测速度相比1-1评分方法提升了300倍。

weixin_54387067的博客 1438

InteractE: Improving Convolution-based Knowledge Graph Embeddings by Increasing Feature Interactions

研究问题 在ConvE的基础上提出了InteractE,通过进一步增强关系嵌入与实体嵌入间的交互,提升链路预测任务的效果 背景动机 ConvE通过将一维的实体和关系嵌入转换为二维并拼接作为卷积操作的输入来增强交互性,这对提升性能有一定效果,但这种简单方法的交互性还不够。 符号定义 假设实体嵌入和关系嵌入分别表示为es=(a1,…,ad),er=(b1,…,bd)\boldsymbol{e}_{s}=\left(a_{1}, \ldots, a_{d}\right), \boldsymbol{e}_{r

羊城迷鹿的博客 1551

Python计算树模型(随机森林、xgboost等)的特征重要度及其波动程度:基于熵减的特征重要度计算及可视化、基于特征排列的特征重要性(feature permutation)计算及可视化

Python计算树模型(随机森林、xgboost等)的特征重要度及其波动程度:基于熵减的特征重要度计算及可视化、基于特征排列的特征重要性(feature permutation)计算及可视化 目录 Python计算树模型(随机森林、xgboost等)的特征重要度及其波动程度:基于熵减的特征重要度计算及可视化、基于特征排列的特征重要性(feature permutation)计算及可视化 #仿真数据生成 #构建随机森林分类器 #特征重要度计算及可视化(基于熵减) #基于特征排列的特征重要性(f

data+scenario+science+insight 1895

ConvKB代码:A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network

1 介绍 本篇论文以卷积的方式对知识图谱进行补全,在实现时进行预测三原组是正确的还是错误的,该方法在论文ConvK的基础上进行改进,其在逻辑实现的过程中十分简单,通过相应的模型图即可知道其原理。 2 模型 2.1 模型图 2.2 模型解释 将三元组进行embedding,将(h,r,t)(h, r, t)(h,r,t)三元组转化为(vh,vr,vt)\left(\boldsymbol{v}_{h}, \boldsymbol{v}_{r}, \boldsymbol{v}_{t}\right)(vh​,vr

REfusing的博客 3435

生信小白必看:手把手教你用R语言实现counts/FPKM/TPM互转(附代码)

本文为生信初学者详细讲解如何使用R语言实现counts、FPKM和TPM三种转录组表达量单位的精准转换,包含完整代码示例和常见问题解决方案。重点解析了FPKM与TPM的数学原理及转换方法,帮助读者掌握RNA-seq数据分析中的关键预处理步骤,提升差异表达分析的准确性。

weixin_27442001的博客 497

【ACL2020】SEEK:一种轻量级的知识图谱嵌入框架

点击上方,选择星标或置顶,每天给你送干货!阅读大概需要12分钟跟随小博主,每天进步一丢丢作者: 林哲乐方向: 知识图谱、问答知乎专栏:https://zhuanlan.zhihu.co...

zenRRan的博客 1009

如何使用windows搭建一个公网ftp/sftp服务器

在有公网ip的情况下,使用windows系统搭建一个ftp/sftp服务器会带来很多的方便,可以实现远程移动端的一键式访问,对于文件的备份、多设备的共享都十分的方便。然而网上许多的教程都是基于windows自带的iis搭建一个局域网ftp服务器,然而在搭建好后,我想要通过端口映射的方式实现在外网访问时,却发现连接不上的问题,感觉可能是因为windows家庭版的原因导致的。因此在查阅很多资料之后终于找到了一个公网ftp/sftp服务器的搭建方式,实测可用。这里把流程记录一下,做一个备忘录,也方便大家搭建。

weixin_43354138的博客 1万+

安装Quartus-II 13 和Modelsim

目录一、Quartus-II安装1.Quartus-II 13下载2.Quartus-II 13安装3.Quartus-II 13注册二、Modelsim安装 实验目的:安装Quartus-II 13 和Modelsim 实验环境:Windows10 参考资料:Quartus-II安装及使用 一、Quartus-II安装 1.Quartus-II 13下载 正点原子官方资料下载 百度网盘下载链接: https://pan.baidu.com/s/1a9d-bq9RZmWrRV542X4IEA 提取码:

qqq080的博客 8626

AAAI2020知识图谱论文集

全部列表:https://aaai.org/Conferences/AAAI-20/wp-content/uploads/2020/01/AAAI-20-Technical-Program-Schedule.pdf 本文精选了知识图谱有关论文集: 知识图谱补全(Graph Completion) 1322: Improving Entity Linking by Modeling Latent Entity Type Information Shuang Chen; Jinpeng Wang; Feng .

夏栀的博客 3215

Vscode搭配Keil Assistant插件,头文件红色波浪线终极修复指南

本文详细解析了Vscode搭配Keil Assistant插件时出现头文件红色波浪线问题的根源,即ARMCC与ARMCLANG编译器的兼容性问题,并提供了三种实用解决方案:复制文件夹、创建符号链接和手动配置includePath,帮助开发者彻底修复错误,恢复代码跳转和自动补全功能。

q1w3e5r7t9y的博客 352

多模态知识表示系列——ConvKB模型学习

A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network 引用格式: GB/T7714:Nguyen D Q , Nguyen T D , Nguyen D Q , et al. A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network[C]// Procee

KH的博客 1677

数字电路基础(CMOS电路、低功耗方法)

文章目录一、CMOS器件1.1.CMOS反相器1.2. CMOS与非门1.3.CMOS或非门1.4 CMOS与门和CMOS或门二、CMOS电路参数——功耗 一、CMOS器件 1.1.CMOS反相器 CMOS反相器实现非门功能,由一个PMOS管和一个NMOS管组成,其逻辑电路图如下: 其真值表如下: In PMOS NMOS Out 0 √ 导通 ×关闭 1 1 ×关闭 √...

Mr.翟的博客 1万+

Matlab信号处理

Matlab信号处理 需要安装的APP: Signal Analyzer app:提供一个可以在时域和频域可视化、测量、分析和比较信号的工具; Filter Builder和Filter Designer app:可以很方便通过下拉菜单和填写参数的方式来设计和分析数字滤波器; 对于小波分析,Matlab提供了: 1.Wavelet Signal Denoise app:利用离散小波变换对信号去噪; 2.Signal Multiresolution Analyzer app:对信号进行多分辨率的分析和可视化

Huichin_Min的博客 4398

基于卷积神经网络的KBC

基于卷积神经网络的KBC 原文: A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network 摘要 本篇文章是将图片卷积的概念扩展并应用于知识图谱点的嵌入表示,简单来说,是对知识图谱中的每一个三元组组合而成的嵌入矩阵(vh,vr,vt)∈Rk×3,(v_h,v_r,v_t)\in R^{k \times 3},(vh​,vr​,vt​)∈Rk×3,k表示的是嵌入向量的维度,与不同的1×

ruichuang2的博客 1032

【HOJ系列】HOJ判题机部署

【HOJ系列】HOJ判题机部署

随风浪仔的专栏 903

论文阅读 ConvKB

A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network 基于卷积神经网络的知识库补全嵌入模型 发表于:NAACL-HLT 2018 摘要:本文提出了一种新的用于知识库完成的嵌入模型——ConvKB。我们的模型ConvKB通过使用卷积神经网络改进了最先进的模型,从而可以捕获实体和知识库中的关系之间的全局关系和过渡特征。在ConvKB中,每个三元组(头实体、关系、尾实体)表示为一个3列

qq_41669355的博客 3600

RAG效果调优清单(命中率提升3倍)

本文提出了一套工程可落地的RAG(检索增强生成)模型组合方案,强调通过最优组合实现效果、成本和扩展性的平衡。核心架构包括Embedding模型、向量数据库检索、Rerank模型和LLM生成四个环节,推荐了四种具体组合方案:本地最优性价比(bge+reranker+Qwen 7B)、效果优先(bge-large+reranker+14B模型)、高并发(轻量模型+vLLM)和中英混合(多语言模型)。文章指出Embedding决定检索下限,Rerank提升准确率上限,LLM影响最终体验,并提供了不同场景的优化策略

刘一说的IT专栏 520

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

知识图谱嵌入模型 (KGE) 的总结和比较

知识图谱嵌入(KGE)是一种利用监督学习来学习嵌入以及节点和边的向量表示的模型。它们将“知识”投射到一个连续的低维空间,这些低维空间向量一般只有几百个维度(用来表示知识存储的内存效率)。向量空间中,每个点代表一个概念,每个点在空间中的位置具有语义意义,类似于词嵌入。一个好的KGE 应该具有足够的表现力来捕获 KG 属性,这些属性解决了表示关系的独特逻辑模式的能力。并且KG 可以根据要求添加或删除一些特定属性。以下是常见的KGE 模型在捕获关系类型方面的比较,我们将对这些常见的模型进行比较。

deephub 6754

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

知识图谱嵌入|KG-BERT代码 ConvE ConvR

烦 重新下载typora导致我的图片全没了(大家在已经有一个typora的情况下千万别重新下载!)【】部分原本是图片 KG-BERT开源项目实现 python安装 电脑里现有三个版本的python 2.7 3.7 以及3.6 安装3.6 在路径 C:\Users\xxx\AppData\Local\Programs\Python\Python36 【】 Q: 左侧的几个环境有什么不同?怎么使用? A: 选了第一行的virtualenv environment,下上两个按顺序都试了一下(一顿瞎操作)1.几.

weixin_43235829的博客 3002

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【可解释性机器学习】Permutation Feature Importance

排列特征重要性测量我们在排列了特征值后模型预测误差的增加,这打破了特征与真实结果之间的关系。

wxl173的博客 1326

【深度学习】Permutation feature importance (PFI) 置换特征重要性方法解释机器(深度)学习

对于深度学习模型,PFI可以用于解释神经网络的输入特征对模型输出的影响。然而,需要注意的是,PFI的计算成本较高,因为需要对每个特征执行多次模型评估。此外,对于某些复杂的深度学习模型,PFI的解释可能仍然有一定的限制,因为模型的复杂性可能导致一些特征交互的影响难以捕捉。这种方法的核心在于,如果一个特征对模型很重要,那么对该特征进行置换会导致模型性能下降,因为模型失去了对该特征的依赖性。差异越大,说明相应特征越重要。原始模型评估: 使用原始的、未改变的输入数据,计算模型的性能指标(例如准确度、损失等)。

Keep Patching 小菜鸡的debug记录~ 4645

【AAAI 2020】全部接受论文列表(六)

今年共收到的有效论文投稿超过 8800 篇,其中 7737 篇论文进入评审环节,最终收录数量为 1591 篇,收录率为 20.6%, 虽然今年 AAAI 论文收录率的分母要比去年的 7700 ...

yinizhilianlove的博客 9210

这应该是最全的机器学习模型可解释性的综述

模型可解释性方面的研究,在近两年的科研会议上成为关注热点,因为大家不仅仅满足于模型的效果,更对模型效果的原因产生更多的思考,这样的思考有助于模型和特征的优化,更能够帮助更好的理解模型本身和提升模型服务质量。本文对机器学习模型可解释性相关资料汇总 survey。

Python学习与数据挖掘 1144
上一篇: ConvR:Adaptive Convolution for Multi-Relational Learning
下一篇: ConEx:Convolutional Complex Knowledge Graph Embeddings+代码
Re:fused
博客等级 码龄9年 474粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值