线性代数
- 标量:一个单独的数
- 向量:一个向量是一列数
- 矩阵:一个矩阵是一个二维数组
- 张量:一个数组中的元素分布在若干维坐标的规则网格中,称之为张量。比如张量
A 中坐标为(i,j,k) 的元素记作Ai,j,k 。在计算机视觉中,5张3通道的32× 32大小的图像可以用张量表示为(5,3,32,32)
矩阵的转置、矩阵与向量相乘、两个向量的点积(
单位矩阵、逆矩阵的概念:
对于下列线性方程组的求解:
可以通过以下步骤来求解:
如果逆矩阵
对于向量b的某些值,有可能不存在解,或者存在无限多个解。存在多于一个解但是少于无限多个解的情况不可能发生。
可以将A的列向量看作从原点出发的不同方向,确定有多少种方法可以到达向量b,这是,向量x中的每一个元素表示沿这个方法走多远。
对于每一个向量都有解的充分必要条件是:该矩阵必须包含至少一组m个线性无关的向量。
但是当
到此关于线性方程组的讨论结束!
范数的概念、对角矩阵(除了主对角线上含有非零元素,其它位置都是零)、对称矩阵(
正交矩阵:如果
单位向量是具有单位范数的向量:
正交矩阵指行向量和列向量分别标准正交的方阵,即
特征分解、特征向量、特征值:
不是每一个矩阵都可以分解成特征值和特征向量。在某些情况下,特征分解存在,但是会涉及到复数,而非实数。
每个实对称矩阵都可以分解成实特征向量和实特征值:
所有特征值为正数的矩阵称为正定(positive definite);所有特征值都是非负数的矩阵被称为半正定(positive semidefinite)。
奇异值分解:
还有另一种分解矩阵的方法,被称为奇异值分解(singular value decomposition, SVD),将矩阵分解为奇异向量(singular vector)和奇异值(singular value)。通过奇异值分解,我们会得到一些与特征分解相同类型的信息。然而,奇异值分解有更广泛的应用。每个实数矩阵都有一个奇异值分解,但不一定都有特征分解。
主成分分析推导
概率和信息论
概率论使我们能够提出不确定的声明以及在不确定性存在的情况下进行推理,而信息论使我们能够量化概率分布中的不确定性总量。
随机变量、概率分布(概率质量函数,概率密度函数),边缘概率、条件概率、条件概率链式法则。
独立性、条件独立性
期望、方差、协方差。
常用概率分布:
Bernoulli分布、高斯分布、指数分布和Laplace分布
常用函数的有用性质:Logistic sigmoid函数,softplus函数,Relu函数。
Logistic sigmoid:
softplus:
Relu:
数值计算
上溢和下溢:当接近零的数被四舍五入为零时发生下溢。许多函数在其参数为零而不是一个很小的正数时才会表现出质的不同。当大量级的数被近似为
病态情况:条件数表征函数相对于输入的微小变化而变化的快慢程度。输入被轻微扰动而迅速改变的函数对于科学计算来说可能是有问题的,因为输入中的四舍五入误差可能导致输出的巨大变化。
基于梯度的优化:大多数深度学习算法都涉及某种形式的优化。优化指的是改变
临界点(驻点)、鞍点的概念;局部极小点,局部极大点,全局最小点概念;偏导数,梯度是相对一个向量求导的导数:
关于梯度下降:
机器学习基础
学习算法包括:任务
任务T:
样本:收集到的已经量化过的特征的集合。
分类:
缺失值填补、去噪等等
性能度量P:
准确率:该模型输出正确结果的样本比率。
错误率:该模型输出错误结果的样本比率。通常把错误率称为0-1损失的期望。
还有其它的性能度量,最常用的方法是输出模型在一些样本上概率对数的平均值。
常用的损失函数:
0-1损失函数:
L(Y,f(X))={1,0,Y≠f(X)Y=f(X) 平方损失函数:
L(Y,f(X))=(Y−f(X))2 绝对损失函数:
L(Y,f(X))=|(Y−f(X))| 负对数似然损失函数:
L(Y,P(Y|X))=−logP(Y|X)
经验E:
监督学习算法:数据集中的训练样本都含有一个标签或目标。
无监督学习算法:训练含有很多特征的数据集,然后学习出这个数据集上有用的结构性质。还有一些其他类型的无监督学习任务,例如聚类,将数据集分成相似样本的集合。
无监督学习涉及到观察随机向量
传统地,人们将回归、分类或者结构化输出问题称为监督学习。支持其他任务的密度估计通常被称为无监督学习。
例子:线性回归
容量、欠拟合、过拟合,正则化
机器学习的主要挑战是我们的算法必须能够在先前未观测的新输入上表现良好,而不只是在训练集上表现良好。在先前未观测到的输入上表现良好的能力被称为泛化。
训练误差、泛化误差(测试误差)。需要作出假设:独立同分布假设,即每个数据集中的样本都是彼此相互独立的,并且训练集和测试集是同分布的,采样自相同的分布。将这个共享的潜在分布称为数据生成分布,记作
决定机器学习算法效果是否好的因素:
- 降低训练误差
- 缩小训练误差和测试误差的差距
面临的主要挑战:欠拟合(指模型不能在训练集上获得足够低的误差)和过拟合(训练误差和测试误差之间的差距太大),可以通过调整模型的容量来控制。模型的容量是指其拟合各种函数的能力。容量低的模型可能很难拟合训练集。容量高的模型可能会过拟合,因为记住了不适用于测试集的训练集性质。
当机器学习算法的容量适合于所执行任务的复杂度和所提供训练数据的数量时,算法效果通常会最佳。容量不足的模型不能解决复杂任务。容量高的模型能够解决复杂的任务,但是当其容量高于任务所需时,有可能会过拟合。
算法的效果不仅很大程度上受影响于假设空间的函数数量,也取决于这些函数的具体形式。可以往损失函数里面添加正则化项来进行约束。比如加入权重衰减,
超参数与验证集
超参数可以设置来控制算法的行为,其值不是通过学习算法本身学习出来的,比如在多项式回归中,多项式的次数就是一个作为容量的超参数,而控制权重衰减程度的
特别地,我们将训练数据分成两个不相交的子集。其中一个用于学习参数。另一个作为验证集,用于估计训练中或训练后的泛化误差,更新超参数。一般80%的训练数据用于训练,20%用于验证。
k-折交叉验证算法,将数据集分成
估计,偏差,方差(略过),最大似然估计,贝叶斯统计
监督学习算法:
1.概率监督学习
基于估计概率分布
逻辑回归方法:
逻辑回归要利用最大化对数似然来搜索最优解。我们可以通过梯度下降算法最小化负对数似然来搜索。
2.支持向量机
划分超平面的算法,
也是基于线性函数
支持向量机的一个重要创新是核技巧。核函数不是仅仅在SVM里使用,他只是一个工具,把低维数据映射到高维数据的工具。在低维空间计算高维空间内积的一个工具。
支持向量机中的线性函数可以重写为
3.k-最近邻、决策树
决策树是另一类将输入空间分成不同的区域,每个区域有独立参数的算法。决策树的每个节点都与输入空间的一个区域相关联,并且内部节点继续将区域分成子节点下的子区域(通常使用坐标轴拆分区域)
其每一次遍历会选择一个最优划分属性,而选取的过程就要用到信息增益。 具体就不详细介绍了。
非监督学习算法:
通俗地说,无监督学习的大多数尝试是指从不需要人为注释的样本的分布中抽取信息。
主成分分析
主成分分析(PCA)可被视为压缩数据的一种方式,也可以视为学习数据表示的无监督学习算法;其作用是学习一种投影,使得最大的方差的方向和新空间的轴对齐。
两个标准:
- 学习一种比原始输入维数更低的表示
- 学习一种元素之间彼此没有线性相关的表示
随机梯度下降
机器学习中反复出现的一个问题是好的泛化需要大的训练集。代价函数通常可以分解成每个样本的代价函数的总和。例如,训练数据的负对数似然可以写成:
随机梯度下降法的核心是,梯度是期望。
- 每次只更新计算
m′ 个样本 -
m′ 的大小不取决于训练集的大小m - 模型会在抽样完训练集上所有样本之间收敛到可能的最优测试误差
怎样构建机器学习算法?
几乎所有的深度学习算法都可以被描述为一个相当简单的配方:特定的数据集、代价函数、优化过程和模型。例如,线性回归算法由以下部分组成:X和y构成的数据集,代价函数
促使深度学习发展的挑战:
1.维度灾难:指的是当数据的维度很高时,出现的指数级问题,一组变量不同的配置数目会随着变量数目的增加而呈指数级增加。
低维时,可以用数据占据的少量网格去描述这个空间。而在高维,高维空间中参数的配置数目远远大于样本数目,大部分配置没有相关的样本。
2.局部不变性和平滑正则化:由先验信念引导应该学习什么类型的函数,即,先验信念直接影响函数本身,而仅仅通过它们对函数的影响来间接改变参数。先验信念还间接地提现在选择一些偏好某类函数的算法,而这些偏好并没有显式地表现出来。
广泛使用的是:平滑先验或局部不变性先验。这个先验表明学习的函数不应该在小区域内发生很大的变化。
对于函数
3.流形学习
流形指连续在一起的区域。数学上,它是指一组点,且每个点都有其邻域。每个点周围邻域的定义暗示着存在变换能够从一个位置移动到其邻域位置。流形学习算法通过一个假设来克服这个障碍,该假设认为
第一个支持流形假设(manifold hypothesis)的观察是现实生活中的图像、文本、声音的概率分布都是高度集中的。
支持流形假设的第二个论点是,我们至少能够非正式地想象这些邻域和变换。在图像中,我们当然会认为有很多可能的变换仍然允许我们描绘出图片空间的流形:我们可以逐渐变暗或变亮光泽、逐步移动或旋转图中对象、逐渐改变对象表面的颜色等等。