10 2023 档案
摘要:🤔️如何避免梯度爆炸或消失? 在参数初始化时需要非常小心,以确保梯度和参数可以得到很好的控制(随即初始化) ReLU激活函数缓解了梯度消失问题,这样可以加速收敛。(Sigmoid激活函数在输入很大或是很小时,它的梯度都会消失。)
阅读全文
摘要:在训练神经网络时,前向传播和反向传播相互依赖。 对于前向传播,我们沿着依赖的方向遍历计算图并计算其路径上的所有变量。 然后将这些用于反向传播,其中计算顺序与计算图的相反。 因此,在训练神经网络时,在初始化模型参数后, 我们交替使用前向传播和反向传播,利用反向传播给出的梯度来更新模型参数。 注意,反向
阅读全文
摘要:偏差指的是模型与真实数据分布之间的误差。线性模型能表示的函数空间有限,所以存在偏差。 方差指同一模型在不同训练集上的输出变化。简单模型方差小,复杂模型容易过拟合,方差大。 1. 泛化性好的模型往往偏差高,方差低。比如简单的线性模型。 2. 灵活性强的模型往往偏差低,方差高。比如复杂的深度神经网络。
阅读全文
摘要:正则化 正则化(Regularization)是机器学习中的一类技术,其通过对模型添加惩罚项来解决过拟合问题,从而提高模型的泛化能力。 正则化的主要思想是在损失函数中引入模型复杂度的惩罚项,强制模型保持一定的简单性和平滑性。 比较常见的正则化方法包括: - L1正则化:对权重参数的绝对值之和进行惩罚
阅读全文
摘要:过拟合 作为机器学习科学家,我们的目标是发现模式(pattern)。 但是,我们如何才能确定模型是真正发现了一种泛化的模式, 而不是简单地记住了数据呢? 例如,我们想要在患者的基因数据与痴呆状态之间寻找模式, 其中标签是从集合痴呆轻度认知障碍健康中提取的。 因为基因可以唯一确定每个个体(不考虑双胞胎
阅读全文
摘要:在分类问题中,我们通常使用交叉熵损失,而不是平方误差损失的主要原因是: 输出解释不同。分类使用概率,而回归使用具体预测值。交叉熵更适合度量概率分布之间的距离
阅读全文
摘要:线性模型的局限性 例如,线性意味着单调假设: 任何特征的增大都会导致模型输出的增大(如果对应的权重为正), 或者导致模型输出的减小(如果对应的权重为负)。 有时这是有道理的。 例如,如果我们试图预测一个人是否会偿还贷款。 我们可以认为,在其他条件不变的情况下, 收入较高的申请人比收入较低的申请人更有
阅读全文
摘要:在深度学习中,全连接层无处不在。 然而,顾名思义,全连接层是“完全”连接的,可能有很多可学习的参数。 具体来说,对于任何具有d个输入和q个输出的全连接层, 参数开销为O(dq),这个数字在实践中可能高得令人望而却步。 幸运的是,将d个输入转换为q个输出的成本可以减少到O(dq/n), 其中超参数n可
阅读全文
摘要:分类问题 ⬆️独热标签向量 网络架构 softmax运算 小批量样本的矢量化 损失函数 模型预测与评估 在训练softmax回归模型后,给出任何样本特征,我们可以预测每个输出类别的概率。 通常我们使用预测概率最高的类别作为输出类别。 如果预测与实际类别(标签)一致,则预测是正确的。 在接下来的实验中
阅读全文
摘要:回归 回归(regression)是能为一个或多个自变量与因变量之间关系建模的一类方法。 在自然科学和社会科学领域,回归经常用来表示输入和输出之间的关系。 在机器学习领域中的大多数任务通常都与预测(prediction)有关。 当我们想预测一个数值时,就会涉及到回归问题。 常见的例子包括:预测价格(
阅读全文
摘要:深度学习框架可以自动计算导数的原理主要如下: 1. 深度学习框架实现了自动微分机制,可以自动生成计算图,并记录运算过程。 2. 在计算图中,每个变量都是计算节点,变量之间通过计算操作连接。 3. 框架会跟踪整个计算图,记录每个变量的运算关系和数据流动。 4. 对于要求导数的变量,我们将其标记为要求导
阅读全文
摘要:默认情况下,调用求和函数会沿所有的轴降低张量的维度,使它变为一个标量。 x = torch.arange(4, dtype=torch.float32) x, x.sum() (tensor([0., 1., 2., 3.]), tensor(6.)) 我们还可以指定张量沿哪一个轴来通过求和降低维度
阅读全文
摘要:为了能用深度学习来解决现实世界的问题,我们经常从预处理原始数据开始, 而不是从那些准备好的张量格式数据开始。 下面我们将简要介绍使用pandas预处理原始数据,并将原始数据转换为张量格式的步骤。 1.读取数据集 举一个例子,我们首先创建一个人工数据集,并存储在CSV(逗号分隔值)文件 ../data
阅读全文
摘要:概念介绍(基础) 练习* 用其他形状(例如三维张量)替换广播机制中按元素操作的两个张量。结果是否与预期相同? a = torch.arange(20).reshape((5,1,4)) b = torch.arange(48).reshape((6,2,4)) (a+b).shape Runtime
阅读全文
摘要:为了能够完成各种数据操作,我们需要某种方法来存储和操作数据。 首先,我们介绍维数组,也称为张量(tensor)。 使用过Python中NumPy计算包的读者会对本部分很熟悉。 无论使用哪个深度学习框架,它的张量类(在MXNet中为ndarray, 在PyTorch和TensorFlow中为Tenso
阅读全文
摘要:1.监督学习 监督学习(supervised learning)擅长在“给定输入特征”的情况下预测标签。 每个“特征-标签”对都称为一个样本(example)。 整个监督学习过程如图所示。 图 监督学习 1.1回归 回归(regression)是最简单的监督学习任务之一。当标签取任意数值时,我们称之
阅读全文