自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 NNDL 作业12:第七章课后题

L_%7B2%7D。

2022-12-11 14:08:07 152 1

原创 NNDL 实验八 网络优化与正则化(3)不同优化算法比较

通过本次实验,对于AdaGrad算法和RMSprop算法有了更深的了解,对梯度估计修正的两种方法动量法和Adam算法学习更加深入。

2022-12-10 21:35:36 125

原创 NNDL 作业11:优化算法比较

目录1. 编程实现图6-1,并观察特征 2. 观察梯度方向 3. 编写代码实现算法,并可视化轨迹 4. 分析上图,说明原理(1)为什么SGD会走“之字形”?其它算法为什么会比较平滑?(2)Momentum、AdaGrad对SGD的改进体现在哪里?速度?方向?在图上有哪些体现?(3)仅从轨迹来看,Adam似乎不如AdaGrad效果好,是这样么?5. 总结SGD、Momentum、AdaGrad、Adam的优缺点(选做)6. Adam这么好,SGD是不是就用不到了?(选做) 总结 特征 上式表示的

2022-12-05 17:42:16 155

原创 神经网络与深度学习(七)循环神经网络(3)LSTM的记忆能力实验

长短期记忆网络(Long Short-Term Memory Network,LSTM)是一种可以有效缓解长程依赖问题的循环神经网络.LSTM 的特点是引入了一个新的内部状态(Internal State)和门控机制(Gating Mechanism).不同时刻的内部状态以近似线性的方式进行传递,从而缓解梯度消失或梯度爆炸问题.同时门控机制进行信息筛选,可以有效地增加记忆能力.例如,输入门可以让网络忽略无关紧要的输入信息,遗忘门可以使得网络保留有用的历史信息.在上一节的数字求和任务中,如果模型能够记住前两个

2022-12-03 22:06:36 382

原创 NNDL 作业10:第六章课后题(LSTM | GRU)

本次作业通过推导对 LSTM 、GRU有了进一步的了解,GRU参数更少,收敛更快;数据量很大时,LSTM效果会更好一些,因为LSTM参数也比GRU参数多一些。

2022-11-28 19:36:01 129

原创 神经网络与深度学习(七)循环神经网络(2)梯度爆炸实验

范数,是具有“距离”概念的函数。我们知道距离的定义是一个宽泛的概念,只要满足非负、自反、三角不等式就可以称之为距离。范数是一种强化了的距离概念,它在定义上比距离多了一条数乘的运算法则。有时候为了便于理解,我们可以把范数当作距离来理解。L2范数是我们最常见最常用的范数了,我们用的最多的度量距离欧氏距离就是一种L2范数,它的定义如下:表示向量元素的平方和再开平方。L2范数通常会被用来做优化目标函数的正则化项,防止模型为了迎合训练集而过于复杂造成过拟合的情况,从而提高模型的泛化能力。

2022-11-27 15:08:59 150

原创 NNDL 作业9:分别使用numpy和pytorch实现BPTT

6-2P:设计简单RNN模型,分别用Numpy、Pytorch实现反向传播算子,并代入数值测试.

2022-11-25 18:59:07 59

原创 NNDL 实验七 循环神经网络(1)RNN记忆能力实验

本次实验对循环神经网络有了进一步的了解,并且对它的记忆能力进行了实验,明白了和前馈神经网络相比,循环神经网络更加符合生物神经网络的结构原因h_%7Bt%7Dx_%7Bt%7Dt%20b%29h_%7Bt%7DMBLSBLMtb%29DMb_%7Bx%7Db_%7Bo%7D。

2022-11-24 10:58:25 91

原创 神经网络与深度学习作业8:RNN - 简单循环网络

这次实验更了解RNN循环神经网络,和RNN的时序功能 ,并且使用numpy实现SRN进行了实践。

2022-11-13 21:09:25 148

原创 NNDL 实验六 卷积神经网络(5)使用预训练resnet18实现CIFAR-10分类

预训练的简单概括就是使用尽可能多的训练数据,从中提取出尽可能多的共性特征,从而让模型对特定任务的学习负担变轻。预训练方式表现在模型参数上,就是我之前已经拿到一个任务,这个任务和其他任务有很多相同之处,于是提前训练好了所有的模型参数(预训练)。因此我们不再需要从0开始训练所有参数了,但是针对我们目前这个任务,有些参数可能不合适,我们只需要在当前参数的基础上稍加修改(微调)就可以得到比较好的效果,这样学习时间必然会大大减小。

2022-11-12 18:19:50 695

原创 神经网络与深度学习(六)卷积神经网络(4)ResNet18实现MNIST

本次是实验通过ResNet经典残差网络完成了Mnist手写数字的识别,学到了很多知识,对残差网络的结构,模型训练有更多的认识,希望能学到更多。

2022-11-06 17:17:26 511

原创 NNDL 实验六 卷积神经网络(3)LeNet实现MNIST

本次实验学到了很多新的知识 ,尤其是基于LeNet实现手写体数字识别,对数字识别有了更加清晰的认识,希望再接下来是的实验中学到更多相关内容。

2022-11-04 21:16:00 195

原创 NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)

以GoogLeNet的3a模块为例,输入的feature map是28×28×192,3a模块中1×1卷积通道为64,3×3卷积通道为128,5×5卷积通道为32,如果是左图结构,那么卷积核参数为1×1×192×64+3×3×192×128+5×5×192×32,而右图对3×3和5×5卷积层前分别加入了通道数为96和16的1×1卷积层,这样卷积核参数就变成了1×1×192×64+(1×1×192×96+3×3×96×128)+(1×1×192×16+5×5×16×32),参数大约减少到原来的三分之一。

2022-10-30 20:16:27 651

原创 NNDL 实验六 卷积神经网络(2)基础算子

本次实验对神经网络基础算子的学习,让我对多通道卷积算子和汇聚层算子实现有了更深刻地理解,希望通过更多的实验不断提高自己。%201%201。

2022-10-25 11:11:07 104

原创 神经网络与深度学习 作业6:基于CNN的XO识别

从X、O文件夹,分别取出150张作为测试集,文件夹train_data:放置训练集 1600张图片,文件夹test_data: 放置测试集 400张图片。下载的数据集没有分测试集和训练集,共2000张图片,X、O各1000张。调用框架自带算子实现,对比自定义算子。自定义卷积算子、池化算子实现。可视化卷积核和特征图。

2022-10-23 22:47:03 92

原创 NNDL 实验六 卷积神经网络(1)卷积

本次实验对卷积神经网络进行了复习和扩展,对卷积的操作有了更加清晰的认识,卷积对特征图的影响更明了。I%28i+

2022-10-21 22:59:43 479

原创 NNDL 作业5:卷积

当stride=20时:由图可知,当增加步长时,图像的会变得模糊。原图模糊边缘检测通过本次实验回顾了卷积、卷积核、特征图、特征选择、步长、填充、感受野的概念,conv2d函数的使用,深入探究了不同卷积核的作用,并且编程实现了灰度图的边缘检测,锐化,模糊等,并且对图像卷积步长改变不同得出结果不同,有了更加深刻地体会。

2022-10-16 21:45:27 639

原创 NNDL 实验五 前馈神经网络(3)鸢尾花分类

加载数据集#加载原始数据#数据归一化#如果shuffle为True,随机打乱数据X = X_newy = y_new# 调用第三章中的数据读取函数,其中不需要将标签转成one-hot类型else:通过这次实验对前馈神经网络有了更清晰的认识,并且对于paddle,pytorch之间的区别有了更多的了解,对模型的构建和优化更加熟悉。

2022-10-15 13:51:27 130

原创 NNDL 作业4:第四章课后题

根据w 的误差的影响,再乘以步长,就可以更新整个神经网络的权重。更新一轮之后,接着输入下一个样本,算出误差后又可以更新一轮,再输入一个样本,又来更新一轮,通过不断地输入新的样本迭代地更新模型参数,就可以缩小计算值与真实值之间的误差,最终完成神经网络的训练。当直接令w =0,b=0时,会让下一层神经网络中所有神经元进行着相同的计算,具有同样的梯度,同样权重更新。由于ReLU神经元的输出为0,在后续迭代的反向过程中,该处的梯度一直为0,相关参数不再变化,从而导致ReLU神经元的输入始终是负数,输出始终为0。

2022-10-09 21:34:33 52

原创 NNDL 实验五 前馈神经网络(2)自动梯度计算 & 优化问题

1. 使用pytorch的预定义算子来重新实现二分类任务。(必做)# 使用'paddle.nn.Linear'定义线性层。# 其中第一个参数(in_features)为线性层输入维度;第二个参数(out_features)为线性层输出维度# weight_attr为权重参数属性,这里使用'paddle.nn.initializer.Normal'进行随机高斯分布初始化# bias_attr为偏置参数属性,这里使用'paddle.nn.initializer.Constant'进行常量初始化。

2022-10-07 20:52:47 119

原创 NNDL 作业3:分别使用numpy和pytorch实现FNN例题

由训练结果可以看出权重的初始化不会影响收敛的结果,均方误差的下降速度与指定权值时相比有所降低,收敛速度小于指定权值。2.激活函数Sigmoid用PyTorch自带函数torch.sigmoid(),观察、总结并陈述。4、损失函数MSE用PyTorch自带函数 t.nn.MSELoss()替代,观察、总结并陈述。3、激活函数Sigmoid改变为Relu,观察、总结并陈述。5、损失函数MSE改变为交叉熵,观察、总结并陈述。w1-w8初始值换为0,对收敛速度没有影响。6、改变步长,训练次数,观察、总结并陈述。

2022-10-02 20:29:39 301

原创 NNDL 实验五 前馈神经网络(1)二分类任务

通过这次实验对前馈神经网络的基本概念、网络结构及代码实现等过程更加熟悉,并且对Logistic回归进行了回顾。参考NNDL 实验4(上) - HBU_DAVID - 博客园 (cnblogs.com)

2022-09-30 18:42:22 269

原创 深度学习:作业二

可以看到梯度公式中没有 σ′ 这一项,权重受到误差 (y^−y) 的影响,所以当误差大的时候,权重更新快;加入正则化后,在更新参数时每次需要减去 2λW ,使得参数不会太大,便不会造成溢出之类的错误发生,同时也会抑制过拟合。加入正则化后,在更新参数时每次需要减去 2λW ,使得参数不会太大,便不会造成溢出之类的错误发生,同时也会抑制过拟合。则 ∂R(W)∂W=−1N∑n=1N(y^(n)−y(n))x(n)+2λW。更新参数时:W=W+α1N∑n=1N(y^(n)−y(n))x(n)−2λW。

2022-09-24 12:10:26 289

原创 NNDL 实验四 线性分类

通过本次实验Logistic回归、softmax回归有了更加清晰的认识,对这些函数的分类问题,模型构建,训练的过程更加熟悉。

2022-09-22 22:41:27 83

原创 NNDL 作业1:第二章课后习题

当MSE和交叉熵同时应用到多分类场景下时,(标签的值为1时表示属于此分类,标签值为0时表示不属于此分类),MSE对于每一个输出的结果都非常看重,而交叉熵只对正确分类的结果看重。从上述的公式可以看出,交叉熵的损失函数只和分类正确的预测结果有关系,而MSE的损失函数还和错误的分类有关系,该分类函数除了让正确的分类尽量变大,还会让错误的分类变得平均,但实际在分类问题中这个调整是没有必要的。因为分类问题不连续,使用平方损失函数,只要分类错误其loss便相等,没有距离概念,在分类错误的情况下无法判断优化的好坏。

2022-09-17 22:36:07 214

原创 NNDL 实验三 线性回归

机器学习方法流程包括数据集构建、模型构建、损失函数定义、优化器、模型训练、模型评价、模型预测等环节。为了更方便地将上述环节规范化,我们将机器学习模型的基本要素封装成一个Runner类。除上述提到的要素外,再加上模型保存、模型加载等功能。Runner类的成员函数定义如下:__init__函数:实例化Runner类,需要传入模型、损失函数、优化器和评价指标等;train函数:模型训练,指定模型训练需要的训练集和验证集;

2022-09-16 20:24:25 231

原创 深度学习 实验二

从第一维看,x在一维上的大小为2,y为1,因此,结果张量在第一维的大小为2。通常来讲,如果有一个形状较小和一个形状较大的张量,会希望多次使用较小的张量来对较大的张量执行某些操作,看起来像是形状较小的张量首先被扩展到和较大的张量形状一致,然后再做运算。比如x是形状为[j,k,n,m]的张量,另一个y是[j,k,m,p]的张量,则x.matmul(y)输出的张量形状为[j,k,n,p]。比如:如果输入x是形状为[j,1,n,m]的张量,另一个y是[k,m,p]的张量,则输出张量的形状为[j,k,n,p]。

2022-09-10 23:46:27 920

原创 NNDL 实验一 numpy

9.建立矩阵a ,初始化为[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]],输出(0,0),(1,2),(2,0),(3,1) (提示使用 b = np.array([0, 2, 0, 1]) print(a[np.arange(4), b]))3.建立一个二维数组 b,初始化为 [ [4, 5, 6],[1, 2, 3]] (1)输出各维度的大小(shape)(2)输出 b(0,0),b(0,1),b(1,1) 这三个元素(对应值分别为4,5,2)

2022-09-01 21:49:48 427 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除