I. Linear Algebra

1. 基础概念回顾

  • scalar: 标量
  • vector: 矢量,an array of numbers.
  • matrix: 矩阵, 2-D array of numbers.
  • tensor: 张量, 更高维的一组数据集合。
  • identity Matricx:单位矩阵
  • inverse Matrix:逆矩阵,也称非奇异函数。当矩阵A的行列式\(|A|≠0\)时,则存在\(A^{-1}\).

2. Span

3. Norm

\(L^p\) norm 定义如右: \(||x||_p=(\sum_i|x_i|^p)^{\frac{1}{p}}\) for \(p∈R,p≥1\).

任何满足如下条件的函数都可视为norm:

  • \(f(x)=0 \, \Rightarrow x=0\)
  • \(f(x+y)≤f(x)+f(y)\) (三角不等式)
  • \(\forall α ∈R,f(αx)=|α|f(x)\)

1) \(L^2\) Norm

最常用的是二范式,即\(L^2\) norm,也称为Euclidean norm(欧几里得范数)。因为在机器学习中常用到求导,二范式求导之后只与输入数据本身有关,所以比较实用。

2) \(L^1\) Norm

但是二范式在零点附近增长很慢,而且有的机器学习应用需要在零点和非零点之间进行区分,此时二范式显得力不从心,所以我们可以选择一范式,即\(L^1\) norm,其表达式为:\(||x||_1=\sum_i|x_i|\).

3) \(L^0\) Norm

0范式表示矢量中非0的元素的个数。其实0范式这个说法是不严谨的,因为它不满足第三个条件,but whatever~

4) \(L^∞\) Norm

无穷大范式,也叫max norm,它表示矢量中所有元素绝对值的最大值,即
\[||x||_∞=max |x_i|\]

5) F norm

F norm全称是Frobenius Norm,其表达式如下:
\[||A||_F=\sqrt{\sum_{i,j}A_{i,j}^2} \]

4.特殊矩阵和向量

1) Diagonal matrix(对角矩阵)

定义: a matrix \(D\) is diagonal if and only if \(D_{i,j}=0\) for all \(i≠j\).

仔细看定义!!!这里并没有说必须是squre matrix(方阵),所以对角矩阵不一定是方阵,rectangle matrix也有可能是对角矩阵(只要对角线上不为0,其余部分都为0)。

2) Orthogonal Matrix(正交矩阵)

定义: 若\(A^TA=AA^T=I\),那么n阶实矩阵A则为正交矩阵。

注意矩阵A必须为方阵,另外有定义可知 \(A^{-1}=A^T\)

3) Orthonomal Matrix(标准正交矩阵)

定义: 满足正交矩阵的要求,且为x和y均为unit vector(单位矢量)。

5. Eigendecomposition(特征分解)

很多数学概念其实都可以分解成很小的组成部分,然后通过观察这些组成进而找出它们可能存在的通用的性质。例如对于一个整数12,我们会试着把它分解成12=2×2×3,由这个表达式我们可以得到一些有用的结论,例如12不能被5整除,任何数乘以12后都能被3整除等等。

很自然地,对于矩阵,我们也想看看他是否也能被拆分呢,所以就引入了特征分解的概念,通过特征分解我们会得到矩阵\(A\)的(一组)eigenvector(特征向量): \(v\)eigenvalue(特征值): \(λ\),它们满足如下等式:
\[Av=λv\]

(特征向量当然也可以在右边,但是通常更习惯于放在右边。)

假设矩阵\(A\)有n个线性独立的特征向量\(\{v^{(1)}, ..., v^{(n)}\}\)以及对应的特征值\(\{ λ_1, ...,λ_n \}\)。记
\(V=[v^{(1)}, ..., v^{(n)}],λ=[λ_1, ...,λ_n ]\),则矩阵A的特征分解如下:
\[A=Vdiag(λ)V^{-1}\]

另外实对称矩阵的特征分解用得比较多,表达式为\(A=Q\Lambda Q^{-1}\),\(Q\)表示由特征向量组成的正交矩阵,\(\Lambda\)表示对角矩阵,注意\(Q\)和\(\Lambda\)的值是一一对应的。

  • 当一个矩阵的特征值都为正时,该矩阵则为positive definite(正定矩阵).
  • 当一个矩阵的特征值都大于等于0时,该矩阵则为positive semidefinite(半正定矩阵).
  • 当一个矩阵的特征值都为负时,该矩阵则为negative definite(负定矩阵).
  • 当一个矩阵的特征值都小于等于0时,该矩阵则为negative semidefinite(半负定矩阵).

6. Singular Value Decomposition(奇异值分解)

Singular Value Decomposition (SVD) 可以把一个矩阵分解得到 singular vectors和singular values。SVD可以像特征值分解一样帮助我们对一个矩阵进行分析,并且SVD适用性更广。每个实矩阵都能做SVD,但是不一定能做特征值分解。比如说如果一个矩阵不是方阵,那么就不能做特征分解,但是我们可以做SVD。

SVD分解后的矩阵表达式如下:
\[A=UDV^T\]

假设A是一个m×n矩阵,那么U定义为m×m矩阵,D是m×n矩阵,V是n×n矩阵。
除此以外

  • 矩阵U和V都是orthogonal matrix,其中矩阵U的列向量是left-singular vectors,矩阵V的列向量是right-singular vectors。矩阵A的left-singular vectors是矩阵\(A^TA\)的特征向量,right-singular vectors是矩阵\(AA^T\)的特征向量。矩阵A的非零奇异值是矩阵\(AA^T\)或者\(A^TA\)的平方根。
  • 矩阵D是diagonal matrix,注意不一定是方阵。D对角线上的即为矩阵A的奇异值(singular value)。

讲这么多,肯定对SVD还没有一个直观的理解,下面一节会介绍SVD的应用。

7. Moore-Penrose Pseudoinverse

我们在求一个矩阵的逆(matrix inverse)的时候,一般都需要规定这个矩阵是方阵。

假设有一个线性方程\(Ax=y\),为了解出这个方程,我们很直观地希望能够造出一个left-inverse矩阵B和A相乘,从而求出x,即\(x=By\)。

如果A是一个非方阵的矩阵,当它的row大于column时,很有可能此时无解;而当row小于column时,可能有多解。

Moore-Penrose Pseudoinverse就是为了解决这个问题的,矩阵A的伪逆定义如下:
\[A^+=lim_{α\searrow{0}}(A^TA+αI)^{-1}A^T\]。

上面的公式实际很少用,一般都是使用SVD的公式,即

\[A^+=VD^+U^T\]

U,D,V是上节中提到的矩阵A的奇异分解。\(D^+\)是矩阵D的伪逆,它是首先将D的非零元素取倒数得到一个矩阵,然后将这个矩阵转置之后就得到了\(D^+\)。

当矩阵A的row比column少时,使用伪逆可以得到很多解。但是,\(x=A^+y\)这个解是所有解中有最小Euclidean norm(\(||x||_2\))的。

当矩阵A的row比column多时,可能无解。但是使用伪逆求得的解x ,能使得\(Ax\)尽可能的接近\(y\),也就是说能使得\(||Ax-y||_2\)最小。

8. Trace Operator(迹)

trace运算符是将矩阵对角线上的所有元素求和,即\(Tr(A)=\sum_iA_{i,i}\)

MARSGGBO♥原创







2018-12-01

Deep Learning(花书)教材笔记-Math and Machine Learning Basics(线性代数拾遗)的更多相关文章

  1. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 11—Machine Learning System Design 机器学习系统设计

    Lecture 11—Machine Learning System Design 11.1 垃圾邮件分类 本章中用一个实际例子: 垃圾邮件Spam的分类 来描述机器学习系统设计方法.首先来看两封邮件 ...

  2. Targeted Learning R Packages for Causal Inference and Machine Learning(转)

    Targeted learning methods build machine-learning-based estimators of parameters defined as features ...

  3. [BOOK] Applied Math and Machine Learning Basics

    <Deep Learning> Ian Goodfellow Yoshua Bengio Aaron Courvill 关于此书Part One重难点的个人阅读笔记. 2.7 Eigend ...

  4. 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】

    转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...

  5. 机器学习(Machine Learning)&深度学习(Deep Learning)资料汇总 (上)

    转载:http://dataunion.org/8463.html?utm_source=tuicool&utm_medium=referral <Brief History of Ma ...

  6. 机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总

    <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.D ...

  7. 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)

    ##机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)---#####注:机器学习资料[篇目一](https://github.co ...

  8. 机器学习(Machine Learning)&深度学习(Deep Learning)资料(下)

    转载:http://www.jianshu.com/p/b73b6953e849 该资源的github地址:Qix <Statistical foundations of machine lea ...

  9. 学习笔记之Machine Learning Crash Course | Google Developers

    Machine Learning Crash Course  |  Google Developers https://developers.google.com/machine-learning/c ...

随机推荐

  1. (线性dp,最大连续和)Max Sequence

    Max Sequence Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 18511   Accepted: 7743 Des ...

  2. cmd解压压缩包

    需要安装有winrar start winrar x C:\Users\systme\Desktop\xxx.rar c:\123

  3. 8 款macOS 分屏应用让你的桌面窗口不再乱糟糟

    有时我们想在 Mac 屏幕左边开一个 Word,右侧放一个参考资料:有时我们想把 GTD 应用放在屏幕一角,随时查看.可是,Mac 原生窗口管理不够人性化,总需要用户手动把窗口调整到合适的尺寸与位置. ...

  4. CodeForces922E DP//多重背包的二进制优化

    https://cn.vjudge.net/problem/1365218/origin 题意 一条直线上有n棵树 每棵树上有ci只鸟 在一棵树底下召唤一只鸟的魔法代价是costi 每召唤一只鸟,魔法 ...

  5. kernel(二)源码浅析

    目录 kernel(二)源码浅析 建立工程 启动简析 head.s 入口点 查询处理器 查询机器ID 启动MMU 其他操作 start_kernel 处理命令行 分区 title: kernel(二) ...

  6. HDU 1007(套圈 最近点对距离)

    题意是求出所给各点中最近点对的距离的一半(背景忽略). 用分治的思想,先根据各点的横坐标进行排序,以中间的点为界,分别求出左边点集的最小距离和右边点集的最小距离,然后开始合并,分别求左右点集中各点与中 ...

  7. MySQLMySql免安装版安装配置

    MySql免安装版安装配置,附MySQL服务无法启动解决方案 mysql 5.6.17 绿色版(免安装)安装配置教程 [mysql] # 设置mysql客户端默认字符集 default-charact ...

  8. Django多表操作

    多表创建 创建模型 下面通过一个简单的图书管理系统,来阐述多表的创建和查询操作 在视图函数里里定义如下代码 from django.db import models class Book(models ...

  9. 【一】java 虚拟机 监控示例 Eclipse Memory Analyser

    1.堆内存溢出示例代码 import java.util.ArrayList; import java.util.List; public class TestHeap { public static ...

  10. 使用 JS 实现图片左右跑马灯

    Ø  前言 之前写了一篇使用 JS 实现文字上下跑马灯,现在乘热打铁在把图片左右跑马灯一起贴出来,不多说直接看代码. 1.   首先定义 css 样式 <style type="tex ...