An MIT Press book
Ian Goodfellow and Yoshua Bengio and Aaron Courville
感谢大神在GitHub上共享自己的中文翻译 : Deep-Learning中文PDF版
1. 线性代数
1.1 张量
在某些情况下,我们会讨论坐标超过两维的数组。 一般地,一个数组中的元素分布在若干维坐标的规则网格中,我们称之为张量。
1.2 范数
1.3 Moore-Penrose 伪逆
对于非方矩阵而言,其逆矩阵没有定义。 假设在下面的问题中,我们希望通过矩阵A的左逆B来求解线性方程:
$$A x = y$$
Moore-Penrose 伪逆使我们在这类问题上取得了一定的进展。 矩阵A的伪逆定义为:
$$A^+ =lim_{α↘0}(A^⊤A +αI)^{-1}{A^⊤}$$
计算伪逆的实际算法没有基于这个定义,而是使用下面的公式:
$$A^+ = VD^+U^⊤$$
其中,矩阵V,D和U 是矩阵A奇异值分解后得到的矩阵。 对角矩阵D的伪逆$$D^+$$是其非零元素取倒数之后再转置得到的。
奇异值分解:
$$A = UDV^⊤$$
假设A是一个mxn的矩阵,那么U是一个mxm的矩阵,D是一个mxn的对角矩阵,V是一个nx n的矩阵。
1.4 迹运算
迹运算返回的是矩阵对角元素的和:
$$Tr ( A ) = ∑ A _{ i , j } $$
迹运算提供了另一种描述矩阵Frobenius 范数的方式:
$$∥ A ∥ F = Tr ( A A ⊤ ) $$
迹运算性质
$$Tr ( A B C ) = Tr ( C A B ) = Tr ( B C A )$$
2. 概率与信息论
2.1 协方差
协方差在某种意义上给出了两个变量线性相关性的强度以及这些变量的尺度:
$$Cov ( f ( x ) , g ( y ) ) = E [ ( f ( x ) − E [ f (x) ] ) ( g ( y ) − E [ g ( y ) ] ) ] $$
2.2 信息论
香农熵:
$$H(x)=E{x∼P}[I(x)]=−E{x∼P}[log(x)]$$
一个分布的香农熵是指遵循这个分布的事件所产生的期望信息总量。 它给出了对依据概率分布P生成的符号进行编码所需的比特数在平均意义上的下界(当对数底数不是2时,单位将有所不同)。
如果我们对于同一个随机变量 x有两个单独的概率分布 P(x)和Q(x),我们可以使用KL散度来衡量这两个分布的差异:
$$ D{KL}(P||Q)=E{x∼P}[logP(x)Q(x)]=E_{x∼P}[logp(x)− logQ(x)] $$
在离散型变量的情况下,KL散度衡量的是,当我们使用一种被设计成能够使得概率分布 Q产生的消息的长度最小的编码,发送包含由概率分布P产生的符号的消息时,所需要的额外信息量。 KL散度是非负的并且衡量的是两个分布之间的差异,它经常被用作分布之间的某种距离。
交叉熵:
$$ H(P,Q)=−E{x∼P}logQ(x)=H(P)+D{KL}(P||Q) $$
最小化交叉熵等价于最小化KL散度,因为当P已知时,H(P)是常量。
3. 数值计算
3.1 方向导数
方向导数 :是一个数; 反映的是f(x,y)在P0点沿方向v的变化率。
梯度的方向就是函数f(x,y)在这点增长最快的方向,梯度的模为方向导数的最大值。
最速下降法就是使点的搜索方向与梯度方向相反,达到更为快速收敛的目的。
3.2 基本牛顿法
基本牛顿法是一种是用导数的算法,它每一步的迭代方向都是沿着当前点函数值下降的方向。
我们主要集中讨论在一维的情形,对于一个需要求解的优化函数 f(x),求函数的极值的问题可以转化为求函数导函数,对函数 f(x)进行泰勒展开到二阶,得到
对上式求导并令其为0,
即得到
$$ x=x_k - f’(x_k)/f”(x_k) $$
这就是牛顿法的更新公式。
流程:
- 给定终止误差值 0<= ε <<1,初始点 $$x_0∈R^n$$,令 k=0;
- 计算$$g_k = △f(x_k)$$,若 $$||g_k|| <= ε$$,则停止,输出 $$x* ≈ x_k$$ ;
- 计算 $$G_k = △^2f(x_k)$$ ,并求解线性方程组得解$$d_k : G_kd = -g_k$$
- 令 $$x_{k+1}=x_k+d_k$$ , $$k=k+1$$ ,并转2。
3.3 全局牛顿法
牛顿法最突出的优点是收敛速度快,具有局部二阶收敛性,但是,基本牛顿法初始点需要足够“靠近”极小点,否则,有可能导致算法不收敛。这样就引入了全局牛顿法。
流程
- 给定终止误差值 $$0<= ε <<1,δ∈(0,1),σ∈(0,0.5)$$,初始点 $$x_0∈R^n$$,令 k=0;
- 计算 $$g_k = △f(x_k)$$ ,若 $$||g_k|| <= ε$$,则停止,输出 $$x* ≈ x_k$$ ;
- 计算 $$G_k = △^2f(x_k)$$ ,并求解线性方程组得解$$d_k : G_kd = -g_k$$ ;
- 记 $$m_k$$是不满足下列不等式的最小非负整数 $$m:f(x_k +δ^md_k) <= f(x_k)+σδ^mg_k^Td_k;$$;
- 令 $$α_k=δ^{mk}$$,$$x{k+1}=x_k+α_kd_k$$,$$k=k+1$$,并转2。
Armijo搜索
全局牛顿法是基于 Armijo 的搜索,满足 Armijo 准则:
给定β∈(0,1),σ∈(0,0.5),令步长因子$$α_k=β^{mk}$$,$$x{k+1}=x_k+α_kd_k$$,$$k=k+1$$,其中 是满足下列不等式的最小非负整数:
3.4 KKT条件
4. 机器学习基础
4.1 学习算法
机器学习定义
对于某类任务T和性能度量 P,一个计算机程序被认为可以从经验 E中学习是指,通过经验 E改进后,它在任务T上由性能度量 P衡量的性能有所提升。
无监督学习算法
训练含有很多特征的数据集,然后学习出这个数据集上有用的结构性质。 在深度学习中,我们通常要学习生成数据集的整个概率分布,显式地,比如密度估计,或是隐式地,比如合成或去噪。 还有一些其他类型的无监督学习任务,例如聚类,将数据集分成相似样本的集合。
监督学习算法
训练含有很多特征的数据集,不过数据集中的样本都有一个标签或目标。 例如,Iris数据集注明了每个鸢尾花卉样本属于什么品种。 监督学习算法通过研究Iris数据集,学习如何根据测量结果将样本划分为三个不同品种。
欠拟合
是指模型不能在训练集上获得足够低的误差。 而 过拟合 是指训练误差和和测试误差之间的差距太大。
4.2 交叉验证
验证集:
训练数据分成两个不相交的子集。 其中一个用于学习参数,另一个作为验证集,用于估计训练中或训练后的泛化误差,更新超参数。 由于验证集是用来”训练”超参数的,尽管验证集的误差通常会比训练集误差小,验证集会低估泛化误差。 所有超参数优化完成之后,泛化误差可能会通过测试集来估计。
k折交叉验证过程:
将数据集分成k个不重合的子集。 测试误差可以估计为k次计算后的平均测试误差。 在第i次测试时,数据的第i个子集用于测试集,其他的数据用于训练集。
4.3 点估计
令$${x(1),…,x^{(m)}}$$是m个独立同分布的数据点。 点估计或统计量是这些数据的任意函数:
$$θ ^ m = g ( x ( 1 ) , … , x ( m ) ) $$
这个定义不要求g返回一个接近真实θ的值,或者g的值域恰好是 θ 的允许取值范围。 点估计的定义非常宽泛,给了估计量的设计者极大的灵活性。
虽然几乎所有的函数都可以称为估计量,但是一个良好的估计量的输出会接近生成训练数据的真实参数 θ 。
4.4 一致性
4.5 最大似然估计(MLE)
通常运用于解决 模型已知,参数未知 的情况!
注意:最大似然估计只考虑某个模型能产生某个给定观察序列的概率。而未考虑该模型本身的概率,这点与贝叶斯估计区别。
最大似然估计解决线性回归
设样本数据数据(xi,yi),现用线性方程的形式去做回归,线性方程结构为:y=f(x)+e,其中f(x)=wx,w是我们要进行估计的参数向量,e是噪声,且该噪声服从均值为0高斯分布,即:$$e ~ N(0,sigema^2)$$.
假设有一个w(此w并不是最终的w),对于 每一个 实际得到的数据我们都可以看成是由均值为wxi,方差为$$sigema^2$$的一个高斯模型生成的。但是在w不定的情况下,高斯模型有无数种可能,我们需要从中选择一个我们想要的,而选择需要一个准则,该准则就是:使得在该模型下生成我们获得的数据的可能性最大。
问题来了,什么叫可能性最大?怎样来衡量?——>将每一个数据产生的概率连乘起来(似然函数),将该值最为总的数据产生的可能性。很容易理解。
4.6 贝叶斯估计
贝叶斯估计,是在给定训练数据D时,确定假设空间H中的最佳假设。 最佳假设:一种方法是把它定义为在给定数据D以及H中不同假设的先验概率的有关知识下的最可能假设。贝叶斯理论提供了一种计算假设概率的方法,基于假设的先验概率、给定假设下观察到不同数据的概率以及观察到的数据本身。
1、 先验分布 。总体分布参数θ的一个概率分布。贝叶斯学派的根本观点,是认为在关于总体分布参数θ的任何统计推断问题中,除了使用样本所提供的信息外,还必须规定一个先验分布,它是在进行统计推断时不可缺少的一个要素。他们认为先验分布不必有客观的依据,可以部分地或完全地基于主观信念。
2、 后验分布 。根据样本分布和未知参数的先验分布,用概率论中求条件概率分布的方法,求出的在样本已知下,未知参数的条件分布。因为这个分布是在抽样以后才得到的,故称为后验分布。贝叶斯推断方法的关键是任何推断都必须且只须根据后验分布,而不能再涉及样本分布。
贝叶斯公式为:
$$ P(A∩B)=P(A)P(B|A)=P(B)P(A|B) $$
$$P(A|B)=P(B|A)*P(A)/P(B)$$
其中:
1、P(A)是A的先验概率或边缘概率,称作”先验”是因为它不考虑B因素。
2、P(A|B)是已知B发生后A的条件概率 ,也称作A的后验概率 。
3、P(B|A)是已知A发生后B的条件概率,也称作B的后验概率,这里称作似然度 。
4、P(B)是B的先验概率或边缘概率,这里称作标准化常量。
5、P(B|A)/P(B)称作标准似然度。
4.7 最大后验概率(MAP)
注:最大后验估计可以看做贝叶斯估计的一种特定形式。
各估计算法的区别:
- ML(最大似然估计):就是给定一个模型的参数 θ ,然后试着 最大化p(D| θ ) 。即给定参数的情况下,看到样本集的概率。目标是找到使前面概率最大的参数。
- 逻辑回归都是基于ML做的;
- 缺点:不会把我们的先验知识加入模型中。
- MAP(最大后验估计):最大化p( θ |D)。
- Bayesian:我们的预测是考虑了所有可能的参数,即所有的参数空间(参数的分布)
MAP与ML最大的不同在于p(θ)项,MAP可以解决ML缺乏先验知识的缺点,将先验知识加入后,优化损失函数。
其实p( θ )项正好起到了正则化的作用。如:如果假设p( θ )服从高斯分布,则相当于加了一个 L2 norm ;如果假设p(θ)服从拉普拉斯分布,则相当于加了一个 L1 norm
4.8 支持向量机(SVM)
支持向量机的一个重要创新是核技巧。 核技巧观察到许多机器学习算法都可以写成样本间点积的形式。
最常用的核函数是高斯核:
k ( u , v ) = N ( u − v ; 0 , σ^2 ) ,
其中N(x; u, Sigma)是标准正态密度。 这个核也被称为径向基函数核,因为其值沿v中从u向外辐射的方向减小。
高斯核对应于无限维空间中的点积,但是该空间的推导没有整数上最小核的示例那么直观。
我们可以认为高斯核在执行一种 模板匹配 。 训练标签 y相关的训练样本 x变成了类别y的模版。
当测试点x‘到x的欧几里得距离很小,对应的高斯核响应很大时,表明x’和模版x非常相似。 该模型进而会赋予相对应的训练标签 y较大的权重。
总的来说,预测将会组合很多这种通过训练样本相似度加权的训练标签。
Tips: 利用高斯核函数将低维数据映射到无限维,以达到线性可分的目的。
4.9 k均值聚类
k均值聚类初始化k个不同的中心点$$(u_1,…,u_k)$$,然后迭代交换两个不同的步骤直到收敛。
步骤一,每个训练样本分配到最近的中心点ui所代表的聚类i。
步骤二,每一个中心点ui更新为聚类i中所有训练样本 xj的均值。
关于聚类的一个问题是聚类问题本身是病态的。 这是说没有单一的标准去度量聚类的数据在真实世界中效果如何。
我们可以度量聚类的性质,例如类中元素到类中心点的欧几里得距离的均值。 这使我们可以判断从聚类分配中重建训练数据的效果如何。
然而我们不知道聚类的性质是否很好地对应到真实世界的性质。 此外,可能有许多不同的聚类都能很好地对应到现实世界的某些属性。
我们可能希望找到和一个特征相关的聚类,但是得到了一个和任务无关的,同样是合理的不同聚类。
4.10 随机梯度下降
4.11 促使深度学习发展的挑战
维数灾难
由维数灾难带来的一个挑战是统计挑战。 统计挑战产生于x的可能配置数目远大于训练样本的数目。
局部不变性和平滑正则化
只要在要学习的真实函数的峰值和谷值处有足够多的样本,那么平滑性假设和相关的无参数学习算法的效果都非常好。
当要学习的函数足够平滑,并且只在少数几维变化,这样做一般没问题。 在高维空间中,即使是非常平滑的函数,也会在不同维度上有不同的变化方式。
如果函数在不同的区间中表现不一样,那么就非常难用一组训练样本去刻画函数。 如果函数是复杂的(我们想区分多于训练样本数目的大量区间),有希望很好地泛化么?
流形学习
流形指连接在一起的区域。 数学上,它是指一组点,且每个点都有其邻域。 给定一个任意的点,其流形局部看起来像是欧几里得空间。
日常生活中,我们将地球视为二维平面,但实际上它是三维空间中的球状流形。
机器学习中倾向于更松散地定义一组点,只需要考虑少数嵌入在高维空间中的自由度或维数就能很好地近似。 每一维都对应着局部的变化方向。
流形学习算法通过一个假设来克服这个障碍,该假设认为Rn中大部分区域都是无效的输入,有意义的输入只分布在包含少量数据点的子集构成的一组流形中,而学习函数的输出中,有意义的变化都沿着流形的方向或仅发生在我们切换到另一流形时。