警告 以下内容已超越矩阵变换存在,不能保证其正确性,仅代表一种看法。

我们需要知道,能够形成一整套完整理论的,都是很成熟的,往往研究了几十几百年的,但是有些很新很前沿偶尔很强大的,有时理论残缺不全,甚至没有道理可讲,很不幸这里讨论的目标就属于后者,但又必须去理解它,不然怎么叫强迫症呢

0 目的

上文理解矩阵变换中讲到矩阵变换的缺陷,其中之一是不同的变换不能在同一空间共存,即Ax是对x做A变换,不区分x的空间位置。而我们希望有一种映射能根据x所在空间位置不同而做不同的变换。

1.评估空间内变换出现变化的方法

(注:因为对象比较抽象不太好理解,所以这里提出这个方法,协助理解)

那怎么去评测空间内的这一种映射呢,在这里提出一个用折线及其折射去衡量空间映射变化的方法

如果一条直线进入某空间时,发生了折射(向某方向偏折),表明空间中的法则(映射)发生了变化,其变化过程可以是突变,也可以是渐变,在一个方向发生,认为一次,在n个方向逐次发生认为n次,我们就认为对该直线施加了n+1次法则(变换);这n个方向作为坐标系,其为空间s,令m=dim(s);

放出任意的直线,出现了最大的那个n,称为max_n,则认为该空间具有对max_n+1个子空间实施max_n+1次法则的能力;简单说就是提出如下评判原则:

直线映射后被折了n次就表明能对n+1种不同位置的x实施n+1次不同的变换。

n>=m,令k=n/m,k是有用的,这里不讨论;上面这句话可变为

直线映射后被折了n次就表明能对n+1种不同位置的x实施至少m种不同的变换。

2.映射及其定义

我们的目的,是如下图所示的映射,就是在矩阵乘矩阵之间插入一个函数,变成矩阵、函数、矩阵这么一种夹心结构,而上一章我们讨论的映射是图中虚线框内的部分

夹心结构中,如果没有函数,就是矩阵乘矩阵,那还是矩阵,但是,夹入函数,产生了特别的作用

2.1 以1个断点的线性函数为例(非强迫症可跳过)

函数Y=(|y1|,....|yn|)T在坐标i上的分量提取出来,函数如图:

在yi=0的界面上发生了折射,上例中函数的入射斜率是1、折射斜率是-1;更一般的设入射斜率是1,折射斜率是µ。这里不设k1、k2,µ=k1/k2,因为入射时已包含k1,或者说折射后还是k1,那不会偏折,正是因为k1到k2的变化才导致偏折,所以我们用µ;

y=(y1,....yn)T,y经过函数Y作用后为Y=(Y1,....Yn)T,对于Yi有

Yi=yi, yi>0

Yi=µyi,yi<0

如果y=Ax+b,则上面可看作当yi<0时,用µA的第i列替换了A的第i列,用µb的第i行替换了b的第i行,现在先不用考虑偏置b,将其写为

y=A(x+b’)

我们可以看到:界面将空间划分为2^n个象限,第一象限内的映射为矩阵A的线性变换,其余象限的线性变换因象限位置而异,对应于µA对A的列的部分替换;

我们知道必定有一个象限对应于µA对A的全部替换,且也知道只要µ<=0,就能将其他象限映射到第一象限范围之内。

以上这一大堆意味着什么?(这里用到前述的评估方法应能较好理解)就是说有两个矩阵变换,一个是µA,另一个是A,我们可以让一个子空间比如第一像限,同时出现这两种矩阵变换,这样会产生现象:比如直线每进入一个象限就会发生一次折射,最多能发生2^n-1次折射。

2.2 以1个同样的例子来理解

上一章矩阵变换的局限:根据矩阵变换的特点,可知异或运算这样的映射,矩阵变换做不到,本质是变换时,变换矩阵是唯一的,不同的变换不能共存。这样比较好理解:Ax是对x做A变换,不能根据x的位置不同而做不同,的变换;又由于A代表任何矩阵,所以没有矩阵能实现根据x空间位置不同,而做不同的变换。下面用两种函数来实现异或映射,并分析其特点

2.2.1函数Y=(|y1|,|y2|)T

首先做矩阵变换,根据矩阵变换平行关系不变,可以推论得到平行四边形不变,右图可看作平行四边型一个对角线被缩放为0。

然后使用函数在y2轴上发生折射

这里选用的函数是Y=(|y1|,|y2|)T,这样完成了异或变换。

2.2.2 用如下函数来实现异或

分析:函数折射是投影(压缩坐标),如下变换实现异或

可以看出,在y1轴上发生了折射,导致三点不在一条直线上,用一个矩阵的压缩变换就得到结果。

2.2.3 特点对比

第二种映射的优点:第二种进行了2次矩阵变换,是我们前面定义的夹心结构,设第一次为A,第二次为B;函数对矩阵A变换后穿过界面那部分进行了擦除,然后进行B变换,这样做的优点是能将直线映射为任何折线(最多折2^n-1次);根据评判原则,我们最多能对特定的2^n种x做2^n种变换。

第一种映射的缺点和优点:第一种映射缺点是折射后没有进行矩阵变换,不能将直线映射为任意折线,只能映射为特定折线,能行是巧合。

其优点就在于只进行了一次矩阵变换,为什么这么说?

  1. 为什么这些变换矩阵不写出来,放个图片就完了?因为限于作者水平,即使再简单也码不出来;而稍微复杂的,计算机能够自动生成。
  2. 有电脑了,终于不用自己动手了,但是伴随着新的问题,只是让电脑去找一个A还好,要是让它去找AB,那完蛋了,因为:AB=AIB=(AC)(DB),不给它一个限制,只要满足CD=I的C、D矩阵计算机都能找出来,或者说,它会浪费时间搞出各种A,B矩阵(对于它来说AC就是A,DB也是B),所以正则化是自从计算机和矩阵乘法有关联后,就必讨论的题目之一。

2.3 偏移b

偏移b很重要,从前面的图可看出,对于有一个断点的线性函数,发生折射的区域是第一象限外,所以需要依靠偏移b把需要分离的点或点集移出第一象限。

3分形与级联(串联)

上面我们看到一个夹心结构能够直线映射为任何折线(最多折2^n-1次),可以解决许多矩阵变换不能解决的问题。但是仅限于此也谈不上多特别,毕竟用核函数也未必不能得到。

3.1 级联(串联)

所以如下图所示,我们将上述映射作为一层,2层级联(串联)

连接处做简化,下图所示,虚线框内是令A2等于上图的B1A2。

根据评判原则,一层的作用最多能将一条直线折2^n-1次,做l层串联最多可以将一条直线折(2^l^n)-1次,但是这个与单层的折(2^l^n)-1次不同,这是一种类似分形。

3.2 分形与级联

可以想象,我们把一张纸(平行直线排列成一个阵列)2^n-1折(折不准确,应该是m个方向扭曲,每个方向k折,但是有助于理解)有2^n个子空间后,在上面刻花,每条打折的直线会记录下花的部分信息,把这些直线拉直排列起来,会发现有2^n朵花的图案,这是一种分形,来一个分形的图案(来自百度百科:分形)

如果是多层级联,那么相似的图案就像细胞分裂或类似核反应,往下层复制。

从映射上看,对于两层,上层划分成各种子空间,各子空间内对应B1、B2、B3...变换,由于下层会分形般复制上层,也必然会复制上层的子空间划分,那么在下层中,各个子空间的空间内按上层的方式进行划分,分成子子空间,第i个子空间的第j个子空间内实施AiBj映射。

扩展想象:多层级联就是一层又一层,层层叠叠,形成一层一层的空间嵌套,比如类似盗梦空间,类似分形。

3.3 级联的意义

其意在于什么呢,应该在于高效利用资源,比如:单层如果要实施2^nl种变换需要2个n×l维方阵(注意:n×l维意味着m×m矩阵,m=n×l),但是对于级联只需要l+1个n维方阵。

4 特点分析

4.1.1矩阵规模

这里还有一个问题,我们知道Ax表示对x做A变换,如果我们要找的映射关系是Bx与Cx的叠加那一个矩阵够用吗,由于B+C还是个矩阵,所以我们就用1个没问题,但如果是这种映射呢,即对特定的x实施多种变换的叠加,由于多种变换的叠加后还是一个变换(这个解释是从有限断点的线性函数得出的。又因①非线性函数可以用有限断点的线函数来逼近,②为保证扛扰动,矩阵变换后需要分离的数据点不会太近。所以非线性函数的作用可以用有限断点的线函数替代)

那能行,所以相同的矩阵规模能对各种问题做出很好的映射,或者说,只要能对一种或多种问题做出很好的映射,那总是能对各种问题做出很好的映射

4.1.2减小矩阵规模

n维矩阵最多实现2^n种变换共存,多层级联的话更多,但实际上我们遇到的问题用不了这么多,又由于解法并不唯一,比如我们做异或运算只用了y1轴作为界面,很明显y2轴也可以,解法不唯一。1个矩阵变换就可以解决许多映射,所以很多问题即使缩减规模也能得到很好映射,表现在把某层或多层的矩阵的部分元素拿走,比如基数或偶数元素拿走。

4.2与核函数的区别

单独比较,本文的映射:两矩阵夹一个函数比核函数灵活,总的来看,与核函数不冲突,可协作,比如对核函数作用后的数据进行映射作为一层,多层级联,等等等各种奇葩组合....

5小结

本文一开始,我们希望有一种变换能根据x所在空间位置的不同而做不同的变换,如今得到了这么一种映射,这是一扇新的大门;

虽然矩阵乘矩阵还是矩阵,但是,我们在这里看到,中间夹了一个函数后,就发生了特别的变化;但其本质是对矩阵变换飞跃性的改进,这就是作者持有的一个核心观点之一。

6用途与缺陷

6.1 用途

全文都在讲这种特殊的映射,那么它(这种映射)有什么用,比如,矩阵变换可以做图像处理这种映射,但是做不了逻辑映射或模式识别,意味着相对矩阵,它擅长逻辑映射与模式识别。

实际情况也差不多,大家用它来做图像识别(会比较慢),一般都配合核函数,会比较快(分工合作,它专门负责识别模式),也用它来做语言识别,互动,翻译什么的;开车好像也可以,比如红灯停绿灯行这些简单的逻辑,或者很复杂的交通逻辑,等等等,反正用途大的要死。但是问题在于什么呢,这些场合,比如语言识别,互动,翻译、开车等等需要的是死记硬背模式,还是理解执行?

6.2 缺陷

1)与矩阵变换类似,这种变换同样存在类似的问题:不同映射不能共存,这个很好理解,每一层的矩阵确定了,映射就确定了。 这意味着一旦映射改变(我们的问题改变),矩阵就会变,就需要计算机重新寻找矩阵,所以虽然是多细胞了,但还是有缺陷。

2)这种变换做的是映射,这是它的特点,也是它的缺陷,与矩阵变换类似,世界很复杂,特点变缺点;难道世界有这么复杂,是的,如果我们对它期望很高。

如果我们想得到更高级的映射,那至少需要它具备观察、感知、认知、学习、推理、执行这么几点;但它总是被诟病为鹦鹉,因为鹦鹉不理解却也能靠死记硬背讲出流利的语言,只不过它是更强大的鹦鹉。

有对立面,才能进化,作者认为虽然有缺陷,但它有继续进化的潜能

6.3 继续进化

首先第2点诟病的理由是不对的,理解属于高度抽象的层面,而其载体不具备理解能力,那很正常,比如,细胞只能进行生化反应,巨量细胞构成的脑只能进行大量的生化反应,但是它们这些反应的集合体-意识,才有理解的能力;所以说计算机不理解,不能说明什么,也说明不了什么。

其次真正让它成为鹦鹉的原因是大数据小任务的特点,或者说,如果它理解了,根本不需要这么多的数据,比如有一句话叫举一反三,只要学习1条数据就能解决3个问题;链接http://www.sohu.com/a/227854954_297710对这些问题讲的很好。

“理解”这个词太抽象层次太高了,先撇开不说,对于第一个缺陷,那么有没有一种算法能够不用改变矩阵就能做出多种映射呢?答案是肯定的,下一章站在对立面的对立面来讨论这个问题。(有其他事,暂时终)

我论矩阵 矩阵变换的飞跃 三 理解矩阵变换 (终)站在对立面 一扇新的大门相关推荐

  1. 孟岩BLOG理解矩阵一、二, 三

    理解矩阵(一) 前不久chensh出于不可告人的目的,要充当老师,教别人线性代数.于是我被揪住就线性代数中一些务虚性的问题与他讨论了几次.很明显,chensh觉得,要让自己在讲线性代数的时候不被那位强 ...

  2. 理解矩阵一、二, 三(转自孟岩blog)

    这是很早以前已经看过的,最近无意中又把保存的文章翻出来时,想起很多朋友问过矩阵,虽对矩阵似懂非懂,但却很想弄懂它,希望这几篇文章能帮你一下,故转之: (一) 前不久chensh出于不可告人的目的,要充 ...

  3. gram矩阵_推荐算法三视角:矩阵,图,时间线

    关于推荐系统,如果在忘掉所有的公式和代码,忘记所有的语言描述,脑海里就剩下几张图景,会是什么?一张二维表格,一个拓扑图,一条时间线.这三幅图景,是我看待推荐算法的三种视角. 视角一:矩阵视角 在脑中想 ...

  4. LeetCode—5757. 矩阵中最大的三个菱形和(Get Biggest ...)[中等]—分析及代码(Java)

    LeetCode--5757. 矩阵中最大的三个菱形和[Get Biggest Three Rhombus Sums in a Grid][中等]--分析及代码[Java] 一.题目 二.分析及代码 ...

  5. ker矩阵是什么意思_理解矩阵(二)

    作者:myan 来源:CSDN 原文:https://blog.csdn.net/myan/article/details/649018 接着理解矩阵. 上一篇里说"矩阵是运动的描述&quo ...

  6. java第三阶段源代码_有效Java第三版的源代码已更新为使用较新的功能

    java第三阶段源代码 那些已经阅读了有效Java 第三版的人可能知道与该书相关的源代码可以在GitHub上获得 . jbloch / effective-java-3e-source-code项目拥 ...

  7. 有效Java第三版的源代码已更新为使用较新的功能

    那些已经阅读了有效Java 第三版的人可能知道与该书相关的源代码可以在GitHub上获得 . jbloch / efficiency-java-3e-source-code项目拥有1700多个星星,截 ...

  8. RecyclerView(三)实现聊天窗口样式(Android 5.0 新特性)

    Android RecyclerView(三)实现聊天窗口样式(Android 5.0 新特性) 效果 1 聊天窗口子视图布局文件 1.1 左边消息视图布局文件 使用到的背景图片 <?xml v ...

  9. OpenGL入门第三课--矩阵变换与坐标系统

    在 OpenGL中,物体在被渲染到屏幕之前需要经过一系列的坐标变换,听起来有点吓人:不过呢如果有一定的线性代数的基础利用矩阵变换,其实也就没那么难了.即使没学过线性代数,只需要了解一些基本的矩阵运算也 ...

最新文章

  1. 2021年度最有成就感的几件事
  2. [SDUT](3329)顺序表应用5:有序顺序表归并 ---有序表归并(线性表)
  3. 微软加入了面向Java的Cloud Foundry
  4. 实现单台测试机6万websocket长连接
  5. 【笔记】docker核心概念和使用 docker命令
  6. boost::format模块演示添加到 printf 语法的功能
  7. Centos 6.5(64bit)上安装Vertica single node
  8. 10.2.5 监视文件.
  9. vue 和react
  10. C# ?? 操作符示例
  11. 清理localstorage_清除浏览器localstorage的数据
  12. Google App Engine CMS系统的搭建
  13. 一起学英语 | 用JavaScript实现数字阶乘的三种方法
  14. 独立站运营必知:关于聊天机器人的十大好处
  15. 简述一下mysql与sqlyog的安装
  16. WEKA-Instances-从内存中创建数据集
  17. -bash: wget: 未找到命令
  18. handsome主题添加服务器信息,Typecho handsome主题一言接口修改,使用自己的一言服务...
  19. centos oracle 修改监听服务名_虚拟机(Oracle Virtual Box)下ORACLE的安装
  20. 808通讯协议技术规范消息ID:0x0704数据分析,后附go代码

热门文章

  1. 用python画雪花 科赫曲线递归_【TCE的编程小讲堂】【Python】【第三期】如何画出科赫雪花?(下)...
  2. 论文阅读:Piggyback: Adapting a Single Network to Multiple Tasks by Learning to Mask Weights
  3. zb怎么做渲染图_zbrush精加工和渲染
  4. Java图片处理框架
  5. google论文--mapred中文翻译
  6. luoguP3964 [TJOI2013]松鼠聚会
  7. 最全的cmd命令大全
  8. Flink面试,看这篇就足够了
  9. 计算机毕业设计分享 40个高质量计算机毕设项目分享【源码+论文】(八)
  10. 【爱找茬】linux系统和windows系统,你找到了几处不同?