I. 映射(Mapping)

1. 单射(Injective)

函数f 是单射当且仅当若f(x) = f(y) 则 x = y。

例子: f(x) = x+5 从实数集\(R\)到\(R\)是个单射函数。

这个函数很容易被还原:f(3) = 8,即 已知 8 可以返回 3

2. 满射(Surjective)

函数 f(从集 A 到集 B)是满射当且仅当在 B 中的每个 y 存在至少一个在 A 中的 x 满足 f(x) = y, 就是说, f 是满射当且仅当 f(A) = B。

值域里的每个元素都至少有一个定义域元素与之对应。

例子:函数 f(x) = 2x 从自然数集\(N\)到非负偶数是个满射函数。

但 f(x) = 2x 从自然数集\(N\)到\(N\)不是满射,因为没有一个自然数\(N\)可以被这个函数映射到 3。

3. 双射(Bijective)

函数 f(从 A 集到 B 集)是双射,若每个 B 中的 y 都有唯一的一个(而没有另外一个) A 集中的 x 满足 f(x) = y

或者说:当单射和满射都成立时,f 是双射。

例子: 函数 \(f(x) = x^2\) 从正实数到正实数是单射,也是满射,所以它是双射。

但从实数集\(R\)就不是,因为f(2)=4,并且f(-2)=4

II. 同态&同构

对于向量空间\(V,W\),若有映射\(\Phi :V→W\)满足如下条件,则我们称\(\Phi\)为线性映射(linear mapping)(或者向量空间同态(vector space Homomorphism)linear transform):
\[\forall{x,y}∈V, \lambda,\psi∈R:\Phi(\lambda x+\psi y)=\lambda \Phi(x) + \psi \Phi(y)\]

基于上面已经介绍了的映射的概念,我们现在可以更好地直观理解同态和同构的定义,它们分别如下:

  • \(\Phi:V→W \,\,\, linear\): 同态 (Homomorphism)

    • \(\Phi:V→W \,\,\, linear \,\, and \,\, injective\): 单一同态 (Monomorphism)
    • \(\Phi:V→W \,\,\, linear \,\, and \,\, surjective\): 满同态 (Surjective Homomorphism)
    • \(\Phi:V→W \,\,\, linear \,\, and \,\, bijective\): 同构 (Isomorphism)
  • \(\Phi:V→V \,\,\, linear\): 自同态 (Endomorphism)
    • \(\Phi:V→V \,\,\, linear \,\, and \,\, injective\): 单一自同态 (Monomorphic Endomorphism)
    • \(\Phi:V→V \,\,\, linear \,\, and \,\, surjective\): 满自同态 (Surjective Endomorphism)
    • \(\Phi:V→V \,\,\, linear \,\, and \,\, bijective\): 自同构 (Automorphism)

定理:两个维度是有限的向量空间\(V,W\),当且仅当二者的维度相同,即\(dim(V)=dim(W)\),\(V,W\)二者同构。

假设现在有三个向量空间分别为\(V,W,X\),那么它们有如下性质:

  • 如果有线性映射\(\Phi:V→W\)和\(\Psi:W→X\),那么映射\(\Phi◦\Psi:V→X\)也是线性映射;
  • 如果\(\Phi:V→W\)是同构(isomorphsim),那么\(\Phi^{-1}:V→W\)也是同构;
  • 如果\(\Phi:V→W,\Psi:V→W\)都是线性映射,那么\(\Psi+\Phi\)和\(\lambda\Phi,\lambda∈R\)也都是线性的。

1. 线性映射的矩阵表示

坐标(Coordinates) 的定义:

假设向量空间\(V\)的顺序基(ordered bases)为\(B=(b_1,...,b_n)\),那么\(V\)中任意一个向量\(x\)可由顺序基线性组合表示,即
\(x=α_1b_1+...+α_nb_n\)\(。此时矢量\)\(\alpha=[α_1,...,α_n]^{T}∈R^n\)则是\(x\)在向量空间\(V\)上以\(B\)为基的坐标。

变换矩阵(Transform Matrix) 的定义:

假设向量空间\(V∈R^n,W∈R^m\)的顺序基分别为\(B=(b_1,...,b_n),C=(c_1,...,c_m)\)。对于映射\(\Psi:V→W\),有
\[\Phi(b_j)=α_{1j}c_1+...+α_{mj}c_m=\sum_{i=1}^mα_{ij}c_i\]
则我们称\(A_{\Phi}(i,j)=α_{ij}\)为映射\(\Phi\)的变换矩阵。

所以向量空间\(V\)中的坐标矢量\(x\)与\(W\)中的坐标矢量\(y\)有如下变换关系:\(y=A_{\Phi}x\)

2. 基变换(Basis Change)

定义:

假设向量空间\(V\)的顺序基有两个,分别是\(B=(b_1,...,b_n),\tilde{B}=(\tilde{b_1},...,\tilde{b_n})\),向量空间\(W\)也有两个顺序基,分别为\(C=(c_1,...,c_n),\tilde{C}=(\tilde{c_1},...,\tilde{c_n})\)。\(A_{\Phi}\)是映射\(\Phi:V→W\)关于顺序基\(B,C\)的变换矩阵,\(\tilde{A_{\Phi}}\)是映射\(\Phi:V→W\)关于顺序基\(\tilde{B},\tilde{C}\)的变换矩阵,两个变换矩阵的关系如下:
\[\tilde{A_{\Phi}}$=T^{-1}A_{\Phi}S\]
其中\(S∈R^{n×n}\)表示向量空间\(V\)从基\(\tilde{B}\)到基\(B\)的恒等映射\(id_V\)的变换矩阵,\(T∈R^{m×m}\)表示向量空间\(W\)基于基\(\tilde{C}\)到基\(C\)的恒等映射\(id_W\)的变换矩阵,

3. 核(kernel)与象(Image)

先看定义:

  • 核(Kernel/null space):

    假设有映射\(\Phi:V→W\),核(kernel)为:
    \[ker(\Phi)=\Phi^{-1}(0_w)=\{v∈V:\Phi(v)=0_w\}\]

什么意思呢?就是说经过映射后,\(V\)中的一些值被映射到\(W\)的零点(如下图示),而\(V\)这些值组成的集合(即左边橘黄色部分)就称为kernel

  • 象(Image/Range)

\[Im(\Phi)=\Phi(V)=\{w∈W|\exists v∈V:\Phi(v)=w\}\]

怎么理解象呢?就是说整个向量空间\(V\)在经过映射后在向量空间\(W\)上得到的集合,也就是右边黄色部分。

为方便理解,可以把kenel粗略地理解成定义域,Image理解成值域。

另外需要注意的有如下推论:

  • 始终有\(\Phi(0_V)=0_W\),即\(0_V∈ker(\Phi)\)
  • \(Im(\Phi),Ker(\Phi)\)分别是\(W,V\)的子空间
  • 当且仅当\(Ker(\Phi)=\{0\}\)时,\(\Phi\)是单射。

Rank-Nullity Theorem(秩-零定理):对于映射\(\Phi:V→W\)始终满足如下等式:
\[dim(Ker(\Phi))+dim(Im(\Phi))=dim(V)\]

如果用matrix来说的话,假设A是一个n*n的matrix,则:\(rank(A)+nullity(A)=n\)
再通俗点说就是对A进行初等变换后得到的echelon form(行阶梯形式),不为0的行数加上全部为0的行数等于这个矩阵的行数。当然因为一般的matrix的row rank和column rank相等,所以变成column echelon form之后用列来计数也是一样的。

III. 仿射空间(Affine Spaces)

前面提到的映射都是经过零点的,下面介绍的仿射空间是偏离原点的空间。

1. 仿射子空间(Affine Subspaces)

定义:

假设\(V\)为向量空间,\(x_0∈V\), \(U\subseteq{V}\)为子空间,则子集
\[
\begin{align}
L&=x_0+U=\{x_0+u: u∈U\} \notag \\
&=\{v∈V|\exists{u∈U}:v=x_0+u\}\subseteq{V} \notag
\end{align}
\]
称为向量空间\(V\)的 仿射子空间(affine subspace)linear manifold。\(U\)称为Direction (Space),\(x_0\)称为support point

2. 仿射映射(Affine Mappings)

参考资料

MARSGGBO♥原创







2018-12-16

【Math for ML】线性代数-单射,满射,双射,同构,同态,仿射的更多相关文章

  1. 【Math for ML】矩阵分解(Matrix Decompositions) (下)

    [Math for ML]矩阵分解(Matrix Decompositions) (上) I. 奇异值分解(Singular Value Decomposition) 1. 定义 Singular V ...

  2. 【Math for ML】线性代数之——向量空间

    I. Groups 在介绍向量空间之前有必要介绍一下什么Group,其定义如下: 注意定义中的\(\bigotimes\)不是乘法,而是一种运算符号的统一标识,可以是乘法也可以是加法等. 此外,如果\ ...

  3. 【Math for ML】向量微积分(Vector Calculus)

    I. 向量梯度 假设有一个映射函数为\(f:R^n→R^m\)和一个向量\(x=[x_1,...,x_n]^T∈R^n\),那么对应的函数值的向量为\(f(x)=[f_1(x),...,f_m(x)] ...

  4. 【Math for ML】矩阵分解(Matrix Decompositions) (上)

    I. 行列式(Determinants)和迹(Trace) 1. 行列式(Determinants) 为避免和绝对值符号混淆,本文一般使用\(det(A)\)来表示矩阵\(A\)的行列式.另外这里的\ ...

  5. 【Math for ML】解析几何(Analytic Geometry)

    I. 范数(Norm) 定义: 向量空间\(V\)上的范数(norm)是如下函数: \[ \begin{align} \|·\|:V→R, \notag \\ x→\|x\| \notag \end{ ...

  6. 离散数学 II(最全面的知识点汇总)

    离散数学 II(知识点汇总) 目录 离散数学 II(知识点汇总) 代数系统 代数系统定义 例子 二元运算定义 运算及其性质 二元运算的性质 封闭性 可交换性 可结合性 可分配性 吸收律 等幂性 消去律 ...

  7. AI:模式识别的数学表示(集合—函数观点)

    前言: 模式识别的定义,参考:模式识别两种方法:知识和数据 .百科定义:模式识别(英语:Pattern Recognition),就是通过计算机用数学技术方法来研究模式的自动处理和判读.我们把环境与客 ...

  8. 【NLP CS224N笔记】Lecture 3 GloVe: Global Vectors for Word Representation

    I. 复习word2vec的核心思路 1. Skip-gram 模型示意图: 2.word vectors的随机梯度 假设语料库中有这样一行句子: I love deep learning and N ...

  9. How do I learn machine learning?

    https://www.quora.com/How-do-I-learn-machine-learning-1?redirected_qid=6578644   How Can I Learn X? ...

随机推荐

  1. Jqgrid pager 关于“local” dataType 动态加载数据分页的研究(没好用的研究结果)

    系列索引 Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引 Web jquery表格组件 JQGrid 的使用 - 4.JQGrid参数.ColModel API.事件 ...

  2. day13-(事务&mvc&反射补充)

    回顾: jsp: java服务器页面 jsp的脚本 jsp的注释 html注释 java注释 jsp注释 <%-- --%> jsp的指令 page:声明页面一些属性 重要的属性: imp ...

  3. Mac 软件专题之:OS X Yosemite 精彩应用软件推荐

    目前,很多软件都已经发布了针对Yosemite系统的版本,今天和大家分享专题:「OS X Yosemite 精彩应用」,主要分享适配Yosemite系统全新的扁平化界面和新功能的软件,但要知道未在此专 ...

  4. bzoj3991 LCA + set

    https://www.lydsy.com/JudgeOnline/problem.php?id=3991 小B最近正在玩一个寻宝游戏,这个游戏的地图中有N个村庄和N-1条道路,并且任何两个村庄之间有 ...

  5. Redis分布式锁----悲观锁实现,以秒杀系统为例

    摘要:本文要实现的是一种使用redis来实现分布式锁. 1.分布式锁 分布式锁在是一种用来安全访问分式式机器上变量的安全方案,一般用在全局id生成,秒杀系统,全局变量共享.分布式事务等.一般会有两种实 ...

  6. jsp+servlet+jdbc实现表单提交

    1.新建一个maven工程,选webapp模板 2.安装tomcat https://tomcat.apache.org/download-80.cgi 下载解压到自定义目录上 ps:在全局变量加上J ...

  7. kernel(一)编译体验

    目录 打补丁 配置 总结 配置方式 配置体验 配置详解 Makefile解析 子目录的Makefile 架构下面的Makefile 顶层Makefile Make解析 编译 链接 链接脚本 烧写内核 ...

  8. flask 钩子函数

    说明: before_request函数,就是一个装饰器,他可以把需要设置为钩子函数的代码放到视图函数执行之前执行 示例: from flask import Flask,url_for,redire ...

  9. flume常见异常汇总以及解决方案

    flume常见异常汇总以及解决方案 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 实际生产环境中,我用flume将kafka的数据定期的往hdfs集群中上传数据,也遇到过一系列的坑 ...

  10. SQL Server没有足够的内存继续执行程序

    有一个表的数据特别大,我点击生成脚本的时候,喜欢新建窗口,但是不行,数据量太大了,所以选择保存文件,保存到本地了.然后我点击执行,又报没有内存去执行...还是因为数据量太大了 解决办法,使用sqlcm ...