- 博客(28)
- 收藏
- 关注
原创 NNDL 作业12:第七章课后题
批量越大方差越小,引入的噪声越小,训练稳定,可以设置较大学习率,批量小时,学习率也变小,否则不收敛。所以一般成正比。正则化可以定义为我们为了减少泛化误差而不是减少训练误差而对训练算法所做的任何改变。有许多正规化策略。有的对模型添加额外的约束,如对参数值添加约束,有的对目标函数添加额外的项,可以认为是对参数值添加间接或软约束。如果我们仔细使用这些技术,这可以改善测试集的性能。在深度学习的环境中,大多数正则化技术都基于正则化估计器。L2正则化梯度更新的方向取决于最近一段时间内梯度的加权平均值。当与自适应梯度
2022-12-11 20:07:28
379
1
原创 NNDL 实验八 网络优化与正则化(3)不同优化算法比较
通过这次实验,对于AdaGrad算法和RMSprop算法有了更深的了解,对梯度估计修正的两种方法动量法和Adam算法进行了学习,体验了实验效果的不同。
2022-12-08 23:53:28
237
原创 NNDL 实验七 循环神经网络(3)LSTM的记忆能力实验
使用LSTM模型重新进行数字求和实验,验证LSTM模型的长程依赖能力。使用第6.1.2.4节中定义Model_RNN4SeqClass模型,并构建 LSTM 算子.只需要实例化 LSTM ,并传入Model_RNN4SeqClass模型,就可以用 LSTM 进行数字求和实验。自定义LSTM算子nn.LSTM可以看到,自己实现的LSTM由于没有考虑多层因素,因此没有层次这个维度,因此其输出shape为[8, 32]。同时由于在以上代码使用Paddle内置API实例化LSTM时,默认定义的是1层的单向
2022-12-02 18:53:42
379
原创 NNDL 作业10:第六章课后题(LSTM | GRU)
这次作业对数学推导能力要求较高,我在网上找了一些推导过程,还没有全部理解,要提升自己的数学能力了。
2022-11-28 11:05:23
570
原创 NNDL 实验七 循环神经网络(2)梯度爆炸实验
范数,是具有“距离”概念的函数。我们知道距离的定义是一个宽泛的概念,只要满足非负、自反、三角不等式就可以称之为距离。范数是一种强化了的距离概念,它在定义上比距离多了一条数乘的运算法则。有时候为了便于理解,我们可以把范数当作距离来理解。在数学上,范数包括向量范数和矩阵范数,向量范数表征向量空间中向量的大小,矩阵范数表征矩阵引起变化的大小。一种非严密的解释就是,对应向量范数,向量空间中的向量都是有大小的,这个大小如何度量,就是用范数来度量的,不同的范数都可以来度量这个大小,就好比米和尺都可以来度量远近一样;
2022-11-22 22:02:44
344
原创 NNDL 作业9:分别使用numpy和pytorch实现BPTT
这次推了RNN反向传播算法BPTT。数学水平不行有个地方推错几次,问了同学才明白。
2022-11-22 17:28:54
86
原创 NNDL 作业8:RNN - 简单循环网络
这次主要复习了RNN、seq2seq模型,对比了nn.RNN()和nn.RNNCell()的不同,还要继续学习。
2022-11-14 21:35:54
310
原创 NNDL 实验六 卷积神经网络(5)使用预训练resnet18实现CIFAR-10分类
CIFAR-10数据集包含了10种不同的类别、共60,000张图像,其中每个类别的图像都是6000张,图像大小均为32×32像素。CIFAR-10数据集的示例如图所示。迁移学习,顾名思义,就是要进行迁移。放到人工智能和机器学习的学科里,迁移学习是一种学习的思想和模式。首先机器学习是人工智能的一大类重要方法,也是目前发展最迅速、效果最显著的方法。机器学习解决的是让机器自主地从数据中获取知识,从而应用于新的问题中。迁移学习作为机器学习的一个重要分支,侧重于将已经学习过的知识迁移应用于新的问题中。
2022-11-11 22:47:16
1524
原创 NNDL 实验六 卷积神经网络(4)ResNet18实现MNIST
学习了ResNet经典残差网络完成了Mnist手写数字的识别,比较了有无残差连接的ResNet18,看到了有残差连接后,模型效果更好。也体会了高层API的便捷性。
2022-11-07 21:40:49
174
原创 NNDL 实验六 卷积神经网络(3)LeNet实现MNIST
了解了 MNIST数据集,加深了对卷积神经网络的认识,也比较了前馈神经网络与卷积神经网络。
2022-11-05 17:42:41
109
原创 NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)
现有根据宽卷积定义为了让x的下标形式和w的进行对换,进行变量替换令故则已知因此对于由于宽卷积的条件,s和t的变动范围是可行的。
2022-10-29 22:56:48
165
原创 NNDL 作业6:基于CNN的XO识别
第一部分作业为numpy卷积-池化-激活和使用Pytorch包装好的卷积-池化-激活层,加深了一下这三层的印象第二部分作业主要是基于Pytorch搭建简单的卷积网络来实现XO识别,熟悉了操作的流程。
2022-10-23 21:58:28
524
原创 NNDL 实验六 卷积神经网络(1)卷积
因为上节课做过卷积作业,所以本次实验并不是那么难,主要是观察一下带步长、不带步长和带填充、不带填充的效果以及使用卷积算子做边缘检测任务。
2022-10-22 00:06:16
113
原创 NNDL 作业5:卷积
这里用锐化步长为3:步长为5:步长为10:步长越长,图像越模糊,图像的特征可能有损失。尺寸变小:模糊锐化边缘检测总结:图像像素越低,效果越明显。这次作业更深入的了解了卷积的概念和特点,了解到不同的卷积核对图像的影响和作用。
2022-10-15 20:18:45
240
原创 NNDL 实验五 前馈神经网络(3)鸢尾花分类
通过这次实验我基本掌握前馈神经网络框架,以及参数优化问题,对比了不同分类器的效果,这几次前馈神经网络的实验课,我对BP算法又有了跟深刻的理解。
2022-10-15 00:30:34
250
原创 NNDL 作业4:第四章课后题
更新一轮之后,接着输入下一个样本,算出误差后又可以更新一轮,再输入一个样本,又来更新一轮,通过不断地输入新的样本迭代地更新模型参数,就可以缩小计算值与真实值之间的误差,最终完成神经网络的训练。现在问可否通过增大学习率来增大梯度,以至于梯度信息可以在更新时变大,应该是不行,增大学习率带来的缺陷会比梯度消失问题更加严重,学习率变大时,很容易使得参数直接跳过最优值点,然后梯度方向改变,导致参数优化时无法有效收敛,进而无法得到理想的训练结果。但是随着网络变深,参数学习更加困难,容易出现梯度消失问题。
2022-10-09 17:20:13
262
原创 NNDL 实验五 前馈神经网络(2)自动梯度计算&优化问题
虽然我们能够通过模块化的方式比较好地对神经网络进行组装,但是每个模块的梯度计算过程仍然十分繁琐且容易出错。在深度学习框架中,已经封装了自动梯度计算的功能,我们只需要聚焦模型架构,不再需要耗费精力进行计算梯度。飞桨提供了paddle.nn.Layer类,来方便快速的实现自己的层和模型。模型和层都可以基于paddle.nn.Layer扩充实现,模型只是一种特殊的层。继承了paddle.nn.Layer类的算子中,可以在内部直接调用其它继承paddle.nn.Layer类的算子,飞桨框架会自动识别算子中内嵌的pa
2022-10-07 00:48:25
146
原创 NNDL 作业3:分别使用numpy和pytorch实现FNN例题
1.过程推导 - 了解BP原理2.数值计算 - 手动计算,掌握细节3.代码实现 - numpy手推 + pytorch自动代码实现:需要解决的问题:1.对比【numpy】和【pytorch】程序,总结并陈述。2.激活函数Sigmoid用PyTorch自带函数torch.sigmoid(),观察、总结并陈述。3.激活函数Sigmoid改变为Relu,观察、总结并陈述。4.损失函数MSE用PyTorch自带函数 t.nn.MSELoss()替代,观察、总结并陈述。5.损失函数MSE改变为交叉熵,
2022-10-01 22:02:32
442
原创 NNDL 实验五 前馈神经网络(1)二分类任务
有一些函数总是在找torch中替换但找不到,才发现numpy中也有,有点思维固化,要注意避免。保存模型的时候一直报错,问过同学才知道要保存在文件夹里。
2022-09-28 20:27:16
438
原创 【NNDL 作业二】
设平面内有一点 ,使得 垂直于此平面又因为 垂直于此平面,所以有 平行于 即:(为常数)因此点 x 到平面距离为 |k|‖w‖又 ,所以带入两边同时取模: 证毕第一种情况,使用平方损失函数作为激活函数时:由于函数的横纵坐标趋于较大或较小时,函数值趋于平缓,因此大多数情况下几乎为0,很难去优化。第二种情况,当以交叉熵损失作为损失函数时:当误差大的时候,权重更新快当误差小的时候,权重更新慢公式3.39加入正则化:于是有: 更新参数时:结论:加入正则化后,在更新参数时每次需要减去 2
2022-09-24 00:59:51
119
原创 NNDL 实验四 线性分类
我们首先构建一个简单的分类任务,并构建训练集、验证集和测试集。本任务的数据来自带噪音的两个弯月形状函数,每个弯月对一个类别。我们采集1000条样本,每个样本包含2个特征。数据集的构建函数make_moons的代码实现如下:随机采集1000个样本,并进行可视化。将1000条样本数据拆分成训练集、验证集和测试集,其中训练集640条、验证集160条、测试集200条。代码实现如下:这样,我们就完成了Moon1000数据集的构建。Logistic函数Logistic函数的代码实现如下:从输出结果看
2022-09-21 22:48:28
151
原创 NNDL 作业1:第二章课后题
平方损失函数为:对于分类问题,例如如果一个分类问题有标签 [ 1 , 2 , 3 ] ,分别代表了[red,green,yellow],假如真实分类是 1, 而被分类到 2 和 3 错误程度应该是一样的, 但是平方损失函数的损失却不相同。交叉熵损失函数:通过交叉熵损失函数,我们可以看出交叉熵损失函数针对只分类正确的预测结果,和分类错误的预测结果没有联系,而分类任务中很少考虑分类错误的结果,主要考虑让正确的分类尽可能大。
2022-09-17 23:22:43
346
原创 NNDL 实验三 线性回归
通过上面的实践,我们可以看到,在一个任务上应用机器学习方法的流程基本上包括:数据集构建、模型构建、损失函数定义、优化器、模型训练、模型评价、模型预测等环节。为了更方便地将上述环节规范化,我们将机器学习模型的基本要素封装成一个Runner类。除上述提到的要素外,再加上模型保存、模型加载等功能。Runner类的成员函数定义如下:__init__函数:实例化Runner类时默认调用,需要传入模型、损失函数、优化器和评价指标等;train函数:完成模型训练,指定模型训练需要的训练集和验证集;
2022-09-14 19:20:41
897
1
原创 实验1.numpy操作
2.建立一个一维数组 a 初始化为[4,5,6], (1)输出a 的类型(type)(2)输出a的各维度的大小(shape)(3)输出 a的第一个元素(值为4)
2022-09-04 14:05:36
2138
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人