李沐详解图神经网络(GNN/GCN)

在这里插入图片描述
顶点可以用向量来表示,边也是,全局信息也是
把image表示成graph
在这里插入图片描述
把text表示成graph
在这里插入图片描述
一个词和下一个词之间有一条边
分子图
在这里插入图片描述
社交网络
在这里插入图片描述
空手道俱乐部
在这里插入图片描述
引用图(有向)

在这里插入图片描述

三大类问题

1.图层面的任务 识别环,对图进行分类
2.顶点层面的任务 社区检测
3.边层面的任务

神经网络遇到的挑战
1.怎样表示图,顶点/边/全局/连接性,最后一个如何表示?邻接矩阵?非常稀疏,非常大,低效,在gpu上用很难。排序不能影响。
在这里插入图片描述
使用邻接表,与顺序无关

GNN

GNN是一个对图上所有属性的优化变换,可以保存对称的信息。
使用信息传递的框架。进入是图,输出是图。会对向量变换,但不会改变连接性。
对于顶点/边/全局,分别构造MLP多层感知机,输入和输出大小一样
在这里插入图片描述
全连接层
在这里插入图片描述
如果想对顶点预测,但没有向量,使用pooling
把和它邻接的以及全局向量拿出,表示这个向量在这里插入图片描述
在这里插入图片描述

### 讲解下的LeNet卷积神经网络 #### LeNet架构概述 LeNet作为早期的卷积神经网络之一,在手写字符识别方面取得了显著成果。该模型由多个层次构成,包括两组交替出现的卷积层和下采样层(即最大池化),随后接两个全连接层[^1]。 #### 架构特点 - **输入层**:接受固定大小的灰度图像。 - **卷积层**:通过应用不同数量的小型滤波器来提取局部特征;这些滤波器会在整个图像上滑动以捕捉空间上的模式。 - **激活函数**:通常采用Sigmoid或者ReLU等非线性变换,使网络能够处理更复杂的映射关系。 - **子采样/池化操作**:减少数据维度的同时保留重要信息,有助于提高计算效率并防止过拟合。 ```python import torch.nn as nn class LeNet(nn.Module): def __init__(self, num_classes=10): super(LeNet, self).__init__() # 定义卷积层 self.conv_layers = nn.Sequential( nn.Conv2d(in_channels=1, out_channels=6, kernel_size=5), nn.ReLU(), nn.MaxPool2d(kernel_size=2), nn.Conv2d(in_channels=6, out_channels=16, kernel_size=5), nn.ReLU(), nn.MaxPool2d(kernel_size=2) ) # 定义全连接层 self.fc_layers = nn.Sequential( nn.Linear(16 * 4 * 4, 120), nn.ReLU(), nn.Linear(120, 84), nn.ReLU(), nn.Linear(84, num_classes) ) def forward(self, x): conv_out = self.conv_layers(x).view(-1, 16*4*4) fc_out = self.fc_layers(conv_out) return fc_out ``` #### 关键改进点 相比于传统的多层感知机,LeNet引入了共享权重机制以及稀疏交互特性,这不仅降低了参数量还增强了泛化能力[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值