深度学习基础篇(持续更新中)

数据结构

  1. 注意对数据进行reshape时,是否是创建新view而非拷贝数据,如果是view,那么对reshape完之后的结果进行操作,会影响原数组的值。 这个适用于numpy, pandas, pytorch.
  2. 对向量进行运算时,注意默认的broadcasting机制,避免预期外的矩阵形状。

统计方法 vs 机器学习

  1. 统计方法是通过数学方式求p问题,即通过数学推到,求最优解。
  2. 机器学习要解决的问题,解空间接近无限大,所以不追求一定求得最优解,而是通过计算机求np问题。

求导

  1. 符号求导 vs 数值求导
    • 符号求导是根据公式进行求导,是从一个公式推出它的导数公式
    • 数值求导无需知道公式,是针对自变量的某个具体取值,求它对应的导数数值
    • 实现原理是计算图:将计算表示为有向无环图。一个节点称为一个算子。
  2. 自动求导
    • 根据计算图,给定自变量数值,正向计算(从自变量出发)得到因变量值。
    • 自动求导是最好资源的一步,其时间和空间复杂度和样本大小线性相关

线性回归

  1. 学习率,针对损失函数求权重的偏微分,按照学习率的步长,朝偏微分反方向调整权重值。学习率不宜太大或太小。
  2. 小批量随机梯度下降(SGD)。批量大小也是一个重要的超参数。
  3. 目前梯度下降主要是用一阶导,二阶导虽然可能收敛更快,但是在目前的实际应用中,并不比一阶导更容易找到全局最优解。反而增加计算负担。
  4. 数据集 - 模型 - 损失函数 - 优化方法。整个训练过程就是按这四个部分执行,一直循环。

Softmax回归