自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DL Homework 13

因为更细的梯度很小并且这个时候的学习率 * 梯度就导致更新的更小,但是并不是完全陷入鞍点“无法自拔”,所以在我将epoches提升到500的时候我发现SGD就成功逃离鞍点了。如上图的输出结果一致。首先解决老师上课提出的疑问,SGN处于鞍点怎么摆脱的问题,其实老师给的代码已经嘎嘎完美了,最开始我通过打印SGD的梯度观察随着迭代梯度到底是否为0了,如果为0则说明,肯定是卡在鞍点了,但是我打完的结果如下,取其中的一小部分。

2023-12-31 19:57:40 885

原创 实践:基于双向LSTM模型完成文本分类任务

根据双向LSTM和单向LSTM的对比我们发现,正确率差距不大,但是速度缺相差较大,但理论上说双向LSTM具有比单向LSTM更多的参数,计算量更大,速度很慢,在这里却表现为速度大于单向,所以双向LSTM在有些时候是好于单向LSTM的,并且通过这次实验更能清晰的明白NLP的魅力。

2023-12-27 21:59:34 1370

原创 LSTM的记忆能力实验

长短期记忆网络(Long Short-Term Memory Network,LSTM)是一种可以有效缓解长程依赖问题的循环神经网络.LSTM 的特点是引入了一个新的内部状态(Internal State)

2023-12-27 00:48:33 1054

原创 DL Homework 11

本次实验难度较小,代码只需要跑一遍即可,真正难得是把这几个优化算法彻底搞明白,搞彻底,我大概做了一个思维导图,简单对优化算法进行了总结。DL-优化算法| ProcessOn免费在线作图,在线流程图,在线思维导图参考文献深度学习优化函数详解(4)-- momentum 动量法_深度学习动量法理论详讲-CSDN博客RMSprop算法优缺点 - CSDN文库AdaGrad算法优缺点 - CSDN文库梯度下降:BGD、SGD、mini-batch GD介绍及其优缺点_sgd和minibatch-CSDN博客xxx。

2023-12-25 06:39:36 905

原创 RNN梯度爆炸实验

前情回顾造成简单循环网络较难建模长程依赖问题的原因有两个:梯度爆炸和梯度消失。一般来讲,循环网络的梯度爆炸问题比较容易解决,一般通过权重衰减或梯度截断可以较好地来避免;对于梯度消失问题,更加有效的方式是改变模型,比如通过长短期记忆网络LSTM来进行缓解。本节将首先进行复现简单循环网络中的梯度爆炸问题,然后尝试使用梯度截断的方式进行解决。这里采用长度为20的数据集进行实验,训练过程中将进行输出的梯度向量的范数,以此来衡量梯度的变化情况。

2023-12-18 15:49:13 1335 1

原创 DL Homework 11

首先好多同学找我要代码,今天光考四六级了,下午有点事儿,第一题先搁置,晚点补上,先写第二题。

2023-12-17 04:27:25 1459 1

原创 数学learning

优化算法里面会涉及到一个知识点:指数移动平均。但是为了知识的完整性,这里会将常见的移动平均全部过一遍首先移动平均法是根据时间序列资料逐渐推移,依次计算包含一定项数的时序平均数,以反映长期趋势的方法。当时间序列的数值由于起伏较大,不易显示出发展趋势时,可采用,分析、预测序列的长期趋势由此可以看出是技术分析中一种分析的常用工具。

2023-12-13 20:39:28 939

原创 循环神经网络-1

循环神经网络(Recurrent Neural Network,RNN)是一类具有短期记忆能力的神经网络.在循环神经网络中,神经元不但可以接受其他神经元的信息,也可以接受自身的信息,形成具有环路的网络结构.和前馈神经网络相比,循环神经网络更加符合生物神经网络的结构.目前,循环神经网络已经被广泛应用在语音识别、语言模型以及自然语言生成等任务上.循环神经网络的一种简单实现是简单循环网络(Simple Recurrent Network,SRN).令向量表示在时刻$t$时网络的输入,

2023-12-13 02:25:41 939

原创 DL Homework 9

连接在层与层之间,每层节点间无连接。输入和输出的维数固定,不能任意改变。无法处理时序数据。展开来讲,对于前馈神经网络,每一次的输入都是独立的,并且每次输出只依赖于当前的输入,如下图所示并且刚刚提到,前馈神经网络无法处理序列数据(sequence data),那什么是序列数据呢,有先后次序的一组(有限或无限多个)数据。时间序列(按照不同时间收集到的数据,描述现象随时间变化的情况)、符号序列(由元素或事件的有序集组成,例如语言等)、生物序列。

2023-12-11 00:11:49 744

原创 DL Homework 10

本次实验主要是围绕BPTT的手推和代码(举例子推我推的很明白,但是理论硬推的时候,数学的基础是真跟不上阿,有心无力害,但是课下多努力吧,这篇博客本人写的感觉不是很好,因为数学知识不太跟得上感觉很多东西力不从心,也不算真正写完了吧,博客之后会持续更新de)首先对于RTRL和BPTT,对于两种的学习算法要明确推导的过程(虽然我还没特别明确,半知半解)

2023-12-11 00:11:25 927

原创 基于ResNet18网络完成图像分类任务

CIFAR-10数据集包含了10种不同的类别、共60,000张图像,其中每个类别的图像都是6000张,图像大小均为像素。CIFAR-10数据集的示例如图所示。什么是预训练呢?举例子进行简单的介绍。

2023-12-02 23:54:34 1973

原创 带残差连接的ResNet18

首先,使用带残差连接的ResNet模型相比于不带残差的模型,在训练过程中表现出更好的性能。带残差的模型具有更快的收敛速度、更低的损失和更高的准确率。这证明了残差块确实能够为网络带来性能提升,而无脑堆砌网络层并不能有效地提高模型的性能。这个结果也打破了我一直都认为神经网络越深性能越好的理论认知,同时通过学长的博客我认识到残差连接能够有效地缓解梯度消失问题,减少训练难度,并提高了网络的深度和表达能力。这也算一个小小的收获吧(那一大堆推导我真没看懂!!哭)

2023-11-29 01:10:26 1547

原创 DL Homework 8

关于这个问题之前的博客就提到过一些,但哪个时候就比较随性(不是好的习惯)了解的还不够透彻,经过老师上课的讲解对展开放射变化了解更为深刻了,首先引用鱼书中这一部分的讲解。时间复杂度:因为映射后的图像的每一个像素都是经过卷积计算而来的,由这个想法开始,我们首先计算最后输出的图像像素点个数为。鱼书很明确的指出了,将滤波器展开为1列,那矩阵到底怎么展开呢,通过题目就可以很容易的明确了。将4×4的输入特征展开为16×1的矩阵,y展开为4×1的矩阵,将卷积计算转化为矩阵相乘。图像X和卷积核W有固定长度时,它们的。

2023-11-26 18:57:58 1004

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

这次实验比较基础,老师也讲了毕竟LeNet是Hello world级别的深度学习模型,但是把越简单的事情要搞得越明白越透彻就越不容易,是这次使用自定义算子和框架库函数一对比,对明显体现了框架的巨大优越性。对LeNet的认识有了进一步的认知吧~正好近两天花大量时间阅览了一下深度学习入门这本书,也就是我们俗称的鱼书,这里总结一下吧~全连接神经网络存在什么问题那就是数据的形状被“忽视”了。比如,输 入数据是图像时,图像通常是高、长、通道方向上的3维形状。但是,向全 连接层输入时,需要将3维数据拉平为1维数据。

2023-11-18 11:01:54 575

原创 卷积神经网络(1)

在机器学习和图像处理领域,卷积的主要功能是在一个图像(或特征图)上滑动一个卷积核,通过卷积操作得到一组新的特征。在计算卷积的过程中,需要进行卷积核的翻转,而这也会带来一些不必要的操作和开销。因此,在具体实现上,一般会以数学中的互相关(Cross-Correlatio)运算来代替卷积。在神经网络中,卷积运算的主要作用是抽取特征,卷积核是否进行翻转并不会影响其特征抽取的能力。特别是当卷积核是可学习的参数时,卷积和互相关在能力上是等价的。因此,很多时候,为方便起见,会直接用互相关来代替卷积。

2023-11-13 01:55:25 269

原创 DL Homework 7

本实验的收获真的很多,从最开始手动模拟PPT的卷积池化激活的过程,到从理论变成对数据集进行处理,对实战有了很大很大的提升,也花了很多的时间去分析老师的代码,学长们代码,皇天不负有心人,所得到收获也对得起自己付出的努力,接下来的目标对卷积神经网络这几个著名的模型VGG, AlexNet,都尝试着跑跑,加油!附加:两个小问题,还没搞明白,等学完之后回来再解决!关于DataLoader等对数据集的处理还是比较薄弱还是得加强,之前看到的一个很好很好的博客,放在这here。

2023-11-12 06:44:59 229

原创 基于前馈神经网络完成鸢尾花分类

到此为止前馈神经网络结束啦,有了一点搭建神经网络的经验了吧,大概流程如下:定义网络结构:首先需要确定网络的结构,包括输入层、隐藏层和输出层的大小和数量。初始化参数:对于每个神经元,需要初始化权重和偏置值。权重和偏置值通常是随机初始化的,以避免初始状态过于相似导致模型收敛缓慢。定义损失函数:损失函数用来衡量预测值和真实值之间的误差。二分类问题通常使用交叉熵损失函数,回归问题可以使用均方误差损失函数。定义优化器:优化器用于更新模型的参数,使损失函数最小化。

2023-11-05 23:54:01 328

原创 前馈神经网络自动梯度计算和预定义算子

虽然我们能够通过模块化的方式比较好地对神经网络进行组装,但是每个模块的梯度计算过程仍然十分繁琐且容易出错。在深度学习框架中,已经封装了自动梯度计算的功能,我们只需要聚焦模型架构,不再需要耗费精力进行计算梯度。Pytorch提供了类,来方便快速的实现自己的层和模型。模型和层都可以基于扩充实现,模型只是一种特殊的层。torch.nn.Module所有方法总结及其使用举例_torch.nn.module cuda-CSDN博客引用一个很好的Module官方文件解释的文档。

2023-11-05 21:57:44 146

原创 DL Homework 6

就以的10个卷积核为例:(1)模糊的作用(2)底部轮廓检测的作用(3)浮雕(4)不变(5)左侧轮廓检测(6)边缘检测(7)右侧轮廓检测(8) 锐化(9)上部轮廓检测。

2023-11-05 05:59:23 305 3

原创 DL Homework 5

本次作业其实总体来说比较简单,很多东西好像在写实验的博客的时候都接触过,这次作业就像一个汇总,把零零碎碎之前写过的一些知识点合起来写一个博客,但是也是有新收获的,之前虽然考虑过为什么不对b做偏置,但是后来因为自己懒还是没有明确,这次作业也算是一个敲响自己的警钟了, 以后不能随便偷懒,万一面试等等环境遇到,岂不是亏死!!!fighting!

2023-10-31 22:46:59 224

原创 前馈神经网络处理二分类任务

1.这次主要做的工作是搭建了一个两层的前馈神经网络,较为容易,基本上遇到debug也都会改,不存在什么特别难的问题,基础记牢了也没那么难理解。2.因为同为二分类问题嘛,写完博客的时候就不想继续写下一个饰演了,就闲来无事,翻了翻之前的博客,找到Logistic回归模型的结果对比了以下,看没啥大的区别吧,得分都差不太多吧1个点左右,神经网络没我幻想的那么优秀,抱着帮他正名的态度搜了一下,可能是因为隐藏层太少的缘故,毕竟神经网络可是说越深越优秀的不是。3.有没有发现我的公式变得好看了,我发现在线编辑器。

2023-10-29 01:38:23 192

原创 DL Homework 3

范数,也就是我们所说的正则化项。这样一来,就可以抑制权重变大。用符号表示的话,如果将权重记为。,首先神经网络的学习目的是减小损失函数的值,并且防止训练集的过拟合,这时,例如为损失函数加上。首先简单解释一下这堆话,结构化风险=经验风险+正则化项,经验风险为。因此,在求权重梯度的计算中,要为之前的误差反向传播法的结果加上正则化项的导数。对于所有权重,权值衰减方法都会为损失函数加上。设置得越大,对大的权重施加的惩罚就越重。函数我们大多数采取的为交叉熵函数,,这样就可以用来防止过拟合.是控制正则化强度的超参数。

2023-10-14 14:14:51 92

原创 DL Homework 4

只需要更改一个forward函数足以print("隐藏层输出为", h1_out.data, h2_out.data)print("模型输出为", o1_out.data, o2_out.data)结果展示如下:这而让我很蒙圈,我看大佬的博客都说有微小区别,但是我这儿相似的一批,可能是小数点后好几位可能有不同,但是犹豫对模型影响过小,可以忽略不计,这里就不多家阐述咯,下面附件一个看到的很好的批注,偷过来,咳咳(手动花花,给刘学长)

2023-10-14 13:27:34 228

原创 实践:基于Softmax回归完成鸢尾花分类任务

文件内引用的nndl包内的文件代码可翻看以往博客有详细介绍,这么就不详细赘述啦基于Softmax回归的多分类任务_熬夜患者的博客-CSDN博客https://blog.csdn.net/m0_70026215/article/details/133690588?spm=1001.2014.3001.5501 运行结果: 运行结果: 从输出结果看,数据中基本不存在异常值,所以不需要进行异常值处理。 运行结果: 3.模型训练

2023-10-09 00:43:01 290

原创 基于Softmax回归的多分类任务

Logistic回归可以有效地解决二分类问题,但在分类任务中,还有一类多分类问题,即类别数C大于2 的分类问题。Softmax回归就是Logistic回归在多分类问题上的推广。首先给大家看一下需要的资源包代码最后都会放出。我们首先构建一个简单的多分类任务,并构建训练集、验证集和测试集。本任务的数据来自3个不同的簇,每个簇对一个类别。我们采集1000条样本,每个样本包含2个特征。数据集的构建函数随机采集1000个样本,并进行可视化。运行结果如下:将实验数据拆分成训练集、验证集和测试集。

2023-10-08 22:44:42 665

原创 基于线性回归的波士顿房价预测

基于线性回归的波士顿房价预测

2023-10-07 17:58:25 272

原创 实现一个简单的线性回归和多项式回归(2)

对于多项式回归,可以同样使用前面线性回归中定义的LinearRegression算子、训练函数train、均方误差函数mean_squared_error,生成数据集create_toy_data,这里就不多做赘述咯~

2023-10-07 16:42:27 318

原创 实现一个简单的线性回归和多项式回归(1)

首先,简单介绍一下线性模型,回归任务是一类典型的监督机器学习任务,对自变量和因变量之间关系进行建模分析,其预测值通常为一个连续值,比如房屋价格预测、电源票房预测等。线性回归(Linear Regression)是指一类利用线性函数来对自变量和因变量之间关系进行建模的回归任务,是机器学习和统计学中最基础和最广泛应用的模型。下面让我们开始正式搭建一个简单的线性规划的模型,fighting!!!

2023-10-07 16:41:24 64

原创 线性回归(Logistic)

实现一个简单的线性回归模型,并使用最小二乘法来求解参数。

2023-10-04 17:39:39 281 1

原创 DL Homework 2

习题2-1分析为什么平方损失函数不适用于分类问题 ,交叉熵损失函数不适用回归问题.习题2-12对于一个三分类问题 , 数据集的真实标签和模型的预测标签如下 :

2023-09-24 01:46:28 50

原创 DL Homework 1

简答(1.写出定义,2.描述自己对定义的理解)人工智能,机器学习,深度学习,人工智能、机器学习、深度学习三者之间的关系,人工智能的流派,特征工程,表示学习,贡献度分配,独热码,word2vec,神经网络,端到端学习

2023-09-20 17:35:27 202

原创 15.位运算

给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。输入格式第一行包含整数 n。第二行包含 n 个整数,表示整个数列。输出格式共一行,包含 n 个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表示中 1 的个数。数据范围0≤数列中元素的值≤1091 1 2 1 2。

2022-11-14 22:25:56 58

原创 14.双指针算法

给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数 n。第二行包含 n 个整数(均在 0∼105 范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。数据范围1≤n≤1053。

2022-11-14 22:03:43 58

原创 13.差分矩阵

输入一个 n 行 m 列的整数矩阵,再输入 q 个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中 (x1,y1) 和 (x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。每个操作都要将选中的子矩阵中的每个元素的值加上 c。请你将进行完所有操作后的矩阵输出。输入格式第一行包含整数 n,m,q。接下来 n 行,每行包含 m 个整数,表示整数矩阵。接下来 q 行,每行包含 5 个整数 x1,y1,x2,y2,c表示一个操作。输出格式。

2022-11-14 21:39:49 94

原创 12.差分

输入一个长度为 n 的整数序列。接下来输入 m 个操作,每个操作包含三个整数 l,r,c表示将序列中 [l,r]之间的每个数加上 c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数序列。接下来 m 行,每行包含三个整数 l,r,c表示一个操作。输出格式共一行,包含 n 个整数,表示最终序列。数据范围1≤l≤r≤n,−1000≤整数序列中元素的值≤1000。

2022-11-14 21:33:19 113

原创 11.二维前缀和

输入一个 n 行 m 列的整数矩阵,再输入 qq 个询问,每个询问包含四个整数 x1,y1,x2,y2表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。输入格式第一行包含三个整数 n,m,q。接下来 n 行,每行包含 m 个整数,表示整数矩阵。接下来 q 行,每行包含四个整数 x1,y1,x2,y2表示一组询问。输出格式共 q 行,每行输出一个询问的结果。数据范围1≤x1≤x2≤n,1≤y1≤y2≤m,−1000≤矩阵内元素的值≤100017。

2022-11-14 20:47:10 296

原创 10.前缀和

输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r。对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。输入格式第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数数列。接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。输出格式共 m 行,每行输出一个询问的结果。数据范围1≤l≤r≤n,−1000≤数列中元素的值≤10003610。

2022-11-14 20:14:48 130

原创 9.高精度除法

给定两个非负整数(不含前导 0)A,B,请你计算 A/B 的商和余数。输入格式共两行,第一行包含整数 A,第二行包含整数 B。输出格式共两行,第一行输出所求的商,第二行输出所求余数。数据范围1≤A的长度≤100000,1≤B≤10000,B 一定不为 0。7231。

2022-11-08 22:16:24 77

原创 8.高精度乘法

这里针对的是高精度*低精度的数,不是高精度*高精度!!!给定两个非负整数(不含前导 00) AA 和 BB,请你计算 A×BA×B 的值。输入格式共两行,第一行包含整数 AA,第二行包含整数 BB。输出格式共一行,包含 A×BA×B 的值。数据范围1≤A的长度≤1000001≤A的长度≤100000,236这里针对的是高精度*低精度的数,不是高精度*高精度!!!

2022-11-08 21:51:14 147

原创 7.高精度加法售后服务

这个取地址符号可能有的人发现了,不加的话运行也是对的,当然啦,但是不加取地址符号的话,在传入函数的时候,是copy一个相同的vector传入函数,浪费时间,所以要加入&直接用literate string直接从后往前也可以,但是这个是数学计算用字符进行运算就得避免不能忘了-‘0‘求值,而且高精度的题的值一般都很恶心。a[0]储存数组的长度,从a[1]开始存储数据也可以,只不过个人热爱c++的容器(手动狗头)高精度类的题不一定按照我给vector的写,我写的只是个人比较喜欢的,也可以用固定数组。

2022-11-08 21:42:38 256

卷积交换性的证明过程图片

卷积交换性的证明过程图片

2023-11-26

mnist手写数字识别数据集

mnist手写数字识别数据集

2023-11-16

XO数据集 From DL Homework 7

XO数据集 From DL Homework 7

2023-11-12

前馈神经网络nnd;包

前馈神经网络nnd;包

2023-11-05

实验环境5-1所需要的nndl包

实验环境5-1所需要的nndl包

2023-10-28

空空如也

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

TA关注的人

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