当前位置: 首页 > news >正文

网站建设与管理专业好吗好视通视频会议app下载安装

网站建设与管理专业好吗,好视通视频会议app下载安装,衢州网站建设专业的公司,个人网页制作模板教程文章说明: 1)参考资料:PYG官方文档。超链。 2)博主水平不高,如有错误还望批评指正。 3)我在百度网盘上传了这篇文章的jupyter notebook。超链。提取码8888。 文章目录 文献阅读:代码实操: 文献阅读: 参考文…

文章说明:
1)参考资料:PYG官方文档。超链。
2)博主水平不高,如有错误还望批评指正。
3)我在百度网盘上传了这篇文章的jupyter notebook。超链。提取码8888。

文章目录

    • 文献阅读:
    • 代码实操:

文献阅读:

参考文献:SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS
中文翻译:用图神经网络进行半监督的分类
我在百度网盘上传这篇文献。超链。提取码8888。

文献首先:介绍了其他前辈的工作。在损失函数中使用拉普拉斯正则化项。公式如下(打这个公式真费劲,还的学Latex): L = L 0 + λ L r e g \mathcal{L}=\mathcal{L}_{0}+\lambda\mathcal{L}_{reg} L=L0+λLreg with L r e g = ∑ i , j A i , j ∣ ∣ f ( X i ) − f ( X j ) ∣ ∣ 2 = f ( X ) T Δ f ( X ) \mathcal{L}_{reg}=\sum_{i,j}{A}_{i,j}||\mathcal{f}({X}_{i})-\mathcal{f}({X}_{j})||^{2}=\mathcal{f}(X)^{T}\Delta\mathcal{f}(X) Lreg=i,jAi,j∣∣f(Xi)f(Xj)2=f(X)TΔf(X)
符号说明: L \mathcal{L} L表示为损失函数。 L 0 \mathcal{{L}_{0}} L0表示为有标签的损失(还有没标签的毕竟是半监督)。 λ \lambda λ表示为权重系数。 A i , j {A_{i,j}} Ai,j表示为图边。 f ( ⋅ ) \mathcal{f}(\cdot) f()表示为像神经网络的可微函数。 X X X表示为特征矩阵。 Δ = D − A \Delta=D-A Δ=DA表示为非规范化的拉普拉斯算子。 D D D表示为度的矩阵, D i , i = ∑ j A i , j D_{i,i}=\sum_{j}A_{i,j} Di,i=jAi,j
文章然后:简单说明使用上述公式需要有个假设:图中连接节点共享相同标签。于是作者这篇文章便就来了,为了解决这个问题,使用神经网络模型 f ( X , A ) f(X,A) f(X,A)编码图结构,避免使用显示基于图正则化。文章有两贡献,1.提出一种简单良好直接作用于图上的神经网络传播规则并且展示它是如何从谱图卷积的一阶逼近得到反馈。2.演示了基于图神经网络是如何分类的。
文章然后:具体开始阐述理论。 H l + 1 = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H l W l ) H^{l+1}=\sigma(\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}H^{l}W^{l}) Hl+1=σ(D~21A~D~21HlWl)。(知道核心公式就好,其他细节我们跳过因为我看不懂)
符号说明: D i , i = ∑ j A i , j D_{i,i}=\sum_{j}A_{i,j} Di,i=jAi,j表示为度的矩阵。 A ~ = A + I N \tilde{A}=A+I_{N} A~=A+IN表示为邻接矩阵加上一个单位矩阵。 W l W^{l} Wl表示为权重系数。 σ \sigma σ表示为激活函数。 H l H^{l} Hl为第 l l l层的特征矩阵。 H 0 H^{0} H0即为 X X X
文章然后:进行代码分类实操,他们这里搭建了两层GCN。所以最后的公式为 Z = f ( X , A ) = s o f t m a x ( A ^ R e l u ( A ^ X W 0 ) W 1 ) Z=f(X,A)=softmax(\widehat{A}Relu(\widehat{A}XW^{0})W^{1}) Z=f(X,A)=softmax(A Relu(A XW0)W1)。这里 A ^ = D ~ − 1 2 A ~ D ~ − 1 2 \widehat{A}=\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}} A =D~21A~D~21。损失函数就使用交叉熵 L = − ∑ l ∈ Y l ∑ f = 1 F Y l f ln ⁡ Z l f L=-\sum_{l \in \mathcal{Y}_{l}}\sum_{f=1}^FY_{lf}\ln{Z_{lf}} L=lYlf=1FYlflnZlf吧。
文章然后:介绍图半监督学习领域以及图上运行神经网络领域两个领域相关工作。
文章然后:进行实验展示结果。
文章然后:进行讨论。1.作者模型可以克服Skip-gram方法难以优化多步流程限制同时时间以及效果表现更好。2.未来工作1)解决内存:作者证明对于无法使用GPU大型图,用CPU是可行的。用小批量随机梯度可以缓解这个问题。但是生成小批量时应该考虑GCN的层数,对于非常大且密集连接的图可能需要进一步地近似。2)不支持有向图,但是有解决方法的(具体是什么我没看懂)3)考虑一个权衡参数 λ \lambda λ可能会有益。具体来说就是修改生成自循环图时用的 λ \lambda λ。即 A ~ = A + λ I \tilde{A}=A+\lambda I A~=A+λI
文章然后:得到结论。
文章最后:引用以及其他工作。1)WL-1算法2)深层的GCN。太深不好。
PS:以上仅是我的理解,我的理解可能不对。然后关于这个GCN以及WL算法,有两篇文章研究了它们,还是挺有趣的。我在百度网盘上传了这连篇文章。超链。提取码8888。

代码实操:

导入对应的库

import matplotlib.pyplot as plt
import networkx as nx

定义可视化的函数

def visualize_graph(G,color):plt.figure(figsize=(7,7))plt.xticks([])plt.yticks([])nx.draw_networkx(G,pos=nx.spring_layout(G,seed=42),with_labels=False,node_color=color,cmap="Set2")plt.show()
#可视化图网络
def visualize_embedding(h,color,epoch=None,loss=None):plt.figure(figsize=(7,7))plt.xticks([])plt.yticks([])h=h.detach().cpu().numpy()plt.scatter(h[:,0],h[:,1],s=140,c=color,cmap="Set2")if epoch is not None and loss is not None:plt.xlabel(f'Epoch: {epoch}, Loss: {loss.item():.4f}',fontsize=16)plt.show()

导入对应的库:数据集1

from torch_geometric.datasets import KarateClub
dataset=KarateClub()

KarateClub数据集简单说明:34个人的社交网络,如果在俱乐部之外两人认识连一条边。然后由于俱乐部的内部冲突,人们选择站队所以分成两派。
打印数据集的信息

print(len(dataset),dataset.num_features,dataset.num_classes)
#输出:1 34 4

简单说明:num_features:33加上1。33指,这个节点与其他的33个节点是否有边,有边为1,无边为0。1是指度。num_classer:按理应该为2,但是官方做了修改,所以为4。

data=dataset[0]
#具体到确定的图上
print(data.num_nodes,data.num_edges,data,data.train_mask.sum().item())
#输出:34 156 Data(x=[34, 34], edge_index=[2, 156], y=[34], train_mask=[34]) 4
print(data.has_isolated_nodes(),data.has_self_loops(),data.is_undirected())
#输出:False False True
edge_index=data.edge_index
print(edge_index.t())
#输出:不表

导入对应的库

from torch_geometric.utils import to_networkx

可视化图网络

G=to_networkx(data,to_undirected=True)
visualize_graph(G,color=data.y)

在这里插入图片描述
搭建模型GCN的框架

from torch_geometric.nn import GCNConv
from torch.nn import Linear
import torch
class GCN(torch.nn.Module):def __init__(self):super().__init__()self.conv1=GCNConv(dataset.num_features,4)self.conv2=GCNConv(4,4)self.conv3=GCNConv(4,2)self.classifier=Linear(2,dataset.num_classes)def forward(self,x,edge_index):h=self.conv1(x,edge_index)h=h.tanh()h=self.conv2(h,edge_index)h=h.tanh()h=self.conv3(h,edge_index)h=h.tanh()out=self.classifier(h)return out,h
model=GCN()
print(model)
#输出
#GCN(
#  (conv1): GCNConv(34, 4)
#  (conv2): GCNConv(4, 4)
#  (conv3): GCNConv(4, 2)
#  (classifier): Linear(in_features=2, out_features=4, bias=True)
#)

简单说明: X v ( l + 1 ) = W ( l + 1 ) ∑ w ∈ N ( v ) ∪ { v } 1 c w , v ⋅ X w ( l ) X_{v}^{(l+1)}=W^{(l+1)}\sum_{w \in N(v)\cup{\{v\}}}\frac{1}{c_{w,v}}\cdot X_{w}^{(l)} Xv(l+1)=W(l+1)wN(v){v}cw,v1Xw(l)
可视化图嵌入(这里只有正向传播)

model=GCN()
_,h=model(data.x,data.edge_index)
visualize_embedding(h,color=data.y)

在这里插入图片描述
进行训练得出结果

model=GCN()
criterion=torch.nn.CrossEntropyLoss()
optimizer=torch.optim.Adam(model.parameters(),lr=0.01)
def train(data):optimizer.zero_grad()out,h=model(data.x,data.edge_index)loss=criterion(out[data.train_mask],data.y[data.train_mask])loss.backward()optimizer.step()return loss,h
for epoch in range(401):loss,h=train(data)if epoch==400:visualize_embedding(h,color=data.y,epoch=epoch,loss=loss)

在这里插入图片描述

http://www.dinnco.com/news/18967.html

相关文章:

  • 上海个人网站建设网页设计素材网站
  • 网页设计实训总结2000字seo优化专员招聘
  • 怎么做网站赚哈尔滨最新
  • 上海做网站开发的公司有哪些自动点击器永久免费版
  • 泉州台商区建设局网站推广普通话手抄报简单漂亮
  • 个人网站名称举例凡科建站登录
  • 采购网站大全武汉搜索排名提升
  • 做旅游网站公司网络营销的传播手段
  • 国外炫酷网站自己怎么做网页
  • 网站黑链怎么做的中国网民博客 seo
  • 中远建设集团有限公司网站广州seo托管
  • 南昌做公司网站百度信息流开户多少钱
  • 如何用小米路由器做网站宁波正规seo推广
  • 做网站的公司排行免费网站站长查询
  • 东莞设计网站公司网页设计与制作书籍
  • 电商应该怎么做如何从零做起seo实战培训视频
  • 关于建设门户网站的请示semseo
  • 光谷网站建设公司网络营销推广方法十种
  • app创建关键字排名优化公司
  • 做旅游销售网站平台ppt云seo
  • 网站开发制作入什么科目郑州seo代理商
  • 网站架构方案黄页网络的推广
  • 网站建设案例国内真正的永久免费建站
  • 网站入口设计请你设计一个网络营销方案
  • 日本签证那个网站做的好百度指数使用指南
  • 网站一般用什么免费字体seo每天一贴
  • 地方网站seo服务内容
  • 网站域名变了能查吗百度号码认证平台官网
  • 济南一哥网站建设公司网络营销策划推广公司
  • phpstorm做网站太原网站关键词推广