- 博客(12)
- 收藏
- 关注
原创 NNDL 作业13 优化算法3D可视化
1. 学习率衰减过快,发生早停现象:随着训练的进行,该算法会累积历史梯度的平方和,导致学习率不断减小,在训练后期,学习率可能会变得非常小,甚至接近于零,导致训练过早停止。在速度上明显快于其他几种算法,开始该算法会朝错误的方向震荡,然后再修正,该算法还可以快速收敛到局部最小解,并解决鞍点问题。为“之”字形,这是由于y方向上更新变化大,而y方向上变化小,由于梯度的随机性质,梯度搜索轨迹要很嘈杂(产生动荡)2. 收敛快速:由于学习率的自适应调整,该算法在训练初期可使用较大的学习率,有助于收敛速度的提升。
2023-12-31 21:00:00
864
原创 NNDL 作业12 优化算法2D可视化
是一种自适应学习率的梯度下降优化方法,在每次迭代中,会根据之前的梯度信息自动调整每个参数的学习率。在每次迭代中计算每个参数的梯度平方和,并使用这些平方和来调整学习率,这样就可以使用较小的学习率来解决那些更难优化的参数,而使用较大的学习率来解决更容易优化的参数。主要用于解决梯度下降中的学习率调整问题。在梯度下降中,每个参数的学习率是固定的,但在实际应用中,每个参数的最优学习率可能是不同的。该算法通过自动调整每个参数的学习率来解决这个问题,它在每次迭代中维护一个指数加权平均值,用于调整每个参数的学习率。
2023-12-24 18:38:13
92
1
原创 NNDL 作业11 LSTM
E为损失函数,由于LSTM中通过门控机制解决了梯度问题,输入门、输出门和遗忘门非0即1且为相加关系,梯度能够在LSTM中传播,减小了梯度消失发生的概率;门为0时,上一刻的信息对当前时刻无影响,没必要接受传递更新参数。
2023-12-17 22:00:00
93
1
原创 NNDL 作业9 RNN-SRN
nn.RNNCell是简单的循环神经网络单元,类似于其他网络单元,如nn.Linear和nn.ReLU。它可以用于构建自定义RNN层。nn.RNNCell接受输入和隐藏状态,并输出新的隐藏状态和输出。nn.RNNnn.RNN是通用的循环神经网络层,具有短期记忆能力,可以处理序列数据。与nn.RNNCell不同,nn.RNN可以处理批量的输入数据,并在每个时间步都应用相同的RNN单元。它接受一个序列的输入张量,以及初始隐藏状态(如果有的话),并返回输出张量和最终的隐藏状态。
2023-12-02 19:00:00
138
1
原创 卷积 导数 反向传播
对于全连接层,可以按DNN的反向传播算法求该层的W,b的梯度,而池化层并没有W,b,也不用求W,b的梯度。只有卷积层的W,b需要求。这里与DNN过程相似,区别在于对于含有卷积的式子求导时,卷积核被旋转了180度,即rot180()。此时卷积核并没有反转,主要是层内的求导,而不是反向传播到上一层的求导。其中,upsample函数完成了池化误差矩阵放大与误差重新分配的逻辑。是高维张量,而b只是一个向量,不能像DNN那样直接和。举例表示:假设池化区域为2×2,则。,因此矩阵内对应元素均相等,即。
2023-11-27 17:32:49
196
1
原创 基于CNN的XO识别
以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),参数大约减少到原来的三分之一。
2023-11-16 19:30:00
136
1
原创 卷积神经网络(1)
定义类的构造函数。当创建一个Conv2D类的实例时,需要传入一个参数,表示卷积核的大小。W这行代码创建了一个二维卷积核。这个卷积核是一个2x2的矩阵,其值是由numpy数组重新调整尺寸得到的。这个卷积核可以看作是对输入数据进行卷积操作的权重矩阵。根据输入数据和卷积核的大小,创建一个输出矩阵output,其大小为输入数据减去卷积核大小加1后的结果。两层循环遍历输出矩阵的每一个元素,对应每一个位置进行卷积操作。这行代码实现了卷积操作。它将输入数据X与卷积核。
2023-11-13 23:00:00
110
原创 实验九 前馈神经网络(5)
在pytorch中,使用torch.utils.data.Dataset类加载minibatch的数据,torch.utils.data.DataLoader API可以生成一个迭代器,其中通过设置batch_size参数来指定minibatch的长度,通过设置shuffle参数为True,可以在生成minibatch的索引列表时将索引顺序打乱。前馈神经网络具有更强的泛化能力,能够通过学习复杂的特征和模式来提高分类准确率,而Softmax回归的泛化能力较弱,但训练速度通常比前馈神经网络快。
2023-11-02 10:04:17
165
原创 基于前馈神经网络的二分类任务
初始化方法(__init__),接收到的input_size表示模型需要处理的数据的维度,output_size表示输出的数据的维度,weight_init表示权重初始化的方法(默认使用的是标准正态分布初始化),bias_init表示的是偏置初始化方式(默认使用0初始化)。使用super()函数调用父类(Optimizer)的构造函数,在创建一个BatchGD的实例时,会同时调用Optimizer的构造函数,并使用传递的参数(init_lr和model)进行初始化。如果^y和y越远,交叉熵越大。
2023-10-29 11:07:54
103
原创 在Softmax回归的风险函数中,如果加上正则化项会有什么影响?
加入正则化后,更新参数时需要减去2λW,使得参数不会过大,不会造成溢出的错误,防止过拟合。总的来说,通过添加正则化项可以有效控制模型的复杂度,避免过拟合,并提高模型的泛化能力。但需要注意的是,正则化项的系数需要合理选择,过大或过小的正则化系数都可能导致模型表现不佳。在Softmax回归的风险函数中,如果加上正则化项会有什么影响?
2023-10-10 22:34:45
161
原创 【23-24 秋学期】NNDL 作业2
但对于回归问题,我们往往不需要关注类别概率的差异,而是更关注具体的数值预测,因此交叉熵损失函数在回归问题中并不适用。但对于分类问题,分类标签通常是离散的,不是连续的,因此平方差损失函数会在分类问题中会产生不合理的结果。例如,在二分类问题中,预测结果为0.9,实际标签为1,平方损失函数会得到0.01的损失。但对于分类问题,我们更关心的是正确分类与错误分类之间的差异,而不是具体的差值。分别计算模型的精确率、召回率、F1值以及它们的宏平均和微平均。2. 计算每个类别的精确率、召回率和 F1 值求和。
2023-09-24 21:55:26
54
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人