深度学习
文章平均质量分 91
-_Matrix_-
尊重知识,尊重价值。
展开
-
神经网络系列---池化
平均池化(Average Pooling)是卷积神经网络中另一种常用的池化技术。其操作是在输入特征图的一个局部窗口内计算所有值的平均值,然后将此平均值作为该窗口的输出。最大池化(Max Pooling)是卷积神经网络中常用的一种池化技术。其操作是:在输入特征图的一个局部窗口内选取最大的值作为该窗口的输出。这个公式简单地描述了最大池化的操作:对于每个输出元素。这个公式描述了平均池化的操作:对于每个输出元素。的相应局部窗口中计算所有值的平均值。的相应局部窗口中找到最大的值。原创 2024-02-27 20:20:01 · 1652 阅读 · 0 评论 -
神经网络系列---卷积
需要注意的是,正向卷积和反向传播中的卷积(通常称为转置卷积或反卷积)在数学和实现上有一些不同。在神经网络的卷积层中,向下取整(Floor)是一种常用的策略,特别是在处理输出尺寸不是整数的情况时。这个翻转的卷积核(或旋转180度的卷积核)通常用于反向传播过程中,以计算相对于输入的梯度。简而言之,在正向传播中我们使用原始的卷积核,而在反向传播时,为了计算梯度,我们通常需要用到翻转的卷积核。对于正向传播,我们使用原始的卷积核进行卷积操作。举一个简单的例子,假设你有一个7x7的输入和一个3x3的卷积核,步长为2。原创 2024-02-27 20:17:28 · 1643 阅读 · 0 评论 -
神经网络系列---计算图基本原理
符号微分提供了一种精确、直接的方式来计算导数。在深度学习和其他科学计算应用中,通过结合计算图,符号微分使得自动求导和梯度下降优化变得可行和高效。不过,对于非常复杂的表达式,符号微分可能导致表达式膨胀,从而增加了计算复杂性。因此,有时可能会结合使用符号微分和数值微分方法。数值微分是一种有用的工具,特别是当解析解不可用或难以获得时。它提供了一种灵活而实用的方法来近似导数,但必须谨慎选择参数并注意可能的数值问题。在深度学习和其他领域,它通常与符号微分或自动微分结合使用。变量:xxxyyy运算:log。原创 2024-02-24 21:22:23 · 1289 阅读 · 0 评论 -
神经网络系列---归一化
由于不同的特征可能具有不同的尺度和分布,因此为每个特征单独计算均值和方差是有意义的。这样可以确保在整个训练集中,每个特征都被归一化到具有相同的均值和方差,从而有助于提高训练的稳定性和效率。在批量归一化中,移动平均均值和方差是在训练阶段计算并用于预测阶段的归一化过程。在推断阶段,使用整个训练集的均值和方差(通常是移动平均)来替代小批量的均值和方差。是一个超参数,通常在 0 到 1 之间,通常设置为接近 1 的值(例如 0.9),决定了移动平均的平滑程度。:对于每个训练批次,计算该批次数据的均值和方差。原创 2024-02-24 21:17:12 · 1519 阅读 · 0 评论 -
神经网络系列---分类度量
它将预测结果与真实标签之间的四种不同情况进行了分类,包括真正类(True Positive,TP)、真负类(True Negative,TN)、假正类(False Positive,FP)和假负类(False Negative,FN)。TPR是召回率(Recall)的另一个名称,它表示在所有真实为正类别的样本中,模型正确预测为正类别的样本所占的比例。在某些不平衡的分类问题中,如果某个类别的样本数量较少,模型可能会倾向于预测样本属于数量较多的类别,从而导致准确率的误导。原创 2024-02-24 21:14:48 · 1630 阅读 · 1 评论 -
神经网络系列---常用梯度下降算法
常用梯度下降算法当涉及不同的梯度下降算法时,每种算法都有其独特的特点和优化策略。下面对每种算法进行详细解释:随机梯度下降(Stochastic Gradient Descent,SGD):算法原理:在每次迭代中,随机选择一个训练样本来计算损失函数的梯度,并更新模型的参数。由于随机选择样本,梯度估计存在一定的噪声,导致优化路径不稳定,但收敛速度较快。优点:收敛速度快,计算开销较小。缺点:优化路径不稳定,可能会震荡,难以找到全局最优解。算法原理:在每次迭代中,使用所有训练样本来计算损原创 2024-02-24 21:05:54 · 1495 阅读 · 0 评论 -
神经网络系列---独热编码(One-Hot Encoding)
在机器学习和数据分析中,我们通常会遇到非数值型的特征(例如颜色、性别、国家等),而大多数机器学习算法要求输入的特征是数值型的。因此,我们需要将这些分类变量转换成数值型的表达形式,而独热编码是一种常见的处理方式。然而,也要注意,在特征空间较大时,独热编码可能会导致高维度的稀疏矩阵,增加了计算和存储的开销。,包含N个不同的取值,那么独热编码将会生成一个N维的二进制向量,其中只有一个维度为1(热)表示当前的取值,其他维度为0(冷)表示非当前取值。当某个样本的颜色是某一种取值时,对应的列为1,其他列为0。原创 2024-02-24 21:02:05 · 953 阅读 · 0 评论 -
神经网络系列---权重初始化方法
n_in:代表上一层(前一层)的节点数量,也就是当前层的输入数量。在神经网络中,每个神经元都会接收来自上一层所有节点的输入,这些输入被加权和后传递给当前神经元的激活函数。因此,n_in指的是上一层与当前层之间的连接数量。n_out:代表当前层的节点数量,也就是当前层的输出数量。每个神经元会将经过激活函数处理后的结果传递给下一层所有节点,形成下一层的输入。适用于激活函数为tanh或sigmoid的情况。对于带有ReLU激活的卷积层,可以使用相同的初始化方法,只是需要考虑卷积层的输入通道数量(即n_in)。原创 2024-02-24 21:01:01 · 1920 阅读 · 0 评论 -
神经网络系列---回归问题和分类问题
在某些情况下,特定任务可能需要定制的损失函数。根据任务的需求,可以定义适合特定问题的损失函数。原创 2024-02-24 20:58:31 · 836 阅读 · 0 评论 -
神经网络系列---损失函数
在分类任务中,信息熵损失函数的作用是最小化模型预测的类别概率分布与真实标签的差异,使得模型能够更好地预测正确类别。平均绝对误差(Mean Absolute Error,MAE)是常用的回归问题中的损失函数,用于衡量模型预测结果与真实标签之间的差异。均方误差(Mean Squared Error,MSE)是常用的回归问题中的损失函数,用于衡量模型预测结果与真实标签之间的差异。Hinge Loss 的特点是,对于预测结果与真实标签的差异小于1的情况,损失为0,这被称为“合页点”(hinge point)。原创 2024-02-24 20:56:52 · 2079 阅读 · 1 评论 -
神经网络系列---激活函数
然而,Leaky ReLU 也存在一些缺点。综上所述,尽管Sigmoid函数在过去被广泛应用于神经网络中,但随着深度学习的发展,人们更倾向于使用其他激活函数,如ReLU及其变种,因为它们能够缓解梯度消失问题并提供更好的性能。综上所述,尽管Tanh函数具有一些优点,但在深度神经网络中,它容易出现梯度消失的问题,因此在实践中,ReLU及其变种等激活函数更常用。然而,Tanh函数仍然可以在特定情况下使用,例如需要将输出值范围控制在[-1, 1]之间的任务,或者在某些循环神经网络(RNN)的隐藏层中使用。原创 2024-02-24 20:47:20 · 1479 阅读 · 0 评论 -
神经网络系列---感知机(Neuron)
感知机(Neuron)的学习过程主要涉及确定合适的权重,以便对不同的输入样本进行正确的分类。感知机(Neuron)是一种简单而有效的二分类算法,用于将输入数据划分为两个类别。需要注意的是,感知机(Neuron)只适用于线性可分的问题,即可以通过一个超平面将两个类别的数据完全分开。其中,x是输入向量,w是权重向量,b是偏置项,sign是符号函数,将输入的实数映射为+1或-1,表示两个不同的类别。下面用感知机(Neuron) 表达 与(AND)、 或(OR) 、非(NOT) 、异或(XOR) 、 运算。原创 2024-02-24 20:44:49 · 1606 阅读 · 0 评论 -
TensorFlow详细配置(Python版本)
这里再次提醒自行搭配版本的读者,一定要看清对照表内python = 3.9、tensorflow-gpu = 2.6、cudnn = 8.1、cuda=11.2这四者之间的版本号是否匹配!(3)当分享代码的时候,同时也需要将运行环境分享给大家,执行如下命令可以将当前环境下的 package 信息存入名为 environment 的 YAML 文件中。(4)当执行他人的代码时,也需要配置相应的环境。现在需要重启电脑,然后Win+R进入cmd界面,输入nvcc -V,出现如下界面,代码cuda已经安装成功了。原创 2023-06-18 22:50:38 · 17560 阅读 · 3 评论