第十四周周报

改写模型中的GCN模块代码 已完成

transformer代码还在进行

学习深度学习的知识,主要包括以下内容:

1.线性神经网络

回归(regression)是能为一个或多个自变量与因变量之间关系建模的一类方法。。

每⾏数据(⽐如⼀次房屋交易相对应的数据)称为样本(sample),也可以称为数据点(data
point)或数据样本(data instance)。我们把试图预测的⽬标(⽐如预测房屋价格)称为标签(label)或⽬标(target)。预测所依据的⾃变量(⾯积和房龄)称为特征(feature)或协变量(covariate)。

给定训练数据特征X和对应的已知标签y,线性回归的⽬标是找到⼀组权重向量w和偏置b:当给定从X的同分布中取样的新样本特征时,这组权重向量和偏置能够使得新样本预测标签的误差尽可能⼩。
损失函数:

梯度下降:

梯度下降(gradient descent)的⽅法,这种⽅法⼏乎可以优化所有深度学习模型。它通过不断地在损失函数递减的⽅向上更新参数来降低误差。

梯度下降最简单的⽤法是计算损失函数(数据集中所有样本的损失均值)关于模型参数的导数(在这⾥也可以称为梯度)。

通常会在每次需要计算更新的时候随机抽取⼀⼩批样本,这种变体叫做⼩批量随机梯度下降。

在每次迭代中,我们⾸先随机抽样⼀个⼩批量B,它是由固定数量的训练样本组成的。然后,我们计算⼩批量的平均损失关于模型参数的导数(也可以称为梯度)。

算法的步骤如下:(1)初始化模型参数的值,如随机初始化;(2)从数据集中随机抽取⼩批量样
本且在负梯度的⽅向上更新参数,并不断迭代这⼀步骤。

 

 softmax回归

import torch
from IPython import display
from d2l import torch as d2l

batch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)

num_inputs = 784
num_outputs = 10
W = torch.normal(0, 0.01, size=(num_inputs, num_outputs), requires_grad=True)
b = torch.zeros(num_outputs, requires_grad=True)

X = torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
X.sum(0, keepdim=True), X.sum(1, keepdim=True)

#结果:(tensor([[5., 7., 9.]]),
       tensor([[ 6.],
               [15.]]))

def softmax(X):
X_exp = torch.exp(X)
partition = X_exp.sum(1, keepdim=True)
return X_exp / partition # 这⾥应⽤了⼴播机制

X = torch.normal(0, 1, (2, 5))
X_prob = softmax(X)
X_prob, X_prob.sum(1)

def net(X):
return softmax(torch.matmul(X.reshape((-1, W.shape[0])), W) + b)

y = torch.tensor([0, 2])
y_hat = torch.tensor([[0.1, 0.3, 0.6], [0.3, 0.2, 0.5]])
y_hat[[0, 1], y]

def cross_entropy(y_hat, y):
return - torch.log(y_hat[range(len(y_hat)), y])
cross_entropy(y_hat, y)

 激活函数:

 当输⼊为负时,ReLU函数的导数为0,⽽当输⼊为正时,ReLU函数的导数为1。注意,当输⼊值精确等于0时,ReLU函数不可导。在此时,我们默认使⽤左侧的导数,即当输⼊为0时导数为0。我们可以忽略这种情况,因为输⼊可能永远都不会是0。

使⽤ReLU的原因是,它求导表现得特别好:要么让参数消失,要么让参数通过。这使得优化表现得更好,并且ReLU减轻了困扰以往神经⽹络的梯度消失问题。

 模型选择、⽋拟合和过拟合

 训练误差和泛化误差

 当我们训练模型时,我们试图找到⼀个能够尽可能拟合训练数据的函数。但是如果它执⾏地“太好了”,⽽不能对看不⻅的数据做到很好泛化,就会导致过拟合。

模型选择

为了确定候选模型中的最佳模型,我们通常会使⽤验证集。

原则上,在我们确定所有的超参数之前,我们不希望⽤到测试集。如果我们在模型选择过程中使⽤测试数据,可能会有过拟合测试数据的⻛险,那就⿇烦⼤了。如果我们过拟合了训练数据,还可以在测试数据上的评估来判断过拟合。

 权重衰减:使⽤L2范数的⼀个原因是它对权重向量的⼤分量施加了巨⼤的惩罚。这使得我们的学习算法偏向于在⼤量特征上均匀分布权重的模型。我们仅考虑惩罚项,优化算法在训练的每⼀步衰减权重。与特征选择相⽐,权重衰减为我们提供了⼀种连续的机制来调整函数的复杂度。较⼩的值对应较少约束的w,⽽较⼤的值对w的约束更⼤。

前向传播、反向传等

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值