首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

22个深度学习面试问题

答: 使用ReLU激活不是S型。 使用Xavier初始化。 2.在图像分类任务中使用CNN(卷积神经网络)不是DNN,为什么?...5.比较批次、迷你批次和随机梯度下降(SGD)区别? 答:批处理是指通过获取整个数据来估计数据,通过采样一些数据点来进行小批量处理,SGD则是在每个时期更新一个数据点梯度。...这里权衡是在梯度计算精确度与可以保留在内存批量大小之间。此外,通过在每个时间段添加随机噪声,以小批量不是整个批次具有正规化效果。 6.什么是数据扩充?举个例子。...答:不可以,因为使用每个训练数据在每个历元上计算梯度,所以改组没有区别。 14.当使用小批量梯度下降时,为什么对数据进行乱序? 答:防止模型学到样本间顺序。而这个顺序并不是样本自带特征。...答:在任何双向模型,都假定可以在给定“时间”内访问序列下一个元素。文本数据(例如,情感分析,翻译等)就是这种情况,时间序列数据则不是这种情况。 20。

47630

Batch Size对神经网络训练影响

训练神经网络以最小化以下形式损失函数: theta 代表模型参数 m 是训练数据样本数量 i 每个值代表一个单一训练数据样本 J_i 表示应用于单个训练样本损失函数 通常,这是使用梯度下降来完成...随机梯度下降计算训练数据子集 B_k 上梯度不是整个训练数据集。 B_k 是从训练数据集中采样一批,其大小可以从 1 到 m(训练数据点总数)。...这通常称为批量大小为 |B_k| 小批量训练。我们可以将这些批次梯度视为“true”梯度近似值,即整体损失函数相对于 theta 梯度。...事实上,正如我们在第二个图中所看到,epoch距离比率随着时间推移增加! 但是为什么大批量训练每个 epoch 遍历距离更短呢?是因为我们批次较少,因此每个 epoch 更新较少吗?...现在,批量大小 256 验证损失为 0.352 不是 0.395——更接近批量大小 32 损失 0.345。 提高学习率如何影响训练时间?

60330
您找到你想要的搜索结果了吗?
是的
没有找到

Batch Size对神经网络训练影响

训练神经网络以最小化以下形式损失函数: theta 代表模型参数 m 是训练数据样本数量 i 每个值代表一个单一训练数据样本 J_i 表示应用于单个训练样本损失函数 通常,这是使用梯度下降来完成...随机梯度下降计算训练数据子集 B_k 上梯度不是整个训练数据集。 B_k 是从训练数据集中采样一批,其大小可以从 1 到 m(训练数据点总数)。...这通常称为批量大小为 |B_k| 小批量训练。我们可以将这些批次梯度视为“true”梯度近似值,即整体损失函数相对于 theta 梯度。...事实上,正如我们在第二个图中所看到,epoch距离比率随着时间推移增加! 但是为什么大批量训练每个 epoch 遍历距离更短呢?是因为我们批次较少,因此每个 epoch 更新较少吗?...现在,批量大小 256 验证损失为 0.352 不是 0.395——更接近批量大小 32 损失 0.345。 提高学习率如何影响训练时间?

86921

PyTorch进阶之路(二):如何实现线性回归

我们可以使用以下方法比较模型预测和实际目标: 计算两个矩阵(preds 和 targets)之间差异; 求这个差异矩阵所有元素平方以消除其中负值; 计算所得矩阵中元素平均值。...如果梯度元素为正数,则: 稍微增大元素值会增大损失。 稍微减小元素值会降低损失。 ? 作为权重函数 MSE 损失(蓝线表示梯度如果梯度元素为负数,则: 稍微增大元素值会降低损失。...稍微减小元素值会增大损失。 ? 作为权重函数 MSE 损失(绿线表示梯度) 通过改变一个权重元素造成损失增减正比于该元素损失梯度值。这就是我们用来提升我们模型优化算法基础。...之所以是「随机」,原因是样本是以批形式选择(通常会用到随机混洗),不是作为单独一个数据组。 ?...我们将遵循实现梯度下降同一过程: 生成预测 计算损失 根据权重和偏置计算梯度 按比例减去少量梯度来调整权重 将梯度重置为零 唯一变化我们操作是分批数据,不是在每次迭代中都处理整个训练数据集。

1.1K30

《机器学习实战:基于Scikit-Learn、Keras和TensorFlow》第12章 使用TensorFlow自定义模型并训练

另外,如果想利用TensorFlow图特性,则只能使用TensorFlow运算。 最好返回一个包含实例张量,其中每个实例都有一个损失不是返回平均损失。...默认情况下是"sum_over_batch_size",意思是损失是各个实例损失之和,如果有样本权重,则做权重加权,再除以批次大小(不是除以权重之和,所以不是加权平均)。...再假设模型在第二个批次做了3次正预测,但没有一个预测对,则准确率是0%。如果对这两个准确率做平均,则平均值是40%。但它不是模型在两个批次准确率!...因为输入不是变量,就需要记录器监视输入。 大多数时候,梯度记录器被用来计算单一值(通常损失梯度。这就是自动微分发挥长度地方了。因为自动微分只需要一次向前传播一次向后传播,就能计算所有梯度。...通常,最好在TF函数外部创建变量(比如在自定义层build()方法)。如果你想将一个新值赋值给变量,要确保调用它assign()方法,不是使用=。

5.2K30

可能提高GAN性能方法介绍

我们通过对图像特征f(x)平均值之间加上L2范数距离惩罚生成器。 ? 其中f(x)是鉴别器即时层输出,用于提取图像特征。 ? 在这里,我们目标不是简单地欺骗鉴别者。...为了避免这个问题,当对任何真实图像预测超过0.9时(D(real image)>0.9),我们惩罚鉴别器。我们通过将目标标签值设置为0.9不是1.0来完成它。...为了减轻这一点,我们将参考批次与当前批次结合起来计算归一化参数。 历史平均(Historical averaging) 在历史平均我们跟踪最后t模型参数。...或者,如果我们需要保留一个长序列模型,我们更新模型参数运行平均值。 我们损失函数下面添加一个L2损失: ? 对于一些具有非凸对象函数对抗,历史平均可能会使模型停止在均衡点附近并开始收敛。...我们还没有看到特定损失函数在所有GAN应用可以一直表现出更好图像质量,或者我们看到某种损失函数淘汰原始GAN。我们最多可以说,如果你需要更好图像质量,你可能要测试不同方法。

1.4K40

从零开始:教你如何训练神经网络

提升网络是有可能,因为我们可以通过调节权值去改变函数。我们希望找到一个比初始化模型性能好很多函数。 问题在于,训练过程相当于最小化损失函数。为什么是最小化损失不是最大化呢?...让我们对指数加权平均新序列 V 三个连续元素定义进行扩展。 ? V——新序列。S——原始序列。 将其进行合并,我们可以得到: ? 再对其进行简化,可得: ?...这就是为什么 beta 值越大,我们要对更多点积进行平均。下面的图表显示是与 threshold = 1 / e 相比,随着序列 S 初始值变化,权重变小速度,在此我们「忘记」了初始值。 ?...最后要注意是,第一次迭代得到平均值会很差,因为我们没有足够进行平均我们可以通过使用序列 V 偏差修正版不是直接使用序列 V 来解决这一问题。 ? 式 b = beta。...我们该如何将其应用于神经网络训练呢?它可以平均我们梯度。我将在下文中解释它是如何在动量完成这一工作,并将继续解释为什么它可能会得到更好效果。

68350

从零开始教你训练神经网络

提升网络是有可能,因为我们可以通过调节权值去改变函数。我们希望找到一个比初始化模型性能好很多函数。 问题在于,训练过程相当于最小化损失函数。为什么是最小化损失不是最大化呢?...事实上,它通常都不会。在使用梯度下降算法时候,如果所选择学习率足够小的话,能够保证你损失函数在每一次迭代中都会减小。但是使用 Mini-batch 时候并不是这样。...让我们对指数加权平均新序列 V 三个连续元素定义进行扩展。...使用这个近似值好处在于当权重小于 1 / e 时,更大 beta 值会要求更多小于 1 / e 权值。这就是为什么 beta 值越大,我们要对更多点积进行平均。...最后要注意是,第一次迭代得到平均值会很差,因为我们没有足够进行平均我们可以通过使用序列 V 偏差修正版不是直接使用序列 V 来解决这一问题。 式 b = beta。

87690

塔荐 | 神经网络训练方法详解

提升网络是有可能,因为我们可以通过调节权值去改变函数。我们希望找到一个比初始化模型性能好很多函数。 问题在于,训练过程相当于最小化损失函数。为什么是最小化损失不是最大化呢?...让我们对指数加权平均新序列 V 三个连续元素定义进行扩展。 ? V——新序列。S——原始序列。 将其进行合并,我们可以得到: ? 再对其进行简化,可得: ?...这就是为什么 beta 值越大,我们要对更多点积进行平均。下面的图表显示是与 threshold = 1 / e 相比,随着序列 S 初始值变化,权重变小速度,在此我们「忘记」了初始值。 ?...最后要注意是,第一次迭代得到平均值会很差,因为我们没有足够进行平均我们可以通过使用序列 V 偏差修正版不是直接使用序列 V 来解决这一问题。 ? 式 b = beta。...我们该如何将其应用于神经网络训练呢?它可以平均我们梯度。我将在下文中解释它是如何在动量完成这一工作,并将继续解释为什么它可能会得到更好效果。

1.2K80

从零开始教你训练神经网络(附公式、学习资源)

提升网络是有可能,因为我们可以通过调节权值去改变函数。我们希望找到一个比初始化模型性能好很多函数。 问题在于,训练过程相当于最小化损失函数。为什么是最小化损失不是最大化呢?...事实上,它通常都不会。在使用梯度下降算法时候,如果所选择学习率足够小的话,能够保证你损失函数在每一次迭代中都会减小。但是使用 Mini-batch 时候并不是这样。...让我们对指数加权平均新序列 V 三个连续元素定义进行扩展。...使用这个近似值好处在于当权重小于 1 / e 时,更大 beta 值会要求更多小于 1 / e 权值。这就是为什么 beta 值越大,我们要对更多点积进行平均。...最后要注意是,第一次迭代得到平均值会很差,因为我们没有足够进行平均我们可以通过使用序列 V 偏差修正版不是直接使用序列 V 来解决这一问题。 式 b = beta。

1.4K100

独家 | 你神经网络不起作用37个理由(附链接)

本文列举了在搭建神经网络过程37个易错点,并给出了解决建议。 有一个网络已经训练了12个小时。一切看起来都很好:梯度是逐渐变化损失在减少。但接下来预测:都是零,所有的图像背景都没有被检测到。...因此,打印/显示几批输入和目标输出,以确保它们是正确。 2.尝试随机输入 尝试传入随机数不是实际数据,看看错误是否相同。如果是这样,这是一个确定信号,说明你网络在某个时候将数据转换为了垃圾。...例如,如果我们有10个类,随机意味着我们将在10%时间内得到正确类,Softmax损失是正确类概率对数相反数,所以:-ln(0.1) = 2.302。...对输入维使用奇怪数字(例如,每个维使用不同素数),并检查它们如何在网络传播。 26. 进行梯度检查 如果你手工实现梯度下降,进行梯度检查可以确保你反向传播能够正常工作。...在优秀“程序员实践深度学习”课程,Jeremy Howard建议首先摆脱不拟合。这意味着你要对训练数据进行充分过拟合,然后才能解决过拟合问题。 31.

80110

独家 | 你神经网络不起作用37个理由(附链接)

关闭所有的附加功能,例如正则化和数据增强。 3. 如果对一个模型进行微调,要仔细检查预处理,因为它应该与原始模型训练相同。 4. 验证输入数据是否正确。 5....或者我会一遍又一遍地使用相同批次。因此,打印/显示几批输入和目标输出,以确保它们是正确。 2.尝试随机输入 尝试传入随机数不是实际数据,看看错误是否相同。...例如,如果我们有10个类,随机意味着我们将在10%时间内得到正确类,Softmax损失是正确类概率对数相反数,所以:-ln(0.1) = 2.302。...对输入维使用奇怪数字(例如,每个维使用不同素数),并检查它们如何在网络传播。 26. 进行梯度检查 如果你手工实现梯度下降,进行梯度检查可以确保你反向传播能够正常工作。...在优秀“程序员实践深度学习”课程,Jeremy Howard建议首先摆脱不拟合。这意味着你要对训练数据进行充分过拟合,然后才能解决过拟合问题。 31.

76820

NFNETS论文解读:不使用BN高性能大规模图像识别

但是如果没有BN,这些网络通常无法很好地运行或无法扩展到更大批处理大小,但是本篇论文构建网络可以使用大批次进行伦联,并且比以前最新方法(例如LambdaNets)更有效 。...如果所有3个网络中都有一个BN层,那么您在技术上要做就是将信号转发到BN层,然后您必须在BN层之间传递批处理统计信息,因为否则 在整个批次没有平均值和方差。这使网络可以“欺骗”某些损失函数。...梯度裁剪通常是通过约束梯度模来实现。具体来说,对于梯度向量G =∂L/∂θ,其中L表示损失,θ表示包含所有模型参数向量,标准裁剪算法在更新θ之前对梯度进行裁剪: ?...在训练过程,优化器为了达到全局最小值进行巨大跳跃并不是一件很好事情,所以梯度剪切只是说,无论何时任何参数梯度非常大,我们都会剪切该梯度。...如果梯度是好我们肯定会再次看到它,但如果梯度是坏我们想要限制它影响。问题在于它对限幅参数λ非常敏感,原因是它不具有自适应性。

58420

神经网络不起作用37个理由

关闭所有的附加功能,例如正则化和数据增强。 3. 如果对一个模型进行微调,要仔细检查预处理,因为它应该与原始模型训练相同。 4. 验证输入数据是否正确。 5....或者我会一遍又一遍地使用相同批次。因此,打印/显示几批输入和目标输出,以确保它们是正确。 2.尝试随机输入 尝试传入随机数不是实际数据,看看错误是否相同。...例如,如果我们有10个类,随机意味着我们将在10%时间内得到正确类,Softmax损失是正确类概率对数相反数,所以:-ln(0.1) = 2.302。...对输入维使用奇怪数字(例如,每个维使用不同素数),并检查它们如何在网络传播。 26. 进行梯度检查 如果你手工实现梯度下降,进行梯度检查可以确保你反向传播能够正常工作。...在优秀“程序员实践深度学习”课程,Jeremy Howard建议首先摆脱不拟合。这意味着你要对训练数据进行充分过拟合,然后才能解决过拟合问题。 31.

73500

Pytorch实现线性回归模型

我们例子,backward() 方法被调用在一个张量(即损失函数输出)上。...这是因为在 PyTorch ,backward() 方法用于计算某个张量(通常损失函数输出)相对于所有需要梯度参数梯度。...,任何需要进行梯度计算张量都可以使用 backward() 方法来帮助进行梯度更新。...我们看一下训练后效果: 可以看到经过重复训练几乎和原本真实直线吻合, 我们在每次epochs后都会记录平均损失,看一下平均损失下降趋势: 回顾:随机梯度下降算法(SGD)  from sklearn.linear_model...import SGDRegressor 随机梯度下降算法(SGD) 每次迭代时, 随机选择并使用一个样本梯度值 由于FG每迭代更新一次权重都需要计算所有样本误差,实际问题中经常有上亿训练样本,故效率偏低

12810

机器学习常用术语超全汇总

例如,SGD批次大小为 1,批次大小通常介于 10 到 1000 之间。批次大小在训练和推断期间通常是固定;不过,TensorFlow 允许使用动态批次大小。...分桶 (bucketing) 将一个特征(通常是连续特征)转换成多个二元特征(称为桶或箱),通常根据值区间进行转换。例如,您可以将温度区间分割为离散分箱,不是将温度表示成单个连续浮点特征。...通常,嵌套是指将高维度向量映射到低维度空间。例如,您可以采用以下两种方式之一来表示英文句子单词。 表示成包含百万个元素(高维度)稀疏向量,其中所有元素都是整数。...因此,制造商可能应该根据这三个形心确定毛衣尺寸。请注意,聚类形心通常不是聚类样本。 上图显示了 k-means 应用于仅具有两个特征(高度和宽度)样本。...动量 (Momentum) 一种先进梯度下降法,其中学习步长不仅取决于当前步长导数,还取决于之前一步或多步步长导数。动量涉及计算梯度随时间变化指数级加权移动平均值,与物理学动量类似。

86010

机器学习术语表

例如,SGD 批次大小为 1,批次大小通常介于 10 到 1000 之间。批次大小在训练和推断期间通常是固定;不过,TensorFlow 允许使用动态批次大小。...分桶 (bucketing) 将一个特征(通常是连续特征)转换成多个二元特征(称为桶或箱),通常根据值区间进行转换。例如,您可以将温度区间分割为离散分箱,不是将温度表示成单个连续浮点特征。...通常,嵌套是指将高维度向量映射到低维度空间。例如,您可以采用以下两种方式之一来表示英文句子单词: 表示成包含百万个元素(高维度)稀疏向量,其中所有元素都是整数。...在该聚类,三个形心用于标识每只狗平均高度和平均宽度。因此,制造商可能应该根据这三个形心确定毛衣尺寸。请注意,聚类形心通常不是聚类样本。...动量 (Momentum) 一种先进梯度下降法,其中学习步长不仅取决于当前步长导数,还取决于之前一步或多步步长导数。动量涉及计算梯度随时间变化指数级加权移动平均值,与物理学动量类似。

98120

一文看懂各种神经网络优化算法:从梯度下降到Adam方法

这也是为什么我们应该用各种优化策略和算法,来更新和计算影响模型训练和模型输出网络参数,使其逼近或达到最优值。 优化算法分为两大类: 1....此外,相同学习率并不适用于所有的参数更新。如果训练集数据很稀疏,且特征频率非常不同,则不应该将其全部更新到相同程度,但是对于很少出现特征,应使用更大更新率。 3....这些鞍点通常被相同误差值平面所包围,这使得SGD算法很难脱离出来,因为梯度所有维度上接近于零。 进一步优化梯度下降 现在我们要讨论用于进一步优化梯度下降各种算法。 1....在每个时间步t,Adagrad方法为每个参数θ选取不同学习率,更新对应参数,然后进行向量化。为了简单起见,我们把在t时刻参数θ(i)损失函数梯度设为g(t,i)。 ?...与之前无效地存储w先前平方梯度不同,梯度和被递归地定义为所有先前平方梯度衰减平均值。作为与动量项相似的分数γ,在t时刻滑动平均值Eg²仅仅取决于先前平均值和当前梯度值。

5.2K71

梯度下降到 Adam!一文看懂各种神经网络优化算法

这也是为什么我们应该用各种优化策略和算法,来更新和计算影响模型训练和模型输出网络参数,使其逼近或达到最优值。 优化算法分为两大类: 1....此外,相同学习率并不适用于所有的参数更新。如果训练集数据很稀疏,且特征频率非常不同,则不应该将其全部更新到相同程度,但是对于很少出现特征,应使用更大更新率。 3. ...这些鞍点通常被相同误差值平面所包围,这使得SGD算法很难脱离出来,因为梯度所有维度上接近于零。 进一步优化梯度下降 现在我们要讨论用于进一步优化梯度下降各种算法。 1....在每个时间步t,Adagrad方法为每个参数θ选取不同学习率,更新对应参数,然后进行向量化。为了简单起见,我们把在t时刻参数θ(i)损失函数梯度设为g(t,i)。...与之前无效地存储w先前平方梯度不同,梯度和被递归地定义为所有先前平方梯度衰减平均值。作为与动量项相似的分数γ,在t时刻滑动平均值Eg²仅仅取决于先前平均值和当前梯度值。

74030

Google 发布官方中文版机器学习术语表

批次 (batch) 模型训练一次迭代(即一次梯度更新)中使用样本集。 另请参阅批次规模。 批次规模 (batch size) 一个批次样本数。...例如,SGD 批次规模为 1,批次规模通常介于 10 到 1000 之间。批次规模在训练和推断期间通常是固定;不过,TensorFlow 允许使用动态批次规模。...分桶 (bucketing) 将一个特征(通常是连续特征)转换成多个二元特征(称为桶或箱),通常是根据值区间进行转换。例如,您可以将温度区间分割为离散分箱,不是将温度表示成单个连续浮点特征。...通常,嵌套是指将高维度向量映射到低维度空间。例如,您可以采用以下两种方式之一来表示英文句子单词: 表示成包含百万个元素(高维度)稀疏向量,其中所有元素都是整数。...动量 (Momentum) 一种先进梯度下降法,其中学习步长不仅取决于当前步长导数,还取决于之前一步或多步步长导数。动量涉及计算梯度随时间变化指数级加权移动平均值,与物理学动量类似。

56710
领券