引言
层次化概念能让计算机构建较简单的概念来学习复杂概念.如果绘制出表示这些如何建立在彼此之上的图.我们将得到一张”深”(层次很多)的图。基于这个原因,我们称这种方法为AI深度学习.
一些人工智能项目力求将关于世界的知识用形式化的语言进行硬编码.计算机可以使用逻辑推理规则来自动地理解这些形式化语言的声明.这就是众所周知的人工智能的知识库方法.
依靠硬编码的知识体系面临困难的表明,AI系统需要具备自己获得知识的能力,即从原始数据中提取模式的能力.这种能力称为机器学习.
对于许多任务来说,我们很难知道应该提取哪些特征.解决这个问题的途径之一是使用机器学习来发掘表示本身,而不仅仅把表示映射到输出.这种方法我们称之为表示学习.学习到的表示往往比手动设计的表示表现得更好.并且它们只需最少得人工干预,就能让AI系统迅速适应新的任务.
当设计特征或设计用于学习特征得算法时,我们得目标通常是分离出能解释观察数据的变差因素.在此背景下,”因素”这个词仅指代影响得不同来源;因素通常不是乘性组合。这些因素通常是不能被直接观察到的量。相反,它们可能是现实世界中观察不到的物体或者不可观测的力,但会影响可观测的量.
从原始数据中提取高层次、抽象的特征是非常困难的.深度学习通过其他比较简单的表示来表达复杂表示,解决表示学习中的核心问题.
线性代数
推荐书籍《The Matrix Cookbook》
数学概念:
- 标量(scalar):一个标量就是一个单独的数
- 向量(vector):一个向量是一列数。这些数是有序排列的.
- 矩阵(matrix):矩阵是一个二维数组,其中每个元素由两个索引所确定
- 张量(tensor):有时会讨论坐标超过两维的数组,称之为张量
从上至下,确定每个元素的索引个数分别为0,1,2以及2个以上.(根据索引个数区分)
矩阵和向量相乘
两个矩阵A和B的矩阵乘积是第三个矩阵C.
C=AB,要求A的列数必须和B的行数相等.
具体地,
矩阵的该乘积方法不满足交换律AB≠BA,但满足分配律A(B+C)=AB+AC,还有结合律A(BC)=(AB)C
向量的乘积是一种特殊的矩阵乘积,两个向量的乘积也称为点积:
$x^Ty=y^Tx$但向量的乘积满足交换律.
另一个乘积运算,Hadamard乘积/元素对应乘积记为$A\odot B$
线性相关和生成子空间
对于方程组而言,对于向量b的某些值,有可能不存在解,或者存在无限多个解。为了分析方程有多少个解,我们可以将A的列向量看作从原点出发的不同方向,确定有多少种方法可以到达向量b.在这个观点下,向量x中的每个元素表示我们应该沿着这些方向走多远,即$x_i$表示我们需要沿着第i个向量的方向走多元:
一般而言,这种操作称为线性组合.形式上,一组向量的线性组合,是指每个向量乘以对应标量系数之后的和,即
一组向量的生成子空间是原始向量线性组合后所能抵达的点的集合
确定Ax=b是否有解,相当于确定向量b是否在A列向量的生成子空间中.这个特殊的生成子空间被称为A的列空间或者A的值域.
具体许多细节可以查看大学本科教材线性代数,在此不赘述
范数
有时我们需要衡量向量或矩阵的大小
衡量向量的大小,采用$L^p$范数
其中p∈R,p≥1
向量x的范数衡量从原点到店x的距离.更严格地说,范数是满足下列性质(距离的性质)的任意函数:
- f(x)=0 则 x=0
- f(x+y)≤f(x)+f(y)(三角不等式)
- 任意α∈R,f(αx)=|α|f(x)
常见的范数有$L^2$范数称为欧几里得范数,另一个范数是$L^{∞}$范数,也被称为最大范数.这个范数表示向量中具有最大幅值的元素的绝对值:
衡量矩阵的大小有:Frobenius范数,即
其类似向量的$L^2$范数
特征分解
许多数学对象可以通过将它们分解成多个组成部分或者找到它们的一些属性来更好地理解。这些属性是通用的,而不是由我们选择表示它们的方式所产生的
例如:整数可以分解为质因数,12=2×3×2
特征分解是使用最广的矩阵分解之一,即我们将矩阵分解成一组特征向量和特征值.
其中标量$\lambda$称为这个特征向量对应的特征值
假设矩阵A有n个线性无关的特征向量$\{v^{(1)},…,v^{(n)}\}$,对应的特征值{\lambda_1,….,\lambda_n},将特征向量连接成一个矩阵,使得每一列是一个特征向量:V=$[v^{(1)},…,v^{(n)}]$.类似地,我们也可以将特征值连接成一个向量$\lambda=[\lambda_1,…,\lambda_n]^T$.因此A的特征分解可以记作
每个实对称矩阵都可以分解成实特征向量和实特征值:
其中Q是A的特征向量组成的正交矩阵,$\Lambda$是对角矩阵.
奇异值分解
矩阵分解成特征向量和特征值.还有另一种分解矩阵的方法,称为奇异值分解。
其中假设A是一个m×n的矩阵,那么U是一个m×m的矩阵,D是一个m×n的矩阵,V是一个n×n的矩阵.
矩阵U和V都定义为正交矩阵.U的列向量称为左奇异向量,矩阵V的列向量称为右奇异向量.A的左奇异向量是$AA^T$的特征向量.A的右奇异向量是$A^TA$的特征向量.
Moore-Penrose 伪逆
计算伪逆的公式
其中,矩阵U、D和V是矩阵A奇异值分解后得到的矩阵.对角矩阵D的伪逆D^+是其非零元素取倒数之后再转置得到的.
迹运算
迹运算返回的是矩阵对角元素的和:
迹运算提供了另一种描述矩阵Frobenius范数的方式:
迹运算的特征:
- $Tr(A)=Tr(A^T)$
- Tr(ABC)=Tr(CAB)=Tr(BCA)
即使循环置换后矩阵乘积得到的矩阵形状变了,迹运算的结果依然不变
概率与信息论
概率论是用于表示不确定性声明的数学框架.它不仅提供了量化不确定性的方法,也提供了用于导出新的不确定性声明.在人工智能领域,概率论主要有两种用途:首先,概率法则告诉我们AI系统如何推理,据此我们设计一些算法来计算或者估算由概率论导出的表达式;其次,可以用概率和统计从理论上分析我们提出的AI系统的行为.
概率论能使我们能够提出不确定的声明以及在不确定性存在的情况下进行推理,而信息论使我们能够量化概率分布中的不确定性总量.
几乎所有活动都需要一些在不确定性存在的情况下进行推理的能力.事实上,除了哪些被定义为真的数学声明,我们很难认定某个命题是千真万确的或者确保某件事一定会发生.
不确定性有3种可能的来源:
(1)被建模系统内在的随机性
(2)不完全观测
(3)不完全建模。当我们使用一些必须舍弃某些观测信息的模型时,舍弃的信息会导致模型的预测出现不确定性.
概率可以被看作用于处理不确定性的逻辑扩展.逻辑提供了一套形式化的规则,可以在给定某些命题是真或假的假设下,判断另外一些命题是真的还是假的.
协方差
Cov(f(x),g(x))=E[(f(x)-E[f(x)])(g(y)-E[g(y)])]
协方差在某种意义上给出了两个变量线性相关性的强度以及这些变量的尺度,协方差的绝对值如果很大,则意味着变量值变化很大,并且它们同时距离各自的均值很远。
混合分布
通过组合一些简单的概率分布来定义新的概率分布。
这里的P(c)是对各组件的一个Multinoulli分布
混合模型是我们能够一瞥以后会用到的一个非常重要的概念——潜变量.潜变量是我们不能直接观测到的随机变量。
一个非常强大且常见的混合模型是高斯混合模型,它的组建p(x|c=i)是高斯分布
信息论
信息论的基本想法是一个不太可能的事件居然发生了,要比一个非常可能的事件发生能提供更多的信息.
想通过这种基本想法来量化信息:
- 非常可能发生的事件信息量要比较少,并且极端情况下,确保能够发生的事件应该没有信息量
- 较不可能发生的事件具有更高的信息量
- 独立事件应具有增量的信息
为了满足上述3个性质,我们定义一个事件X=x的自信息为
自信息只处理单个的输出.我们可以用香农熵来对整个概率分布中的不确定性总量进行量化:
在离散型变量的情况下,KL散度 衡量的是当我们使用一种被设计成能够使得概率分布Q产生的信息的长度最小的编码,发送包含由概率分布P产生的符号的信息时,所需的额外信息量.
一个和KL散度密切联系的量是交叉熵,即H(P,Q)=H(P)+D(P||Q)
针对Q最小化交叉熵等价于最小化KL散度,因为Q并不参与被省略的那一项.
结构化概率模型
主要讲的是概率图模型的内容
多种变量之间的关系可以用图来表示,有两种主要的图模型:有向的和无向的.
有向模型使用带有向边的图,他们使用条件概率分布。
无向模型使用带有无向边的图,它们将分解表示成一组函数:不像有向模型那样,这些函数通常不是任何类型的概率分布.