线性代数
线性相关和生成子空间
因此,要保证对每一个b都有且仅有一个解,那么矩阵A必须是一个方阵,即m=n,且所有列向量都是线性无关的。
范数
范数衡量的是向量x与原点的距离。性质:
p=2时的L2范数称为欧几里得范数,平方L2范数在机器学习中使用十分频繁,因为它对x中每个元素的导数只与该元素有关,而L2范数对每个元素的导数与整个向量有关。但是,它仍然有一定的缺点,即它在零点附近增长的十分缓慢,在某些机器学习应用中,区分恰好是零的元素和非零但值很小的元素是很重要的。因此,我们转向在各个位置斜率相同的L1范数。当有些应用中区分零和非零元素非常重要时就会使用L1范数。
衡量矩阵的大小:Frobenius范数
∣
∣
A
∣
∣
F
=
∑
i
,
j
∣
A
i
,
j
∣
2
||A||_F=\sqrt{\sum_{i,j}|A_{i,j}|^2}
∣∣A∣∣F=∑i,j∣Ai,j∣2。
正交矩阵
对矩阵运算感兴趣一般是因为一些特殊矩阵的计算代价小。
比如对角矩阵的乘法运算很简单,对矩阵求逆也很简单;正交矩阵因为满足行向量和列向量分别标准正交即AAT=I,所以A(-1)=A^T,也就是矩阵求逆也非常简便。
特征分解
特征分解是使用最广的矩阵分解之一,即我们将矩阵分解为一组特征向量和特征值。
矩阵A的特征向量是指与A相乘后相当于对该向量进行缩放的非零向量。
不是每一个矩阵都可以分解成特征值和特征向量,有时候及时存在分解,分解中也可能有复数的存在。但是每个实对称矩阵都可以分解成实特征向量和实特征值。有时特征值分解可能并不唯一,通常我们按降序排列特征值。
一个矩阵右乘一个向量,相当于对这个向量在特征向量的方向上做拉伸
矩阵分解对函数求解的作用:对函数f(x)=x^T Ax,如果限制x的二范数为1,当x为A的一个特征向量时,f(x)就是该向量对应的特征值。因此在该限制下,f(x)的最大值为最大的特征值,最小值为最小的特征值。所有特征值为正数的矩阵为正定矩阵,所有特征值大于等于0的矩阵为半正定矩阵,反之亦然。半正定矩阵之所以受到关注的原因是,对于所有的x,x^T Ax≥0.此外,正定矩阵还保证x^T Ax=0–→x=0
奇异值分解
任何矩阵A都有奇异值分解。A=UDV^T
奇异值分解有助于矩阵求逆,A+=VD+ U^T,当A的行数大于列数时,可能没有解,得出的伪逆使Ax与Y之间的欧几里得距离最小,当A的行数小于列数时,Ax=y的x有多个解,取x的欧几里得范数最小的一个解。
行列式
行列式等于矩阵特征值的乘积。行列式的绝对值可以用来衡量矩阵参与矩阵乘法后空间扩大或者缩小了多少。如果行列式是0,那么空间至少沿着某一维完全收缩了,使其失去了所有的体积。如果行列式是1,那么这个转换保持空间体积不变。
概率论
协方差
协方差在某种意义上给出了两个变量线性相关的强度以及这些变量的尺度。
协方差和相关性是有联系的,但实际上是完全不同的概念。当两个数据完全独立时,它们的协方差一定为0,如果两个变量的协方差不为0,那么两个数据一定是相关的。但两个数据协方差为0不一定说明数据独立,可能数据间存在非线性相关性。
正态分布
正态分布又称高斯分布,一般来说,当我们由于缺乏关于某个实数上分布的先验知识而不知道该选择怎样的形式时,正态分布是默认的比较好的选择,其中有两个原因:
1.正态分布是真实情况下较为常见的一种分布。由中心极限定理可知,许多独立随机变量的和可近似为正态分布;
2.在具有相同方差的所有可能的概率分布中,正态分布在实数上具有最大的不确定性。因此我们可以认为正态分布是对模型加入的先验知识量最少的分布。
数值计算
当矩阵条件数(最大特征值比最小特征值)较大时,这时矩阵求逆对输入的误差非常敏感。
如果方程组Ax=b中,矩阵A和右端b的微小变化,引起解向量x的很大变化,则称A为关于解方程组和矩阵求逆的病态矩阵,称相应的方程组为病态方程组。否则,称A为良态矩阵。
病态的几个可能表现:
1.矩阵A的按绝对值最大特征值和最小特征值之比很大,则A是病态的。
2.矩阵A的元素间数量级差别很大,并且无一定规则,则A可能病态;
3.A的某些行或者列是近似相关的,或系数矩阵的行列式值相对说很小;
目前主要有Tikhonov、奇异值截断、奇异值修正、迭代法等方法。
机器学习基础
无监督学习:学习生成数据集的概率分布,显式地,比如密度估计,或者隐式地,比如合成或去噪。还要一类是聚类,将数据集分成相似样本的集合。
无监督学习观察随机变量X的好几个样本,试图显式或隐式地学习概率分布p(x),或者是该分布一些有意思的性质;而监督学习包含观察随机向量x 及其相关联的值或向量y,然后从x 预测y,通常是估计p(y | x)。
- 促使深度学习发展的挑战:
1.维度灾难:当数据的维数很高时,许多机器学习的问题变得相当困难。
当高位空间中需要配置的参数数目远大于样本数目时,我们很难学习一种泛化能力较强的算法。
2.局部不变性和平滑正则化
机器学习中最广泛使用的隐式先验或局部不变性先验,这个先验表明我们学习的函数不应该在小区域内发生很大的变化。然而仅依赖于此先验,不能推广去解决人工智能级别任务中的统计挑战,因为每个样本仅仅能告诉学习者如何在其周围的邻域内泛化。比如在围棋的例子中,棋盘包含许多的变化,但只有一个简单的结构,机器学习只能学习参照样本如何去做,而不知道如何学习内部结构。
非局部的泛化如何去做:通过额外假设生成数据的分布来建立区域间的依赖关系。
深度学习的核心思想是假设数据由因素或特征组合产生,这些因素或特征可能来自一个层次结构的多个层级。
3.流形学习
如果我们希望机器学习算法学习整个Rn上有趣变化的函数,那么很多机器学习问题看上去都是无望的。流形学习算法通过一个假设来克服这个障碍,该假设认为Rn 中大部分区域都是无效的输入,有意义的输入只分布在包含少量数据点的子集构成的一组流形中,而学习函数的输出中,有意义的变化都沿着流形的方向或仅发生在我们切换到另一流形时。
深度网络
理解前馈网络可以从线性模型开始,线性模型无论通过闭解形式还是使用凸优化,他们都能高效且可靠的拟合。但线性模型的的能力被局限在线性模型中,无法理解两个输入变量间的相互作用,因此可以不把线性模型作用于x本身,而是作用于一个变换后的输入 上。
如何学习这个非线性变换 ,可将 当做隐藏层进行学习。这是一种通过学习特征来改善模型的一般化原则。
参数初始化:神经网络的非线性导致大多数损失函数都是非凸的。用于非凸损失函数的随机梯度下降没有这种收敛性保证,并且对参数的初始值很敏感。对于前馈神经网络,将所有的权重值初始化为小随机数是很重要的。偏置可以初始化为零或小的正值。
代价函数:
训练数据与模型预测间的交叉熵+正则项(修改学习算法,降低其泛化误差而不是训练误差)
正则项可以使用权重衰减。
使用负对数似然做为损失函数的优点有两方面:1.减轻了为每一个模型设置代价函数的负担;2.负对数似然代价函数中的对数函数消除了某些输出单元中的指数效果。
输出单元:
用于高斯输出分布的线性单元;
用于伯努利输出分布的sigmoid单元;