自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 NNDL 作业13 优化算法3D可视化

根据3D轨迹图:可以看出,AdaGrad图中的轨迹图都是刚开始速度明显大于RMSprop和SGD算法的,偶尔比Momentum和Nesterov还要快,但是随着时间的增长,AdaGrad会成为图中速度最慢的算法。根据3D轨迹图:可以看出,SGD想较于其他的几个算法,速度相对较慢,会呈现“之”字型的轨迹,并且在cs231经典动画中,SGD出现了陷入局部最小值,出不来的情况。根据3D轨迹图:Adam算法的轨迹为稳定,快速的向最小值收敛,就速度和方向的正确性、稳定性而言,都是居中。所以Adam算法的优点就是。

2023-12-28 19:54:21 955 2

原创 【23-24 秋学期】NNDL 作业12 优化算法2D可视化

目录简要介绍图中的优化算法,编程实现并2D可视化1. 被优化函数 ​编辑shere(x)函数: (1)simpleBatchGD(2)AdaGrad(3)RMSprop (4)Momentum(动量法) (5)Adam(自适应矩估计)2. 被优化函数 ​编辑 ​编辑3. 解释不同轨迹的形成原因分析各个算法的优缺点(1)SGD(2)AdaGrad(3)RMSprop(4)Momentum(5)Nesterov(6)Adam总结:选择Sphere函数作为被优化函数,对比不同优化算法的优化效果。Sphere函数为

2023-12-22 18:28:50 275 1

原创 【23-24 秋学期】NNDL 作业11 LSTM

此次主要推导了LSTM网络中参数的梯度,分析其避免梯度消失的效果,然后使用Numpy、nn.LSTMCell和nn.LSTM三种工具分别实现了课上讲过的LSTM简单示例。更加深入的自己推了一遍LSTM的主要流程,并熟悉了跟LSTM相关的两个函数,参数的设置以及使用方法。CikL160 NNDL 作业11 LSTMHBU_David 【23-24 秋学期】NNDL 作业11 LSTM通俗易懂的LSTMf_%7Bt%7Df_%7Bt%7Df_%7Bt%7D。

2023-12-17 17:56:23 92 2

原创 【23-24 秋学期】NNDL 作业10 BPTT

此次课程中主要学习了BPTT的反向推导:跟之前很大的不同首先是空间上的参数共享,所有层都用同样的参数,反向传播求梯度需要将所有层的损失加起来,然后是有时间的参数共享,全部时刻共享同一个参数,反向传播时,每个时刻的参数都需要计算。总损失函数等于全部时刻损失函数之和。就得到了:实时循环学习算法(RTRL):通过前向模式应用链式法则来计算梯度.由于梯度爆炸或消失问题,RNN只能学习到短周期的依赖关系,即只能拥有短期记忆。

2023-12-08 12:00:00 112

原创 【23-24 秋学期】NNDL 作业9 RNN - SRN

nn.RNNCell是一个单独的RNN单元,可以用于构建自定义的RNN模型,它只能处理一个时间点的输入。如图,就是一个RNNCell的结构:nn.RNN是一个多层RNN模型的封装,可以处理整个序列的输入,它包含多个RNNCell层,每个层的输出都作为下一层的输入。如图所示,若干RNN Cell组成RNN:两者实际操作的区别:1.RNNCell只是RNN的一个单元,用于处理一个时间步的输入数据,需要在循环中手动处理时间步。

2023-12-02 18:12:36 89 1

原创 基于残差网络的手写体数字识别实验

使用飞桨HAPI中实现的resnet18模型,该模型默认输入通道数为3,输出类别数1000# 自定义的resnet18模型# 获取网络的权重# 用来保存参数名映射后的网络权重# 将参数名进行映射else:# 将飞桨HAPI中实现的resnet18模型的权重参数赋予自定义的resnet18模型,保持两者一致# 这里用np.random创建一个随机数组作为测试数据# 计算两个模型输出的差异# 取差异最大的值。

2023-11-25 18:08:46 101

原创 基于LeNet实现手写体数字识别实验

在该实验中,主要是进行了基于LeNet实现手写体数字识别,体验了对于LeNet网络的流程,深入了解在实现过程中的细节。实验中的主要流程:上面训练模型是用的torch函数构建的Torch_LeNet模型,训练相对较快,而在相同条件下,自定义的Module_LeNet模型训练的很慢,计算量很大,而且会出现问题。如图:所以在训练过程中,还是使用torch函数好使一些。

2023-11-25 17:47:20 189

原创 【23-24 秋学期】NNDL 作业8 卷积 导数 反向传播

这次作业主要是就卷积神经网络的反向传播过程进行了详细总结,其中主要是公式的推导,没有像大佬们一样详细的一步一步进行推导,对于我有点困难,所以就自己按照老师们的推导过程走了一遍,进行了总结梳理,尤其是其公示的推导,它们和之前全连接的区别等等,包括前面几题对公式的证明理解。使我更加深入的了解学习了卷积神经网络的反向传播过程。【NNDL作业】 宽卷积具有交换性_卷积交换律公式证明_HBU_David的博客-CSDN博客刘建平 卷积神经网络(CNN)反向传播算法Stacey.933 NNDL 作业7:第五章课后题。

2023-11-25 13:12:49 276

原创 卷积神经网络:自定义卷积算子并应用(使用torch函数检测正确性)

步长# 零填充"""输入:- X:输入矩阵,shape=[B, M, N],B为样本数量输出:- output:输出矩阵"""# 带步长和零填充的二维卷积算子# 步长# 零填充# 零填充# 创建卷积核# 创建偏置# 输入通道数# 输出通道数# 基础卷积运算# 零填充dim=[1,2])"""输入:- inputs:输入矩阵,shape=[B, D, M, N]- weights:P组二维卷积核,shape=[P, D, U, V]

2023-11-13 20:25:19 358

原创 NNDL 作业7 基于CNN的XO识别

首先就是要对数据进行处理,导入数据,划分训练集和测试集。然后构建模型,调用函数定义卷积层和池化层,并且调好参数,然后前向传播。定义损失函数和优化器。进行训练,加上反向传播。要实现这些过程首要的就是了解卷积和池化层函数参数的调用。torch函数官网stride=1padding=0dilation=1groups=1bias=Truedtype=Nonepadding=0dilation=1这次实验主要就是了解卷积神经网络的过程,并且熟悉这两个函数,会调参,并解决出现的各种问题。

2023-11-13 00:22:49 102 1

原创 NNDL 作业6 卷积

此次作业,主要是复习总结了上课讲到的几个概念,包括卷积、卷积核、特征图、特征选择、步长、填充、感受野。并且在对概念理解的基础上,探究了不同卷积核的作用,进行了使用不同卷积核对图片作用,还有边缘检测、锐化、模糊处理。之后又搜寻总结了不同卷积核的特征和作用。不同卷积核提取不同的特征,主要是它内部的权值设置的不同,卷积有点像高级的全连接神经网络,卷积核内部的权重和全连接的权重有一点像,通过与原始数据的加权求和提取内部特征。

2023-11-06 18:12:06 71

原创 基于前馈神经网络实现鸢尾花分类并与Softmax回归完成鸢尾花分类做对比

梯度下降法优化模型主要是将整个训练集上的风险函数(即损失函数)降到最低,这样是批量梯度下降法,每次迭代都计算数据集中所有样本的损失函数的梯度求和,当数据集样本容量很大时,将会导致训练的计算复杂度高,每次迭代开销也很大。小批量梯度下降法就是为了解决这个问题:在每次迭代时都只随机采集含有K个样本(K:批量大小),只计算这一部分样本的损失并更新参数。这种方法收敛快,计算开销小。

2023-10-30 20:49:59 370 1

原创 NNDL 作业5 第四章课后题

而零均值化的输入可以使得数据分布主要集中0附近,在激活函数的非饱和状态,减少了饱和状态的出现,从而提高了梯度的大小,加速了梯度下降算法的收敛速度。由零均值化的定义可知:将一个数据集零均值化,是使用原始数据减去原始数据的均值,使得零均值化后的数据分布在0附近,使得数据分布更加标准化,梯度下降优化参数收敛速度更快。(梯度爆炸:在神经网络的反向传播过程中,梯度值变得非常大,导致权重参数的更新过大,使得模型的训练变得不稳定甚至无法收敛。零均值化:零均值化是指将数据集中的每个样本减去其均值,使得数据的均值为零。

2023-10-28 17:39:28 335

原创 NNDL 作业3 反向传播BP

损失函数(均方误差):固定为0.0107,相比于w的初始值定为:0.2, -0.4, 0.5, 0.6, 0.1, -0.5, -0.3, 0.8 损失函数为0.0103相对较大,但是总的来说与上面的随机定义w 的初始值相比,还是w随机初始化比较好,以便模型能够探索不同的解空间并找到一个较好的解,更容易得到最优值。编程一般使用梯度下降的优化方法,在每一步中,计算每个神经元的误差项,然后用这些误差项来更新权重,使用学习率来控制权重的更新步长。在PyTorch中,张量的值是以浮点数形式存储的,因此在使用。

2023-10-15 19:45:42 101

原创 NNDL 作业2

(2)误差层面:交叉熵损失函数的定义假设了预测值和真实值之间的关系是分类问题中的概率分布,而在回归问题中,预测值和真实值之间的关系通常不是概率分布,对于连续值的差异度量不够敏感,无法准确地评估模型的损失。对于分类问题,预测值通常是概率或者类别标签,一旦有一个点分错类,平方损失函数会放大预测值和真实值之间的差异,导致对分类错误的点惩罚过大。并且,对于分类问题平方损失函数无法衡量数据点分类错误的程度,将分类问题的离散值(例如:0或1)映射到连续的数值上,导致损失函数的值无法直观地解释,数值上没有参考意义。

2023-09-24 19:31:28 94 1

原创 NNDL 作业1

定义:深度学习采用的模型一般较为复杂,这里的复杂主要指的是样本的原始输入到输出之间的数据流经过多个线性或非线性的组件,由于每个组件都会对信息进行加工,进而影响后续的组件,所以当我们得到最后的输出结果时,我们并不清除其中每个组件的贡献是多少,这个问题叫做贡献度分配问题(Credit Assignment Problem, CAP)端到端是由输入端的数据直接得到输出端的结果,将分步解决的中间步骤连接整合在一起,成为一个黑盒子,能看看到的只是输入的数据和输出的结果,就是从数据的端,到了结果的端。

2023-09-20 21:50:48 77 5

空空如也

空空如也

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

TA关注的人

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