学习方法
- 对着书看一遍,把理解的内容写成笔记
- 看完一章后,看着笔记和书,把内容复习一下,把需要画线的地方画好并理解
- 逐层深入:这本书讲解基础概念讲得不生动,但是高层次上有很多不错的高瞻远瞩的见解,所以先看网文理解到基本的网络(如RNN-LSTM),然后看书深化理解
*. Jumping Read :读某一章很痛苦的时候,先读后面一章,然后返回来读
熟悉语音,VAE,tf,python,和深度学习的最佳方法——跟进大佬用tf写的语音转换代码,比如VAE那份,跑起来并改善
证明技法
泰勒级数逼近后,可以带入想要的参数常量P155
做简化,初始化为0,等
证明A方法=B方法:
在写出利用了A/B的代价函数/权重特征值/Hessian,然后联立对比
概论
- 当有5k样本的时候,就可以达到可接受的性能
- 当有10M个样本的时候,一般就可以超过人类的表现
矩阵
基础
- 注意向量的子集的表示方法, x−1 表示是 x 中除去
x1 的子集,如果令集合 S={ 1,3,6} ,那么集合 x−S 表示除去 x1 , x3 , x6 - 转置是沿着对主对角线的翻转,主对角线是左上角开始的
乘法
矩阵乘法不可教(交换)
单位矩阵和逆矩阵
线性方程组可以求解,而这个解要用到矩阵的逆操作
有了这个逆操作很简单就可以求取满秩的线性方程
逆矩阵存在的条件:线性相关
- X向量的线性组合即生成子空间包含了b,所以要求A的维度大于b的维度,冗余即为线性相关,可以表示为其他向量的特征组合
- 必须方阵,线性无关的时候称为奇异
线性相关
对一组向量a1,a2,…an,如果有 :
则这组向量是线性相关的
对于任意的b使得
成立,那么当b的维度为m时,A需要恰好m个相互线性无关的列向量(当大于m个的时候,肯定会有一些向量没办法跟其他的保持线性无关,就会变成不止一个b)
逆矩阵有左乘和右乘,分别是:
和
对于方阵有左乘等价于右乘
秩 Rank
如果上面n个向量能选出最多的r个使得构成线性无关的子集,并且任意加一个都会变成线性相关的,那么r就是矩阵的秩
这个向量组称为最大线性无关向量组
衡量向量的大小:范数(norm)
几何角度来看,x的范数,就是原点O到点x的距离
最常用的是p范数:
单位范数即满足
的点在平面上组成的线
- 0范数:衡量x中0的数量(不用上式定义)
- 1范数:令p=1,得元素绝对值之和,单位范数是方形
- 2范数:p=2,欧几里得范数,大小表示原点到当前点的距离
不同p值的单位范数:
矩阵的范数:
1-范数:
||A||1=maxj∑i=1m|ai,j|
列和范数,即所有矩阵列向量绝对值之和的最大值2-范数:
||A||2=λ1−−√
lambda为A^TA的最大特征值
谱范数,即A’A矩阵的最大特征值的开平方∞-范数:
||A||∞=maxi∑j=1N|ai,j|
行和范数,即所有矩阵行向量绝对值之和的最大值F-范数:
||A||F=⎛⎝∑i=1m∑j=1n|ai,j|2⎞⎠12
Frobenius范数,即矩阵元素绝对值的平方和再开平方,类似于向量的L2范数,很多深度学习被归结于F范数的最优化问题,比如PCA和Autoencoder核范数:
||A||∗=∑i=1nλi
其中 λi 是A的奇异值。
即奇异值之和。
特殊的矩阵:
- 对角只在主对角线上含有非零元素
- 进行乘法的时候只需要把非零元素跟对应行相乘即可
- 机器学习中,如果把一些矩阵限定为对角阵,可以降低计算代价
- 对于非方形的矩阵,要变成对角阵,需要在缩放后在后面补零或者删除一些部分
A=AT
- 对称表示对称元素相等。如,距离度量矩阵
Ai,j=Aj,i - 正交矩阵求逆代价小,是行向量和列向量分别标准正交*的
ATA=AAT=I
则
A−1=AT
*标准正交:两个向量都是单位向量(范数=1的向量),而且正交(夹角为90°)
- 所有特征>0称为正定,非负的半正定
方阵的特征值分解
就像把一个数变成不同的素数的乘积一样,矩阵也可以分解成不同的组成成分:
例如,可以把矩阵A中提取出特征向量v和特征值λ:(没有分解它)
则实数λ称为A的特征值,v称为特征向量
- 此时,v与Av共线,λ指出了v跟Av的方向和长度关系
- 因此v可以直接取单位向量。
要还原A,就需要借助A的全部单位特征向量v和全部特征值λ,把A的所有的线性无关是单位特征v组合在一起形成特征矩阵:
又把所有的特征值λ组成向量:
然后就会有:
于是完成了方阵的特征值分解
任意矩阵的特征值分解
对于不是方阵的任意矩阵,也照样可以进行分解。其中,实对称矩阵是一定能分解成实特征向量和实特征值的:
其中,Q是A的特征向量组成的正交矩阵, Λ 是特征值组成的对角阵。
Q是特征向量的组合,表示了组成原来的向量A的基向量的组织方式, Λ 是这些基向量各自向自己的方向延伸多少倍就可以还原A
因为这样的组织不唯一,为了唯一,一般把 Λ 降序排列。
由这样的分解可以看出矩阵有的许多性质:
- 奇异:奇异矩阵一定要有0特征值
- 正定:所有特征>0,其保证了如果 xTAx=0 ,那么 x=0
- 半正定:所有特征≥0,其保证了 xTAx≥0
奇异值分解SVD
还有一种分解矩阵的方式,就是分解成奇异向量和奇异值,这样的分解不单止可以让每一个实数矩阵可以进行分解,而且,用处更多.
分解成三个矩阵的乘积:
分解成三个矩阵的乘积,分别是:U左奇异向量,D奇异值的对角阵,V右奇异向量。
- 这样分解可以拓展矩阵求逆到非方矩阵上,其中,D矩阵也不一定是方阵。
- 经常不用很多特征值就可以表达全部信息,可以用前r大的来表示。
- 因为其求取AAT和ATA获得,这些都是对称矩阵所以一定有奇异值
没办法计算逆的时候,可以求伪逆
逆经常用来求取线性方程的解,但是对于非满秩的矩阵却没法求取逆,所以可以求取Moore-Penrose伪逆,A的伪逆用 A+ 表示。
如果用伪逆得到了一个解 x=A+y ,那么这个解的L2范数会是所有可行解中最小的一个(也就是说,跟真正正解的欧几里得距离最小的那一个)
trace迹:对角元素的和
用来表达一些矩阵运算,例如,它表达了计算F-范数的一种方式。
- 转置不变
- 服从“交换率”
- trace跟F范数和奇异值有紧密的联系
行列式
- det(A)
- 把一个方阵转换到实数,等于特征的乘积
- 用来衡量矩阵经过乘法后比原来扩大还是缩小了多少
利用线性代数的样例——PCA
将样本均值变为0将样本方差变为1【这两步使得样本趋向于满足2范数=1,向量的大小并不是那么重要,可以缩放,但是变成单位矩阵才能为计算提供更多信息】计算协方差矩阵XXT对上面进行特征分解求前k大的特征值假设用矩阵D作为解码器
- 假设有最优编码c*,令编码后的c跟c*的 L2 范数距离最小,得到形式也很简单的编码函数:
f(x)=DTx
以及重构后的x的表达式:
r(x)=DDTx - 进一步地,令编解码后的 r(x) 跟x的F-范数距离最小
- 令问题简单化,使用一维向量d表示D
- 解得最优d为最大的特征值对应的特征向量(第一列特征向量)
- 后面特征向量以此类推
概率论
基本定义
- 概率质量函数PMF:
P(