1. 针对batch_size大小的数据集进行网络训练的时候,网络中每个参数更新时减去的梯度是batch_size中每个样本对应参数梯度求和后取得平均值。
2. 随机梯度下降中的“随机”是指随机采样的意思,并不是指批量大小是随机的。
3. 如果样本大小不是批量数的整数倍,那么需要随机剔除多余的样本吗? e.g 样本批量是总数是100,批量大小是60
对于多余的样本有三种做法:
- 1):剩余的样本(60),直接作为一个完整的批量输入,(该种做法比较常见)
- 2):直接丢弃多余的样本(40)
- 3):从下一个批次中取数(即从下一个批次中取20个样本。40+20=60),补齐。
4. 为什么使用SGD(随机梯度下降)?
- 因为除了线性函数都没有显式解。大部分实际的loss过于复杂,所以只能逐个batch去逼近
5. y=wx+b中的w一定要随机初始化吗?能不能用同样的值
- w是超参,需要初始化一个值,每次可以设置相同的值,也可以是不同的值。如果想要设置成相同的值,则设置一个固定的随机种子即可。
6. 计算每一个batch的时候,为什么需要先将梯度清零?
- pytorch不会自动将梯度清零。如果不清零,下一次的计算,会在上一次计算梯度的基础上累加,一直累加
1. 回归 vs 分类
- 回归是单连续数值输出,其输出是一个自然区间,跟真实值的区别作为损失(真实值与预测值之间差值的均方误差)