深度学习花书笔记
现存疑问
- 反向传播?——模型分层(多个隐藏层),求梯度来进行优化的时候从后往前一层层地计算(因为链式法则)
- MLP?——多层网络(如全连接层)
数学知识
线性代数
生成子空间
一组向量的生成子空间:原始向量线性组合能抵达的点的集合。
用于判断方程是否有解。
范数
${ L^p }$ 范数定义:
$$
\left | x_p \right | = \left (\displaystyle\sum_{i}|x_i|^p \right )^{\frac{1}{p}}
$$
${ L^0 }$范数:向量中非零元素的个数。
${ L^1 }$范数:向量中所有元素绝对值之和。
${ L^2 }$范数(欧几里得范数):向量元素绝对值的平方和再开方,计算向量长度。
${ Frobenius}$范数:所有元素的平方和再开方,衡量矩阵大小。
$$
{\left | A \right |}F = \sqrt{\sum{i,j}A_{i,j}^{2} }
$$
${ L^ \infty }$范数:向量中所有元素中最大的绝对值。
奇异值分解
特征分解:
$$
A = Vdiag(\lambda )V^{-1}
$$
奇异值分解:
$$
A = UDV^T
$$
${ A_{m\times n}, U_{m\times m}正交, V_{n\times n}正交,D}$为对角矩阵但不一定是方阵。
Moore-Penrose伪逆
方程:
$$
Ax=y
$$
左乘左逆B:
$$
x=By
$$
$$
A^{+}=VD^{+}U^{T}
$$
${D^{+}}$是对角矩阵D的非零元素取倒数再转置得到的。
迹运算
Tr(A)表示矩阵对角元素之和。描述${ Frobenius}$范数:
$$
\left | A \right |_F = \sqrt{Tr\left (AA^{T}\right )}
$$
循环转置保持一致:
$$
Tr(ABC)=Tr(CAB)=Tr(BCA)
$$
概率论
delta函数:${\delta \left (x\right )}$,广义函数,除0以外处处为0,积分为1。
sigmoid函数:
$$
\sigma \left ( x\right )=\frac{1}{1+{e}^{-x}}
$$
非负,绝对值大时饱和,值域(0,1)。
softmax:
$$
\zeta \left ( x\right )=log\left ( 1+{e}^{x}\right )
$$
软化的max(0,x)函数,非负。
贝叶斯规则:
$$
P\left ( x\mid y\right )=\frac{P\left ( x\right )P\left ( y\mid x\right )}{P\left ( y\right )}
$$
信息论
一个事件的自信息:
$$
I\left ( x\right )=-logP\left ( x\right )
$$
香农熵(信息熵):量化整个概率分布中不确定性总量。概率的对数(logP(x))的均值。
$$
H\left ( x\right )=-E_{x\sim P}\left [ logP\left ( x\right )\right ]
$$
KL散度:衡量两个分布的差异。
$$
D_{KL}\left ( P\parallel Q\right )=E_{x\sim P}\left [ log\frac{P\left ( x\right )}{Q\left ( x\right )}\right ]
$$
交叉熵:
$$
H\left ( P,Q\right )=-E_{x\sim P}\left [ logQ\left ( x\right )\right ]
$$
$$
H\left ( P,Q\right )=H\left ( P\right )+D_{KL}\left ( P\parallel Q\right )
$$
针对Q最小化交叉熵==最小化KL散度,因为Q不参与H(P)。
数值计算-KKT
上溢:大量级的数被近似为无穷大。
下溢:接近0的数被四舍五入为0。
病态条件:输入被轻微扰动而迅速改变的函数。会导致舍入误差很大。
1.梯度下降算法。一阶:雅可比矩阵;二阶:海赛尔矩阵。
步长:学习率。
2.牛顿法。
凸优化:针对凸函数的优化,易成功。
3.约束优化:KKT方法
区分等式约束和不等式约束,列方程:方程对变量求导的梯度为0,等式约束和不等式约束(相当于方程对参数的求导),不等式约束的参数k及其与不等式的乘积均非负(互补松弛性)
机器学习基础
机器学习总的来说就是一个训练超参数的过程。参数:权重,偏置。
学习算法
经验E改进后,模型在任务T上由性能度量P衡量的性能有所提升。
任务T:处理样本,学习特征。
性能度量P:准确率/错误率。样本划分训练集、验证集和测试集,它们是属于同一分布(数据生成分布)的独立变量。验证集用于及时发现模型或者参数的问题,快速调参,选择超参数,总而言之仍然是帮助训练的。
交叉验证:将训练数据划分为训练集和验证集从而求取泛化误差。
经验E:机器学习算法分为有监督和无监督。无监督的样本:数据。有监督的样本:(标签/目标,数据)。
表示数据集:设计矩阵。
容量
泛化:在未观测到的数据上表现良好。
训练误差:在训练集上的误差。
测试误差(泛化误差):在测试集上的误差。
欠拟合:难以取得足够低的训练误差。
过拟合:训练误差和测试误差之间的差距过大。
模型的表示容量:模型规定,在调整参数时学习算法能从哪些函数中选择函数。有效容量可能小于表示容量(由于优化算法的不完美等)。
奥卡姆剃刀:简约原则,在同样能解释已知观测现象的假设中,应挑选“最简单”的那个。
- VC维度:分类器能分类的训练样本的最大数目,度量二元分类器的容量。
训练误差和测试误差之间差距的上界随着模型容量增长而增长,随着训练样本增多而下降。
贝叶斯误差:从预先知道的真实分布预测而出现的误差。由于映射的随机,或其他变量的影响。
最优容量点处的测试误差趋近于贝叶斯误差;训练误差在样本容量的限制下可以低于贝叶斯误差,因为算法有能力记住训练集中这些特定的样本。当训练样本增至无限大,训练误差至少增至贝叶斯误差以上。
没有免费午餐定理
没有永远最优的机器学习算法。在所有可能的数据生成分布上平均之后,每个分类算法在未事先观测的点上有相同的错误率。要针对特定任务选择算法。