深度学习基础篇(持续更新中)
数据结构
- 注意对数据进行reshape时,是否是创建新view而非拷贝数据,如果是view,那么对reshape完之后的结果进行操作,会影响原数组的值。 这个适用于numpy, pandas, pytorch.
- 对向量进行运算时,注意默认的broadcasting机制,避免预期外的矩阵形状。
统计方法 vs 机器学习
- 统计方法是通过数学方式求p问题,即通过数学推到,求最优解。
- 机器学习要解决的问题,解空间接近无限大,所以不追求一定求得最优解,而是通过计算机求np问题。
求导
- 符号求导 vs 数值求导
- 符号求导是根据公式进行求导,是从一个公式推出它的导数公式
- 数值求导无需知道公式,是针对自变量的某个具体取值,求它对应的导数数值
- 实现原理是计算图:将计算表示为有向无环图。一个节点称为一个算子。
- 自动求导
- 根据计算图,给定自变量数值,正向计算(从自变量出发)得到因变量值。
- 自动求导是最好资源的一步,其时间和空间复杂度和样本大小线性相关
线性回归
- 学习率,针对损失函数求权重的偏微分,按照学习率的步长,朝偏微分反方向调整权重值。学习率不宜太大或太小。
- 小批量随机梯度下降(SGD)。批量大小也是一个重要的超参数。
- 目前梯度下降主要是用一阶导,二阶导虽然可能收敛更快,但是在目前的实际应用中,并不比一阶导更容易找到全局最优解。反而增加计算负担。
- 数据集 - 模型 - 损失函数 - 优化方法。整个训练过程就是按这四个部分执行,一直循环。