GAMES 图形学系列笔记(十六)

GAMES001-图形学中的数学 - P6:插值&拟合 - GAMES-Webinar - BV1MF4m1V7e3

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后今天给大家介绍这个差值与拟合,本来是想今天一起把这个采样也讲了,但是发现这个如果讲采样的话,内容可能稍微有点多,然后呢,采样跟这个我们下节课要讲的这个普遍换啊,关系也比较密切。

所以说呢就啊缩减一下内容,我们今天就只讲插值和拟合,因为这两部分本身的内容就已经不少了,然后呃在讲插值和拟合这两件事情之前,我们先要区分这两个概念,就是差值和拟合的区别是什么,其实这两个词经常会弄混。

然后在某些地方声音有点小,那我那我说话声音大点对,就是在在有些地方如果不是那么严谨的话,这两个词会混着来用,但是呢其实他们的定义是非常清楚的,就是它值它是一定要经过这个采样点的。

但是拟合的话它是不要求经过采样点的,所以就会是两个cup,就是对于采样来说,对于对于差值来说的话,大概率是每个点你都确保它是对的,只不过呢你提供的信息不够,所以中间的信息需要你通过差值去给它补出来。

而拟合是说我的信息可能是有冗余的,就比如说我在用,我用这个啊雷达去捕获了一个点云数据,那么这个点云数据里面,是包含了大量的噪声的啊,为了去去除这个噪声,所以我就对这个点击数据进行一些拟合。

所以这是两个的区别,那我们先来看差值,那差值自然想到就是最简单的,肯定是线性差值对吧,就我们只考虑,比如说两个点,一个X0,Y01X1Y一,然后我要补充这两个点中间的这个信息,那我就最简单的。

就是在两条中间画一个线段对吧,那它写成函数的表达式呢,就是左边这个样子是X1啊,Y1减去Y0除以X1减去X0,这是斜率,然后你把它放进去就可以得到第一个式子,然后第二个式子。

第二个式子是第一个式子改写来的,我调一个比,对你只要把上面这个式子变一下形,然后把这个Y0给他提出来,然后Y1给他提出来,他就会写成下面这个样子,那下面这个样子呢,它就是一个Y。

就是一个关于Y0和Y1的一个,线性组合的形式,然后呢前面是它的系数对吧,这个系数我们可以进一步化简,比如说我认为这个X减去X0,除以X1减去X0,这个东西我叫T其实也就是我要求的这个点。

XYX它的它的它的横坐标X在X0,X1这条线段中的一个比例,我们把它叫做T,那么这个Y就可以写成一减T乘以Y0,加上T乘以Y1对吧,那自然就是T取到零的时候,Y就等于Y0,T取到一的时候,Y等于Y1。

然后中间就是一个线性变化的过程,所以这就是最简单的一个线性差值,如果你有很多的点的话,你就每每中间的每一段都做一个求标线段出来,这就是线性差值,那线性插值它有一个很明显的特点对吧,就是线性插值。

我能保证我查出来的曲线是连续的,但是呢这个曲线在每一个区间的这个边界上,它的导数是跳变的对吧,可以明显看到第一段曲线斜率是这样的,第二曲线斜率是这样的,他们在一个地方有一个跳变。

那么这样的连续性呢我们就称为C0连续,它能满足我们的一个最基本的,就是函数值连续的要求,但它的导数是不连续的,所以如果你对于这个,你的连续性有更高的要求的话,那么线性插值肯定是不够用的。

那这个时候我们就可以引入这个二阶差值,呃线性差值的话,我只用了两个点去拟合一条直线对吧,那么二阶差值就非常简单,我是用三个点去拟合一个二次函数,我假设给出X0X1X二,只有三个点。

然后呢我再拟合一条这个中间的二次曲线出来,就是Y等于ax方加bx加上C,它同时经过这三个点,那么经过这三个点,每个点对应有一个方程,所以我有三个方程,然后呢二次函数本身它有ABC这三个未知数。

所以三个方程三个未知数刚好够解,那我们可以把它这个写出来,它也会变成这个样子,这样一个矩阵方程3×3的矩阵方程,然后呢这个矩阵方程它有一个特点,就是左边这个矩阵,他其实长得非常的有规律对吧。

就是1X0X零的平方,1X1X一的平方,1X2X二的平方,那么这样的一个矩阵呢,如果大家之前学过线性代数的话,那应该知道,就是说这个矩阵我们叫范德蒙德矩阵,然后这个矩阵它有一些特殊的性质。

就比如说它的行列式对吧,是一个一个一个有一个有一个这个呃,有一个形式对吧,这个形式我就不写了,如果你行列式有一个有一个闭式解,那么整个矩阵它的逆矩阵,我就可以把它显示的写出来对吧。

所以find的不同矩阵,我可以用符号写出它的这个逆矩阵出来,然后把它乘到这个Y0Y1Y二的左边,得到ABC的一个表达式,然后我再把这个ABC的表达式,代入到这个二次函数里面去。

那么最终我就可以得到这个二次方程,那这个啊二次函数,那么这个二次函数呢,它写出来会是下面这个样子对吧,这个样子当然是进行了一些这个变换,进行一些化解,你会发现呃,我把这些什么。

我没有把它写成什么ax方加上B,X加上C的形式对吧,我把这个二次项,一次项写在了一起,比如说对于第一考第一个式子,你观察X0减去X1,X0减去X2,底下是一个常数对吧,它跟X没有关系。

然后上面X减去X1,X减去X2,这个就是一个二次二次函数的样子对吧,所以他这三个二次函数加起来总共Y,它也是一个关于X的二次函数,并且呢这个二次函数啊,你可以看到它也是一个关于Y的一个。

线性加和的一个形式对吧,我们有Y0乘以乘以一个东西,加上Y11个东西,加上Y21个东西,然后我们可以检查一下,比如说如果我把X代成X0的话,那么这个时候第一项分子就会变成X0,减去X1,X0减去X2。

正好跟这个分母是一样的,所以第一项就是Y0,然后第二项里面有一个X减去X0,所以这项是零,然后第二第三项里面也有一个X减去X0,所以这一项也是零,所以最后Y就等于Y0了,所以这个式子它能够保证啊。

你代入X等于X0的话,那么Y1定等于Y0,也就是说他经过这个X0Y0这个点对吧,那同理它也经过X1Y1这个点,同理它也经过X2Y2这个点,所以呢这个式子底下,这个式子就是我二阶差值的一个形式。

OK那我们这里只有三个点的情况对吧,那如果我有N个点呢,比如说在这个图上画的,我有01234561共七个点,每个点上都有一个函数值,然后我要找一个多项式是经过所有的点对吧,那么我的问题就会变成。

我一共有N加一个数据点,然后我应该找的是一个N阶的多项式,让这个多项式是去经过所有的数据点,为什么是N阶的多项式呢,因为因为如果是N加一个点的话,每个点一个方程,那我一共就是N加一个方程。

而N阶多项式它正好就是A0到AN,这N加一个未知数,所以N加一个数据点,是可以唯一确定一个N阶的多项式的,对吧,那么这个多项式长成什么样子呢,其实就是刚才给大家看的这个,二阶差值的一个拓展对吧。

他写出来会是下面这个样子,它依然是一个Y关于YJ的一个求和的形式,然后这个求和的系数,它是一个关于X的N阶多项式,为什么是N阶呢,你看底下这个这是个连乘对吧,然后连成对象是I并且I不等于J对吧。

也就是说对于一这个点的话,它一共需要乘跟零有一项对吧,呃就是如果这等于一,那么I可以取多少值呢,I可以取零,可以取二,可以取三,可以取四,可以取五,可以取六对吧,所以它是有六项。

然后每一项呢它上面都会有一个X减去XI,所以是六项X减去X相乘,所以啊分子就是一个六阶的一个多项式,然后分母的XJ减去X2,它是一个一个常数对吧,那六次常数乘起来它还是一个常数,所以呃后面这个式子。

它是一个关于X的一个N阶多项式,你从N减一个点里面去除了I等于这一点,所以还剩下N个点,N项的话就是N阶多项式,那么这个N阶多项式这个系数,它有个名字叫这个拉格朗日多项式LJ。

那么LJ它它的性质它有一个很重要的性质,就是跟二阶啊,跟我们刚才讨论的二级情况一样的,就是我考虑这个LJ这个拉杠杆多项式,如果我代入XK进去,J和K不一定是相同的,那我把它写出来。

后面是这样一个连成形式,那么就会发现,如果一旦这个J和K是相等的对吧,那么你上面也是XK减去xi,底下也是XK减去xi,所以最后一定是一,但是如果J和K不等,那么上面就一定会出现一项。

XK减去XI等于零的情况对吧,因为我是要对所有的I不等于J的情况做连成,那么就一定存在一个I让I等于K对吧,这是这不等于K的情况,那么一定会出现这样一个现象,所以分子一定有一项是零。

那你连乘起来这项已经是零了,所以如果K不等于J的话,LJSK它一定是零,那换句话说,拉格朗日多项式,它满足这样一个LJX,K等于德尔塔JK的这样一个结论,那正是这个结论保证了说,我们在上面这个形式中。

如果X比如说X取一的时候,那么这个拉格朗多项式,对于其他的所有点系数都是零,只有对于一这个点系数是一,所以Y就等于Y1,所以这个形式保证了说啊这样一个N阶多项式,它经过了我所有的插值点呃,呃可以吧。

这是一个就是说如果你有N加一个点,如果你想进行多项式插值的话,那么就可以啊这么来做,他直接告诉你这个函数的形式,你只要把它带进去,你就可以得到你啊,在任意点的一个函数值的结果,然后并且呢这个多项式对吧。

它是一个N阶的多项式,那么意味着它的连续性其实是非常好的对吧,一个N阶多项式,你至少可以保证它是比如说二阶多项式,我们刚说的,我们回头啊,比如说一阶多项式就是直线对吧。

分段的直线我们能保证它是这个C0连续的,那二阶多项式,我们就能保证它是C1连续的对吧,所以N阶多项式的话,我就这么保证它是CN连续的啊,CN减一点去,所以这个曲线的性质非常好,它非常的光滑。

呃然后关于这个插值方法,其实有一个非常怪的应用,就是大家如果在呃就平常刷知乎,比如说碰到这样的一些问题,比如说我们要求一个一个数列,找规律的一个问题对吧,第一项二十二十二,25,三十三十七好。

那么下一项是什么,给你几个选项,47,49,55,81对吧,如果就是假如考公的时候,可能也会碰到这样的智力题对吧,然后知乎上就会告诉你有这样一个多项式存在,它的前五项正好就是这个数列的前五项。

二十二十二,25,三十三十七,然后呢这个多项式取到X等于六的时候,他得出来47好,所以这个题选47,但是呢这样的多项式它存在很多个对吧,也存在另外一个多项式,它前五项也是这个数列的前五项。

然后第六项呢是一个49对吧,那49也是对的,然后同理55也是对的,81对的,所以ABCD都对,那么这个东西它这个多项式是怎么找出来的,这个就是我们刚才介绍的这个拉格朗日多项式,你只要给这个。

我给你六个点对吧,然后你给我拟合出来一个五阶的多项式,那么这个多项式呢,就是刚才刚才给出来的这个样子,我能保证这个五阶多项式一定会经过这六个点,对吧,所以就是有这样奇奇怪怪的应用。

但是这只是一个呃只是一个东大,就是给大家交流一下对吧,当然这个题的真实解法估计也不是这样,具体多少我也没具体考好吧,那么更严肃的来说,这个事情就是呃如果你使用多项式插值,它其实有一个很严重的问题。

这个问题是什么呢,叫龙格现象,就比如说我这里存在一条黑色的线,这个黑色的线,我们比如说我们就认为它是ground truth,对吧,我在黑色线上踩了这样11个点,然后我希望通过这11个点它们进行插值。

然后能差出来一个跟这个黑色线比较接近的,曲线出来对吧,那我们怎么做呢,我们就可以用刚才介绍这个多项式插值,我用11个点拟合出来一个十阶的多项式,然后看看把这个多项式画出来,就是这个图中的这个红色的线。

那么这个红色的线它当然是有问题的对吧,尽管这个红色线在中间的这个区域,它跟这个曲线拟合的还是可以的,但是在边缘的地方它会有非常剧烈的震荡,它跟这个黑色的ground truth,这个偏离是非常远的。

那么这样一种偏离就是这个龙格现象,就说明这个曲线你有这样的对,你有这样的震荡的结果,那一定是因为你的这个多项式的阶数足够高,才会有对吧,比如说二阶多项式的话,他一定只有一次震荡,就是它的那个极值点。

三次多项式的话最多只有两次震荡,那如果你出现了这么多的震荡,一定说明这个多项式的基数基数已经足够高了,并且是太高了,然后由于某种原因,由于这个这些采样点分布的比较特殊,然后就导致你拟合出来。

会出现这种非常震荡的结果,那么这种结果显然是我们不想要的,那代表你这个你和你合错了,所以尽管这条曲线它依然是非常连续的曲线,但是由于它太震荡了,所以这个也不是我们想要的,那么如何去解决这个问题呢。

我们可以通过这个样条插值的方法去解决它,那什么叫样条差值呢,其实也非常的简单,就是我通过拼接多段的这个低阶的多项式,来去逼近整个的一个曲线,就比如说我们最开始介绍的这个线性差值,它就是一个样条差值对吧。

只不过他的这个多项式接触过于低了,它是个就是一个一阶的多项式,那么你自然每一段它都是一个直线,但是呢我们也可以让这每一段,它的这个阶数高一点,然后呢让它看起来是比较的这个弯曲的。

然后再把这个多段的这个曲线拼接在一起,形成这个更复杂的这个曲线,通过这种方式,我们就能够避免刚才出现的这个龙格现象,因为我能保证我的每一段曲线,它都是一个低阶的多项式,所以它一定不会震荡的特别剧烈。

对吧,那比如说我们考虑这样一个二阶样条曲线,那顾名思义,也就是说我们每一段曲线,它都是一个二次函数对吧,假设我们有还是一样的问题,有N加一个数据点,那么我一共有中间N个区间。

每一个区间如果都是一个二阶多项式的话,那么它一共对应着三个未知数对吧,就是ABC每一样都来N份,那我们考虑如何去解除,要通过这个我设定的条件去解除这三个未知数,我们看看一共能列出多少个方程出来。

那么首先我们要满足插值条件对吧,就是我说的这个每一段函数,它必须经过区间开始和结束的这两个点,那所以对于每一个区间,我可以列出两个方程来,一共是二运动方程,然后同时呢我希望这个二阶样条插值。

它的结果是足够光滑的,它至少应该比这个啊,线性插值的结果要更好对吧,那么除了这个它是直连续的假设之外,我还要求他保数连续对吧,那么就是对于xi这个点来说,我就要求他左边这一段的二次函数。

在这个地方的导数,和右边这一段二次函数在这个地方的导数,它们是一样的,那么一共可以列出多少个方程呢,一共是N加一个点,但是呢只有N减一个点,是左和右都有区间的,所以我一共能列出来N减一个方程。

最外面的两个点,我是列不出来这个导数连续的条件,那好我们可以先来数一下一共三个未知数,然后我的方程是2N加上N减一个,那么一减就会发现我还少一个方程对吧,那我们这个时候就可以有一些人为的指定。

比如说我可以假设说这个东西这个曲线,这个样条曲线它的第一段呢,我强行给定它是一个线性函数,那么这个时候对于低段的这个,二次函数来说的话,它的A0就自动默认成零了,它只有BI和CI两个未知数。

所以这样未知数的个数就少了一个,或者说我的方程就多了一个,那这样正好方程的个数等于未知数的个数,我就可以把所有的未知数都解出来,得到最终的这个啊,每一段的这个二次曲线。

那我们可以看一下这样的一个差值结果,那自然呢它满足这个一阶导数是连续的,那个这样的连续性我们称之为C1的UT,但是呢他的二阶导是不连续的,它的二阶导不连续的原因也很简单,就是我们并没有要求这个点。

它左右两侧的这个二阶导是一样的,二阶导二阶导是什么,二导就是AI对吧,两倍的AI对吧,我们也没有要求每段曲线AAI是一定一样的,然后第二点呢是说我为了得到这三个未知数,我是需要去解一个方程的。

解一个三的一个系数的矩阵方程,对吧,我并没有像比如说像刚才介绍这个多项式插值,那样的,有一个呃意识的解,就是我直接把X带进去,我就知道这个结构是多少的,我为了得到这个二阶样条差值的系数。

我是需要解一个3N的方程的,那如果你的点非常多的话,比如说我有100个点,1000个点,那这个时候你要解的就是,三百三千的一个矩阵方程,那它截下来就就不一定很快乐,当然有加速的方法,他也不是很慢。

但是呢你如果跟那种B式的方法去比的话,那可能是不够快的,然后第三点其实还有一个问题,就是说由于你是通过解方程解出来的,那么我们每一个数据点,它其实是会影响到全局的差值结果的,什么意思呢。

就比如说对于xi这个点,我如果给它稍微动一下的话,它是可能影响到比如最最末尾的曲线的结果,那么这个性质我们也可以称之为一个,它不存在这个局部性,就是我一个点,它可能牵一发而动全身。

我只要改变一个点上的值,它整个整个曲线的形状都会改变,在某些情况下,你可能不想要这样的结果对吧,所以这是他一个潜在的问题,那么同样的我也可以把这个问题进一步的推广,对吧,我刚才是介绍这个二阶的样条插值。

我们还可以进一步推广来做三阶的样条插值,那么自然就是每一段区间内,它都是一个三阶的多项式,我们可以,那这个时候,我们就可以像二阶样条插值的方法一样,我们去考虑我们需要多少个方程,来去解除所有未知数。

三阶样式超值的话,如果有N个区间的话,自然就是4N个未知数,我们可以加上2N个直连区的条件,N减一个导数,连续的条件就跟刚才是一样的,然后同时我们还可以再要求他,进一步是二阶导数连续的。

那这时候又会再补上这个N减一个方程,那这个时候一共就是4N减去二个方程,还差两个,那么这两个方程呢一样的,你是可以自己去指定的,比如说我可以指定第一段,它依然是一个直线对吧。

那这个时候第一段的这个三三阶的函数,它的前两个参数都是零对吧,或者我可以指定第一段和最后一段两段,它都是一个二次函数对吧,也可以这样指定,就是根据你的这个需求,但不管怎样说,最后一定是个未知数。

个数等于方程个数,然后我把所有未知数都给解出来了,那么它的问题呢,三件样的差值它的好处是什么,好处自然就是我现在的这个连续性更高了,他现在是一个二阶连续的一个插值方法。

但是坏处呢依然跟这个二阶情况是一样的,就是我需要解这样一个矩阵方程,矩阵方程,并且这个方程的大小还比二阶的更大一点对吧,因为我们每个区间我是有四个未知数的,同样的单个数据点也会影响全局的差值结果。

比如说就跟这个动图里画的一样对吧,你在这个点上下动这个点,你会发现离他很远的一条曲线,它也在抖对吧,所以有些时候你不想要这个,也不代表它是一个完全特别坏的事情,那么关于解方程这个事情呢。

其实是在这个games102这个课程中,也就是关于这个这个已散几何,也不是几何,应该叫什么啊,反正是game4102,这个课也是个关于这个图形学里面几何的课,然后再介绍到这个样条方法的时候。

在学习材料里给出了这个方程的一些,求解上的一些方法,比如说我们有什么追击法,因为这个矩阵其实它是它有很好的性质的,比如说对于这样一个啊,这应该是二阶差值的一个方程的话。

它其实是一个只有主对角线和副对角线的一个,三对角的一个矩阵,那么这个矩阵的话你要求解它的时候,你可以有一些比较好的优化方法去解它,所以那如果对这个东西,就是如果大家之后要用到的话。

也可以去学习一下这个game102对应的部分,OK那么我们刚才说到这个呃,二阶样条插值和三阶样条插值,甚至更高阶的样条插值方法,它都有一个问题,就是说我是需要去解方程的。

然后并且这个差值结果它是没有这个局部性的,那我们有没有办法让这个差值结果有局部性呢,那这个对应的就是这个三阶2米差值,这个三阶2米差值,它的名字跟我们刚才介绍这个三阶样条差值,其实它很像的。

就是有些地方也会叫它,比如说这个CUBIERMANSPLINTERPOLATION,三阶恶米样条插值名字是很像的,所以有可能呃,就是当比如说就是当提到说我要做,比如说我用的是一个三阶的插值方法。

你可能就去仔细读一下,来看他用的到底是这个三阶2米差值,还是刚才介绍这个三阶差值,那么三阶2米差值,跟刚才介绍的方法有什么区别呢,它其实最大的区别就是它不需要解方程,并且它的差值结果是有局部性的。

也就是说我去改一个地方的这个一个点上的,这个差值的这个一个点上的这个函数值,它只会影响它周围的这一段曲线的形状,对于远方的曲线的形状它是没有影响,但是呢他也会放弃刚才三阶差值的一个,连续性的条件。

也就是我们放弃了这个二阶导数连续的条件,就是尽管它是三阶的厄米插值,但是呢它其实差值的结果只是一阶连续的,它并不是二阶连续的,就是我们通过放弃这样一个对连续性的一个,高的要求。

然后呢让他的这个差值的结果有更好的局部性,并且我也不需要解方程了,那么具体是怎么做的呢,我们依然假设X0X1这段区间内,他这个函数是一个三次函数,对他有四个未知数,那么就要考虑增加两样的四个条件。

来去把这四个未知数给它给定,其中有两个条件是很明显的,就是我一定要经过X0,Y0和X1Y1这两个点对吧,这是前两个条件,然后呢我再增加两个导数条件,我如果给定了这个Y0上了。

我要求这个点的导数是M0Y1,这个点的导数要导数是M1,那我就多了两个方程,也就是导数的两个方程,一共四个方程,四个未知数,然后带进去,我就可以把这个ABCD全解出来,然后解出来这个结果。

它也可以写成一个相对来说比较漂亮的,结果是什么呢,就是Y最终这个Y它是关于Y0M0,Y1M1的一个线性组合,然后每一个这个呃,Y和M前面它都会有这样一个多项式,那这个多项式里面。

这个T就是我们在最开始定义的那个T,也就是这个X占到这个区间内的一个比值,它跟XT和X之间是一个线性关系,也不是线性关系吧,一次关系,然后呢,那么你这个多项式呢,它是有关于T的三次多项式。

所以它也是有关于X的三次多项式对吧,只是我只是换了一个写法,这个写法啊让整个结构看起来漂亮一点,那我们就可以验证一下,对不对,这样一个结果他为什么满足我们的要求对吧,我们可以把这三个多项式都给起个名字。

叫什么呢,叫阿米级函数,然后这个欧米奇函数也就是三阶2米差值里面,这个arm这个词就是来源,就是说二三阶2米差值里面的2米,指的就是这三个指的就是这四个多项式,那么这四个多项式有什么性质呢。

如果你把它画在图上,画到零一区间里,然后就会得到这样一张图对吧,用不同的颜色标注出来,并且我们可以分别叫H00,H10,H01和H1H00满足什么性质呢,在图中对应的是这条红色的线。

它在T等于零的时候取的是一,在T等于一的时候取的是零,并且在零这个点它的一阶导数是零,在一这个点它的一阶导数也是零,也是这个对应的条件,那同样的关于H10,我也可以写出来他的这个条件。

你就会发现H10在零和一的时候,它取值都是零,但是呢在零这个点的一阶导数是一,但是呢在一这个点一阶导数是零,对于H01呢正好是反过来的,他同时经过零和一这两个零点,但是呢他在一这个点导数是一零。

这个点导数是零,那H11这条啊这条深蓝色的线哦不对,你刚才说错了,这个呃,这应该是这个H01啊,说错了,不好意思,H01这条深蓝深蓝色的线,它跟红色这条线是对应的,它在零的地方取零,在一的地方取一。

然后在这两点上导数都是零,所以这四个函数它有这样好的,这个导数和函数值的性质,那你把它带入进去,你就会发现这样一个差值的结果,它自动满足了我们给定的这个函数值的要求,以及这个导数的要求,比如说第一点。

如果我认为我我把这个T等于零带进去,他是不是经过Y0这个点呢,你就会发现这种零的时候,H00是取一的,然后其他的三个多项式取的都是零,所以Y就等于Y0了对吧,然后如果你去考虑考察导数的话。

H00在零这个点导数是零,H10在这个点导数呢是一对吧,然后由于你这个T是一个关于X的函数,所以你把它求导一个结果,他有一个那个链式法则嘛,然后你把那个链式法则带进去,然后结果拿出来就发现啊。

这一项在T等于一的时候,在X1这个点它的函数值它的导数值是M0啊,说错了,在X0这个点,他的这个导数值是M0,然后剩下H01和H1在,在X0这个点导数都是零,所以是2米奇函数。

这四个多项式满足这样好的性质,所以能够保证我最后这个三阶2米差值的结果,这个值这个函数值Y,他是一个,满足我对于这个函数值以及导数要求的,那如果我把这样的多项式,三阶多项式给它拼在一起。

那它就可以组成一条样条曲线对吧,那自然如果我希望这条这个拼接成的样条曲线,它是导数连续的话,那我只需要规定每个点上它的这个导数值,左右两边的导数值是同一个值,那么它自然就是一个导数连续的医疗曲线。

那么我们具体应该怎样选择,每个采样点上的导数值呢,有不同的方法可以去选,比如说有限差分方法,就是你计算左边的这个啊,这个有限差分出来的斜率和右边有限差,分出来的斜率,然后给它取个平均作为。

然后也有像这个cardinal样条,它里面给定了一个C这个常数对吧,你可以通过调整C这个常数,来调整每个点上的这个啊导出的这个值,它出来的结果也会有一点小小的不同对吧,然后看cl ROM样条呢。

它其实跟有线差分很像,它假设XY均匀划分,那么这个mi就给定成为这个两边这个呃,两边的这个点,右边区间的端点和左边区间端点的一个差值对,所以你可以选择不同的这个导数的规定方法,但是不管你怎么选。

我能够保证这个三阶2米差值出来的结果呢,他一定是这个一定出来是这个导数连续的,它这个C1连续的,并且它有很好的局部性,并且我也不需要解方程,OK吧嗯嗯,然后呢,那既然我的这个每个点上的导数。

可以自由选对吧,那我也可以调整哪个点上mi,这个选择方法,就是我通过一个简单的法则去给定,而是我精细的去调整它,让这个曲线进一步满足一些其他的性质,比如说这个单调三阶样条插值。

它就可以通过去调整每个点的这个老数值的mi,然后呢保证这个差值,结果呢是一个在每个区间内是单调的对吧,就是图中这条蓝色的线,红色这条线呢是一般的这个,三阶恶魔一样的差值。

蓝色的这条线呢是这个单调三阶样条插值,你会发现红色,比如说在0。4到0。5这个区间内,它有个很明显的一个先下降,然后上升的这样一个过程,但是呢如果你使用的是这个呃,单调三阶样条插值的话。

那么它这条蓝色的线在每个区间内,它就是单调的,它就不会出现这种在数据点之间的,这种拐点存在,对吧,这可能也是你希望的一个想要的一个,他的一个好的性质,那么具体是怎么调整这个EI呢,就是有这样一个算法。

就peace wise cubic or mulating polynomials,这样一个一个一个一个方法,然后大家可以自己去进一步了解,这个具体是怎么调整这个N,好吧。

那讲到这里我们就可以做一个总结,我们前面介绍了很多种插值方法对吧,从简单到这个复杂,那么每一种插值方法它都有不同的性质,比如说从连续性的角度来看的话,线性差值它的连续性是最差的,它只能保证值连续。

但是不能保证导数连续,多项式插值呢一般来说它的圆心是最好的对吧,它可以满足非常光滑的性质,然后这个其他的话基本都是这个C1连续,C2连续对吧,那对于这个复杂性来说的话,二阶样条插值和三阶一样的差值。

它是需要解方程的,然后他可能稍微复杂一点,然后其他的这些插值方法都是不需要解方程的,但是呢二阶差值和三阶差值,它的局部性是不好的,多项式插值虽然它很连续,但是它的局部性也不好。

并且它还有很严重的龙格现象对吧,然后呢三阶样条差值,三阶恶米样条差值跟三阶样条差值比呢,它牺牲了一定的连续性,它把连续性从C2降到了C1,但是呢他这个时候就不再需要解方程了,并且呢它的局部性也会更好。

然后单接单调三阶样本差值呢,它会进一步保证这个结果是单调的,所以说啊有这些差值不同的插值方法存在,就是大家可以根据实际情况去选择,自己想要的这个插值方法,OK这是讲到前面部分的一个总结。

大家有什么问题吗,并没有人回来后,今晚那我就假设大家没问题吧,大家如果真的有问题的话,可以随时在这个啊里面提出出来,在聊天里把它打出来,OK那我们就继续,啊然后下一步我们引入一个非常重要的概念。

叫基函数,这个基函数它会帮助我们去理解之前介绍呃,呃用一个统一的框架去理解之前介绍的,各种各样的查询方法,那么奇函数是什么呢,我们还是以这个线性差值为例对吧,线性插值的形式就大家很熟悉的,我这就不说了。

然后呢我可以干点什么事呢,就是我可以定义一个奇函数,对每一个xi定义一个奇函数,它长成的样子就是上面这个图中的样子,他在xi这个地方取一,然后在其他的所有采样点都取零,那么它就是这样一个一个尖尖的函数。

这个函数呢有时候也会大家叫它这个had function,因为它就是一个像一个hat的一个东西,如果你把它的定义式写出来的话,它就会变成下面这个样子,对吧啊,上面这两个两个条件。

222种情况反映的是这个这两条这个直线,其他的结果就直接取零了对吧,那么如果定义了这样一个奇函数的时候,我们有一个怎么样的性质呢,我们发现比如说xi和xi减一的中间这一段直线,对吧,他写成这个样子。

他其实可以写成这个奇函数,与Y的一个线性组合的形式对吧,也就是说前面Y的前YI,前面这个系数,其实它对应的就是bi这个奇函数,在X处的一个值对吧,为什么其实也很明显,在这个xi的时候,这个基函数取一。

在XII加一的时候,这个奇函数取零,它中间是一个线性变化的对吧,那它的作用其实也就是刚才介绍的一减T,然后呢bi加一是XI加一这个点的奇函数,在X这个点取零,在XI加一这个点取一。

它中间是个线性变化的结果,所以它就是T,所以上面这个结果其实可以写成,下面这个求和的形式,那进一步推广,其实所有点上的就是每一段时间内对吧,如果你用函数来写的话,用最开始的函数来写的话。

你可能写出来一个分段函数对吧,但是如果你用金函数来写的话,它就会有这样一个简单的一个形式,也就是说Y它等于所有的YI以及对应点上的,奇函数bi的一个求和,想想我把分段这个东西包含在这个基函数里了。

OK吧,那么写成这样一个形式呢,它其实是一个非常统一的形式,比如说我所有的差值结果,大部分不是所有所有吧,大部分的差值结果,我都可以把它理解成这个形式,唯一不同的就是每一个插值方法的出来。

这个奇函数是不一样的,对于线性插值来说,它长成这个样子,那对于二次差值来说,它可能长成二次,二次样条插值或者三次样条插值,它出来可能就是一个二次函数或者三次函数,是分段二次或者分段三次函数。

那么这个奇函数它一定会满足一个条件,就是这个BI在XJ这个地方的函数值,等于德塔IJ,只要它满足了这个条件,那么我的这个差值就是有效的,也就是说它能够满足,一定经过我的所有的采样点,为什么呢。

如果你把EIXJ等,DEIJ这个条件代入进去对吧,然后你去考虑,比如说我现在问你插值,结果在xi这个点上的值是多少,你把它带进去,然后BJXI就等于加上IJ,那YJ德尔塔IJ对于J求和。

结果就直接等于YI了,因为德尔塔J只会在I等于J的时候等于一,其他情况都是零,所以只要奇函数满足这样的一个一个性质,那么我就能保证使用这个基函数,定义的这个差值,它就是有效的。

那么它其他的性质其实也是通过奇函数,比如说连续性的要求,然后局部性的要求,也可以通过这个通过这个这个什么东西,这个奇函数来看出来一部分,比如说我们可以把这个多项式插值,就是个拉格朗日多项式插值。

它的奇函数给它画出来,那么它的奇函数其实已经写成了,这个Y等于YJLJ的这个形式对吧,也就是这个YJ乘以拉格朗日多项式的形式,所以这个拉格朗日多项式,它其实就是一个奇函数对吧。

然后对于比如说图中现在有四个点,那么这个拉格朗多项式,它就是一个三阶的多项式,如果把每个点上的减函数画出来,他就是右边这个结果对吧,蓝色这条曲线就是对应这第一个点的,这个奇函数,你会发现这个这个G啊。

这个奇函数它在只有在X等于一的时候,它取到一,在后面的245这三个点这三个采样点上对吧,这边也是245,这三个采样点上它的值都是零,对吧,对于basis2,也就是L2这个拉杆多项式来说。

他只有在X等于二的时候,他取到了一,然后在X等于一,X等于四,X等于五的时候,他取的都是零,那以此类推,所以说拉格朗日多项式,它是满足这个奇函数的要求,那你用拉格朗日多项式定义出来的差值,它也就满足啊。

我们刚才说的这个差值的要求,然后并且由拉格朗日多项式,它是一个三阶的多项式,所以你最后的差值结果也是三阶的多项式,它就能满足这个拉格多项式的这个呃,呃满足这个查的结果是一个CR连续的一个结果。

OK这个是拉格朗日多项式插值结果,那我们还可以再看,比如说三阶样条插值的基函数,这个是三阶样式,不是三阶2米样,那他这个基函数其实是我通过解方程得到的,对吧,就我去解方程。

然后再去把它这个系数给他解出来,这个系数画出来,它会画出来是这个样子对吧,你会看到这个结果,他跟刚才拉格多少是那个结果还是比较接近的,为什么呢,因为他们俩其实我刚才都说,因为你正好四个点对吧。

所以拉格朗日多项式的啊,差的结果他也是这个三阶多项式啊,这个地方也是三阶多项式对,所以它看起来比较像,然后并且呢,这个地方也满足我们刚才提到的这个,差值的要求,差值的要求只有蓝色线。

只有在这个X等于一的时候,他去到一或其他都是零,然后我们再看三阶恶米样条差值,它的结果就会有点不一样了对吧,这个差值结果也不一样了,那还不一样,在什么地方呢,你就会看到这个三阶2米1样条差值。

比如说我们看这个蓝色的线对吧,在前面两段,在这个X1X等于一到X2,这一段它是一个曲线,在X2等于X4这一段它也是一条曲线,但是呢在4~5这一段它是平的对吧,它值是零,这个是刚才不一样的地方。

然后你再看,比如说这条红色的线,它在1~2这个区间内,它也取的是零,那么这个东西它其实就是局部性的体现,为什么呢,就是我如果把这个采样点给它取得更多一点,比如说我要对很多点很多的点差值。

然后我去画质每个点的啊奇函数出来,你就会发现这些奇函数都会是长成,左边这个这样一个函数,所有的样子就是它只有中间这一段,在这个中心点附近的一个小区间里面,它是一个分段的多项式函数。

然后在这个区间之外它都是零,这个就是它局部性的体现,那么自然因为你有这样一个性质,所以我只改变这个点上的值的时候,它是不会影响到其他地方的值的,因为你在其他地方的系数都是零对吧,这个就是它局部性的体现。

然后并且三阶二比差值,是它的一个好的性质是什么,就是如果当我excel是等间隔取的,如果就是01234,这样来取一些这个采样点,然后你已使用三阶2米样条插值来进行,插值的话。

他这些basis function它的形状都是一样的,唯一的区别就是给它平移了一下,那这个性质就会在很多事情上对我们有帮助,比如说我们要做模拟,我们要做模拟,那你有可能比如说啊对于一个均匀网格。

你可以使用这样三阶恶样差值,作为我的这个shape function作为形函数,来描述这个弹性体的形变,那这个时候你可以做出来一个方法,它对应的就是这个三阶恶米有限元的方法,对这个东西如果感兴趣的话。

可以大家可以看啊,games有更高级的课程,包括像这个games103的啊物理模拟,然后以及我记得还有一门课,专门讲这个等几何分析的,就是games里面有一门专门讲登记和分析的课程。

然后那个课程里面也会涉及到,这节课里面讲到这个啊恶意样条的内容,大家如果有兴趣的话,也可以进一步去学习这个课程,OK然后我这里再给大家推荐一个一个资料,就是一个在油管上的一个一个一个视频。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后这个视频应该是有B站的搬运的,我记得我之前看过B站的搬运,然后呃这个视频我觉得讲的非常的好,就是是我学习这个,这不只是我们今天介绍的差值,然后包括像图形学里面的曲线。

其实都是一个非常好的一个一个可视化的教程,因为它的可视化做的非常的棒,就是所有结果都很直观,然后公式很少,但是能让你这个有很直观的理解,所以大家如果对这方面感兴趣。

因为这个方向其实是一个依然active的一个graphics,的一个研究研究内容,所以大家如果对这东西感兴趣的话,可以去再学习这个进步的课程,可以仔细看看这个视频,对我看有同学说看到过。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

确实我觉得讲的很好,嗯OK我们前面介绍的所有的差值,都局限在就是这个一维的情况,就是我给你一些X上的一些三破点,然后呃,然后去找这个呃Y的对应的这个差值函数对吧,那么在图形学里面。

当然这是一个最简单的情况,我们还有可能碰到像曲线差值,就是我插值出来的其实不是一个函数,而是一条曲线对吧,或者多项式插值,就是我的这个X它就不是一个低位的东西,不是一维的东西,它是高维的东西。

好像像素差值,那这个时候X就是一个均匀的网格,然后点云差值,我插的这些点它是一个空间中分布的杂乱的点,那么这个时候我应该怎么办呢,我们一个来看大家看一下,首先来看曲线差值,曲线插值问题是什么呢。

是说我有呃,我有很多个点,然后这些点散落在方舟的空间中,所以我给定一个顺序对吧,从P0到PN,然后你要插值一条曲线出来,经过图中的所有点,然后呢,这个时候他跟刚才我们最开始我们介绍的差距,有什么区别呢。

就是之前的话是我们是定义的函数,对函数的话就是一个X只能给一个Y,但这个图片很明显看到一个X可以对应多个Y,那么这个时候我应该怎么办呢,其实解法也很简单,就是我去定义一个参数T。

这个T呢从美在每一段区间里面,它是从0~1线性变化的,然后这个时候我的差值就不再是给定一个X,输出一个Y了,而是我给你一个T,你给我输出一个二维的XY对吧,那这个怎么做呢,其实我们可以直接推广。

前面介绍这个三阶恶米样条差值,他就会得到一个很好的一个差值的结果,具体推广方法是什么,就是我把这个之前的所有这个地方,本来应该是Y0,然后这个地方本来应该是M0,它都是一个标量对吧。

我现在把它都改成矢量G0,就是这个区间端点开始的这个点的XY,这个矢量,其一呢就是区间末尾的端点的矢量,M0和M1呢就是这两个地方的切线对吧,切线也是一个矢量对吧,因为我是在一个二维的平面里面。

然后呢他们做线性组合,线性组合的这个系数,依然是这个我们之前定义的这个欧米奇函数,三阶欧米奇函数,那这个时候我就能保证这条曲线满足,我们之前讲的这个三阶恶米差值的,所有好的性质对吧,它有局部性。

然后并且它的一阶导数是连续的,并且它是一条差值曲线,就是说它经过了我所有的控制点对吧,包括大家如果就是用POWERPOINT来做做这个size对吧,那你一定会接触到这个曲线工具。

那这个曲线power point里面,这个曲线工具,其实也就是三阶2米1样条曲线对吧,你可以在pp里面打开这个界面,去编辑每个顶点上的这个呃这个它的切线,它的位置,然后关于这个大家也是有兴趣的。

开始可以进一步学习这个games102的内容,然后注意有一个地方,就是我们刚才呃,就是图形学里面介绍的这个用到的曲线,它其实不一定是要是差值的,但是我们今天讲的内容,其实是限制在差值这个范围里的。

举个例子,就比如说以下这个曲线,大家应该就是有了解对吧,就是这个曲线就是一条贝塞尔曲线,它很光滑,但是它很明显的是没有经过所有的控制点的,但是呢我们今天讲差值,所有的这个曲线它是一定要经过这个控制点的。

要不然的话它就不叫差值了对吧,那么满足这些差值条件的曲线,在同学里有个专门的名字叫差值曲线,比如说像这条贝塞尔曲线,它就不是差值曲线,然后关于曲线的部分,这就是几何里面的知识了。

大家可以去学习games102对吧,我们今天这个讲差,只是给大家打下一个数学基础,那好我们搞完了这个曲线差值,我们再看这个三角形差值或者多边形差值,对于一个三角形来说的话。

我们要怎么在这个三角形里面来做差值呢,对吧,如果大家学习这个games101的话,就应该知道有个东西叫重心坐标,怎么定义的呢,就是对于这个三角形里面任意一个点,我可以求出三个权重出来,阿尔法贝塔和伽马。

阿尔法定义为A点,这个点相对的这个三角形的面积,除以整个三角形的总面积,然后贝塔定义为B点,这个点对应的这个三角,相对的这个三角形的面积除以总面积,和伽马也一样的,那么这阿尔法贝塔定义出来的话。

阿尔法加贝塔加伽马等于一,就是一个很显然的东西对吧,因为你三个三角形的面积加一等于总面积,然后并且呢有一个很好的性质是什么,是说比如说我们只看阿尔法,如果这个点他在A点上的话。

那么与A相对的这个三角形AA的这个面积,它应该就是整个三角形的面积对吧,所以阿尔法等于一,然后贝塔伽马,这个时候他就会退化成AC和ab的两条直线,所以它的面积是零,所以如果这个点在A点的时候,它取一。

在B点和C点它就取零对吧,这个其实也就是我们刚才介绍这个差值的,所以要满足的这个性质对吧,对贝塔和伽马是一样的,所以如果你使用这个重心坐标的话,我就可以定义三个权重出来。

然后这三个权重就可以把它分别作为ABC,三个点这个数值的一个前面的这个系数,然后同时呢重心坐标它还有一个好的性质,就是我们可以用奇函数的方式去理解它对吧,我可以认为阿尔法是一个关于这个点的。

一个位置的一个函数,然后我把阿尔法单独拿出来,这个阿尔法其实也就是我们刚才定义的这个,奇函数在这个三角形里面的这一部分对吧,那我们把比如说对于NI右边这个图里面,对于这个点来说,把他的在每个三角形里面。

周围每个三角形里面对应的阿尔法都求出来,然后给它画出来,然后给它拼接起来,那么这个东西就是对应的它的奇函数了,这个奇函数长成什么样子呢,它会长成也是一个had function的一个形式。

就是他在这个点对应的这个点上取一,在周围的锁点上取零,然后在更远的地方它当然是零对吧,所以他跟我们刚才讲的这个线性差值的,这个奇函数其实是非常像的,它也是一个线性的一个奇函数,分段线性的奇函数。

那么这个函数它也说也叫这个HIFUNCTION,那么这个东西对于这个大家不管是做模拟也好,还是做几何也好,还是做渲染也好,都是一个有可能碰到的一个东西,那如果我们把问题进一步扩大,变成一个多边形呢。

对多边形我们同样能定义出来,跟刚才一样的中心坐标吗,那这个时候就比较困难了,那么对于多边形差距来说的话,就可以定义另外一个东西叫均值坐标,他和这个呃重心坐标有一些区别,但是它依然满足一个很重要的性质。

就这个均值坐标,比如说第一个图里面画的这个金额均值坐标,它的分布对应的就是这个顶点,它的一个权重的分布,你会发现这个权重在他这个点取到最大值,也就是一在其他的所有点上去的都是零,所以他也满足这个啊。

满足这个差值条件,那关于均值坐标明VALORDINATE到底该怎么做,这个就我们这里不细讲,大家如果有兴趣或者有这个需求的话,就可以自己去了解这个概念,但它基本上可以认为它是一个三角形里面的。

重心坐标的一个推广,那对于像素差值呢,这个问题就会更直观一点对吧,像素它就是网格,网格的话,其实你完全可以看出他是这个两个方向的,一维的推广对吧,那么一维的线性差值在像素里面。

在网格里面就会称之为这个BINATION,也就是在XY两个方向上,都会进行这个啊线性插值,然后如果你在一维上是一个by cube,在是一位上是一个三阶的差值,不管你是三阶样条也好,还是三阶恶比样条也好。

在这地方都会在网格上,都会变成对应的一个by cubic的差值,一般来说用的都是这个双三四的2米差值,好吧,那这个结果其实在games101里面也会讲到,在讲到纹理映射那一章的时候呢是吧。

有这样一个结果就是你使用啊最临近差值,然后线性差值以及by cubic差值去啊,插值一个相同的图片,你会得到不同的这个插值结果对吧,然后它里面比如说呃就是在101里面。

就是杨老师可能主要介绍这个百灵验的差值,对吧,那关于百Q百Q币差值,其实也就是我们今天介绍的内容,就是这个双三四的2米样头,它是OK吧行那我最后来看一下点云差值,点云差值是一个什么样的问题呢。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是假设我有空间中分布的一堆散乱的点,然后每个点上都有一个函数值,然后我希望得到这个函数值,在整个空间内的差值结果,那么它依赖的这个核心的概念,叫这个镜像积函数。

radio basis function r b f或者也叫kernel function核函数,它定义成什么样子,就是这个fine这个函数的样子,这个F这个函数呢它只跟X减去X的模长有关。

也就是说它只跟你寻求的这个呃,你你要求值的这个点X和目标点xi和和,和这个采样点xi既然这个距离有关,所以呢它会是这样一个对称的一个结果,那么我们有很多的这个和函数的,或者镜像阶函数的定义方法。

比如说常见的有这种高斯和,也有拉普拉斯和二次有离合,它们都有一个特点,就是你取R等于零的时候还是取一的,然后R起到很远的时候,R取到无穷的时候,它是零对吧,所以它也是一个我们刚才定的这个差值的要求。

的一个体现,我喜欢,那么有了这样一个核函数的定义之后,我们要去怎么做典型差值呢,那我们就是把这个F我们带他指的这个函数,写成YI与这个子函数的呃一个求和的结果,但是呢,采样点是唯一的还是采样点,有很多。

采样点有很多X每个xi都是我的一个采样点,然后我要这个X减去,对不对,然后我要得X平方值对吧,那我要注意前面这个地方的YI,它其实并不是xi这个点上的给in的函数值,这个YI其实是我设定的。

我待定的一个未知数,然后我是通过其实是通过求这个YI去满,让这个差值的结果满足插值条件,也就是说在xi这个地方,如果你把X带进去,我要求你后面这个结果喂给我的时候。

他得到的是xi这个点上真实的采样的值FI,但是Y是我需要去解的一个东西对吧,那么我一共有多少个未知数呢,就是我有多少个采样点,就多少个未知数对吧,那一共有多少个方程的一样,我N个采样点的话。

每个采样点它要满足差,都要满足差值条件,所以一共是N个方程,N个未知数,所以对应下面这样一个方程出来,然后这个方程呢它是一个N乘N的对称矩阵,方程N是顶点个数,我只要把这个方程解出来。

我就可以得到每一个和函数前面的这个系数,然后最后得到这个函数形式,它就是一个满足插值条件的一个结果对吧,比如说我们可以看一下这个结果,在空间中,在二维平面上有很多的这些散乱的点。

每个点上都有一个对应的函数值FXY对吧,然后啊,然后呢我最后都要得到一个一个最后的差值,结果,它就是图中的这条啊,这也不是这个这个曲面,它经过了所有的采样点对吧,一个光滑曲面经过所有采样点,F是什么。

F2就是这个图里面画的这个这个纵坐标,就是我们每一个采样点,它上面都有一个函数值,这个数值可以是各种各样的东西,比如说啊这个点的颜色呀,法相啊或者什么之类的东西,OK吧这是点云差值。

那么需要注意的地方是,我们这地方给出来这个点云差值的算法,它是要需要解方程的对吧,因为我们需要这个插值结果满足插值条件,但是和函数呢显然他是不自动满足插值条件的,我只能保证它在无穷远的时候是零。

但是我不能保证它在其他的采样点上也是零,对吧,所以我一定需要解方程来适当满足插值条件,但是呢有的时候呃,就比如说一些论文里或者算法里,它也会称另外一个东西为差值,但这个差值其实不并不满足插值条件。

也就是不满足FI等于FJFI这个差值条件,取而代之呢他是直接给出这样的一个结果,就是唯一的区别跟刚才唯一的区别,就是刚才这个地方是YIYI是我要解的,现在呢它是FIFI是就是xi这个简称的函数值,对吧。

那自然这个时候你是不满足FI等于FXI,等于FI这个差值条件的,也就是说它不经过我所有的采样点,但是呢我可以假定另外一个条件就是满足,假设这个核函数是满足规划的,就是这个和函数在全空间的这个积分是一。

那这个时候他就是另外一个setting,就是你可以想象成xi上面对应的函数值,FI本来在离散情况下只是分布在我这个点上,但是呢我现在通过这样一种较差值的方法,把它均匀地分布在,不是把它分布到了空间里。

然后呢,每一个分布FI对应的这个分布就是呃,xi这个点上对应的这个核函数,F由于这个核函数是归一化的,所以相当于是我就把这一个点上的值给它,撒到这个空间里,但是呢这个结果这个值呢它整体来说。

整体来说是集中在X这个点附近的,OK了,所以这个东西有的时候也会叫它定义差值,但是它其实不满足差值条件,你们可以举几个例子,比如说像这个SPH流体,光滑粒子动力学流体里面,那他使用了这个表达密度长。

以及这个压枪厂差的一比较,表达密度场的方法,就是使用这样一个方法,然后再比如说最近的这个thirty glitting对吧,所以后面这个函数FI这个函数呢,它就是一个一个高斯函数对吧。

然后FI是可以是每个点的颜色呀,然后这个阿尔法不透明度啊什么之类的东西,OK所以这个只是一个给大家区分一下,有的时候这些东西也叫差值,但是它跟我们这节课的差值是两个东西,OK到差值我们就讲到这里。

大家有什么问题吗,没有的话,我们就接着讲礼盒了,那你和跟刚才刚才最开始的时候,已经已经说过了哦,有问题,这个积分方程组是怎么求解啊,这个不是积分方程组,这个是这个是线性方程组哦,你说这个积分吗。

这个积分啊,这个积分我我我我可能方程写的有问题啊,不好意思,就是这个前面要乘一个系数,其实是通过调整那个前面那个系数,然后满足它,过一会就是你把这个函数,把这个five这个函数积一遍,得到一个值。

然后把那个值乘到分母上去,不好意思,这个PC5之后改一下哦,谢谢这个提问嗯,行那我们继续啊,你和的话它跟差值的区别在什么地方呢,就是它不需要经过控制点对吧,然后并且呢。

一般来说你和我是希望我是已经知道了,这个函数它大概会满足什么样的规律对吧,在图上画的就是我大概知道这些曲线,这些点它应该是遵从这个一个直线的分布的,我只不过呢,是需要通过去寻找最佳的这个参数啊。

寻找这个一个最佳的参数,来最小化这条直线跟其他点的这个误差,这是一个拟合的过程,所以前面一部分是你对整个分布的一个先验,后面部分是一个优化的一个过程,那关于拟合的话。

大家最熟悉的应该就是这个最小二乘法了对吧,就是这个应该是高中也学到的一个东西,然后呢关于最小二乘法,其实是我们可以有一个更更general的定义,就是我们在认为这个数据的先验分布的时候。

其实我们不不局限于这个数据,它是一条啊,呃线性直线的分布就是Y跟X是一个一次函数,我们也可以认为这个Y跟X是个二次函数,看你的具体情况也可以认为甚至更复杂,比如说这里没有根号X的情况。

但是有一个要求就是我待定了这些未知数,就这些参数,它是一定要是一个一个一个线性的,一个一个状态,也就是说,我最后是可以写成后面这个矩阵相乘的形式的,然后这个矩阵相乘前面都是确定的东西。

都是已经确定的函数,没有任何的未知数,然后我所有未知数都放到最后面,A0A1A二这些东西都是一个放到后面,也就是说所有的这个呃最小二乘法能解的,这些数据分布都是这个呃,最后这个函数Y它的系数啊。

它是关于系数的一个线性组合,你发现这些我给出来这三个例子,确实是都满足这个假设的,其中就包含了大家最常见的这个线性函数,一次函数,不好意思,那么也可以写出下面这样一个,更通用的一个形式。

就是啊就是呃后面这个矩阵的一个样子,A0到AK减一是K和我待定的未知数,前面G0到GK减一是K个方程,K个关于X的函数,然后这个G都是我知道它的具体形式,里面没有任何未知数对吧,最后写成就是一个GTX。

然后再乘以A,既是一个G和A都是一个K尾的列向量,好吧,这个是最大二乘法要求的这个数据分布,我呃我假定这个先验的一个一个通用的形式,那下面的问题就是说,我假定的数据是满足这样的一个先验。

那么我们怎么去最小化某个东西,得到这个最优的参数A的,对吧,那最小二乘法选择的这个优化目标,就是我带入我所有的这个参数采样点excel,然后我去看了我这个拟合出来,这个结果和我实际的结果YI。

别按这个差距的平方,然后给它加和,反映在图中就是这些啊,每一条小的这个数的线段,把它平方,然后再加和,那么这样一个优化问题,我们可以用矩阵把它写出来,就是如果定一个更大的矩阵,即。

这个记得每一行对应的是啊,对的是这个这要怎么描述呢,就是,每一行对应一个采样点对吧,第一行都是X0,第二行都是X1,第三第N行都是XN,然后每一列对应,我们刚才展示的那些某个函数对吧,比如说X根号X。

然后X的平方是我们定义这样一个G,然后呢,Y的话就是把所有这个采样点的函数值,Y给它叠在一起,那么这样一个写成求和形式的一个优化目标,它就可以写成简单的一个矩阵的一个形式,就这样一个求和。

可以变成这个Y这个向量减去G乘以A,然后再给他求平方,求这个向量的模长,OK这个可以大家回去验证一下,这个应该也不难验证对吧,你只要把它后面这个东西把它拆开之后,他应该对应出来就是左边这个东西。

然后我要去优化这样一个目标,就是优化这样一个一个结果,它其实就是我们上节课在介绍这个SVD与PCA,的时候里面提到的这个矩阵啊,这个矩阵方程列满制的情况,但是但是行数大于列数的。

这个超定矩阵方程的情况对吧,在上节课的时候,我们介绍了说,如果你这个矩阵方程式超定的,那么你最后转换出来的这样一个最小二乘解,就是长成这个样子的一个优化目标对吧,那么关于这个优化目标的解。

其实我们已经知道了对吧,他就是写成下面这样一个矩阵的一个左逆,OK了,所以说矩阵的尾逆或者说矩阵左逆,它是跟这个最小二乘法密切相关的对吧,你可以把那个结果直接拿过来。

然后就可以得到这个最优参数A的表达式了,对吧,那这个结果也就是我们最终想要的这个,这是最小二乘法,得到了这个参数的结果对,就是你先把这个G通过这一通给他代入,得出来一个G矩阵。

然后求一下G转置乘以G的逆,再乘以G转置,然后再求后面再乘一个YY向量,Y是所有的采样点上的值,就可以得到这个最优参数A,然后你再把A带回去,你就可以得到这个啊,最后这个拟合函数。

比如算法流程这样给出来,我先代入一通,然后得到G和Y,然后呢去解一个加了方程,然后再把它乘回去,得到最后拟合的函数结果,那么这样一个流程,它不光适用于我们最开始介绍这个,比如说一减最简单的情况。

一个一次的一个呃,一个一维的一个结果,还可以适应更高位的情况对吧,一样只要把这个系矩阵构建出来,然后这个呃对,然后然后解一样的方程,然后你就可以得到这样一个,比如说我假定这个曲面应该是一个二次曲面吧。

然后你可以得到二次曲面的所有参数,OK这就是最小二乘法的一个整体的过程,在高中的时候可能是这个地方,比如说这个地方他会直接告诉你说这个啊,如果你用这个最好二乘法,去拟合一个一次函数的时候。

那么它的斜率和截距应该是多少,对啊,那个结果其实也就是把这个式子给它再展开对,如果大家有兴趣的话,你可以用这样一个矩阵相乘的结果,然后去推一推,看是不是跟高中的时候学到的,那个结果是等价的。

OK那讲完这个最小二乘法之后,我们再提一个大家可能不是特别熟悉的一个呃,一个拟合的方法叫移动最小2×4,这个东西在graphics里面在很多地方都会有用,然后他跟最小二乘的区别是什么呢,就是最小二乘法。

我是假定这个数据它在全局上,比如说是一次函数或者二次函数,但是移动最小二层呢,我只假设啊在局部里面,这个比如说在一个点的周围,它是一个一次函数或者二次函数或者三次函数,然后呢我只在局部的点上。

只是使用这个点附近的这些点做拟合,就比如说在这个图里面,我要求X等于0。5,这个地方的我的一个拟合的结果,我就只考虑X等于0。2,X等于啊,比如这个要负X等于-0。5,它周围的这些采样点,比如二啊。

比如说负101,这几个结果,这几个点就考虑这三个点,然后用这三个点来做拟合,得到这个地方的结果,得到这个地方的函数值,拟合的值,然后并且呢我使用的这些点它是有权重的,距离。

我当前这个点它远的采样点权重比小,距离近的权重权重都大,然后每当我需要一个点的拟合的值的时候,我都在这个点重新进行一次拟合,比如说我要在求X等于-0。5的时候,我再以-0。5为中心找它的附近的采样点。

然后做一个局部的拟合,不过我要知道这个函数值在0。75的时候,它的拟合值是多少,我在0。75的附近找它的附近的临近点,然后啊然后做拟合,比如说我每次求一个地方的函数值的时候,我都需要进行一次单独的拟合。

然后呢我只要这个不断的进行这个拟合,我最后就得到一个连续的一个对吧,就是布满整个坐标轴的一个曲线,在这个图里面就是对应这条蓝色的区别,OK吧,所以它非常好,它非常好的一点。

就是说他不再需要我对全局的数据都有这个啊,会有一个假设,我只要认为局部一般来说一个点周围的函数,它应该都是一些比较低阶的多项式对吧,就你局部在局部展开的话都会是什么,类似于这种二次三次的函数。

你就可以得到这个点局部的信息,但是我不用管其他所有点的信息,我们可以具体来看一看这个过程,假设我要在X这个点做拟合,然后呢我就去找他附近找N个点出来,对这个N呢可以是你给定的任意点啊,由X0到XN减一。

这N个采样点最上面每个点的函数值,我是知道的是F0到FN减一,然后呢我重新定义一个一个变量叫RI,它是采样点xi距离,我现在带球的这个点X之间的差,把它定义成和I那么我就认为在X的领域内。

这些数据满足的分布是长成下面这样一个,P阶多项式的分布,这个东西我直接写成矩阵形式对吧,大家应该能看出来,它就是A0加A1乘以R,然后一直加到等于加上AP乘以R的P次方,所以它是一个P阶的多项式。

只不过写成这样个矩阵的形式,一样可以写成P转置乘以A的形式,那么如果你有这样一个函数的一个假设的话,那么这个假设它呃,它跟之前跟刚才介绍这个最小二乘法,有些不一样的地方,就是如果你要知道。

你想知道X这个点的函数值到底是多少,你不应该把X带进去,你是直接应该把零带进去,为什么呢,因为我这个F这个多项式,它是一个关于相对点X偏移的一个函数,所以如果要知道想知道X这个点的值的话。

那我应该直接把R等于零带进去,那R等于零带进去,自然就是A0了,所以说如果我想知道X这个点的函数值的话,它自然就是A0对吧,然后并且那以此类推,那A1这个参数代表的含义是什么呢,它其实就是X点的斜率了。

对就是这个X点的切线方向了,它就是A1,对吧,因为你如果对F求导,然后再取X等于零这个点的值的话,那他就是A1了,然后并且呢如果你求二阶导,你得到的就是A2对吧,那这个A2就是跟X点这个点的曲率相关了。

所以这个F多项式呢,它的每一个参数都是有对应的物理含义呃,这个具体含义的A0就是这个地方,这个带球这个点的值,A1就是反映的这个切向信息,然后A2反应就是曲率信息对吧。

所以一般来说我们只要取到二阶就够了,因为一般来说曲率信息就是你想要的这个信息,其他高阶信息其实你不需要的,然后如果你是对高维的数据进行拟合,比如说R这个向量,R这个值它不再是一个单纯的标量。

它也是一个矢量对吧,这样断崖情形呢,就是我们啊刚才讲这个点云拟合的一个情形,我们将点云差值的情形就是我有很多的散点,然后每个散点上都有一个函数值F,然后我希望你呃,你和X这个点领域内的信息对吧。

那我就以X为中心,画一个半半径为一个某个值的一个圆出来,然后框住里面的所有点,就是我认为领域里面的点,然后并且呢我定义这里面的定义,每一个采样点XI,它与X之间的相差的这个矢量RI就是RI。

然后这个R是一个二十二二维矢量,那这个时候如果你要再进行移动,最小二乘差值的话,那么跟刚才这个形式有一点区别,你看刚才这个形式里面有这个,前面是关于R的一个多项式对吧,如果你是二阶的多项式的话。

那前面就应该只有1R和R的平方对吧,但是在这个地方,由于你的数据是二维的数据,那对于一阶的话,它就有三项了,那就是ERX和RY不是二阶的话,它就会里面有六项,就有1RXRY,然后RX的平方。

RX乘以YRY的平方,还会多出来这些混合项,好吧,后面乘的还是那个很长的系数,A0A1A2A3S对吧,那这个时候呢它也有跟刚才一样好的性质,就是X出的拟合值到底是多少,那你就把XR等于零带进去,带进去。

结果发现他就是A0,就是你的第一个参数,然后呢0X这个点它的梯度长成什么样子,因为这是二维吗,这时候就不是导数了,它就是梯度,它的梯度是什么呢,其实就是A1和A2,就是你的第二个和第三个两个参数。

组合在一起的这个向量就是X处的梯度,其中的A1对应的是RX,也就是X方向的梯度,A2对应的是RY就是Y方向的梯度,就是如果你有这个高阶的数据情况,这个情况非常常见,就比如说不过我要有一个空间中有个点云。

然后我会对点云进行这个移动最小二乘拟合,来获取局部的这个曲率信息的话,那你就可能需要这样的一个移动最小二乘的,一个差值的方式对吧,OK那我们还是回到这个比较简单的这个形式,就意味着这个情况。

在这个意味情况下,或者说我们不说一位情况,就是啊一个一般的情况,不好意思,就是一般的情况,这个R现在是一个向量,那么我怎么去定义这个最小化目标呢,这个最小化目标因为是最小二乘嘛。

移动最小二乘它也是最小二乘嘛,所以就一个化目标依然会是一个啊,它的平方求和的形式,如果有一点区别,就是我在每一项后面都成了一个权重WRI,这个WRI反映的就是爱这个采样点,我关心的程度。

如果I这个点距离我很远,而I很大的话,它的模长很大的话,那么W就应该小RI距离我很近,很很短,距离很近,RI很小的话,那这个应该很大对吧,这个就是这个权重权重的作用,那么这个权重他可以选什么呢。

他就可以选到我们之前介绍的这些和函数,这都可以用对吧,高斯和拉普拉斯和二次油离合,甚至其他的和你都可以拿过来用,它只是反映你的一个啊一个偏好的,一个一个一个权重对吧,它不影响啊。

不太影响最后的你这个差值的某些性质,权重需要归一化吗,嗯权重权重应该不需要规范化,需要规划吗,我想想好问题,权重应该不影响国际化,权重应该不影响国际化,因为我最划目标嘛就是这对吧,你如果权重没有规划。

大家都成了一个阿尔法的话,那这就是前面也乘一个阿尔法呗对吧,但它不影响他最后的优化结果,所以权重不需要规划,那好那对于这样一个优化目标,然后你要最小化它,那么你就直接对它求导,对A求导。

然后求他这个结果,那么这个求导就是一个,又是一个大家喜闻乐见的矩阵求导,不是这个我就不具体推了,大家有兴趣的话可以自己手推一下,就是你你看一下这个结果,应该是一个关于A的一个二次函数对吧。

所以就是一个我碰到过很多次,这个二参数的一个求导,那么它最后的结果可以写成,下面这个矩阵的形式,定义两个矩阵,定义一个矩阵叫M它写成这个样子,这个P就是我们前面定义的这个多项式,对吧。

然后这个N本身是一个多少维的矩阵呢,它是一个K乘KP乘P为矩阵,也不能说P乘P哦,说错了,不好意思,M的尾数是你未知数个数的位数啊,为数个数维度就是A都A的维度对吧。

如果你是在呃一维情况下做二阶的最小二栋,一栋一栋二层的话,那你就M就是三维的对吧,对应二次函数的三个三个参数,然后B1样的B是权重乘以FI,FI是我采样的这个点上的值。

然后P是这个对应的多项式那个向量对吧,所以定义M和B,那么最后出来这个A就是M的逆乘以B了,所以对于每一个点来说,我其实都需要我一旦想知道一个点上的信息,我都需要在这个点局部去建立。

这样一个矩阵方程并求解,然后解出来的这个A里面,就包含了这个点的函数值以及它的导数信息,如果你是二阶的话,会有曲率信息,所以这个就是最少1~2乘,它名字上跟最小二乘法关系很大,但它就出差值出来的。

这个结果,跟最小二乘出来的结果是可以完全不一样的,那好我们最后再讲一个东西,就是这个run的概念,FRANCC也是一个图形学中会用到的,一个插值的方法,然后它跟之前我们介绍的东西区别在哪呢。

它适用于某种情况,就是这个数据集中有大量噪声的情况,就是它有很明显的大量的outliers,有大量的这个你不希望的结果,但是呢他又有一些又有很多对的结果,它是满足你想要的这个分布的。

所以你应该做的呢是呃,把这些你想要的东西给它囊括进来,然后做拟合,然后但是那些不想要的噪声,其实你应该把它剔除掉的,应该是根本不考虑的,所以这个就是run act要处理的情况。

那么它对应的这个算法其实也很符合直觉,它具体是怎么做的呢,就是我首先从数据集里面选择随机选N个点,比如说我们考虑直线的话,我就随机选N个点,然后就拟合一条直线出来,然后我可以去啊。

把剩下的这个点分成两类,一类的我们叫内点,是距离这个直线很近的点,距离小于T的点,另外一类叫外点,然后你就去数这个内点的数量,如果内点数量大于等于某一个阈值D,比如说你觉得这个时候那点数量已经足够多了。

那你就这个时候你得到这条直线,就是你想要的这条直线,但是呢如果你的那点数量少的话,那说明你选一条直线,可能还没有踩在那个你想要的那个分布上,那这时候你就重新选择点,然后再做拟合。

然后再判断这个就是rs的一个基本的流程,但是关于里面的这些细节,比如说啊我到底应该选多少点呢,然后以及这个重新选点的时候,我应该按照什么样的策略选,那就有不同的这个方法了,对但是这样一个基本思想呢。

他都是都是都是基本这样一个思想,通过这种方法,你就能规避这个数据集里面有过多的这种呃,完全无关的噪声,但是只想只想只包含,只只选到那种你想要的这个噪声,你想要的这些数据伤害,然后这个算法呢。

在统计学里面应用也非常多对吧,在图像处理里面啊,尤其是图像处理里面有非常多的应用,OK那我们今天呢其实就讲到这里吧,就是关于插值和拟合的部分,就讲到这里,大家关于今天讲的还有什么问题吗。

然后关于这次作业的话,就是啊其实只有一道题,就是给大家就没必要搞那么大的压力,就是啊就希望大家推一下,就是其实我们这里面关于差值,最重要的就是这个啊三阶2米样条差值对,这个也是应用最广泛的。

就是给大家想大家推推一下,这个它的基函数的这个公式,这个东西也不难推,就是你只要理解了,这个今天讲的这部分内容的话,它就应该很自然就能给他写出来,OK那如果没有问题的话,那我们今天就这样了。

那我就直接下播了,作业二和作业三提交不了文件类型,多了个新号啊,这个就啊我我我我我我看一下行。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个我们会处理,OK那再没有问题的话,我就下播了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

GAMES001-图形学中的数学 - P7:傅里叶变换与球谐函数 - GAMES-Webinar - BV1MF4m1V7e3

看一下,OK现在是应该大家都能听到对。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后首先抱歉,那个上一周因为自己的一些个人原因,所以上日工上一周没能按时上车啊,我们这一周其实是本来预定上一周的计划,是给大家介绍这个普遍化的内容,然后后来啊仔细想了一下,这招可能名字再取再直接一点。

其实主要介绍就是两部分的内容,一部分是关于这个傅立叶变换的,还有一部分是关于这个求解函数的,然后这两部分内容其实关联还是比较紧密的,然后同时也是在啊图形学中应用非常广泛的,呃两个东西。

所以我们今天就一起一起来介绍这部分的内容,OK然后呃傅立叶变换可能稍微有一点呃有点难,就是大家如果之前完全没有接触过的话,可能理解起来稍微有点复杂,我尽可能的给大家讲的这个呃就是更直观一些。

就是把一些数学推导都给大家忽略掉,然后大家看一个推导过程,然后如果对细节感兴趣的话,可以啊,之后再再自己去研究,OK那我们就先来看这个傅立叶变换,那讲数列变换,我们先讲这个傅立叶展开,它是什么意思呢。

假如我们有一个周期函数,比如说这里画了一个方波对吧,就是在零到它周期为T,比如说在02分之T的时候它取一,然后在02分之T到T的之间取一个故意,然后这样一直的啊,这样这样重复下去。

那么这样一个呃周期周期函数,或者说叫周期信号,它其实可以展开成下列一系列的这种正弦,余弦函数的叠加对吧,比如说我们这里画了一堆的正弦函数,然后呢啊这这些正弦函数呢,它的周期或者它的频率是逐渐增加的对吧。

这个正弦函数,它的频率跟原来的周期函数是一样的,它也是T分之一,然后呢后面这个正弦函数,它是这个频率是上一个的三倍,然后这个正弦函数T分之五,它频率是5/7,就是圆周原来的这个频率的五倍。

所以它都是一种倍频的关系,那么如果我把这样一系列正弦函数,都给它加起来,那么其实呢啊会存在某些呃一种这个正弦函数,它这个权重的,或者说他这个振幅的这个选择的一个方式,能够让这些正弦函数加起来。

能够恢复出最开始的这个方波的信号,我们可以从下面这张图来看,就是最开始的时候有一个红色的纯的正弦,正弦的一个一个函数,然后我在上面再加一些小的这个一个,一个平均之前三倍的一个正确来说。

他可能对应的就是根黄色的线,可能看的不是很清楚对,反正是一张黄褐色黄色的线,然后呢我再往里面加一些频率的部分呢,它就会变成这个绿色的线,然后我一直在往上加,比如说一直加到后面什么七倍频。

九倍平之后一直往下加,那么最后呢这个这一堆正弦函数的相加的结果,就会跟这个呃方波信号非常的接近,那么从这样一个方波信号,变成这一系列正弦或者余弦函数的这个加合的,这个过程就是傅立叶展开的过程对吧。

那我们就可以干点什么事呢,我可以把啊这一系列正弦函数或者余弦函数,它的这个振幅把它作为一个频率的啊函数,这个图画出来就会变成右边这个样子对吧,因为这个样子里面,横轴是我这些不同的正弦函数或者余弦函数。

它的这个频率,纵轴是它对应的这个振幅,那么随着频率增加,这些正弦函数呢,而且三角函数它的振幅是会下降的,然后右边这个图,如果你把对应的每一个啊频率,对应的振幅的这些三角函数给它加起来。

它就能够变成原来的这个原函数,所以这个过程就是这个傅立叶展开的过程,那么写成公式的话,它就会是这样一个样子,就是FT就是我们刚展示的,比如说那个方波的一个信号,它是一个周期函数,它的周期是T。

它可以写成后面这一系列,余弦函数和正弦函数的叠加,然后每一个函数前面它都会有一个系数,余弦函数前面是AN正确函数,前面是BN,AN和BN,可以通过下面这两个式子来给他求出来,这个式子我们就呃不正了。

就直接给给给大家,就是告诉大家说,如果你把这个后面这个积分求出来,那么求出来这个对应的系数,就是这个啊这个对应的三角函数,前面的这个系数对吧,然后呢,在这个VKPD上。

也有这样一个非常直观的一个动图来给大家看,就是假设我有跟这个红色这个周期信号,它其实是可以展开成一系列的,这些蓝色的正正弦函数或余弦函数,把它叠加起来,然后如果我把这一堆的啊三角函数。

它的这个频率和振幅的关系写出来的话,那么最后画出来,最后得到这个东西,就是我的傅立叶展开的这个结果,好吧,这就是复利展开,可能大家已经啊之前有接触到过,那么这个傅立叶展开呢,它也可以写成一个指数形式。

写成什么样的指数形式呢,就是啊,我们知道三角函数和这个啊E的IC塔之间,它们是有这样一个一个关系对吧,这是欧拉公式对E的ICA次方,A是这个虚数系数单位E的X次方等于cos theta。

加上A乘以sin theta,那么利用这个关系,我就可以把cos theta和3C塔写成,只包含E的C塔和E的负C塔,这两个指数的部分啊,这两个指数的组合对吧,就在这个地方,那我就可以把这两个式子。

把这两关系带入到上面的这个傅立叶展开式中,把它代入上代入上去,那么上面呢就会呃,就会出现一堆的这个E的C和E的E的IN,欧米伽T和E的负N欧米伽T对吧,那我就可以把它重新组合一下。

然后把E的ION欧米伽T提出来,和E的负I欧米伽T提出来,然后呢再给它写到一起,那就可以写成下面这个样子,左边这个样子FT它其实可以直接写成啊,不同的频率的这个E的IN,欧米伽T这样一个指数形式的加和。

然后这个指数形式,注意这里的N它是从负无穷取到正无穷对吧,因为我这个cos西塔和SA里面,同时有这个E的C塔的正整数和E的负X塔,这样的负指数,这个式子下面这个式子跟上面这个式子呢,它是啊。

我只不过做了一个变量替换对吧,我只是换了个形式而已,那同时呢这个指数形式前面的这个系数CN,它也会对应有一个更为简洁的一个呃,一个积分的形式,就是这个CN到底是怎么求出来的,它可以写成后面这个样子。

那这个时候对这里的CN它就不再是一个实数了,它是它就是一个复数了,并且呢它还有一个很好的性质,就是这个CN的实数部分,其实对应的是这个AN的部分,也就是cos西塔前面的这个指数。

然后它的复数部分或者虚数部分对应的是sin,西塔前面指数BN对吧,那么这个式子他是换了一种这个指数形式的,这个傅立叶展开式,它所反映的这个啊,这个本质的东西,还是没有脱离我们刚才给大家看的这个啊。

写成不同的三角函数求和的这个形式好吧,那么这样一个过程就是把一个周期函数展开成,很多个三角函数求和的这样一个过程对吧,它只适用于周期函数,那么如果我们要处理一般的函数FT的话。

那么我们可以认为一般的函数FT,它其实是一个周期为正无穷的周期函数对吧,他也是周期函数,只不过他的T是趋向了正无穷,那么我们是不是可以通过啊去泛化上面的式子,来得到一个一般函数的这个数列展开的形式呢。

那我们就可以观察观察一个地方,就是啊左边这个式子它是一个对于N的求和,而这个N和omega是乘在一起的,然后这个omega又是一个二派除以T对吧,它是一个关于T跟T是一个成反比的一个量。

那么如果你T趋向于正无穷的话,那欧米伽此时就会是一个无穷小对吧,那么这样一个无穷小针对无穷小量的求和,那如果大家就是对吧,我们学过微积分,那就可以观察得到说看比如说看下面这个式子,如果我要去乘啊。

需要去对一个N乘以,德尔塔X这样一个东西求和,然后德尔塔X是一个无穷小,然后N取到负无穷到正无穷,那么这个式子它其实等价于直接对FX进行积分,对吧,把很多个很多个无穷小进行求和,他最终得得到的结果。

其实就是对FX进行一个积分,所以在这个地方,这个求和其实在T趋向于正无穷之后呢,它就会变成一个积分的形式,并且呢它的上下限就会变成负无穷,也就会变成直接是负无穷和正无穷,所以我们对于非周期函数。

或者说一般函数,其实是可以通过这种啊去拓展周期函数的形式,把它变成啊我们能够处理的形式,那么这样得到的结果,这里也是直接给大家给出这个形式来,就是FT它会等于一个积分的形式。

那这个时候CN它就不再是一个数列,而是一个函数,我们可以把它写成是一个欧米伽的函数啊,注意这个地方这个欧米伽,下面这个欧米伽和上面这个欧米伽啊,这个是当时每每做P的时候没写好,就是他们俩是不一样的东西。

上面这个就是二派除以T,它是一个它是一个有些认为是常数二派除以T,但是底下我们应该是一个变量,OK这个这个是当时没注意到,不好意思啊,所以f ma对的就是CN对吧,那么CN右边这个积分是在欧米伽。

在T趋向正无穷之后,它也会有一个对应的一个极限的形式,它要变成二派分之一,然后后面这个积分的样子,那么最终得到了这个式子,FT和rf omega它们之间的关系,这两这222个等式反映的就是傅立叶变换。

我们可以从这个图里看出来,就是如果我有一个非周期的函数对吧,我这个周期啊,这个非周期函数呢,就是在二分之T到二分之T之间,取一个常数值A然后在其他所有地方都取零,这样一个非周期函数。

如果你把它啊对应的这个复列变换的结果,f ea给它画出来的话,它就会变成右边这个结果,然后右边这个结果呢它也是一个关于欧米伽,一个连续函数对吧,欧米伽其实就是我们刚才介绍的啊,这个不同的正弦函数。

余弦函数的这个频率对吧,只不过之前对于周期函数而言,你做的是傅立叶展开,它的这些频率值是离散的,但是在这个地方,因为你是一个非周期的函数,那么这个平均值它就是连续的。

所以大f ea之间得到是个连续的关系,OK这就是一个关于傅立叶变换的一个,基础的介绍呃,这个大家,大家有问题吗,奇函数是不是一定要跟我们家T,啊对傅立叶展开呢,它是一个它是一个把函数写成三角函数的。

一个展开的形式,所谓三角函数就是cos c大后和这个呃,呃sin theta,然后如果你把它写成指数形式之后,那么他得到的就是这个在这里对吧,写成指数形式之后得到的就是EIEICA。

所以呢它的奇函数就是EC塔,关于奇函数我们待会后面也会介绍,Ok,如果大家对于前面这部分,听得有些云里雾里的话,其实呃我们只要抓一个主干,就是首先是对于一个周期函数呃,周期为T的一个函数。

它可以写成一系列的三角函数的求和,然后这些三角函数呢,它的频率是原来这个函数的这个周期函数,频率的整倍数,那么它写成公式对应的就是这个图里的样子,一个周期函数FG,它可以写成一系列的这个正弦函数和。

余弦函数的求和,然后这些正弦函数,余弦函数的频率是原来这个呃周期函数的,它的频率的整倍数,所以是N乘以一个欧米伽,欧米伽等于二派除以T,也就是原来的这个周呃周期函数的它的频率,这是傅立叶展开。

那么傅立叶变换相对于傅立叶展开,唯一做的东西就是我假设对于一般的函数而言,它不是周期函数,但我可以认为它是周期为正,无穷的一个周期函数,所以我只需要对上面这个傅立叶展开的形式,再取一个极限。

我就可以得到一个呃,一个这个对于一般的函数而言,它的傅立叶展开,也就是傅立叶变换的这个结果,那么由于你啊假设了,原来这个函数F它是一个周期为正无穷的,一个周期为正无穷的一个一个周期函数。

那么也就是对应它的频率啊,F啊他自己的频率是一个无穷小,那么此时啊你对一个无穷小求这个整倍数的话,那么它的这个频率就会是一个,连续分布的一个结果,OK这就是关于傅立叶变换的一个基础介绍。

OK那么有了这个傅立叶变换的这个公式之后,那我们下面就来看一看这个傅立叶变换,它本质上反映的到底是一个什么样的东西,傅立叶变换,通过这样一个已对式子,然后告诉我们说。

FT它可以写成后面这样一个积分的一个结果,然后这个积分的结果,它是一个F大F欧米伽乘以E的I,欧米伽T的相乘积分的形式,然后后面E的IMIT,其实也就是一个三角函数对吧,前面f ea大。

f ea是对应三角函数前面的这个权重,那么FW在某种程度上,它是跟F是一个等价的存在,他们FW和FT描述的都是同一个函数,只不过他们呃使用的,我们可以认为使用的鸡是不一样的,这个具体是什么意思呢。

就是说,福利变换,他其实提供了另外一个去理解,原来函数FT的一个空间,这个空间称为频域FW,也就是对应在频域里的函数,如果我们用线性代数的思想去理解它对吧,我们先不看这个式子,我们先看右边的式子。

假设我们有任意一个向量X,我是可以把这个向量展开在一组机上对吧,比如说最常见的大家应该知道就是这个EI,我可以选择是这个笛卡尔坐标的啊,这个基数对吧,就是X方向,Y方向和Z方向。

然后前面这个AI对应的是X,分解到这个基础上的这个系数AI,那么换算到这个笛卡尔坐标里面,AI也就是这个向量X,他在XYZ3个轴上的分量,对吧,所以对于一个向量在线性代数里面。

我们可以使用这样的G的展开的形式,EI是我选择的一组基,X是一个任意的向量,那么前面这个AI就是对应这组基的,这个展开的系数对吧,那么左边这个式子,其实我们也是可以用一样的方法来理解它。

只不过现在我们的向量不再是一个,具体的一个向量,它变成一个抽象的向量,我们可以认为一个函数它也是一个向量对吧,这个给大家我们之前比如说我们讲到了这个啊,之前讲过这个什么流行的概念对吧。

流行它其实也就是一个抽象的几何对吧,我们这里假设FT呢它也是一个向量,这个向量可以在E的I欧米伽T,这组机上进行展开,然后他前面对应的这个展开系数就是大F1个,这个大家能理解吗。

然后唯一的不同就是呃右边,因为你的积是有限个的,所以我这地方做的是求和,但是我左边这个G呢E的I欧米伽t i omega,可以选择很多很多的值,可以从负无穷到正无穷,所以其实我是有无穷多个G的。

那么这个时候我就要做一个积分来代替求和,所以啊所以左边的这个式子,其实你完全可以把它理解成右边的这个式子,我们只不过是给这个FT选择了,另外一组基函数E的IO米伽T或者基向量,把它做线性展开,然后展开。

拿到展开的系数FW来代替原来的这个函数,所以我们其实在线性代数的概念里面,我们只做了一个啊,这个基含基向量或者基函数的一个替换,从什么一个什么东西替换到现在这个三角函数,OK那么有了这个概念之后。

那我们立马就会有一个问题,就是那么这个FT,它本来的这个奇函数到底是什么呢,对吧,FTFT我是一个能具体写出来它的值的东西,它不是一个抽象的向量,那么它本来的奇函数到底是什么。

那么这个东西为了讲明白这个概念,我们就必须引入一个一个东西,叫德尔塔函数或者叫狄拉克delta函数,这个函数呢它是一个非常奇怪的一个存在,你可以认为它是什么,它可以认为是一个一个本来一个一个一个啊。

一个比较平滑的函数,然后在零这个点上,它凸出来一个非常尖的尖,然后突到极限,导致了这个函数在其他的地方都取的是零,只在零这个点上,它取到了正无穷,然后呢虽然它是正无穷,但是呢整个德尔塔函数。

在整个负无穷到正无穷上的积分,也就是说把这个零这个点包含在内的这个积分,它结果是一,这是一个性质非常奇怪的一个函数,叫德尔塔函数,那么这个函数对于我们理解傅立叶变换,其实是非常关键的对吧。

我们先我们先不管这个的函数,它到底是怎么来的,我们就这么定义了对吧,呃比下T在其他地方取到零,然后在零只有这个零的地方有值,它是正无穷,然后同时呢这个函数它全空间的积分是一对吧。

我们假设我们确实有存在这样一个东西,然后同时呢德尔塔T减A,如果把它写成等下七点A的形式的话,那么这个尖呢它就不在T等于零这个点,那就在T等于A这个点T减A等于零的话,那就T等于A。

所以德尔塔T减A这个函数呢,它是在A点处的一个尖,那么如果我们定义了这个德塔函数之后呢,我们可以看下面这样一个积分,是它的结果到底是多少,对一个任意的函数F,我可以把它写成下面这样一个积分式,啊不不不。

对于任意一个函数,我们可以写出下面这样一个积分式啊,我们直接给出来,然后我们来推测这个积分式它等于多少,那我们观察这个积分式的形式,首先这地方成了一个德尔塔函数对吧。

德尔塔函数在大部分的地方都等于零对吧,所有在T不等于A的地方,或者说A不等于T的地方,那么这个结果它自然都是零,所以我就不需要管它,那么唯一需要管的是什么,唯一只需要管这个A在T的领域范围内。

我们来看这个积分结果是多少,那我们就可以得到下面这样一个关系,左边这样一个积分呢,它可以把它缩减到T的一个小的领域范围内,然后来只看它的结果,因为其他地方都是零,然后呢由于我限制在了这样一个T的领域内。

那么FA,我其实是可以把它扔到极限外面来对吧,因为我限制在T的领域内,然后FFA在T的领域内,它值一定最后去向是FT的,所以可以把FT区拿出来,FT拿出来之后,里面只剩下了一个关于表达函数的求和结果。

还有一个积分德拉函数的积分结果对吧,然后这个积分结果里面这个积分结果,因为德拉函数它只在呃T等于A的地方,它是取到正无穷的,并且它全空间积分是一,所以后面这个积分结果一定是一对吧。

所以呢这个积分式它其实就等于FT,OK所以我们啊,我们先不说这个这个积分是哪里来的,但我现在知道说这个积分是,他就直接等于F对吧,那我们可以把这个积分式给它拿出来,然后再仔细观察一下。

它会得到一个水平的结论呢,你会发现这个积分是,其实跟刚才的傅立叶展开的形式,它是非常像的对吧,它也是一个函数,FT它写成了前面那个系数,FA在后面后面乘以一个什么东西,在积分的一个形式对吧。

那如果你去对比,我们刚才介绍这样一个线性代数的,一个线性空间的一个思想,去理解这个积分式的话,那你就可以把它理解成这个德尔塔函数,德尔塔T减A,然后对于不同的A的选择,它其实是一组基。

然后每一个基向量它都是一个作为T的函数,前面的这个FA它只是对应的每一个基向量,德尔塔T减A前面的这个系数,线性组合的系数它是FA,这个答案能理解吗,所以就是如果我们把F写用的函数。

写成这样的积分式的话,那么就可以认为啊,这个FT它是在这个德尔塔函数,这个基下进行线性展开,前面的线性展开的系数是这个FA,那么这个地方有一个对的地方,就是这个系数函数哎,小FA对吧。

它其实就是这个函数本身,对吧我只是换了一下自变量而已,但它们的形状是一模一样的,那这个东西对应什么呢,其实你也可以借用这个三维空间来理解它,在三维空间中,其实我们是默认一个向量。

它可以拆分成这个啊三个坐标下的分量对吧,我可以把它投影到XYZ3个坐标轴上,然后拿它的分量,用这个VXVYVZ,这样一个3×1的一个向量,来指代这个向量本身对吧,这是大家已经默认的一个东西,一个向量。

一个三维空间中的向量,他当然可以写成一个3×1的矩阵,所以呢我很多时候大家也不需要去说,我这是在三维笛卡尔坐标系下的分解,而直接用这样一个3×1的矩阵,来代指这个向量对吧,那么对应到我们给出来这个等式。

其实它的呃他的情况是一样的,我们其实也是啊,在我们给出函数FT的时候,我们其实也是默认了,这个我们是在以德尔塔函数,以它作为,以这么一个奇怪的函数作为基的基础上来,他来给他做线性展开。

然后前面的这个线性展开的系数,用它来指代这个函数本身,所以你就会发现,这个FA其实和FT它是一样的,对吧,所以就是我们引入了一个比较奇怪的表达函数,但是最后发现的,如果你用线性代数的思想去理解他的话。

那么其实这个的函数它是一个,一个是我们被被我们忽略掉了,F函数FF这个函数本身呢,它的基,直接把这个函数写成了以德尔塔函数为基,向量的奇函数的一个线性展开的形式,然后把它的前面那个展开系数拿出来了。

所以这个时候我们回过头有这样的思想之后,再去看这个傅立叶展开,我们就会发现富列展开,他其实干的事情非常的直接,就是我做了一个G的一个替换对吧,对于同一个函数FT,我可以选择用不同的基函数或者基向量。

去给它做线性展开,然后在最开始没有傅立叶变换的时候,我默认的是使用这个德尔塔函数作为基,来展开这个F,而在有这个傅立叶变换之后呢,我其实是使用了这个三角函数E的I,欧米伽T次方。

把它作为这个奇函数去展开F,那么这个时候他前面对应的这个系数大f ea,它就是这个FT在频域,或者说在E的IMET这组基函数上,基向量下,它的展开系数,所以傅立叶变换其实就只是在函数的线性空间。

做了一下这样一个G的一个替换,OK这是其实呃呃我希望就是今天能够呃,就是呃就是帮助大家,就是最理解这个傅立叶变换的本质的一句话,就是说,其实傅立叶变换,它就是呃把函数换了一个基函数去做展开。

原来我们是默认是在DA函数下进行展开,然后现在呢是在这个三角函数的奇函数下,进行展开,那么有了这个思想之后呢,其实你会发现很多东西他就反而就更容易理解,好吧,然后大家如果呃这块还是不是特别清楚的话。

可以呃,那就那就必须得去再看一看其他的这些,那个更可能就是更深入的,更详细的,这个关于傅列变换以及复列展开,这些书籍和教程了,因为我们今天时间确实有限,能给大家做一个这种呃比较抽象的。

一个不涉及任何具体推导的一个呃,一个一个基本的描述了对吧,但是我今天最想给大家传达的,其实就是这一页PPT,就是说福利变化,它其实对应的是一个啊,奇函数的一个或者基向量的变换。

它其实是一个在函数空间的线性变换,OK那我们刚才讨论的都是这个连续情况对吧,那么在计算机里面,当然我们是处于这个离散情况是居多的,或者基本上都是离散的情况,那么离散下离散情况下。

它其实也是有对应的这个傅立叶展开的形,傅立叶变换的形式的对吧,然后它长的样子就是下面给出来这个样子,然后他跟上面这两个积分式其实也非常像对吧,都是呃E的I5米伽T。

现在变成了E的I2派除以N乘以K乘以P,然后这个N就是我最终这个离散化的,它的这个分辨率啊,离散化的这个resolution,就这其实就是分辨率对,然后呢所有这些本来是连续的正弦函数呢。

它都会变成这种离散的这种正弦函数,余弦函数对吧,比如下面这个图里面画的这一组,六个的样一个基,看到上面第一个basis one,它是一个函数函数,然后这个this is two呢。

它是一个比较频率比较低的一个,正弦或余弦函数,后面的频率慢慢变高,频率慢慢变高,然后他就会对应不同的频率,往上增加一些三角函数,那么它本质上就是在数学上,其实跟上面是没有任何本质区别的。

只是它的公式换了一下而已,这个地方也不给大家具体推了,那么关于离散傅立叶变化呢,其实有一个非常著名的一个算法,就是这个快速傅立叶算法,它是利用这个分支的思想,分治递归的思想来实现这个呃。

复叠叶变换的一个非常快的算法,对吧啊,并且呢它的应用非常的广泛,就是在任何你需要这个福利变换的时候,基本上现在实现的标准算法都是这个算法,然后甚至呢这个算法会把它实现在硬件里对吧。

比如说大家看到之前有有些什么,可能什么硬件加速的这个视频解压呀,或者什么之类的东西,它里面那个硬件芯片里可能就包含了这些,这个傅立叶专门的这个离散傅立叶的这个模块,但是关于这个算法本身的这些细节。

我这里就不介绍了,大家只要知道,如果今天去用这些啊福利变换的话,那么他啊你用到的算法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

大概率就是这个算法以及它的一些变种,OK那我们这里比如说看一个复列变换,一个非常经典的应用对吧,假如我们给出了一张图片,这个图片呢我可以看成是一个函数对吧,它有它是一个二维函数。

有X方向和Y2YY方向对,那如果我对这个函数进行离散傅立叶变换的话,可以到右边这张图,这张图就是这张图片对应的频谱,对啊,这张图呢横坐标就是在这个图片,横坐标下的这个频率对吧,中心是零。

然后往往两边是增加的,然后呢,纵坐标就是对应这个图的纵坐标的这个频率,所以右边这张图就是左边这张图,在进行离散数列变换之后,得到一个频谱的一个分布,那么有了这个频谱之后,我就可以干些什么事呢。

比如说我可以对这个频谱进行一个低通滤波,我可以直接把这个频谱外面的部分,高频的部分,离中心远的部分直接给它裁掉,只保留它中心附近的部分,然后把这个东西如果我再进行一次逆序列变换,把它变换出一张图片的话。

它就会得到上面这张图,那么你就会发现上面这张图呢,它其实还是对应的对吧,基本上就是对应原图的这个这个形状,说明了这个频谱里面的这些低频部分,它确实能够呃重构出来,整个图片的低频的信息对吧。

我们看到的形状它其实是一个非常低频的信息,但是呢所有的高频信息都没有了,那么高频信息对应着什么呢,就是这些图上的细节对吧,比如说这些毛,它这些颜色的这些高频的变换对吧,所以这些信息都被丢掉了。

那么这张图片看起来就是一张非常糊的图片,如果我进一步缩小这个保留的范围,那么这个图片呢它就会对吧,进一步变得模糊对吧,进一步缺少这些高频信息,那么这样一个思想,包括我们之前这个呃。

介绍了介绍过这个什么SVD对吧,它也会类似的性质,就是你保留这些啊低频部分的信息越多,那么这个图片就会越来越像原来的图片,那么我们可以通过只保留这个,前面或者是低频的这一部分的频率的分量。

对我只需要把这样一个小图存下来,就可以恢复出这个图的大部分的这些,低频的信息对吧,那么这个东西它其实也就是我们广泛使用的,这个图像压缩的一个核心算法,今天大家如果这一定会用到对吧,各种什么啊。

JPGJPG格式的这些图片,那么它里面的涉及到这些压缩算法,核心其实就是傅立叶变换的思想对吧,就是我通过拿到琴谱之后,得拿一个低低通滤波,然后只保留低频信息。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就可以实现对图像的一个压缩了,那反之如果我只保留这个图片的高频信息呢,我把中间的低频信息全都挖掉,然后只保留这个图片周围的高频信息的话,那么自然我就只得到这个图片,只保留下来这个图片的高频信息。

也是这些啊,边上的信息对吧,边上的信息都是高频的信息,所以呢,我可以用这样一种方法来做图片的边缘提取,打编曲有很多种方法对吧,这里只是介绍其中一种方法,就是你可以用傅立叶变换,然后把DP线扔掉。

那么你出来这些啊,高频信息就会对应到这个图片的边缘上,OK这就是关于父类变换基础部分的介绍,大家有什么问题吗,OK如果没有问题的话,那我们下面就接着讲这个卷积的概念。

卷积是一个跟复利变换密切相关的一个概念,所以这个地方在讲完数列变换之后,我们就可以来介绍一下卷积的知识,那么大家接触到的卷积可能是更多的,比如说从这个卷积神经网络对吧,就是因为应用非常广泛。

然后来点嘴道的,那么在这个这个意义下的卷积,在卷积神经网络意义下的卷积是什么东西呢,是说我有一个卷积核,比如说这个地方取了一个非常简单的,这样一个平均和,就是我有个3×3的矩阵,然后每个元素都是1/9。

然后呢,我用这个3×3的矩阵,去扫这个原来图像的每一个部分对吧,就是右边这个动图展示的,然后呢把这个3×3的矩阵乘到对应的,把它的对应图片的位置拿出来,然后相乘,然后相加得到一个值。

把它放到这个新的位置上来,把这个右边动图展示的结果,那么进行这样一个操作之后,比如说我们使用这样一个平均和,那么就会得到一个使原图像模糊的一个效果,OK这个就是大家最常接触到的卷积对吧。

那么如果我们要给卷积一个数学化的定义,或者说卷积本来最开始的定义是什么呢,它其实是写成这样一个样子,我们从我们还是以E为举例的话,就是有F和G两个函数,两个一维的函数,FG的卷积。

其实定义成右边这样一个积分的形式,这个积分的形式啊,我这地方可能PPT做的不是特别好,就是左边这个,就是这个积分它是一个关于套的积分,然后T是一个给定的一个常数,T是一个给定的常数。

然后右边这个积分是关于T的积分,然后这个积分积出来的结果就是F卷积上,G在T这个地方的值,所以左边少了一个括号T啊,不好意思,那么右边这个卷积的积的形式呢,就是这个积分里面的这个东西呢。

你会发现就是F它的自变量加上G的自变量,两个东西的加和等于七,然后对所有的这样的两个东西加和,等于T的这样自变量来进行积分,如果我们放到一个图里面,他反应是什么结果呢。

就是你会发现gt检套它作为套的函数呢,其实是G套,这个函数以二分之T为中点来做一个镜像,对吧,那么画到图里面就是FF套,我放在这一方不变,然后GT减套呢,它其实是G这个函数,它的镜像对吧。

那么T并且它是以二分之T为中点的镜像,那么T再从,就你去去这个计算不同T的值的时候,这个gt减套这个函数呢,它就会在这个横轴上进行滑动,四对吧,比如最开始的时候T在零这个位置。

然后现在的T可能在这个位置,然后T在这个位置啊,然后下面这个图就是在右边这个位置,所以T如果你去看它不同地方时,从零这个地方开始一直往右看的话,那么即T减套这个函数,它其实是会不断的往右平移的。

这个吧即T减套不断的往右平移,然后呢我再去计算这两个函数,它们重叠部分的这个积分对吧,把他们俩重叠在一起的,计算它重叠的部分,这个求这个相乘,然后再积分,那其实也就他们加起来对吧,我们看这个结果是多少。

那么这个过程就是一个卷积的过程,那么有这样的想法之后,你再去看右边这个动图,就是我们最开始介绍图片的卷积,那其实是跟这个形式是对应上的对吧,我们把卷积核给它做一个镜像对吧,对简介和就是这里的T啊。

就是这里的G,然后呢我的下面这张被卷积的图片就是F,然后我把卷积核做一个镜像,然后在这个图片上不断的滑动,然后计算它们重合的部分呃,乘起来加和是多少,那么这样一个过程反映的就是这样一个积分式。

所以这个卷积的严格的数学定义,和这个我们最开始这个形象的理解,它是一个对应上的,OK那有了这样一个卷积的定义之后呢,我们就可以直接给出来,卷积与傅立叶之间非常重要的一个关系,叫卷积定理。

他说的是两个函数卷积的傅立叶变换,是两个函数分别做傅立变换之后的乘积,那六二负列变化本身是可逆的,那我们就可以换句话说说是一个遇上的卷积,其实对应着另外一个域上的乘积对吧。

写成公式的话就是下面给出了两种情况,比如说F卷积上G这是两个时域上的函数,然后给它做复列变换之后,那么这个复列变换的结果其实应该是,F自己做复列变换,然后再乘上基本上做复列变换。

而F乘上G这个奇函数的几函数的,它的这个复列变化呢,他应该对应的是F这个函数本身的复利变化,卷积上G这个函数本身的傅里叶变换,所以为什么要引入卷积,就是其实是在这个地方,就是说我们如果在时域下进行操作。

比如说做进行乘法操作,它其实对应的是这个频率上的卷积,而在时域上进行卷积操作,其实对应的频域上的一个乘法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们可以通过两个例子来看这件事情,首先第一个例子,就是我们最开始给的这个图片卷积的,这样一个例子对吧,图片卷积用一个用一个平均的一个kernel,那么我们就可以把这个盒拿出来对吧。

放到这个呃这个实力空间里,把它画到这张图片里,然后把对它进行复制变换对吧,那这个时候这个这个小小的这样一个平均,和它对应的结果就会是右边这个结果,那这个结果就是,其实类似于给大家最开始展示的这个方波的。

也不是方波,一个呃一个方形的一个脉冲吧,它的这个复制变换的结果就是它的低频部分,依然它会有一个很强的低频部分在中心,然后同时呢它也会有非常高频的部分对吧,就是这边啊这边展示的结果。

因为我这边是一个非周期函数对吧,所以它应该是有很高的,有各个频率上的值,但是呢随着频率在增高,那么它的这个振幅是在衰减的,大家如果这个啊,比如说对什么衍射之类有有印象,有印象的话。

那么这个图像它其实对应的就是这个啊,这跟那个小孔衍射的那个,那个图像是非常相关的,它也会有一个中心的一个非常强,然后在周围会逐渐衰减的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么我在对图像,比如说这样一个图像,来进行这个平均和的一个卷积的过程,利用我们刚才介绍的这个卷积定理,他其实对应的是这个图像本身的情欲,和这个卷积核,它对应的这个数列变换函数,两个东西直接相乘对吧。

上面是时域,底下是景域,上面是卷积,下面是相乘,那么这样一个图像乘以这两个不像相乘,那么自然结果就是什么呢,就是它的中心的频率部分是会被保留的,而高频的部分大部分都是黑的嘛,高频雾霾是黑的。

是是也就是说它的权重是很小的,那你乘上之后呢,也就是说它高频部分的东西其实是被你扔掉了,所以这两个东西相乘,他得到了那个最终的那个频谱,就会看起来像我们刚才直接截断高频部分,拿到的频谱是一样的。

那么自然他也就会有这个模糊的效果,因为高频的部分被你拿掉了,只保留了低频的部分,OK所以这个就是,在傅立叶变换的视角,我们去看这样一个卷积的过程,你就会发现它其实对应的是频率的这样一个,相乘的结果。

那我们可以反过来看这个事情。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

反过来看这事情就是采样对吧,我们刚才介绍的例子其实是情欲里面啊,食欲里面的卷积对应的频域里面相乘对吧,我们现在看一个采样过程,采样过程它其实可以看成十余里的乘法,为什么可以呢,我们可以定义一个新的函数。

叫这个狄拉克梳状函数,它其实是由一堆的,这个我们最开始介绍,我们刚才介绍的这个delta函数,狄拉克delta函数以周期为T的形式排列在一起,这样的这样的一个形式,这个周期啊这个狄拉克函数它有对吧。

他在呃它会有一个尖是正无穷,然后其他地方都是零,那么把这样一堆的狄拉克函数加合在一起,那么它其实对应的就是这样一个,每隔T分布的这样一个周期的狄拉克函数,然后它呢长得就会像一个梳子对吧。

所以我们叫它梳状函数,那么有这样一个梳状函数的定义之后呢,我就可以把采样过程看成是这样一个乘法过程,对吧,我对一个连续的函数FT进行采样,其实也就是把连续函数,FT乘以一个这样一个输入函数,为什么呢。

因为书中函数在这个地方,在它的这个加的地方它是有值的,在其他地方都是零,所以呢其他地方,其实中间的这些地方都被你丢掉了,只保留了这个加上这些值,所以它是一个采样的过程。

所以我们可以用这样的一个乘法过程来呃,来理解采样,采样的频率就是这个输入函数的,它的频率或者采样的周期,就是这个输出函数的周期,那么既然采样可以看成一个呃,时域内的乘法过程,那我们自然就会想到。

它应该是对应到傅立叶的瓶子呃,这个通过复利的变化之后,它会变成一个平面里的卷积过程,那么那我们首先就要解决一个问题,就是这个树状函数它的复制变换是什么呢,对我们需要求这个事情对吧。

那我们可以既然出状函数是周期函数,我们就可以先求它的复列级数对吧,我们代入最开始介绍那个福利级数的,那个公式CN,它会写成后面这个结果对吧,那么这个地方注意到,因为这个CT。

我的积分是从二分之T到二分之T的,而这个CT这个函数呢它是一个数字对吧,那么在二分之T的72之间,它只在零这个地方有值,只是正无穷对吧,那我们联系到啊,然后并且呢这个标准函数,它的这个啊全空间积分是一。

那么自然呢这个积分的结果,后面这个积分的结果,它就应该等于这个EI这坨东西,然后T取零它的结果对吧,这个我们积分这个积分形式的积分,我们刚才推过一遍了对吧,所以我们可以直接得到CN等于T分之一。

因为后面这个积分等于一,这个是用德尔塔函数本身的性质来定义出来的,那么CN是一的话,我就可以把T写成这样一个,浮列级数求和的形式,对吧,这个东西就是呃初中函数,它本身的这个复列级数。

然后呢它只有离散的频率分量对吧,因为它是周期函数,这个周期呢啊这啊,然后后面这个离散的频率都是二派除以T的整,倍数对吧,但这个东西它是傅立叶级数对吧,他不是傅立叶积分,或者说傅立叶变换对吧。

那么怎么把这样一个求和变成积分呢,那么就会又重新利用到输入函数,因为梳状函数它是这样一个周期的脉冲的形式,所以左边这样一个离散的,每隔二派除以T的这样一个求和的形式。

它其实可以被写成后面这样一个梳状函数,在里面的积分的形式,只不过这个地方的梳状函数,他现在是一个欧米伽的函数,并且呢它的这个周期是二派除以T,那么这个等式为什么成立呢,大家可以自己下去去啊。

把它展开来推一推,看一看对吧,你形象来理解,就是说啊因为我这地方有很多个德尔塔脉冲,所以这个积分积出来,结果呢他就会取到这个啊脉冲地方的值对吧,所以整个积分就会变成一个周期性的求和,那么这个是这个样子。

这个式子它对应的其实就是我们最终想要的,这个梳状函数的这个傅立叶变换的形式对吧,它完美符合傅立叶变换的形式,以积分的形式对吧,并且我们立马就得到这个原来的这个呃,周期为T的这个时域上的树状函数。

它的复利变化,其实对应的是一个在频域上,周期为二派除以T的这样一个梳状函数,对吧,所以中号函数有一个非常有意思的性质,就是说呃它的复利变换就是状函数的傅列变换,其实还是一个树状平树状函数。

只不过呢它的周期是取导数关系对吧,你在时域里面的周期是T,就是每隔T选择一个点,那么在频域里面,它对应的这个傅立叶变换之后的,这个频谱函数呢,它是每隔二派除以T选择一个点,对吧好。

那么这里就拿到了这个梳状函数,它的这个傅立叶变换的形式,那么就可以利用刚才的卷积定理,来思考这样一个问题,我们刚刚说采样它是一个时域上的相乘的过程,那么在傅立叶变换之后呢。

它其实就对应着频率上的一个卷积的过程,那么FW是我最开始那个函数原函数的,它的一个啊它的一个分列变化之后的结果,然后呢,这个出状函数它的数列变换结果我们还推出来,还是一个树状函数对吧。

那么一个函数卷积上树状函数,它的结果是多少呢,我们可以也来推一下,就是我先只推一个,假设只有一个德尔塔函数的话,如果有这样一个德尔塔欧米伽减去欧米伽一撇,这样一个形式的德尔塔函数的话。

我们只关注这个输出函数的一个间,然后看这个卷积的结构有多少能把它拿出来,乘以德尔塔,我们应该减去A减去A乘以DA对吧,我对A进行积分,然后保证呢,F里面的自变量和德尔塔里面的自变量加起来,等于这个啊。

等于我们应该减去我们加一撇对吧,没问题,那么那么这个结果他呃它结果是多少,他应该是,因为德尔塔函数只会在这个后面取到零,他括号里面取到零的时候才会有值对吧,所以这个结果拿到了。

结果就是F在欧米伽减去欧米伽一撇,这个点上的值对吧,这是一个非常自然的一个结果,所以啊,所以当你把F这个函数卷积上一个点函数之后,其实你是把这个F把它换到了这个,我们应该减去我们按一撇这个点。

那么欧米伽减去欧米伽撇这个点,其实就是把fw l f ea,这个函数平移到了欧米伽一撇,所以你把F卷积上的函数其实什么都没做,就把它做一下平移,那么一个data函数是平移一次。

那么fw f ea卷积上整个的输出函数呢,就是把它平移很多很多次,然后因为梳状函数它的间隔是二派除以T,所以其实这个卷积的结果就是,把F欧米伽这个函数,以每隔二派除以T的这个周期频率啊。

这个周期给它复制一份,然后再叠加就把它清理了很多很多份,那么这个东西得到的结果就是,最后我采样的结果,采样的结果得到了这个采样频率,结果对应的那个呃频谱对吧,我们可以用这样一张图来来看整个过程对吧。

假设我有一个任意的函数F它的这个频率,它的频谱对应的是右边这个图,然后呢我对它进行采样对吧,我是给他成了一个出装函数,那么这个数量函数它的父类变化呢,对应的也是一个数量函数。

只不过他的这个周期是取导数的,然后采样对应的这个时域里的相乘关系,所以是原来这个函数乘以上,这个树状函数对应的是采样,那么这个东西在频率来看的话,就是上面这个函数它们自己的频谱卷积上。

这个输入函数的频谱,两个东西一卷积,那么得到的结果就是我刚才推出来了,对吧,就是把这个函数给它重复很多很多份,然后他们这个重复的这个间隔,就是这个上面这个书中函数,它的在频谱上的这个间隔对吧。

所以最终你对一个函数进行采样,它得到了这个频谱,就是右边这样一个结果,那么右边这样一个结果,告诉了我们一个什么东西呢,告诉我们说,如果你的这个采样的频率太低了,那就是说你重复的这个函数的。

这个重复的这个间隔太小了,那么这个函数就会产生交叠,产生交集的结果就是这个函数本身的,它的这个频谱的形状被你破坏了,在中间加上了这样一些叠加起来,这样一些不应该叠加的结果。

那么这个时候发生的事情也就是走样的问题,就是说你采样的频率太低了,你这个时候呢,整个东西它已经不像原来的东西了,而当你采样的频率够的时候,理论上来讲你的采样频率够了,那么。

这个它就能够保证你的这个原来函数的,这些频谱它是没有发生交叠的,它是能够被完整的保存下来的,那么这个时候这个采样,它就是一个好的采样对吧,那么这个时候这一部分就是大家去呃学习。

比如说games101里面介绍这个呃,关于这个走样和反走样部分的知识对吧,如果我要进行反走样的话,我就要给他增加这个采样的频率,来使它的这个原函数本身的频谱不发生交点,对吧。

所以这个就是啊利用这个卷积这个概念,利用卷积与傅立叶变换之间的特殊关系,我们可以得到的一些分析上的结果,OK关于这部分大家有问题吗,然后这就是这部分的公式,大家应该是我们会布置作业。

就说大家是啊可以把这个东西自己再推一下,就是啊整个过程呢它也不是难,他就是说你需要去自己手动推一遍之后,才能理解它里面的这些啊具体细节,然后你就会明白说啊,这个采样这个过程在频率到底发生了什么对吧。

对采样定理的两倍频率,就是这样推导是没有问题,就是从这里来的,Ok,行那我们介绍了这个复列变换以及采样卷积啊,不是采不是采样卷积的知识,之后我们最后来看一下这个球切函数的部分,再来再来再。

那为什么就是求函数,它到底是个什么样的东西呢,就是为什么要把它放到跟傅立叶变换,一起来讲呢,就是我们首先来介绍一下这个求解函数,它到底是个什么东西对吧,那么介绍球队函数,我们就不得不介绍这个求坐标对吧。

正常的三维空间的坐标呢,大家熟悉的是这个笛卡尔坐标系,就是用XYZ去标定一个点对吧,但是呢我们可以用另外一个坐标系,就是这个球坐标用另外三个变量来描述一个点,就是phi theta和R两个角度。

一个长度,两个角度标定了这个射线方向,在球上的哪一点对吧,沿哪个方向,然后呢这个半径R标定了你射出去多远,所以fc tr这三个变量呢,同样也能唯一的确定这个空间中的任意一个点。

那么在求作为什么要引入球坐标呢,是因为在图形学里面有很多的东西,尤其是渲染它是跟这个角度,跟球球坐标密切相关的,比如说环境球,环境球就是我用了一个大家可以想象,就是在一个以你为中心去呃,去一个建一个球。

把你包围起来,然后你去看你沿着这个球上,然后你去看你每个方向上看到什么东西,然后把它记录到这个球上,你会得到这样一个环境球,它记录了你周围的环境信息,那么你用这个球就可以把它用到渲染里面去。

模拟整个的啊周围的环境的光照对吧,那这个时候呢,这个环境球,你就可以把它写成是一个关于求使用,求坐标来描述的函数对吧,主要是两个角度,一个C它一个F,然后呢球上每个点对应一个theta和phi。

然后它对应的这个颜色,比如说光照的颜色或者强度,就是这个我要啊,我要表示这个函数F,以及上这个我们在做这个shading的时候,你们会涉及到这个反射分布函数,那么你就要考察这个材料的表面上。

他在这个沿不同的方向进行反射的时候,它这个反射的这个系数是多大对吧,那么这个系数呢同样可以写成这样一个啊,关于角度的函数关系对吧,所以使用球坐标,你可以描述很多图形学中比较重要的概念。

那么引入了求坐标之后呢,求解函数是什么东西,这时候就有一个可怕的式子冒出来了,这个式子呢,大家可以不管里面的这些具体细节是什么对吧,你可以把它分成三部分,第一部分是一个常数对吧。

L和M是L和M是两个整数,L可以从零取到呃,取到正无穷M可以从二分之L取到12,还是负L取到L应该是负L取到2L不好意思,负L取到负L7大R,那么那么前面这部分呢它就是一个常数,你可以不用管它。

然后中间的这个这一部分它只跟C它有关,这个东西叫它是一个多项式,这个PLN它叫这个伴随,勒让德多项式的阶数是L对吧,这是一个L阶的多项式,你只需要知道这个就可以了,然后他的呃这个未知数呢是这个呃自变量。

自变量是cos theta是吧,你就把cos theta带进去,他就写成一个关于cos theta多项式对,比如说什么cos theta的平方减去cos theta,加上一这样的多项式对吧。

然后它的接触是L,然后最后一项E的INF次方,就是关于F的三角函数对吧,只不过它里面指数有个FI,所以什么cos m fi加上I乘以SMF对吧,所以啊这个可怕的式子,其实就是三部分乘起来的结果。

然后乘起来这个东西,我们就把它叫成这个求解函数,我们可以把这个这东西可视化出来,怎么可视化呢,就是我啊让这个C大Y方向射出一条射线,然后它这个射线的长度,就是这个啊求解函数的结果。

那这样的话我就可以把这个多项式,把整个函数它可视化出来,可视化出来,就是下面这一组图,从上到下呢是这个L增加的过程,L从零增加到这个正无穷,然后从左到右是M增大的过程,M从负L增大到L。

然后每一个L和M对应的取值,比如说固定到中间的某个点,它对应的出来就是这样一个图像,三维空间中的一个图像,它反映的就是这个Y啊,这个这个求解函数在这个L和M取值下,它的这个函数图像,对吧。

那你主观上你可以看到一个什么样的规律,就是随着L增大,这些倍数在变多对吧,然后取零的时候,他就是一个平均的一个球,代表就是这个球上平均的一个场,然后呢比如LH1的时候,它就会有正有负。

就是有一部分是正的,一部分是负的,啊有有有有一半是正的,有一半是负的对吧,只不过它的朝向是不一样的,然后再增大了,就可能什么有1/4是正的,有1/4是负的,今天是一个什么样的连续变化的一个过程对吧。

所以这个就是所有求解函数的可视化,这个式子呢大家也可以啊,不需要去关注它的细节,你只要去啊指导它,是一个很多的这样一个多项式就可以了啊,很多的这样一个不同的这个,球面上的函数就可以了,那么。

怎么去理解求解函数呢,其实大家可以直接把它理解成求解函数,就是一组球面上的函数,它对应的是在以呃,在这个笛卡尔平直空间里面的,这个三角函数的对应对吧,我们讲三角函数E的IN欧米伽T次方。

它其实是也会有很多很多的函数对吧,然后并且呢它会有频率对吧,就是随着你频率的增加呢,这组函数的它的这个变化震荡会越来越明显,然后同时它有不同的相位,比如说有正弦有余弦对吧,那反映到这个图里面。

对求解函数是一样来说是一样的,从上到下,随着你L增大,它的半数增多了啊,其实也就是对应的它的频率增大了,从左到右它这个半的分布是不一样的,那其实就对应着啊这些啊,这些函数它的这个相位是不一样的。

所以这一堆的球形函数,其实你完全可以把它对应到这个三角函数上来。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

OK那么对应到三角函数上来之后呢,既然三角函数可以被用来做副叶级数展开,那么求弦函数,它就可以用来表示球面上的函数的展开对吧,比如我们这里直接给出这个公式来,就是啊,任意一个球面上的函数。

FC大F它可以写成一系列的这个求解函数的,这个加权求和对吧,前面的系数是CON,然后这个CON可以通过下面这个式子,来求出来,对吧,那么这个式子它就可以一一对应到这个,我们刚才介绍这个复列级数上来对吧。

就是你的,你复列级数里面用的是这个正三角函数,我这里用的就是求解函数,复列级数里面用的是这样一个求和的形式,我这地方用的也是一个求和的形式,OK吧,那么同样的我也可以通过控制,比如说我用用啊。

只用零阶和一阶的,或者零阶和三阶的啊,就说是不是什么三阶以下的核心函数,来表示这个原函数,或者说四阶以下的求解函数来表示原函数,我就可以得到不同的这个频率意义下的,关于F这个函数的近似对吧。

比如USTO下面这个图里画的一样啊,左边是一几个,比如说三个比较奇怪的一些球面上的函数,可视化方法还是一样的对吧,就是我啊沿某一个角度嗯,沿某个角度设一条射线出来。

这个射线的长度对应的就是这个FC它的值啊,FC大F的值对吧,所以FC大F会有这样,比如说这里面画了三个比较奇怪的函数,那么它就可以用右边的这些球线函数来做近似,得到这样的结果对吧。

如果我只用L小于等于零的,也就是只用频率最低的求解函数的话,那它就是一个平均的结果对吧,然后随着我增大,比如说我使用了这个四阶以下的这些球形函数,那么这个时候他就会有一些这个对称的,一些东西出现对吧。

能够看看出来,跟最开始这个图像它有点像了对吧,然后我进一步增加这个求解函数的频率,呃,我就可以得到更加接近这个最开始这个呃,这个函数图像的这样一些结果对吧,那么这个东西就是这个不同的啊。

频率上限下频率上限啊,频频率上限下的这个求解函数的展开对吧,他其实你可以直接把它理解成就是啊,不同频率上限下的这个福利叶级数的展开对吧,只不过一个是在这个啊异维空间,或者是笛卡尔坐标系下的平直空间里。

一个是在这个球坐标的这个空间里,就是他们唯一的区别。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么利用这个东西我就可以做一些,比如说跟这个呃图像一样对吧,图像我可以用复列展开来进行做压缩对吧,那比如说那个环境球,我也可以使用这个啊,求解函数的展开来进行压缩对吧,第一步。

比如说我这地方画了一个很复杂的一个环境球,这样我们就把它这个用q map的形式给他展开,对,你可以看到里面有非常多的细节,它是一个非常复杂的室内,但是如果我只用一些低阶的这些求解函数,来表示它的话。

它就会得到一个非常光滑的结果,但这个光环结果呢,它大体上呢它是符合原来图像的,原来球的分布的,所以呢但是呢它的储存的开销就会小非常多,对吧,我只需要存几个系数,就可以存几个权重就可以了。

这个权重的开销是非常小的,那么这个东西就可以被用来做一些渲染的,加速也好啊,或者储存上的优化也好,都可以用来做对吧,比如说我只需要做一个非常模糊的一个环境,光的话。

那其实没必要用这么高分辨率的环球的贴图,只要用到后最后这个结果就可以了对吧,所以这个就是啊求新函数,它的作用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么求解函数它和傅立叶展开,其实是有更深层次的关系的,就我这地方只是给大家,就是如果大家对这个东西感兴趣的话,你可以去再去研究一下,比如说它的关系在哪呢,比如说对于一个算子,拉普拉斯算子。

他写成的样子就是这样一个样子,比如三维空间中拉普拉斯算子拉姆达平方F,它对应的是F在X方向求二阶导,加上F对Y求二阶导,加上F对Z方向求二阶导,然后再加起来对吧,它会出现在很多很多的地方对吧。

什么泊松方程呀,然后后面一些什么各种各样的东西,然后播放城里面都会有他的身影对吧,那么怎么说,傅立叶展开,它的奇函数是E的I5米伽X次方吧,它是一个三角函数,那么这个三角函数呢其实是这个拉普拉斯算子。

它的特征向量,如果你把这个拉普拉斯算子,理解成是一个线性变换的话,那么你就会发现这个一为负,离两开的奇函数,是一维拉普拉斯算子的一个特征向量对吧,E的IM2的次方,然后你给他求二阶导。

求出来就是负我们A的平方,E的IMAX次方对吧,它就变成了一个就是ax等于拉姆达X,所以X是前面这个线性算子的,它的一个特征向量,而球形函数呢是什么呢,它其实是球坐标下拉普拉斯算子的特征向量,求坐标系。

因为它是个曲线坐标系,所以它的拉普拉斯算子会长成下面这个样子,然后下面这个样子你去求它的特征向量的话,你就会得到这个呃,我们刚才给出那个特别恐怖的这样一个呃,求解函数的那个展开的形式。

这个也是求解函数它从哪个地方推出来的,就是从这个地方推出来的对吧,所以复列展开和这个求解函数,它们之间是其实是有这样一个桥梁对吧,这个只是给大家一个呃,一个一个一个算是抛砖引玉吧。

对就是大家如果有兴趣的话,可以进一步了解他嗯,还是挺有意思的,OK所以说关于这个求解函数的部分,其实最希望大家核心的去理解的东西,就是说求解函数它到底是什么。

你把它理解成一个求做boss的数列变换就可以了,Ok,那么这个就是我们今天呃,讲复列变换和修理函数,整个内容其实总结起来的话,最希望大家就是呃最希望大家记住这三个东西,四个东西就是这四句话对吧。

有这四句话之后,大家如果呃觉得今天还是没有太听懂的话,可以去呃再去学,深入学习下知识部分的知识对吧,然后也可以就是之后如果到哪个地方,比如说啊学到什么东西之后忘了,或者说不记得这部分的内容的话。

也可以回来再看一看,然后再去再去学习一下,那么这四句话其实我觉得是比较,今天我想传达的几个核心的观点,第一个是说副列变换到底是什么,副列变换,其实它就是啊从值域的一个基底,换到频域下基地的一个线性变换。

他没有做额外的东西,他只是做了一个基底的一个替换,来得到不同的这个展开系数,然后第二点是说你换了这样一个基底之后呢,卷积这个操作它会变成非常的呃,这个乘积和卷积的关系会变得非常的,这个有意思。

时域上的相乘等价于频域上的卷积,频域上的相乘等于大于时域上的卷积,所以他们之间是这样一个关系,那么有这样一个关系之后,你可以推出来水域上的采样,它其实等价于一个函数和这个梳状函数的相乘。

那么它也就对应着频率上,这个函数和梳状函数做卷积,结果也就是这个P在这个函数在它的频谱,在这个频率上进行周期性的重复对吧,然后最后的图形函数是什么,求和函数,你可以认为是一个在球坐标下的这个傅立叶展。

开对吧,它可以用来做这个啊,类似的在球队包下去做类似的事情,Ok,行那这个就是今天想给大家介绍的一些知识,对大家有问题的话可以问,所以求解函数的不同阶也会是正交的啊,是的,求根函数。

所有的这个所有这些函数都是相互正交的,所以我们才有这个展开的,这个就是这个系数到底是怎么求的,这样一个关系,问一下粗糙度为零的BRDF,跟德尔塔函数的关系,我靠这点超出我的知识范围了,这个有点太。

这个就是渲染部分的这个专门的知识了,所以这个我不是很清楚,那如果没有其他的问题的话,那我就下播了,谢谢大家。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

GAMES001-图形学中的数学 - P8:概率论(一) - GAMES-Webinar - BV1MF4m1V7e3

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

好的好的,然后今天又又见面了,我们阔别了一个多月,然后之前都是另一位师兄,然后今天是五一假期前的最后一堂课,然后事实上就是北大已经进入到假期模式呃,但是全国的公立的,所以我们今天还是正常上课呃。

然后假期之前呢,我们就来讲一些这个相对来说比较轻松的话题,因为我们之前的几堂课,可能大家就是因为讲的内容比较深嘛,然后可能大家会显得有一点呃难弄明白,没关系,我们今天会讲一些比较简单的话题啊。

就是这个概率论呃,然后概率论呢,我们按照原来就是大家也能在推送上看到的,课程计划是分为两个课时啊,今天的第一个课时呢,我们就是回顾一下概率论的最基础的内容呃,因为概率论在各个学校的课程当中。

应该是大二的,大二的一,大二下学期的这样一门课程,然后对于大一的同学来说,可能还没有上嗯,然后呃对于大三大四的同学,如果觉得概率论已经掌握的比较扎实了的话,今天的这堂课是可以啊。

skip我们下一堂课会呃,详细的去讲概率论在图形学中的应用,然后今天呢我们还是主要是去回顾这个概率论,最基础的知识呃,这是今天我们这个课程大体的安排,然后内容比较简单,我们争取在一个小时内结束呃。

首先呢话不多说,我们就开始今天的课程嗯,在就是本科教育里面,一般的我们说的概率论,其实各个学校会把它安排成,就是概率和统计这两个部分,然后可能会合在一起上,就叫概率统计,对于图形学来说。

其实绝大部分应用更关键的是概率部分,而不是统计部分,当然如果你要做一些这个数据大数据方面的呃,比如说基于数据的机器学习这方面,你可能会用到统计这样的内容,而概率呢对cg来说要明显的更加重要一些。

因为有很多算法是基于这个概率论,相关的知识的,因此我们在这个图形学中的数学这一门课当中,我们会把概率部分放在之前来讲,然后统计部分会在后面需要用到的时候,比如说我们之后会有两节课去讲机器学习。

在那个时候如果有用到统计学的知识,我们会在那个地方进行补充,然后这次课和下一次课,我们都会聚焦在概率这个这这1part上,首先我们来看到底什么是概率,其实概率这个概念是来自于频率的。

而频率就是说如果我们有一个实验,什么叫实验呢,我们就把它理解成这个抛硬币,对我们可以把a pm写啊,没关系,我们可以选质硬笔,就是呃在相同的条件下,我们我们在制硬币,然后这NN次在这N次当中。

事件A我们可以把这里的事件A就理解为,这个硬币正面朝上,事件A发生了N次,就是正面朝上发生了N次,那么这个时候我们说比值就是N次,抛硬币的过程当中,NA次正面朝上,用NA比A称为正面朝上发生的频率。

然后我们把这个东西记作FNA,那么显然因为你的NNA既不可能小于零,也不可能大于N,所以频率是落在零一之间内的一个实数,并且呢,如果我们不仅去计算这个正面朝上的频率,同时去计算这个反面朝上的频率。

那么一个叫FA,一个叫FNB,那如果抛硬币呃,有一面向上,它的频率其实就是正面向上的频率,加上地面向上的平,那么这个就是频率,频率是与和我们的实验相关的,我们每一次在做这个实验的时候。

都会产生出一个某一个事件发生的频率出来,有了频率以后,我们来看概率是什么,概率是说如果还是这个随机试验,这个随机试验的这里我们记这个随机试验叫E,因为它就是experiment这个单词的开头的字母。

然后S是其样本空间,什么叫样本空间,就是这个随机试验可能产生的结果,对于E的每一个事件A我们为它赋予一个实数,叫他pa那么这个实数pa就是这个事件A的概率,那当然不是说我们随便给他一个数pa。

这个概率它都是有意义的,但是如果你想定义一个东西,让它看起来像概率,那么它只需要满足以下三条性质,也就是非负性,规范性和可列可加性,什么叫非负性呢,那就是说这个概率这东西它是不能是负的,什么叫规范性呢。

就是它是落在零一之间的,什么叫可列可加性呢,就跟上面这个一样,就是说如果有若干个不同的事件,每个事件都有一个概率,然后这些事件之间是互相不相容的,那么他们的总概率等于这些概率相加之和。

就是比如说正面向上概率是pa,背面向上概率是PB,那么这两个事件不可能同时发生,所以我们说要么就是正面或背面,这概率就得是pa加PB,并且我们认为一个概率如果说它是有意义的,我们要让要让他满足这条性质。

就是说当我们在进行做试验的时候,如果这个试验的次数趋向于无穷大的话,它的频率会趋向于这个P,它的频率FN会趋向于这个P,此时我们定义了这个P它就是有意义的,这个时候,这个P才能反映出。

我们所理解的这个概率的含义,那么在概率当中呢,我们先看一种最简单的这个概率的情类型,我们叫它古典概型,古典概型它其实有一个更加通俗易懂的名字,就叫等可能概型,很可能是这里的关键词。

他是说这个实验的样本呢只包含有限个元素,并且试验中,每个基本事件发生的可能性都是相同的,比如说我们刚刚说的抛硬币,抛硬币的样本中,它只包含两种基本事件,就是正面向上和背面向上这两种对吧,一个是正的。

一个是背,当然你可能会杠说我们能不能这个侧边向上,我们就不考虑这种情况,认为这种不可能,并且诶我们看从这个物理空间的对称性上来说,正面和背面朝上看起来应该是等可能的,所以因为我们知道。

这个必然发生的事件的概率为一,然后它有两种可能,所以每一种可能性的概率都是1/2,类似的,我们去看值投资,只投资的可能性是1234564,四种不同的点数,并且我们看对于。

因为投资一般都是一个完美的立方体,对于一个立方体来说,哪一面朝上看起来它的概率也应该是相等的,所以因为必然事件发生的概率是一,它的基本事件数是六,所以每一面朝上的概率都是1/6,那么对于古典概型来说。

它的总结一下,就是如果这个事件有K个基本事件,那么pa取A包含的基本事件数,除以基本事件的总数,比如说我去投两个这个硬币,然后我想说这两个硬币都朝上的概率,去求这两硬币都朝上的概率是什么。

那么显然两个硬币的可能性只有什么呀,只有正正正反反正反反,所以都朝上的概率就是四种可能性中的一种,也就是1/4,这就是古典概型,古典概型是可以,古典概型和排列组合是息息相关的。

就我们总是可以通过排列组合的方式去呃,计算某一种事件发生的概率,你可以看一下一些简单的例子,比如说,如果人出生在星期一,到星期日的概率都是相等的,那么出生在工作日的概率是多少。

我们知道从星期一到星期日有七天,然后工作日有五天,所以出生在工作日的概率就是5/7,那么出生在周末的概率呢,因为要不是工作日,就是周末,所以出生在周末的概率就是1-7分之五,等于2/7,而稍微强化一下。

在N件产品中有D件次品,然后从中任取小N件产品,恰好有K件次品的概率是多少,那这个事情也是一样的,我们可以用排列组合的方式去列举说,首先我们去决定这N件当中的K件次品,分别是分别是在分别是哪K键对吧。

那我们就会产生一个CNK,然后这个SNK的K键里面又有这个呃,就是又因为总量也有D件次品,我们还要在总共D件次品里面去选个小配件,然后我们还要对这个K件次品做一次排列,应该是长这样的。

然后再去除以它总共发生的可能性数,总共发生的可能性就是从,N件产品里选出N键,对他大概大概就是这样一个过程,我们可以去计算,从小文件里选小插好多小配件视频的概率,然后呃还有一个经典的。

经典的可能大家小时候就接触到过的一个事情,就是说一个班上有50名同学,这当中至少有两个人生日发生在同生日,是同一天的概率是多少,这个其实也是一样的,我们可以用古典概型去计算,因为根据古典概型。

每个人出生在每一天的概率,我们认为它是相等的,也就是忽略闰年的情况,就是1/365,那么对于第一个同学,也就是说如果我们可以,我们来看呃,这50个同学都生日不在同一天的概率是多少。

然后我们去减去这个概率就会得到,就会得到存在,两个人是同一天生日的概率,那这个P怎么算呢,就是第二个人他不和第一个人生日相等,那么它的概率是364÷365,然后第三个人他和前面两个人生日都不像呢。

他就得是363/365,然后一直到第50个人,也就是365-349,365-49,也就是316,这个概率,就是这50个人当中,不存在两个人相同生日的概率,这个概率是相当低的,他可能只有1%左右。

大概在这个量级,所以啊大家回想一下,大家自己从小到大的班上,基本上都有两个同学生日在同一天,就是这个原因,好对概率来说,我们光知道如何去算古典概型其实还是不够的,我们还得去建立一下。

对概率来说很重要的一些基本定理,首先呃需要补充一个定义,叫做条件概率,条件概率是说我们将P,然后这里用竖线的形式表示B,竖线A它定义成什么呢,它定义成A和B两个事件同时发生的概率。

除以A发生的事件A发生的概率,那么它是什么,它是什么意思呢,就是在事件A发生的条件下,事件B发生的概率,所以才要条件概率,意思是说有,我们假设有一个事件是已经发生了的。

这个时候我们来看另一个事件发生的概率,所以我们叫它条件概率,我们对上面说的这个条件概率的事情去做一下,把这里的这个pa给沉到左边去,我们就会得到A和B发生的的一起发生的概率。

等于A发生的概率乘以在A发生时,B也发生的概率啊,这里我们举个例子,这个比如说我们要抽卡,在那个抽卡氪金游戏里面啊,抽卡抽中五星卡的概率,我们假设是0。6%,然后在抽到五星时呢。

抽到自己想要的角色的概率是50%,那么抽一次卡,抽中自己想要的五星角色的概率是多少呢,那其实我们就是把这两个概率给放在一起,也就是0。6%乘以50%,等于0。3%,这就是条件改。

因为就是首先我们要抽中五星,然后在抽中五星的情况下,再看抽到自己想要的角色的概率,随时将这两个概率相乘,在条件概率定义以后呢,我们就可以来看这所谓的全概率公式啊,还是和之前一样,我们设有个实验是E。

然后它的样本空间是S呃,这个A呢是这个试验中的一个事件,并且我们称这个样本空间B1到BN呢,是S的一个划分,什么叫划分,这个就是说呃B1和一直到BN,它能够完备的组合出来S这个样本空间。

就比如说这个掷骰子,那么值一值二值三,一直到值六,这个就是一个S的一个划分,因为他们之间2222之间,都是不可能同时发生的,并且它们加在一起就是所有的可能性,那么在这个时候我们就有所谓全概率公式。

因为呃我们这里说pa也就是A发生的概率,它等于什么呢,它是等于B1发生的概率是概率乘以B1,发生的时候,A发生的概率加上B2发生的概率乘以B2,发生的时候,A发生的概率一直加到最后。

也就是说他其实相当于说我们把必然事件,也就是概率为一的这个事件给它分成了N种,事件分成了N种,在每一种的情况下,我们都来考察这个事件A发生的概率,然后我们把这些概率加在一起,他就得到A发生的总概率。

也就是没有这个划分的情况下,A的概率,这就叫全概率公式,利用全概率公式呢,我们就可以定义贝叶斯公式呃,贝叶斯公式是一个相当著名的这样的一个公式,它能帮助我们解决很多,大家看起来并不是非常直观的问题。

什么意思呢,我们看呃,刚刚我们一直看的都是在bi发生的情况下,A发生的概率对吗,那么我们现在想看在A发生的情况下,bi发生的概率,那该怎么算呢,那么根据定义,根据上面的乘法定理,条件概率的公式。

在A发生的情况下,bi发生的概率,它等于A和BI都发生了,就是同时发生的概率除以A发生的概率,所以我们那么还是利用这个乘法定理,A和B同时发生的概率等于什么呢,A和BI同时发生的概率。

等于BI发生的概率乘以bi发生的时候,A也发生了概率,然后我们把A发生的概率用全概率公式展开,那么得到的这个就是贝叶斯公式,我们看我们发现我们会发现很神奇的事情,就是在这边等式的右边。

我们都只有在BI发生的时候,A发生的条件概率,但是利用这些信息,我们能够算出来还在A发生的时候,bi发生的概率,这事情有什么妙用呢,呃我们可以看在前几年就是疫情的时候,大家去做这个核酸做核酸。

而我们假设人群中感染率是Q,就是人群中有Q乘以人数的,总人数的人是感染者,然后核酸检测的假阳性概率是零,也就是说呃如果你是阴性,你不会被检测为阳性,假阴性概率为P,什么意思,就是如果你是阳性。

你存在一定的可能,核酸检测是阴性,那我们现在就要看核酸阴性的就是你做核酸,然后得到的是阴性,那么此时你有没有可能是感染者,其实是有的,那么这个感染你是感染者的概率是多少,这个就可以用这个贝叶斯公式来算。

首先我们假设这个呃就是,就是嗯我看一下,就是我们设B1表示什么呢,表示是感染,然后B2呢表示是健康,然后A表示阴性,上面这个公式就是说,然后我们来套这个贝叶斯公式里面的每个数,那么PABE是什么呢。

就是说在感染的时候,你被检测出来是阴性的概率是多少,我们已已知这个值应该是P,然后P,也就是说健康的时候你是阴性的概率是多少,因为假阳性的概率是零,所以这个时候健康的时候它就是一。

然后这个PB1是什么呢,也就是你是感染者的概率是多少,因为人群中感染率是Q,所以你是感染者的概率是Q,然后PB2呢就是你是健康的人的概率是多少,那么它是一减Q好的,然后我们现在就直接去代指对吧。

我们要求的这个核酸阴性的人是感染者,他是什么意思,就是,B e a,它等于什么呢,它等于PAB1乘上P也就是PB1,也就是PQ对吧,然后去除以什么呢,除以一个PQ加上一减Q,诶这个就是核酸阴性的时候。

你却是感染者,他的概率是多少,我们可以用带一些简单的值,去验证这个式子的正确性,比如说这个假如假阴性的概率也是零,就这个核酸检验是完美无瑕的,也就是说假阴性的概率也是零。

那么我们可以看到这个分子就直接变成零了,对吧,在分子为零的情况下,核酸阴性者为感染者的概率,它就是零,然后如果说假阴性者的概率是P,是等于这个1%,然后人群中的感染者的概率呢,我们假设它是也是1%。

我们来估算一下,那么这个P乘Q是什么,它就是万分之一,也就是一负四,底下是1亿负四,加上一减Q也就是0。99,哎我们看到这个概率,他还是相当低的这样一个数对吧,也就是说这个假阴性的概率。

其实是当他低的时候,哎我们这个阴性者是感染者的概率也会低,这也很符合大家的直觉,然后我们再看,如果人群中的感染者Q这个数它是一呢,会怎么样呢,如果大家都是感染者的,如果大家都是感染者的话。

这个这个量直接变成零了,所以所以核酸阴性者也必然是感染者,PQ除以PQ等于对吧,所以这个就是贝叶斯公式,一般我们在应用当中的时候呃,所要主要的场景还可以用来计算,这种没有办法直接从正面去理解的。

这样的一些概率,我们可以通过这种这种方式去得到,一种反向的概率,好的以上就是关于概率呢最基础的一些内容,接下来呢我们来看呃,就是从这个古典概型,然后来到这个非古典概型,也就是我们来考察一下随机变量。

什么叫随机变量呢,随机变量是定义在随机试验的样本空间上的,实值单值函数,比如说我记硬币是正面是零分,硬币是背面是一分,然后现在我抛一次硬币,那么你的得分它就是一个随机变量。

刚刚我们举的这个抛硬币的例子呢,它是一个离散型随机变量,是这个零一分布,而且是P取12的时候,这样的一种特殊的领域分布,如果说某一个这个抛硬币,它的正反两面是不等价的,比如说你去参与赌博。

那么赌博的他的硬币可能是经过精心设置了,它的正面和反面也许概率就不同,这个时候如果我们称你得这个一分的概率是P,得零分的概率是一减P的话,那么在零一分布当中,我们我们就可以得到你的得分得为零的概率。

或者说得为K的概率,它就等于P的K次方乘上一减P的一减K次方,这就是领域分布,可以验证一下,你如果取K等于零,那么这个P就是一减P,如果你取K等于一,那么这个P就是P小P,如果我们去做N次零一分布。

然后去把这些东西加在一起求和会怎么样呢,我们就会得到二项分布,二项分布的概率是CNK乘上P的K次方,再乘上Q的N减K次方,这里的Q就是一减P这事情其实也很好理解,就是每一次,我们做了。

比如说我们投三次硬币,每次投硬币都有P的概率是取得一分,由一减P的概率取得零分,也就是说我们在我们要做三次,每一次都是在零和一当中选择一个结果,选择零的时候,你的概率是一减P,选择一的时候。

你的概率是P,那我们可以先看看你总共得了多少分,你总共得的是K分,也就是说你有CNK次选择一分,那么你这你这些次数概率是P的K次方,然后你还有N减K次选择零分,所以这些次数的概率是N减K次方。

一减P的N减K次方,最终就得到了二项分布的改变,然后在二项分布之外呢,就是泊松分布,泊松分布是二项分布的极限情况,他是说,如果你的这个二项分布的次数特别特别大,诶这里就然后我们把上面这个东西呢。

就因为上面的东西它全是这个K次方嘛,P的K次方,Q的N减K次方,然后我们觉得它不好算,我们能不能给它近似成一个呃连续的情况呢,因为这里有个组合数,我们想知道能不能给他把这个组合数给他干掉。

然后这个是有可能的,当二项分布在比较N比较大的时候,就会得到泊松分布,泊松分布的概率呢是长成这样的形式,然后我们之后会给大家一个具体的例子,关于如何从二项分布导出泊松分布,以及泊松分布。

它到底有什么样的意义啊,在这里呢,我们就把它作为离散型随机变量的一个类型,先列举在这,那既然有离散型随机变量,也就会有连续型随机变量,连续性随机变量是说,我得到的这个随机变量的这个值啊。

它不一定是离散的,它不一定是0123,他有可能是零点几几,他可能是个小数,这个时候我们首先要定义,那你这个连续性随机变量,它的概率是是怎么定义呢,那么我们知道就是呃,因为实数的实数是有无穷多个的。

你对于人性型随机变量来说,你取任何一个确定的实数的概率往往都是零,因此我们一般情况下需要考察所谓的分布函数,分布函数是说它的概率是这个随机变量的取值,小于等于某一个特定的数小X它的概率是多少。

你要是P大X小于等于X小于X,这个东西叫做分布函数,这样定义的话呢,我们其实有了啊,那那你有可能会问,为什么不定义成大X大于等于小X,那其实是一样的,我们只是取了一种惯例性的呃。

大家的定义有了这个定义呢,它的好处是,我们可以借助分布函数,去计算任何一个区间的概率,比如说我们想计算这个小X落在呃,这里可能应该是大X,这里是小X,呃好像啊,不对不对不对不对,就是,这里是小X。

这是也就是说我们的这个随机变量落在小X,零和小X1之间,它的概率是多少呢,那么它其实就等于FX1减去FX,因为我们这里的分布函数,其实就起到了一个这个前缀和的作用,那么倒过来呢,如果我们想去算这个P。

X大于X这个这个这个东西该怎么办,其实它就等于一减去FX,因为他的四就是随机变量总是有一个值的,随机变量落在负无穷到正无穷之间的概率是一,所以我们总是可以用这样的方式来把,通过区间的变换。

然后最终给反映到分布函数的四则运算上,然后有了这个分布函数之后呢,我们你就可以定义概率密度函数,什么是概率密度函数呢,它其实一个最简单的定义方法,你就可以把它理解成小FX等于大FX的,对于小S的导数。

这个就叫概率密度函数,或者倒过来我们去做一下这个积分,就是上面那个是,也就是说对于连续性随机变量来说,有两个非常重要的函数,一个叫做分布函数,一个叫做概率密度函数,它们两个之间是导函数和原函数的关系。

和离散型随机变量一样,我们也来举一些连续型随机变量的例子,最简单的例子就是均匀分布,比如说呃在C加加里面呃,我们想实现一个随机数发生器,这个随机数发生器会给你返回,在零一上的一个数,零一上的一个实数。

那么这个时候我们就说这个概率密度是什么呢,就是A等于一,A等于零,B等于一,这个均匀分布就是小FX等于一,然后零小于X小于零,Otherwise,那么这个东西就是也许大家会问这个大于号。

小于号还是大于等于号,小于等于号,它之间会有这个选取问题,其实在概率的意义下,这个东西的意义就没有那么大,因为在概率的意义下,我们取任何也就是PX等于零,它的概率是零是零,而PX等于一,它的概率也是零。

所以你带不带这个端点其实都无所谓,当然在啊程序实现的时候,就是你去写写代码的时候,这点还是很重要的,比如去做一个呃左端点是零,右端点是一的随机数发生器,一个最简单的写法可能是呃,这个我取加C加里面啊。

我取一个RC语言run除以一个RMAX,这个宏,然后因为这个rent的得到的数,是0~32767,在windows平台上是这样,然后red max的就是32767,所以你现在取得的数呢就是0~1之间上。

就是端点是可取的,并且因为他呢他这个时候因为我们得到的数,他只有3万2767种,可能也就是我右边说的这个PX等大S等于零,和P大S等于一的概率都是零,这个事情它不成立了,此时它不成立了。

这个时候我们就得特意去看这个端点,它是不是应该包含进来,那一般情况下我们是需要把它包含起来,所以这里特别推荐大家学习,学习用这个RANDOMAX,但是如果你不想让它包含进来,那有没有方法也有办法。

你可以把这里加一把加二,这个时候就没有做单点,也没有单点,好的呃,均匀分布以外呢,一个比较重要的分布是指数分布,指数分布的概率密度是小FX等于CA分之一,然后这个E的负X比theta次幂。

这是它的概率密度,而得到的分布函数呢,大FX是长成一减去E的E这个负X除以sas me,然后至于上面这个东西的意义是什么呢,它反映在无记忆性这这个特征上,什么叫无记忆性呢。

它是说他是说在X大于X时的条件概率,X大于X加T和X大于T是相等的,然后这里又写的不规范啊,这里应该用大X,就是就是说你之前发生了什么,我不知道你现在是零分也好,你现在是十分也好,我我跟你说。

你想再获得20分,你所需要的概率,你你得到再得到20分的概率都是相同的,那么这种分布它就叫指数分布,至于为什么是上面这样的形式呢,我们一会儿也会给出给大家一个推导,那现在我们只需要了解。

指数分布和无记忆性之间是相关联的,也就是说他和你既往得到这个结果的概率无关,你再从当前的状态出发,再去获得同样的一个大小的数,概率是相同的,然后第三种比较重要的连续性,随机变量是正态分布,正态分布是说。

就是一个概率密度,它满足右边这个东西啊,这个东西可能看起来比较复杂了,然后这里的mu和sigma都是一个常量,一个参量,一个提前知道的,而至于这个概率密度它有什么用呢,我们也是今天的最后会提到。

下面我们来看这个呃随机变量的数字特征,首先我们来了解期望的概念,所谓期望,就是说,我们把如果我们把所有随机变量能取到的值,乘以取这个值的概率,并且把它们加和这个东西就叫数学期望,那么对离散型来说。

我们就只需要从K等于一一直加到无穷,然后啊拿这个XK,就是就是这个就是啊,就是这个这写成K应该就可以了,然后pk就是取K的概率,那么这个东西呢,其实我们可以做一个这个结合律对吧。

我们可以把它改写成西格玛,K等于一到无穷呢,X大于等于小K的概率,诶为什么可以这么想,那么比如说我们在一的时候概率是P1,我们取二的时候概率是P2,我们取三的时候概率是P3,我们我们把这个二给乘两倍。

3×3倍,他是不是就是说我们有P1的概率,获得这里的一,然后我们有P2的概率在上面的基础上再加呃,就是呃话不能这么说,是我们有P1加P2加P3的概率,去获得这个一,有P2加P3的概率。

去获得从12之间的这个一扭P3的概率,去获得从23之间的这个一,所以离散型数学期望,我们又可以把它写成这样的形式,然后我们来看连续性,连续性数学期望呢,他就是把上面的这个求和给它。

改写成一个额积分的形式,也就是用小X乘以它的概率密度,然后从负无穷到正无穷之间积分,数学期望有一些很重要的性质,第一个性质是呃常数的数学期望等于它本身,第二个是常数乘以某个随机变量的数学期望。

等于常数乘上这个数学期望本身啊,第三个特征是呃,任意两个任意两个随机变量,这两个随机变量之间可能是相互关联的,他们俩之间加和的期望,等于它们分别的期望的加和啊,这个性质非常重要啊。

这是数学期望的一个很重要的特征,叫数学期望的线性性,线性性说希望是线性,任何两个这个随机变量拿过来,他们两家和的数学期望都可以这么算啊,关于如何去证明呢,大家可以想一想,我们今天就不在这里证明了。

然后第四个特点就是,如果我们这两个事件是相互独立的,也就是说他们俩之间的概率不会发生相关性,那么此时他们俩这个事件都发生了啊,这两个随机变量相乘的数学期望,就等于他们分别的数学期望的相乘,举个例子。

有个客车呢他载有20位旅客,然后旅客有十个车站可以下车,如果到达一个车站没有旅客下车呢,就不停车,然后这时候我们用X来表示总共停了多少次车,然后我们求ex,然后条件是设每位旅客在各个车站下车。

都是等可能的,并且设各位旅客是否下车,相互独立,就是不不是不存在说啊,你下车,所以我也下车,就假如不存在这种情况,我们现在来看,ex它应该是什么,也就是说对于每个旅客来说,我都要选择一次。

我在哪一个车站下车,也就是说,每个旅客在每个车站下车的概率都是1/10,那么在某一个车车站,没有旅客下车的概率是多少呢,它就是9/10的20次方,我对于任何一个车站来说,没有旅客是从这个车站呃。

就是大家都不是在这个车站下车的概率是这个,那么有一个人在这个车站下车的概率是什么呢,就是这个要是P有人在这车,这个车站下车的概率是这个,所以ex等于什么E直接就等于10P,因为期望是线性。

无论你之间是不是相互独立的,你都可以直接相加,所以我们在这个停车的,停车的次数就是上面这个东西,乘以十,有了期望的我们可以定义方差,方差度量呢是随机变量和它均值之间的偏离,程度。

均值也就是我们刚刚所说的数学期望,关于数学期望呢,还有一个呃很重要也很容易推导的性质,就是说我们之前不是说概率,所谓概率它是从频率来的,那么所谓期望呢,它是从平均来,如果我真的做了这么多次实验。

然后每次我都去计算这个得分,计算这个随机变量X,然后把它作为得分,我们把这些得分加在一起,然后去除以实验的次数,我们就会得到这个平均,当你做的实验的次数趋向于无穷大的时候。

你所得到的平均也会趋向于这个数学期望,所以我们所谓数学期望,我们一般又把它称为均值,那么所谓方差呢,它就是度量这个随机变量和它均值之间的,偏离程度的量,一般的我们把它定义为以如下的一个数学期望。

它是随机变量X减去ex,注意这里的ex已经不是一个随机变量,它是一个均值X减去ex,它作为一的平方,作为一个新的随机变量,它的数学期望是多少,然后一般的我们又把这个方差的根开根号,记作标准差。

或者又可以称之为均方差,方差就是随机变量X的函数,GX等于X减ex括号Y的平方,这个东西的数学形,那么对于离散的情况来说,他就是这么算的,对于连续的情况来说来说,它就是这么算。

然后我们又可以把这个GX给展开,你可以把它写成随机变量X平方减去2x ex,然后加上一方X,我们说方差它就这个时候方差就等于这个,方差等于这房产等于这个的,我们来看第一项,第一项就是ex方,第二项呢。

第二项是因为这是一个常数了,这时候是一个常数,所以就是二,Ex ex,而第三项压根就是一个常数,我们加过来就是一方X哎,这个东西我们可以看到这可以直接把这项消掉,这两个组合起来。

变成ex方减去E方X就是这个东西,这个就是方差,方差满足一些性质啊,第一个性质是,如果我们拿到这个随机变量乘以一个常数C,那么它的方差会变成C方倍,注意这个时候他不是C倍的。

因为我们的方差这里是有个平方在这里,然后如果是去加一个常数呢,它这个不会影响方差,接着我们来看两个不同的随机变量,我们把它加在一起,它的方差等于什么,它等于他们俩分别的方差,加上A加上一个这样的数。

加上X减ex乘以Y减1Y这个东西的数学期望,那么这个数学期望是什么呢,我们把它我们我们一会儿来看它,其实是我们把它有个定义,它叫协方差,好回过头来,我们现在已经有期望和方差这两样,我们来回过头看。

我们刚刚我们没有解释的两个呃,随机变量的分布,第一个叫泊松分布,不做分布,是说,就是这个随机变量呢是在一个区间内发生,特定事件的次数,既然是次数,那么它取值范围就是自然数零到正无穷。

第二条件是一个事件的发生呢,不影响其他事件的发生,也就是说这些事件每发生不同次呢,它不是相互关联的,不会因为发生了一次再发生一次概率就降低,第三呢是说我们事件的发生率是相同的,不会存在。

说发这个在某些时候发生的概率高一些,在某些时候发生的概率低一些,第四呢是说这两个事件呢,不能在同一个时刻发生,第五呢是说一个区间内,一个事件发生的概率与区间的大小成比例,也就是说时间越长。

发生的概率越高,举一个例子,比如说某个医院平均一天有拉姆达明,新生儿诞生,那么满足上面的条件,就是在一天内的任何一个时刻,有新生儿诞生的概率都是相同的,那么求出生这个医院某一天正好出生了K个人。

他的概率是多少,哎这个东西它怎么算呢,其实我们可以先假设一天这10克数是固定的,当然我们知道这个一天的十棵树是连续的,我们现在假设一天的时刻是固定的,比如说一天有N个时间段。

然后每个时间段内的要么有人出生,要么没有,那为了满足平均一天里有拉姆达明星上而诞生,我们就得要求每个时间段出生的概率都是,P等于拉姆达除以N,这个我这个时候我们才能才能让这个NEX。

零等于NP乘一等于拉姆的,所以每个时间段有人出生的概率都得是这个,然后这时候我们来看一天,有K个人出生的概率是多少,他就是一个典型的二项分布了对吧,他总共有N个区间,每个区间的取值可能是零或一。

然后我们用二项分布把这个东西给写出来,也就是CNK乘上P的K次方,乘上一减P的N减K次方,我们来把这个东西给它展开,展开完以后得到一个数,得到一个连乘,它等于1-2分之11减去N分之二,一直乘上一。

减去N分之K减一,乘上拉姆达的K次幂除以K的阶乘,上面乘上一减去拉姆达除以N的N次幂,以下除以一减去拉姆达N的K次幂,这个时候我们让N趋向于无穷,当N趋向于无穷的时候,有限个一减N分之一。

直到一减N分之K它们相乘都等于一,然后一减拉姆达除以N的N次幂是什么,这是一个我们在高等数学里面很熟悉的,这样一个恒等式,也是,就是一加或者一减N分之一的N次幂,它应该等于一对吧。

然后当然我们这里有一个lama在这,我们需要把它给负,拉姆达这个东西给它算上去啊,底下是一减拉姆达分之N的K次幂,哎它也是一,最终我们得到的结果就是拉姆达KK截止,然后E的负NBA负应该是X比拉姆达。

他就是这样一个东西,我们再来看指数分布,刚刚我们说指数分布最重要的特点,就是它的无记忆性,也就是以F我们把那个无记忆性给写下来,它的意思是说,PX大于等X大于等于X加TX大于等于S。

这个东西要等于PX大于等于T,我们把这个东西用这个分布函数给它写出来,它就是一减去FS加T,大FS加T除以一减去大FX等于一减去大FT,做一下这个我们把这个分母乘到右边去。

他就得到一减去大FX加T等于右边这个东西,而这时候怎么办呢,我们怎么去解呢,我们令,因为我们正好,这S和T对于任何正数都是成立的,我们干脆令T是一个小量,令,它等于德尔塔X。

令X等于X小X而做了这件事情以后,我们我们就可以发现那么大FS加T是什么呀,在FX加T就是F大,FX加DX,他等于大FX做一次一阶的泰勒展开,然后大FS是什么呢,就是大FX大F是什么呢。

它等于大F德尔塔X,也就是F0,加上小F0DX,然后我们知道F0我们可以设它为零,那么它就等于小F0带上X,然后把右边这个通通带上去,我们就得到这个结果,得到这个结果等式两端都把大FX消掉。

再把小德尔塔X约掉,我们就得到这么个一个恒等式,这时候的小F小F0这个东西其实它是一个,我们可以把它看成一个参量,我们就设它等于一除以theta,于是我们就得到theta乘上小FX等于一。

一减去大FX这是什么,这是一个微分方程,是个常微分方程,这个微分方程的解是可以猜出来的,它就等于小FX等于C2分之一,E负X比C然后大FX等于J,所以我们可以看到无无无记忆性,是指数分布的一个性质。

同时无记忆性的结果一定会导出一个指数分布,就他们俩其实是,你可以看成他们俩是一个等价的一个描述,而指数分布的期望呢是theta,指数分布的方差是这个theta方C方,然后具体是为什么。

大家可以直接代入定义社去计算一下,刚刚我们说在求这个DX乘Y的时候,DX加Y的时候,我们有一个概念叫协方差,协方差就是,这样的一个东西,它是我们就称它为随机变量,大X与大Y之间的协方差记作扣大X大Y。

同时呢我们可以借助协方差去定义相关系数,也就是我们把DX和大Y的协方差去除,以它们俩分别的标准差得到相关系数,协方差能满足一些基本的性质是,第一个是对称性,也就是大X和大Y的协方差。

等于大Y和大X的协方差,然后大X和大X的协方差就是方差本身,然后这一点,第二个性质呢是我们刚刚已经给出的,大X加上Y大Y的这个方差呢,是可以它写成他们俩分别的方差,再加上他们俩的协方差的两倍。

然后这个呢就是我们可以把这个做一下,等式代换,我们可以得到下面这个式哎,这式子是怎么证的,其实你就是直接把这个DX,按照我们刚刚说可以把它写成ex方减去一方X,可以用这个式子把他们都带下来。

或者你或者你直接把这个东西展开就可以的了,这个是关于协方差的线性性质,就是如果我把协方差当中的一项乘以A,小A立项乘以小B,那么最终相当于给协方差乘上了小A乘小,然后第三个是协方差的。

这个关于随机变量的线性性质,就是呃如果这个X1大于X1加上大X2,这个随机变量和大Y的协方差,等于这两个小随机变量的协方差相加,这时候呃我们看完了协方差的性质呢,再来看相关系数的有什么用。

相关系数就刚刚我们定义的这个东西,我们称相关系数为零,表示两个随机变量是不相关的,什么叫不相关的,相互独立一定是不相关的,就是这两个随机变量之间没什么关系,A发生的概率不会影响B发生的概率,S是取多少。

不会影响Y取多少,这个时候他们一定是不相干,但是呢不相关不一定是相互独立的,其实呢这里的相关系数呢,它这个概念上容易让大家产生模糊,其实如果更准确的说,他应该称之为线性相关系数。

比如有两个随机变量也叫X,一个叫X方,这两个随机变量显然它的它不是互相独立的,对吗,因为你大X取多少,你的大大X平方就是上面这个东西的平方,这样随机变量肯定不是相互独立的,但它是不相关的。

它不是线性相关,因为它是平方相关,如果你去计算它的相关系数的话,你会发现它的相关系数也等于零,这里提醒大家注意,然后这个概念其实是沟通了这个统计,这个概率和统计的桥梁,在统计学当中。

我们往往会用到这个相关系数,来证明一些事件与事件之间的关系,从协方差呢,方差期望我们又可以看到这个举的概念,举是什么意思呢,其实举它就是随机变量的这个性质的一种度量,比如说,X的K次方的数学期望。

我们就把它称之为X的K阶原点矩,这个东西就叫K阶矩,如果我们先把X减去它的平均,再求它的K次方的数学期望呢,它就是X的K阶中心距,类似的,如果我们把DX的K次方和Y的L次方相乘,求它的数学期望。

我们称为大X和大Y的K加L阶混合局,然后X减ex的K次方乘上Y减1Y的二次方,就是X和Y的K加L阶混合中心,做了以上的定义以后,我们再回过头来去看所谓的期望和方差,那么显然大X的数学期望ex是什么呢。

就是大S的一阶原点矩,那么方差呢就是X的二阶中心矩,类似的协方差呢是什么呢,协方差是大X和大Y的二阶混合中心距,同时我们还可以看到,我们之前看到这个恒等式,他是什么意思呀,这个是它的二阶原点矩。

这是它的一阶原点矩的平方对吧,所以二阶原点矩减去一阶原点矩的平方,得到了它的二阶中心矩,也就是说所谓的这些数期望两方差呀,它们之间的换算关系,本质上都是一个随机变量之间,举相互处之间的关系。

就是举的概念,就是举的概念,在英文中他应该写作moment,其它可以看作是一种它不在这个概率当中,它就是一个随机随机变量,性质的反应,而在统计当中呢它就是一个实验,它其实就是也可以看作一个。

随机变量的性质的反应,我们可以用统计统计的数据去去测奇迹散,为什么我们需要举呢,是因为我们往往我们没有办法真的去得到,随机变量,它的分布函数或者它的概率密度函数,我们往往都得不到这个东西。

我们做实验只能得到局,这时候如果我们想去猜他的这个分布函数,是长什么样的话,我们只能通过观察局来看看,他的这个分布函数可能是长什么样,类似的呢,我们把这个协方差矩阵写成协方差,写成矩的形式。

我们刚刚已经说过这个协方差,所谓协方差就是二阶混合中心举,那么如果我们有N个变量没,那么每两每一对,每两个变量之间都可以去建立一个协方差,或者说是这两个随机变量的二阶混合中心,去对吧,然后。

它的这个是刚刚我们提到的协方差的计算式,我们把这求出来的N乘N个协方差给列成矩阵,也就是C11表示X1和X1的相差,也就是1X1的方程,然后C12就是X1和X2的协方差,以此类推。

我们会得到一个协方差矩阵,这个协方差矩阵显然是对称的,因为协方差具有对称性,为什么需要协方差矩阵呢,就是如果我们在做一些这个统计调研,发现有N个随机变量,然后这些随机变量之间,我们不知道它是什么关系。

我们现在想考察他是什么关系,谁哪个变量和哪个变量之间可能是有关系的,要怎么做,我们就可以把这个协方差矩阵给他列出来,列出协方差矩阵以后,我们就可以根据协方差矩阵去算这个相关系数。

然后以此来判断两个变量之间,它是不是相互独立的,因为根据我们刚刚所说,它是零,说明它有可能是相互独立,它如果它的相关系数是零,说明这两位啊有可能是相互独立,但是如果它的相关系数不为零。

这两个变量一定不是相互独立的对吧,好最后我们来看这个大数定律和中心极限定理,首先我们看所谓的弱大数定律,它又叫星星大数定律,什么叫弱大数定律呢,是说如果这个随机变量是相互独立。

并且服从同一分布的随机变量序列,满足呢,每一个随机变量的数学期望都是mu,它的均值都是mu,那么对于任意大于零的小量,我们都可以说我们都成立上面这个式子,也就是说我们把XK加到一起。

然后除以N就是有多少个随机变量,然后减去mu呢,取绝对值,让它小于F性,这个事件发生的概率随着N趋向于无穷,会变变成一,或者呢上面这个东西,我们又把它用一个更加精炼的语言描述,它,称作序列。

X1把X1把的定义是就是N分之一的,就是也就是这个随机变量序列的平均值,称它为依概率收敛于零,什么叫依概率收敛于名,就是我们其实并不能保证说呃,就是当N大于某一个确定的数以后。

他一定和mu之间相差小于F型对吧,我们只是说它和迷雾之间想相差,EPPC的概率是一,这样是不一样的,虽然大家觉得这可能是一样,但是如果我们在连续随机变,连续型随机变量的情况下,会有一些我们在平时觉得。

匪夷所思的这个结论出现,对于连续性随机变量来说,概率等于一的事件有可能不发生,概率为零的事件有可能发生,最简单的例子,我们去做这个这个均匀分布,取一个0~1上的均匀分布,我们刚刚说。

因为实数的个数是唯一的,如果你在零一的随机分布上让你返回一个数,那么这个数是正好是X等于零,这个东西的概率应该是零,但是我们思考这样一个问题,我们在0~1的随机分布上去取一个数。

那你必然会给我返回一个值,一个确切的值,要是我们必然会有一个随机变量,那么在做这个实验之前,P大X等于大X0的概率是不是也是零,因为它和P大X等于零,其实并没有任何区别,但是我们在做完实验之后。

一定会给我返回一个数,所以在这个均匀分布上取值,我们永远得到的这个事件,取到的这个东西,它发生的概率就是零,但是它又确确实实的发生了,这也就是在联系,这也就是在连续型随机变量的情况下。

会出现的一个看似是悖论一样的情况,比如说零概率的事件是有可能发生的,一概率的事件是有可能不发生,还是如果一个均匀分布给我吐出来,0~1上的随机数,那么理论上说,你其他的随机数。

在零和一的开区间内的概率是一,但是你就是有可能我做这个实验,给我返回来了一个零,那这时候这个概率为一的事件,他就没有发生,也因此呢我们在做这个大数定律的时候,必须选择严谨的绕远的方式去定义。

所谓的依概率收敛于某一个数,好的,下面我们来看这个伯努利大数定律,这个伯努利大数定律呢他是说呃,如果我在N次独立重复试验当中,事件A发生的次数是FA,然后P呢是事件A在每次试验中发生的概率。

那么FA除以N减去P小于系统,它的概率是一,换句话说伯努利大数定律是什么呀,它其实就是我们去做这个,这个零一分布对吧,去做这个投硬币,也就投硬币的时候,我取正面的概率是1/2,是50%。

随着你做的实验的次数越来越大,你这个频次频率一定趋向于1/2,这其实是根据概率的定义来的,因为我们概率它的定义就是,当这个东西趋向于无穷大的时候,FA比N要和P相等,所以我们倒回去就是从概率退频率。

也必然会得到这个伯努利大数定律,而中心极限定理是什么意思呢,它是说,首先我们来看这个独立同分布的中心极限定理,它是说什么呢,他是说对于任何的服从相互独立,且服从同一分布的随机变量。

大X一一直到大XN来了之后,也可以往下一直到大S无穷,如果它的方差是他的期望是缪,方差是西格玛平方,我们定义YN是什么呢,YN是,这些就是所有随机变量的和,减去这所有随机变量的和的期望,再除以标准差。

或者我们把这东西展开,它写成这样这样一个东西,也就是所有随机变量的和减去n mu,再除以根号N乘上sigma,我们说我们定义了这个YN,它小于等于某一个数X它的概率是什么,是负无穷到X根号下二派分之一。

E的负T方除以二对DT积,这个是什么呀,或者说这个大发X这个是什么呀,它就是高斯分布的分布函数,注意我们现在根本就没有对随机变量本身,服从同一分布的这个同一做任何的假设对吗,他是任意的分部。

任意的一个分部,这就是为什么高斯分布我们称它为正态分,因为任何一个别的在别的分布上取的随机变量,我们把它加在一起,然后去求这个YN,去求这个YN,他都会趋向于一个高斯分布,比如说,在一场考试当中。

同学们的成绩,就是它可能是一个0~100上的某一个分布,然后我们把它画成这个,画成柱形图,就一分一档的一个柱形图,它一定当这个考考生足够多的时候,他一定是一个高斯,就是中心极限定理所满足,所告诉我们。

我们经常说这个呃,就在大学生经常遇到一个问题,就是比如说某门课老师要调分,然后调分的时候,有可能你原来考试上的成绩是大于85分的,然后老师给你调成八十四分,然后这时候我们说这叫被正态,为什么是被正太呢。

其实对老师来说,他可能卷子出的有难有简单,然后这个时候为了保证同学们的区分度,我们就要给他给同学们的分数做一个标准化,然后已知不管我们的卷子是简单还是难,他只只决定什么呀。

只决定同学们的分数如何在0~1晚上分布,然后而我们把这些同学们的分数放在一起看呢,它仍然会是形成一个高斯分布的这样一个图形,我们只要定义,比如说根据我们学校规定的优秀率,我们去规定一下哎。

这个点是八十四分,高于这个的点的,那都是都是优秀,用这个方法呢,老师就可以形成就可以建立一个比较准确的,而且科学的调分的手段,所以我们说这种情况叫被正态,因为老师是借助于这个正态分布来进行调分。

然后我们又可以看到啊,我们可以减记为就是任何一个随机变量,它的均值啊,减去mu除以西格玛在乘上根号N,它是和它是近似的,看成一个正态分布,或者我们又可以说这个随机变量本身的均值呢,是一个以MV期望。

以西格玛方除以N为为方差的正态分布,这样这两个描述是等价的,这样描述是等价,啊看完了这个独立同分布的中心极限定理以后,我们再来看非独立同分布的中心极限定理,第一个叫李雅普诺夫定理,所谓李雅普诺夫定理。

它放松了,刚刚我们说的这些随机变量,是在同一个分布上取得的这个性质,它只要求这些随机变量是相互独立的,并且呢每一个随便让可能有自己的期望,MK和自己的方差西格玛K方,然后这个时候哎。

我们发现如果我们定义BN方是什么呢,等于这些方差的平方,然后定义这个西格玛这个东西,我刚刚是直接写成NMD对吧,然后这时候我们老老实实把这些MK加在一起,诶,我们去定义这样的一个事情。

去做这样的一个操作,它仍然是一个正态分,也就是把任何相互独立的随机变量加在一起,只要我们做这样的一个变换,它仍然是一个随机分布,仍然是一个正态分布,只不过这个时候还有一个额外的条件。

他才这个额外条件是存在一个正数小德尔塔,使得当N趋向于无穷时,BN的二加德尔塔次幂,乘上西格玛K等于一到N的XK减去,milk的二加德尔塔次方的数学期望是趋于零,而这个事情的证明就比较繁琐。

但是只要大家只需要知道说,我把任意一些随机变量加在一起,然后使得他们都减去各自的这个期期望,然后再除以方差的平,方的和它也是一个正态分布就可以了,最后呢我们再看一种特殊情况,叫迪莫弗拉普拉斯定理。

它其实就是刚刚我们说的中心极限定理,在二项分布的这个对于二项分布的一个特例,他是什么意思呀,就是说,这个一塔NAAN是这个二项分布,那么二项分布的数学期望是P,因为我们有一个P的概率。

取以一减P的概率取零,所以它的数学期望是P,那么N次二项分布的期望就是NP,然后除以根号下NP1减P,然后小于等于X这个东西的概率,那么根据中心极限定义,它显然也是cos分布,那么如何证明这件事情呢。

因为我们知道之前我们就知道二项分布,它是零一分布的和对吧,就是我们没我们刚刚看到这个事情,你既可以把AAN给看成是二项分布,你也可以把它看成是N次零一分布,而N次零一分布根据中心极限定理。

它是可以趋趋向于这个高斯分布的,所以二项分布直接做这样的变换,它也会趋向于一个高斯分布,这就是迪莫弗拉普拉斯定,它告诉我们的是二项分布的极限是高斯分布,好的,以上就是关于概率论部分的这个基础知识。

我们一个简单的总结和回顾,也是对于可能没有上过概率论的同学,的一个快速的速成,然后大家有什么关于这方面的问题吗,好如果没有的话,那我们今天的课程就到这个地方,然后呃祝大家假期愉快,今天的课之后呢。

呃我们就是下周,下周一应该是呃我们就休息一次,因为下周一是假期的第二天我们就休息一次,然后到下下周一,也就是,5月13号,然后我们来讲这个概率论部分的第2part,然后他会利用今天我们课上的内容去。

解决一些图形学当中实际会遇到的问题,我们会介绍一些利用概率论的算法,然后中间呢这半个月的时间也更,然后大家去呃做一下我们之前遗留下来的作业,应该因为前几堂课都布置了作业,可能大家会感觉时间上有点匆忙。

然后我们概率论课程的作业,也会在5月13号讲完概率论二之后发布,好的好的好。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

GAMES001-图形学中的数学 - P9:概率论(二) - GAMES-Webinar - BV1MF4m1V7e3

好的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

假期回来我们继续game001的课程,然后上一次课是跟大家简要回顾了一下概率论部分最基础的知识,然后今天呢我们就要聊一下概率论在图形学当中的应用,我们先快速地回顾一下上节课都讲的哪些内容。

上节课我们是首先介绍了什么是概率,然后从古典概型出发,讲了关于条件概率以及Bayes公式相关的一些定理,之后重点讨论了随机变量,然后分成离散型随机变量和连续型随机变量。

它们分别有自己的成立自己的概率函数,其中最重要的是连续型随机变量的分布函数以及概率密度函数,随机变量具有一些数字特征,比如说数学期望方差,斜方差,矩,上节课的最后我们是回顾一下大数定律。

然后其中有弱大数定律,也就是新兴大数定律,伯努利大数定律,以及中心极限定理,这就是上节课我们所讲述的内容,也就是我们这节课课程的一些知识储备,好的,今天这节课呢。

我们主要是从两个方面去讲一下概率论在图形学当中的应用,然后第一个部分是噪声,第二个部分是蒙特卡洛积分法,这两个部分其实是有一定的相关性的,我们之后会看到这两部分的相关性,它在于什么地方。

我们首先从噪声开始去讲一下,这个噪声它和我们上节课所说的那些概率论相关的知识到底有什么关系,首先,大家可能会很奇怪,就是这个噪声这个声字,它听起来应该是某一种物理学当中声学的概念。

它和概率之间是如何建立联系的呢,我们干脆就先从这个声音的角度出发,去看声音里面所谓的噪声是什么,那么,首先我们说声音它是有颜色的,声音的颜色是来源于就是光的颜色。

因为我们平常大家所说的颜色都是指光的颜色,而光的颜色从本质上看,它其实是人眼对于不同波长的光的混合的感知,注意这里我用的词是不同波长的光的混合,而不是不同波长,因为大家都知道,比如说日光。

我们看起来它是白色的,但其实它是红橙黄绿青蓝紫各种颜色的波长的光,各种波长的光的混合,所以我们并不是说一个颜色只能对应于,一种频谱,而是每一种频谱它都有对在人眼中都会形成一种颜色,但是不同的频谱呢。

有可能对应于相同的颜色,举一个例子,比如说赤橙黄绿青蓝紫当中已经有黄这一个光线了,我们都知道是那黄光,那黄光大概是由钠原子机发出来的光,它本身就是黄色,但是我们又知道。

这个红色色光和绿色色光混合在一起会形成黄色色光,所以同样是黄色,它的来源可能有很多种,简要说一下什么是颜色之后,我们会发现,所谓声音,它和光一样,它也是一种波,只不过光是什么,光是电磁波,而声音呢。

声音是机械波,那么有波就有波长,有波长就有颜色,就是我们这样子,如果能做一下这样的类比的话,那么我们可以说声音也是具有颜色的,那么既然我们刚刚已经说,这个白光它是不同颜色的波长的光的混合,那么白声呢。

或者我们中间加一个噪子,因为类似于这样的声音其实很难被人所发出的,就人所自然当中以这种音乐的方式给出了,所以我们称它为噪声,那么白噪声是什么呢,那类一样的,它就是在一定频率范围内。

所有频率的声音的均匀混合,它就叫白噪声,因为我们知道所有频率的光的均匀混合,它会形成白光,所以所有频率的声音的均匀混合就会形成白噪声,两个比较常见的白噪声的例子。

比如电视机没有信号的时候会听见沙沙的声音,这是白噪声,或者在海边我们去听海浪拍俩岩石的声音,这也是白噪声,我们可以看到它的平谱图像右边这样,在不同的频段上,它的强度大概都是相同的,大致是相同的。

那么这种声音我们就称之为白噪声,那么从白噪声出发,我们自然可以形成粉噪声和蓝噪声,因为我们看这里是红橙黄绿青蓝紫,那么粉它显然是偏向于左侧,左侧是什么,是低频的,对吧,所以是低频强高频弱。

我们称它为粉噪声,而如果低频弱高频强,如果是这样的,我们就称它为蓝噪声,这种噪声我们就称之为蓝噪声,都是类比于光线当中的,好,那么广义的噪声,我们其实它广泛的存在于图像和视频当中,视频大家也许还好理解。

因为视频中也有声音,那么图像当中为什么也有噪声呢,就这里又经过了一次类比,就原来我们这个是光波,对吧,然后变成了声波,然后这个过程它是怎么又到图像当中去的呢,这个概念是在CV或者CG的领域当中。

我们常常用噪声这个词来指代一种具有一定随机性的扰动,或者我们称之为就一定随机性,某种随机分布,然后这样的噪声也就是基于这种随机分布生成的,因为不同的随机分布会使频域中有不同的特点,因此这个噪声具有颜色。

所以这里的逻辑是这样来的,它首先是从光学当中,不同波长的波具有不同的颜色,然后到,声学当中不同波长的声音也具有颜色,最后到我们的CG里面,我们在说图像视频的时候,它的其中的误差,它也可能会具有颜色。

然后这个时候我们说的波,或者说我们说的频谱,它要从哪来呢,比如说我们给了一张数字图像,一张m*n像素的数字图像,然后我记fxy表示它这个坐标位xy处的像素的强度。

然后我们可以对整个图像去做二维的複裂展开,展开完以后,我们称大Fuv的平方,我们这个东西它叫做功率谱,什么叫功率谱,就是现在大F的字面量小u小v,或者大P的字面量小u小v。

它本身都是某一种和谱和平谱相对应的,这样的一个参量,这就是大家概念性的理解一下就可以了,因为我们并不需要真的去掌握说如何对一个数字图像去做複裂分析,好,这时候我们来看一个很经典的问题,是叫图像的量化。

因为我们知道这个我们现在的显示技术当中,RGB一般我们在红色通道,绿色通道,蓝色通道,每个通道都有0~255,256种颜色,然后总共形成的颜色数量就是256的三方,然后这个数字它是相当大了。

所以我们一般都已经把这么多种颜色给看成是连续的了,就是颜色空间我们一般都把它能把它当成是连续的,但是假如我们的显示设备支持不了这么好的这样的显示的手段,我们显示设备只能在R通道上要么取255,要么取0。

在G通道上也是要么取255,要么取0,在B通道也是要么取255,要么取0,那么我们现在给你一个圆图,圆图是连续的一个照片,然后我们希望在某一个只能显示0或者255的。

这样的一个台显示设备上将圆图给显示出来,那怎么显示出来的结果是最接近圆图的,我们现在来讨论一下这个问题,那么,下面我们给出的这个A是圆图,而B呢,B是直接进行量化,什么叫直接进行量化。

就是我们来给一个我们每拿到一个RGB值,比如说126,我们就比一下,看它比这个127是大还是小,如果它我们看它是小于等于127,我们就置为0,如果我过来一个128,128是大于127的,我们就给1。

我们就这样把整个的0到255,这256种颜色里面的前128种算成0,后128种算成1,也就是255,如果我们去做这样的操作,我们就会得到B图,可以发现B图相对于A图,其实丢失了非常多的细节。

而我们现在要讨论的东西,就是我们如何通过某种方法,达到C的效果,我们可以看到C它也是一个,只支持显示0或255的,这样的一个显示的手段,但它显示出来的结果要比B更加接近于圆图。

而这个使得A圆图能转化为C,这样的一个效果的图,的算法就是我们和今天我们要说的这个主题,噪声是息息相关的,接下来我们来看一下,它是怎么联系起来的,我们先把问题给formalize一下,给定一张灰度图。

刚刚我们其实给了一个RGB的图,这个问题会相对难一些,现在我们给定一张灰度图,那么每个像素的亮度值呢,我们刚刚说0到255这256种是吧,现在我们干脆给它加强一下,就是0到1范围内的时数,0就是最暗的。

1就是最亮的,现在我们要把它显示在一台老式的显示设备上,在这台老式的显示设备上,每个像素,我要么取0,要么取1,要么取0要么取1,那么如何才能让显示的图像,在视觉上尽可能的接近圆图呢。

刚刚我们讨论的就是刚刚上一页当中给出的B的图片,它其实就是这个补助方案,我们把亮度小于等于0。5的像素都给显示成黑色,否则我们就把显示成白色,一种简单的解决方案是,有序抖动法。

所谓有序抖动法我们可以这样去看,假如我们显示器的分辨率是高于图像,比如说我们圆图的像素是,举个例子 圆图的像素是100100,而我们显示器的分辨率是300300,而显示器的每个像素只有0或1这两种。

这个时候我们怎么办,我们可以用3*3的显示像素来表示一个图像的像素,既然我们的显示能力就是0或者1,我们可以把某一块放在一起,它就有更多种的这种显示能力,比如说我们下面给出了,从0到9。

这不同的这种色块,然后我们用每个色块来表示图片当中的一个像素,怎么表示呢,怎么表示呢,如果图片当中,我发来一个圆图的像素是0。5,然后我们对应到显示器的像素,它是一个3*3的对吗。

我们是不是说这3*3的像素中,只要有大概一半的像素被填满,这个从远处看,它就比较接近于一个0。5亮度的像素的,那样一个效果,我们来比一下,这个的显示是什么,这个显示是0,对吧,这还是0。

这个显示这是1/9,这个2/9,3/9,4/9,我们发现是什么,我们发现这两个,就这种组合或者这种组合,它都在视觉上比较接近于0。5这个效果,对吗,所以我们如果拿来一个0。5,我们就给它要么是这个。

要么是这个就好,然后以此类推,后面是6/9,6/9,6/9,7/9,8/9,一直到1,每当我们拿到一个时数,因为每个像素它的亮度值都是一个0~1之间的时数,每当我们拿到一个时数。

我们就看它更接近于下面哪一种,然后我们取这一个3*3的色块,用它来表示这个圆图的像素就可以了,这个方法听起来很巧妙,对吗,但是,它虽然巧妙,但它需要显示器的分辨率是高于图像的,需要宽和高都是圆图的三倍。

如果宽和高,这个不是圆图的三倍怎么办呢,我们可以先看一下,刚刚我们所说的处理方案,它是如果我们要把它形式的写下来,它大概是什么样,它是说我们有这样一个矩阵,这个矩阵是写成这样,因为我们可以看到。

我们一开始最先填上颜色的是中间,所以它标成0,然后第二个填上颜色的是最左边,所以它变成1,然后第三个,我这样写可能更清楚一些,这是0,这是1,这是2,这是3,对吧,然后以此类推,我们这样填下去。

就会得到这个矩阵,所以它的意思是说,如果圆图像素的亮度值是大于等于mi,阶除以9的,那么相应显示的3*3像素的,第爱和第接列的亮度值,依否则取0,因为当我们拿来一个色块的时候,它都对应于一个圆图的像素。

比如说它都对应一个圆图的像素,比如ci阶,然后我们就看ci阶和mi阶之间的关系,如果它是大于等于mi阶除以9的,那么我们就给它亮度值取1,否则取0,好,那么,刚刚我们做的都是显示的像素。

比圆图的像素要高的情况,那么如果显示的分辨率和圆图的分辨率,是一致的呢,怎么办呢,那我们能不能这样做,我们不管三七二十一,我们就把圆图也做一个33的划分,比如说,圆图是一个有66像。

66像素的这样一个,像一个图片,66,这是圆图,我们现在把圆图给分成4块,每块都是一个33的阵列,对吧,我们把这每块的33阵列直接给它,拉到刚刚我们说的解决方案里。

我们直接去比较它在33阵列当中的,第几行第几列,然后去比较底下,去比较底下来决定它这里是,是填白还是填黑,这个方案相当于对圆图增加了一个,以33为周期的噪声,最后再进行二次化处理,对吗。

因为我们看圆图像素的亮度值,大于等于mij/9,如果它是大于等于这个数的,我们就质疑否则质领,而我们原来是看圆图像素的亮度值,是不是大于等于0。5,对吧,我们只不过是把0。5变成了mij/9。

而这里的mij/9,是从这上面这个矩阵来的,它看起来是完全没有规律的,就是0123的填法,看起来是完全没有规律,完全随机的,其实所以它最后就相当于,我们先对圆图增加了一个,以3*3为周期的噪声。

然后再进行二次化处理。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对吗,对我们可以给大家看一下,刚刚我们这么做的效果,首先最左侧依然是圆图,然后直接按0。5进行二次化处理,会得到第二个效果,这个效果也很艺术,对吧,但是它丢失了非常多的细节,我们现在根本看不清。

这个人物的面部特征,好,如果我们按有序抖动,就是刚刚我们说的,按3*3的阵列,然后都去依次加上一个对应的数,再做二次化处理,我们就会得到第三幅图,得到这幅图,这幅图的效果,是不是我们已经能够看清一点。

面部的特征了,然后如果我们不是用有序抖动法,而是我们在这个人物,图片的每一个像素上,都随机的增加一个值,之后再去做二次化处理,我们会得到这幅图,随机抖动的结果,这个结果看起来,就是,它非常像。

电视没有信号的时候的,那个雪花点,对,所以其实这个就是白噪声,我们一会会看它为什么是白噪声,然后,最后一个看起来效果最好的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

它是用蓝噪声的方法,去进行抖动之后得到的结果,好,现在我们用数学的形式,来表述一下,我们刚刚到底干了什么,就是我们是,如果我们,就我们刚刚在这里,提到的这个C图,也就是随机抖动法。

它就在数学上看是什么样的呢,我们先比较一下,我们不对它进行抖动,就直接去做,给定一个像素,然后,它是小于0。5就知0,大于0。5就知1,如果我们直接去判断,去做这样的操作的话,如果原图的某一个像素。

是小于0。5的,如果原图的某一个像素的大小,我们指它为C,C是小于0。5的,那么我不管这个C出现在,图片上的任何一个地方,也不管是我哪一次去做量化,我都会把这个C直接给知为0,对吧。

它是一个确定性的过程,这个C一定会变成0,所以说,对一个,C小于0。5的像素,它直接二之化后,期望的亮度就是0,因为它永远不可能产生1,所以从0到0。4999,它都会变成0,而且是确定的会变成0。

但是如果我们先把这个C,去加上一个,存在-0。5到0。5上的随机数,也就是说我们现在这个C变成了C+U,而U是一个,在-0。5到0。5上的随机数,如果是这样的话,我们再来看,这个,这个像素的。

得到的结果会变成它的期望是什么,我们这时候看这个EC8,它等于,我们现在来看,这个U,至多为多少的时候,它仍然是会得到0的结果,那么显然,这个U在-0。5到0。5-C这个区间内,我都会得到0,对吧。

因为我们就看C+U小于等于0。5,这个式子解释什么就可以了,我们解出来是U小于等于0。5-C,那么剩下的情况就是,返回的结果为1的,也就是从0。5-C一直到0。5,这个时候,我们叠加C把等于C+0。5。

这个东西的结果是返回是1,好,那么总之,由于这又是一个,在-0。5到0。5上均匀分布,它的概率密度函数就都是,取1,所以我们直接把这个积分算出来,就会得到期望,这个数学期望等于多少,它就等于C,很神奇。

对吧,我们只要在上面先盖上一个随机数,再取直接二次化处理的数学期望,我们就会发现期望等于它本身,然后我们可以看到,我们一般一张图片,它都有几百万几千万个像素,在像素点这么多的情况下,有一些像素取成了0。

有一些像素取成了1,但在随机意义下,一个同样大小,比如说在随机意义下,一个亮度为0。3的像素,不管,因为它可能会在图片当中,出现在很多个地方,都是亮度为0。3,在随机意义下。

它们这些像素做二次化处理之后的,期望仍然是0。3,因此我们只做了一个抖动,之后再进行二次化,反而能够看见,原来我们看不见的颜色,一直到这里大家有问题吗,好的没有问题的话,我们就接着往下说。

上述我们叠加的分布,它是均匀分布,因为我们叠加的是均匀分布的随机数,我们可以对它做负列分析,它产生的频谱,在各个频率上的强度,大概是相同的,也就是说我们产生了一个白噪声,我们相当于在原图上。

加了一个白噪声,然后之后再进行抖动,回到刚刚这个图,我们可以看到,白噪声它得到的效果,就你不能说它不好,就它比起你直接二次化,结果还是多反映了一些细节,使得你能够看见一些细节,但是它也模糊掉了一些。

使图像整体变得非常模糊,所以我们需要去考察,有没有什么方案来解决一下,这种这上面产生了这么多,这个白噪声的问题,那么人眼呢,是对低频信号敏感,它对高频信号是不敏感,人眼对低频信号敏感。

而蓝噪声它的高频信号是强的,而低频信号是弱的,从人的观感上来说,它是最符合人的需求的,但是蓝噪声,它的产生的算法,就相对来说没有那么简单了,因为蓝噪声对于空间频率是有要求的,我们刚刚看图片的弗利叶分析。

我们看到它的频率是空间频率,对吧,是根据跟按照你图像的像素,出现在这个空间的哪个位置有关,既然你的蓝噪声,是对空间频率有要求的,因此你不可能每个像素独立的去随机,你每个像素独立的去随机。

你随机出来的东西,它对空间频率一定也是无关的,所以我们不能每个像素独立去随机,也就是说如果我们想生成一个,满足蓝噪声的,这样一个分布的话,它需要一些特定的算法。

这个就超出了我们GEMS001课程的框架了,大家感兴趣的话,可以自己去看一下,图形学当中那些如何去生成蓝噪声的算法,总之生成的内容,可以看成是一张灰度的图像,然后我们可以用灰度的图像去抖动。

然后抖动完以后再进行量化,然后就能生成我们上一页看到的,比较好的结果,当然灰度图像有别于传统的灰度图像,因为它可能去复制,此外既然蓝噪声它是对人来说,是最符合人的需求的。

所以它也更适用于去做模拟渲染等任务,当中的采样,从某种意义上说蓝噪声生成的,这个序列就是我们后面会说到的,这个叫低差异序列,我们就往下看,来到蒙特卡洛积分的环节,在概率论当中,它可能整个概率论的课题。

对图形学当中,大家最容易接触到的就是蒙特卡洛积分,蒙特卡洛积分可能大家在一开始,接触概率概念的时候就有所了解,那个时候我们是用蒙特卡洛积分,来求解不规则图形的面积的,对吧,如何求解不规则图形的面积。

我们先在矩形的区域内去撒n个点,然后我们记落在图形内的数目是k,这里的绿点就是落在图形内,然后从概率上来说,这个图形的面积就等于n分之k乘上,矩形区域的面积,因为根据伯努利大数定律,当n趋向于无穷时。

这个a^3就是,区域真值的,这可以从我们上一节课所说的,内容当中去证明,那么我们把求不规则图形面积的,蒙特卡洛积分给它形式化一下,我们可以用它来求解一个,从a到b区间上的定积分,求解这一段上的定积分。

我们最简单的做法是矩形法,对吧,所谓矩形法就是我们先把,a到b这一段给它分成,n段,然后我们把每一段,在每一段取一个值,然后用这一段,用这个值就乘以这一段的程度,也就是b-a/n在这里,这个就不要了。

这个是个确定性的算法,因为我们在每一段当中,要取哪一个值都是确定的,这里它的值就是a+nb-ai,那么蒙特卡洛解法是什么意思,我们现在仍然是在a b上取一些值,然后用这些值去乘以区间的程度,但是。

这些值呢,是用某个分布产生的一个随机数系列,如果这个分布是均匀分布的话,解决方案就是,我们直接去用f(x,i),这就是我们先在a b上,这个区间上随便取一个点,然后看一下这个点的值是什么。

然后用这个值去乘以b-a,我们就假设这个值它就是,整个区间上每个值都等于这个,那这当然不对,我们就再取一次,我们会得到f(x,2)乘上b-a,然后再取一直取到f(x,n)乘以b-a。

然后我们看我们得到了n个值,对吧,这n个值很有可能不一样,那我们怎么办,我们把它平均一下,所以我们再除以n,这样就实现了一个最简单的,在一个区间上去求定积分的,蒙特卡罗算法,然后我们就会想。

刚刚这个都是均匀分布,对吧,那如果我们产生的,这个a b上的随机数,它不是一个均匀分布呢,它是任意的一个分布呢,那其实也很简单,刚刚这个均匀分布,a b上的均匀分布,它的概率密度函数是什么。

是b-a分之一,对吧,它写在哪呢,写在这,相当于我们把这个,概率密度函数给除掉了,现在我们把这个概率密度函数,给它放回来,我们把它放在这个地方,它就是f(x,2)除以,概率密度函数,我们写成pdf。

这是个缩写,写成这个东西,然后一直算一直算,把算出n个出来,仍然一样,加和去平均,这样我们就得到了一个,任意分布的,蒙特卡罗积分,好,现在我们来证明一下,这个任意分布的,蒙特卡罗积分,它为什么是对的。

我们也就是说,我们要求这个东西的,数学期望它等于多少,这个东西的数学期望,因为我们的x1一直到xn,都是在同一个概率分布下去取的,所以它的数学期望是,也就是说n分之一的过程,完全可以不要。

我们直接就是在求,这个东西的数学期望,这个东西的数学期望是什么呢,我们用数学期望的定义,就是在ab上,这个是随机变量,随机变量是f(x)除以pdf(x),然后取得随机变量的概率,是pdf(x)。

我们发现这个分母和这个因子,直接抵掉了对吧,它们俩相乘,剩下来就只剩f(x),也就正好变成这个东西,这东西是什么,就是我们要求的积分量,我们再来看这个东西的方差,这东西的方差呢。

类似我们先把n分之一给提出来,为什么我们提的是n分之一,不是n方分之一,就是这个方差的性质,我们可以在之前的上一节课,课程当中去找到,我们先把n分之一提出来,然后里面变成了,分子是f(x)i。

分母是pdf(x)i,然后我们再看这个方差的表达式,方差表达式是等于什么,方差我们我回忆一下,方差的表达式是,e(x)2-e2(x),对吧,e(x)2是什么,e(x)2是。

f2(x)i/pdf2(x)i,再乘以pdf(x),就是这个,对它积分,再减去e2(x),刚刚e(x)我们求出来是i,所以e2(x)就是-i^2,这东西等于什么我不知道,但是我们发现。

它是正比于n分之一的,这说明什么呢,说明蒙特卡洛积分法的收敛速率,是√n分之一的,因为这里求的是方差,而收敛速率我们一般看的是什么,看的是物差,或者说是标准差,也就是σ,σ是√n分之一这个级别。

也就是我们如果希望将,蒙特卡洛积分的物差降到原来的,初始的√n倍的,应该这么说,如果我们希望将蒙特卡洛积分的,物差降低两倍的话,我们需要干什么,我们需要增加4倍的采样量,也就是4倍的采样,会怎么样呢。

会得到1/2的物差,这个收敛速率相对来说,还是有一点慢的,对吧,那么怎么去提升呢,我们因为我们发现,其实蒙特卡洛积分,因为它是一个随机算法,这个随机算法,希望它能够很快的接近真值。

那么就是它只要它方差小就可以了,只要它方差小,就可以很快的接近真值,所以我们刚刚既然发现,我们总是取得某一个随机数,然后取它的函数值,再除以这一点的概率密度值的话,那么,决定收敛性的。

除了1/n就只剩PDFx了,对吧,因为别的都是已知量,f方小f方x或者积分的结果,i方都是不能变的,所以我们唯一能变的,就是这个PDFx,怎么取呢,一个直观的猜测是,a小fx比较大的地方。

我们就大概率取,小fx比较小的地方,我们就小概率取对吧,是不是这样呢,是那当然是这样,这有个定理,这个定理也就是佐证了,我们要讲的蒙特卡洛积分的,另一个很重要的特质,就是重要性采样,这个算法。

这个定理是说,当小fx与PDFx是形状相同的时候,蒙特卡洛积分的方差直接为0,我们来证明一下这件事,什么叫形状相同,也就是说PDFx,永远等于fx的k,被k是一个乘数,那么,由于从a到b区间内。

PDFx它的积分,概率密度函数的积分是1,因为总概率是1,我们会得到k就等于1/2,因为我们可以把这里用k乘以fx,给它代进去,我们代进去就会推导出k等于1/2,好,现在我们再来看这个东西的方差。

这东西的方差是什么呢,这个蒙特卡洛积分算法的方差是什么呢,展开得到这个式子,左边的f^2x/PDFx,变成了什么,变成了小fx/k,k是什么,k是1/i,所以它就变成了i乘上a到bfxdx,这是什么呀。

这就是i2对吧,那么i2-i^2,方差是不是为0,也就是说,结论是,小fx/PDFx越平稳,什么叫平稳,它干最好是一条水平线,越平稳,蒙特卡洛积分的方差就越小,也就是说它的收敛速度越快。

我们来考虑这个结论带来的两个问题,第一个问题,方差为0意味着什么,方差为0意味着我们只需要,采样一次就能算出这个积分的结果,对不对,这件事情它合理吗,为什么我们只采样一次,它就能算出这个积分的结果。

为什么方差可以为0,因为我们刚刚要求了fx与PDFx形状相同,你既然要求了它形状相同,你的PDFx和fx之间就是一个正比例关系,而根据这个正比例关系,你其实是知道这个k值,你必须算出这个k值,换句话说。

我们必须知道,我们必须令这个东西等于1,因为这样它才是一个合理的概率密度函数,你在思考,我们在计算这个东西的时候,你是不是自然的把积分给算出来了,因为PDFx又同时等于k。fx。

如果你都能够把这个东西给,你都能知道某一个点的PDFx等于什么了,你一定做了这个规律法,就是说你一定已经把这个k算出来,你把这个k算出来了,就意味着你一定已经把r算出来,也就是说。

但凡你存在一个和fx形状相同的PDFx,都意味着你已经把积分算出来了,这个东西是你已知的东西,所以方差可以为0,问题2,为什么要求fx在积分区间上是非负的,如果有负数怎么办。

刚刚我们是在讨论这个问题的时候,我们设了小fx在AV上总是不小一点,为什么我们要求它是非负的,因为我看我们刚刚在推导的过程当中,我们是要求PDFx永远和fx之间差的是一个,正比例关系。

如果你的k是取负值会怎么样,或者说如果你的fx是取一个负值会怎么样,你就会出现某一个点,取这个点的概率是负的对吧,会出现这种情况,所以如果有负数的话,摩特卡罗积分会,就是重要性采样的定理。

上面我们定理它是不成立的,所以有负数是个open problem,有一些siggraph的文章就去讨论说,一些特定的渲染场景里面,我们会出现负数,这个时候该怎么办,这个问题有一些文章就是在研究这个。

好我们今天当然就从最基本的开始讲了,那么刚刚我们证明的定理,它要求是说,它是说这个性状完全相同的时候方差为零,我们刚刚也说这意味着,你其实已经把积分算出来了,但绝大部分情况下,你其实算不出来积分的。

或者说你都算出来积分了,你还要做摩特卡罗积分干嘛呢,所以我们来举一个最简单的例子,比如说我们在0~2π上去积分sinx,是右边这幅图的红线,这个红线是个sinx,然后现在我们有两个不同的概率密度函数。

第一个是在02π上面的均匀分布,也就是说pdf1是2%,第二个这个曲线是在02π上,满足pdfx=πx/π^2的这样一个曲线,这曲线是右边的蓝色图线,是这个,那么用这两个概率密度函数。

谁去做摩特卡罗积分的时候,说脸速度更快呢,我们就肉眼判断一下,因为我们是要把fx和pdfx相除的,那么所以这个pdfx肯定是和fx越接近越好,也就是说显然是用蓝色的这个概率密度函数。

去做这个重要性采样要更好,好,最后我们再来看一下,蒙特卡罗积分当中的拟蒙特卡罗法,为什么说是拟蒙特卡罗法呢,因为蒙特卡罗法是建立在纯随机的基础上,而纯随机的采样非常容易产生聚集,比如说在右边的这个图上。

我们是求一个e位的积分,然后我们要撒6个点,我们看法撒了这6个点非常不均匀,这6个点三个,这6个都在一个很偏很高的位置,都在这个2附近,但实际上这个整个函数有非常小的值,但我们就是正好没有采样到。

所以为了解决这个问题,我们在实践当中常常去采用分层采样法,什么是分层采样法,就是我们先划分一个区间,再在每个区间内去做随机,比如说右边右下角,我们先把上面这个函数给它划分成,若干个区间。

这个区间这个区间这个区间,然后我们在每个区间内随机取一点,每个区间内随机取一点,这东西怎么是不是有点像回归到,我们一开始说去估算定积分的这个矩形法,它是有一点像,但现在唯一的区别就是。

我们原来在每个矩形的时候,我们可能都取这个矩形的终点的值,但现在我们可以看到,我们不一定要取这一段的终点,我们可以取在比较歪的地方,就是说我们在每个区间内随机取一个点,他也就是说他兼具了。

我们刚刚说的这个矩形法,和蒙特卡罗法的优点,我们相当于把这两个东西给binding起来,所以我们叫它拟蒙特卡罗法,或者我们又把用这样的方式去做出来的,这种分层采样的结果,称之为低差异序列。

什么叫低差异序列,差异就是对刚刚我们说的聚集的,它的反义词,低差异序列是说,我们去算下列两个量之差的最大值,首先我们在要积分的区间内,认取一个子区间,这个子区间和总区间长度,它会有一个比值。

然后我们看该子区间内,采样数和总采样数之间,它又有一个比值,我们把这两个比值相减,我们希望这两个值相减的差,它的最大值尽量的小,这个说法非常的拗口,但是总之它会产生一个,它在逻辑上会产生一个。

更近似于分层采样的结果,而不是一个纯随机的结果,因为分层采样能保证,在每一个区间内,它至少都会产生,每一个划分的区间内,它都至少产生一个点,而纯随机的方法,完全不保证这一点,在整个20世纪当中。

大家在研究随机性算法的时候,已经发现了很多,这样的低差异序列,以一为为例,最简单的就是,这个vendor-coopted序列,我们叫它VC序列,这个VC序列,它是怎么做的,它其实非常的简单。

比如说我们在实境之下数数,先算1234一直到9,对吧,这是个位数,个位数它的高位是什么,它的,它比它大的,静置的底数是10,所以我们就1/10,2/10,这样一直到9/10,就0。1一直到0。2,0。

3一直到0。9,然后区别从什么,区别从10开始,某数数数到10,比10大的实境之下,底数是100,这时候我们把10的分子,和分母颠倒一下,变成01,然后01/100,等于0。01,然后我们再数11。

因为11的个位和实位是一样的,所以它还是产生0。11,我们再看12,12我们把个位跟实位颠倒,变成21,然后21%,0。21,以此类推,一直到100,我们数数数到100。

100比它大的实境之底数是1000,我们把100颠倒,变成001,001/1000,是0。001,然后类似的0。101,0。20,这个产生的VC系列,就是一个低差异系列,在数学上可以证明。

它的差异会有一个上限,而且这个算法是可以,它是迭代的往下去做的,我们产生前100个系列,长度为101的VC系列,是长度为100的VC系列,直接在后面补一个数,这个性质也非常的方便,好。

那么刚刚我们给出了一个,一维的低差异系列,现在我们想看高维的低差异系列,该怎么产生的,我们把K进制下的,一维的VC系列,记为GKI,因为我们刚刚给的,其实是一个实境制的,VC系列的产生方法。

就是这个数数的方法,K进制是一样的,K进制是一样的,就比如说三进制,你就是1/3 2/3,然后什么,就是0/3 1/3 2/3,9/3,这种,往下走,我们GK进制下的,一维VC系列是GKI。

然后我们就可以去制造一个,高维的Horton系列,Horton系列是怎么做呢,我们找出n个这样的进制,找出n个进制,从B1一直到Bn,要求进制的底数都是互制的,比如说我们取质数的系列,2 3 5 7。

往下走,我们要求它们互制的,然后我每次产生,比如说x方向,它就是GB1I,Y方向就是GB2I,然后Z方向就是GB3I,这样我们就会产生一个,三维空间当中的一个点,然后这个点,它的每一个维度。

都是一个VC系列,它整个这些点的系列,被称为Horton系列,以二维维利,我们产生的Horton系列,大概就长这样,长这样,我们发现它很少聚集,对吧,它不是那种白噪声的那种感觉,它没有很多点对在一起。

这种情况,用这个方法去采样,而不是用纯随机的方法去采样,所产生的,蒙特卡罗算法的收敛速率,是n分之一作为底数,而不是我们刚刚说的,根号n分之一,快了很多,对吧,然后类似的。

我们可以去造这个Harmony-Sleep系列,它唯一的区别在于,我们把刚刚我们是每一个维度,都是一个一维的VC系列,现在我们把第一个维度,不让它随机,第一个维度,干脆就定义成n分之二。

然后第二个维度让它随机,从第二个维度往后让它随机,这个叫Harmony-Sleep系列,但它的相比于Horton系列,不方便的地方在于,我们需要提前给定总采样数,它不能迭代的往上去扔碟。

它必须提前去决定采样数的数目,用这个方式制造的二维的序列,长这个样子,我们可以看到它比Horton系列,确实还要差异更小一些,对吧,可以看到它聚集更少一些,而且更均匀一些。

这个是Harmony-Sleep系列,然后它的收敛速率是n,仍然是n分之一做底数,然后分子的次幂,它比它降了一下,就都是log n,分子都是一个log n的多少次幂,然后Horton系列的次幂是n。

然后而Harmony-Sleep这个次幂是n-1,这个n是维度,比如说在三维下,这就是三,这就是二,也就是说Harmony-Sleep系列,要稍微优于Horton系列,但是因为它要提前给定采样数。

所以有时候会造成一定的困扰,在图形学当中,大家可以去看那些渲染的框架,比如说PBRT,比如说米苏吧,他们在真正的实现渲染算法的时候,基本上用的都是用Horton系列,产生的随机数,而不是一个真正的。

在一个空间内去分布上去随机数,它的优势就在于此,好,最后我们来看一个问题,就是如何产生一个随机数,当然我们并不是说,我们需要从数论的原理上,去跟大家讲怎么产生一个,01上的均匀分布的,伪随机数生成器。

这也不是图形学的内容,我们假设我们已知计算机,可以在数论的基础上,实现一个0~1上的均匀分布的,伪随机数生成器,然后现在我们希望解决的问题是,我们拿到这么样一个随机数生成器,我们怎么在一个单位球面上。

进行随机均匀采样,这个问题还蛮重要的,因为我们,比如说去做路径追踪,光线追踪PathTracing的时候,你是不是有个入射角,一个出射角,我们得采样你的入射角,或者采样你的出射角,对吧。

你采样入射角出射角,都是在一个半球面上去采样,我们希望这个采样怎样的均匀,也就是我们必须面临一个,怎么在单位球面上,进行随机均匀采样的问题,这里我们给出了这种4种做法,然后其中就每种做法。

都各有自己的优势,我们简要来看一下这4种做法,分别是怎么去做的,第一种做法最简单,是拒结采样法,也就是说我们,比如说我们要生成一个二维的圆,圆周上的随机数,我们先怎么办呢,我们生成矩形内的随机数。

这个矩形内的随机数,就是一个-1到+1,然后平方这个之内的,二维的一个,坐标,它上面每个点的坐标,我们都可以把它看成是两个随机数组成,然后U1你直接均匀分母,随机数生成器生成,U2你也这么生成就完事了。

我们这样就可以生成一个,在矩形内的随机点了,但在矩形内的随机点,有的在圆内,有的在圆外对吧,你在圆内的概率是什么,你在圆内的概率是πr^2,或者说就是π/4π,比较大,这个数值比较大。

应该已经在接近于80%左右,有80%你这样产生的随机数,都在圆内,但是也有可能它在圆外,如果在圆外,我们就直接扔掉,我们不要这个随机,否则我们就相当于先生成了,一个在圆内的随机点,对吧,而且是均匀的。

否则我们再把生成的这些随机点,给一个个全部都投影到,从周围从圆心开始,投影到这个面上,投影到周围上,这样做我们可以保证,最后会生成一个,在单位圆上的均匀随机采样,但是这个方法有一定的弊端。

就是你生成这个随机点的过程,并且不再从内就丢弃这个过程,会浪费很多的计算资源,而且如果你的运气非常的差的话,你可能一个能用的都没有,你产生的所有的点都被你丢掉了,所以有没有一些确定性的方案。

我们能不能不用拒绝采样这个方法,也可以,其实大家最容易想到的,可能是三角函数变换法,这个方法是说,比如说这个方法,对三维的特化是这样,三维的球面上的值,我们一般是用这个求做标来表示,求做标会有两个角。

对吧,两个角,一个θ一个φ,然后,我们想看的是什么,我们想看的是,我们变θ,会增加多少面积,变φ又会增加多少面积,大家学过高等数学都知道,面积微元是什么,是αsinθ,然后dθdφ,换句话说。

对于φ来说是个均匀的,也就是不管你的φ去多少,也就是我们假设θ不变,去改变φ的话,不管φ在哪里,它的概率密度函数都差不多,都是一样的,也就是,因为,你的φ可以去0~rπ。

而U2生成的是个0 1之上的随机数,我们直接对它乘以rπ,就会得到φ,好,这个问题就解决了,现在我们关键是要去看θ,这个θ,它是一个什么,它是个0~π之间的数,我们看在φ不变的情况下,去改变θ。

它会改变多少面积,也就是我们可以这样去看,我们从0去积分,积分到某一个θ,我们可以去算这么一个积分,这积分等于什么呢,它等于,-cosθ,然后一个去θ,0一个去0,这是什么呢,这是1-cosθ0。

也就是说你的面积,你从,极坐标的顶开始,球坐标的顶开始一直往下去算,你产生的圆周的面积,相对于θ的变化率是这个,是1-cosθ0,也就是我们的理想情况,应该是这个东西,它是一个随机数,这个分布函数。

这个累积的分布面积分布函数,它是一个随机数,我们像这个东西,对我们像这个东西是,但它前面其实应该还有一个系数,这前面其实还应该有一个系数,为什么有这个系数,因为从0到π去做积分。

应该如果我们要把它变成分布函数的话,就是从0到π去做积分,从0到π去做积分,最初它的值是2,我们要给它归一化,所以前面还要乘一个1/2,也就是说我们希望这个东西,它是一个分布函数。

所以我们要令这个东西等于,一个随机数,变换一下就会变成,1-cosθ=2u1,也就是θ要等于什么,θ=arccos(1-2u1),就是这个东西,θ=arccos(1-2u1),这样我们就也实现了一个。

在球面上的随机均匀采样,是用这个分布函数来推导,然后第三种方案相对来说,就比较巧妙了,它是利用了我们上节课说到的,高斯分布的一个性质,我们高斯分布有一个非常好的性质,就是我们产生一个二维的高斯分布。

它在任何一个方向上去看,它都是一个高斯分布,也就是如果我们有一个随机变量,这个随机变量我们叫它V吧,V1和V2都是满足高斯分布的话,我们把这个随机变量去点成,任何一个方向向量,它也依然是一个高斯分布。

所以我们可以做的事情,就是我们现在每个方向上都去生成一个,我们生成一个n维的高斯分布,比如V1 V2三维里面就V1 V2 V3,这是一个高斯分布,然后它在每个方向上都是一个相同的高斯分布。

所以我们可以把高维的高斯分布,给它投影到一个球面上,它依然也是均匀的,这个方法很巧妙,但是它唯一的问题在于,生成高斯分布本身并没有那么容易,它需要用Bokes-Muller变换。

就是说我们先要从一个均匀的分布开始,去得到一个二维的高斯分布,然后再从二维的高斯分布出发,去得到一个任意维的高斯分布,大家可能会奇怪,为什么从均匀分布开始,要先得到一个二维的高斯分布。

因为高斯分布的分布函数,是一个超越函数,它是没办法积出来的,所以为了简便计算,我们一般会选择一个二维的高斯分布,因为这时候它的累积分布函数,不再是一个超越函数了,有关Bokes-Muller变换的内容。

大家可以自己去课后去了解一下,但是总之这个方案就是,我们可以先生成二维的高斯分布,再把二维高斯分布变成任意维的高斯分布,然后生成二维高斯分布的方法,我们这里也直接给出了,就是我们先给拿到了一个。

0以上的随机变量这件事情,U1 U2分别都是0以上的随机变量,然后-2 log(1-U1)乘上cos(2*U2),会得到第一个满足高斯分布的随机变量,然后乘以sin会得到,第二个满足高斯分布的随机变量。

最后一种在球面上进行,随机进行采样的方法,比较的看起来比较的麻烦,但实际上实现起来的效率,甚至比前面的某些方法还要高,它的做法大体上来说,是我们先用一个拒绝采样,去产生一个圆盘,就是刚刚我们说的。

在一个矩形当中,我们先用拒绝采样去产生一个圆盘,再用这个圆盘给它进行变换得到一个球,这个过程的好处是,它从头到尾不涉及三角函数因算,我们可以看到三角这个方法,这个方法有Rcos。

这个方法有cos和sin,而基于圆盘的方法,圆盘倒球的方法,它从头到尾不会产生任何的三角函数因算,所以它速度反而很快,这件事情大家可能会问,就是说你既然都已经用了拒绝采样了,你为什么不直接让它在球面上。

生成一个-1到+1这里写3,然后再把它投影到球面上,而你非要先把它生成到圆盘,然后再用圆盘给映射成一个球,这个问题就在于我们刚刚给出了,在一个矩形一个正方形内,去拒绝采样产生一个圆内的概率是80%左右。

而如果是一个球内,它会变成,它变成这个概率,也就是在这个地方的分母上,乘了2,但在分子上,乘了4/3,你知道4/3是小于2,也就是说总共我们把概率乘了个2/3,现在我们直接在一个球内产生。

在一个正方体内产生一个随机数,它在球内的概率只有80%乘以2/3,所以概率要已经不足,应该说是已经快不足一半了,对吧,已经快不足一半了,所以我们先产生一个圆盘,它的好处在于你扔掉用拒绝采样。

扔掉的点它会比直接产生球内的随机数要少得多,对以上就是关于如何在单位球上,进行随机均匀采样的这种不同的思路,然后这些思路其实实现的细节,2/3两种已经给出了,就直接照抄这个式子就可以了。

然后第4种映射的方法受限于,它要写很长,大家可以自己去看一下,好的,而以上就是我们概率论部分课程的第二节课内容,我们今天这节课是有作业了,然后作业会在后续在我们的课程网上发布。

然后到时发布之后会在qq群里通知大家,今天我们的课就到此为止,然后大家有什么问题吗,好,如果大家没有问题的话,我们就下节课再见,下节课讲的内容应该是常论的初步,好。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

谢谢大家,由 Amara。org 社群提供的字幕。

GAMES002-图形学研发基础工具 - P1:Linux + shell - GAMES-Webinar - BV1cC411L7uG

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

好的那我们就开始上课了哈,同学们晚上好啊,今天很高兴有机会跟大家见面哈,今天是games0。2的第一课啊,我前面呢稍微做一个简单的介绍,呃,我是陈宝泉,来自北京大学。

然后games002这个课呢是由我和辛金瑞,叶开两位同学呢一起来啊上课,但是实际上呢我主要是今天开头哈,然后接下来是金瑞呢和叶开两位同学呢主讲啊,呃我先开一个头呢,是因为这个课吧是和科研有关系哈。

那么科研这个事情呢在大学里面作为大学生啊,啊也不是每个同学都做的事情啊,这个都是凭自己个人的兴趣啊,呃对于科研呢对大学同学来说呢,呃也都非常的神秘啊,呃所以呢在北大呢,我们就还专门开了一门课来讲。

就是教科研实践的课啊,来讲呢关于科研是什么,然后科研的一些基本的这个呃能力的培养啊,我们也还安排一些这个方法呢,来加强了这个同学们的这个科研的训练等等啊,呃那科研到底是是什么啊。

我觉得科研除了大家这个啊这个了解到的这种,它是一种科学发现对吧的这样的一个过程啊,呃但是呢实际上啊,科研呢它也是一种自我训练的方式啊,他是对自己能力上的一个培养啊,当然就是说我们所看到的像科学家对吧。

他们把这个科研呢作为一个职业啊,这个大家也是这个啊得到很多的一些故事啊,其实科研呢啊对很多人来说哈,就说不只是科学家哈,以科研为职业的啊,它其实是一个生活方式啊,就是它其实是可以渗透到。

渗透到我们生活中的方方面面啊,那对于我们啊以科研为职业的人来说呢,那更加是一种生活方式啊,其实他从很多的时候啊,培养我们怎么去思考问题,面对问题啊,去解决问题等等啊,啊所以呢我觉得哈在本科期间。

如果能够参与一定的科研的这个实践的活动啊,还是非常的有收益的啊,当然我们这门课呢不是针对这个科研的这个,方方面面啊,而是说提供了一定的工具啊,但是呢我前面呢先呢,把这个这个这个课的这个来由吧。

啊来给大家讲一讲啊,呃其实这个科研工具的这个介绍啊,它是我们这个科研实践课的一部分啊,啊我们在北大呢有一门课叫科研实践,这个课呢是我开的啊,我教的啊,其实他有两个学期的时间啊。

呃但是主要的这个在第一个学期呀,他的这个课程的内容呢大概分为这么几块啊,也让大家感受一下,就是说到底科研呢涉及到哪些方面啊,呃其实这里花花绿绿的颜色哈,主要有四大块,咱们把最后那个C3呢去掉呢。

其实就三大块啊,呃一大块呢就是C1呢就是讲科研的方法啊,这个是主要是我来讲C2呢,就是讲科研的工具啊,你要进入到科研,那你可能先要掌握一些相应的工具啊,你才可以上手比较,或者说比较容易的上手啊。

啊总的来说就是把科研的门槛降低,让大家比较顺滑的能够进去啊,还有第三块呢就是这个A的哈,就是我们的科研导师和学生们的面对面的交流,这样的让学生呢对啊,我们有一批科研导师对吧啊,来讲各个科研方向啊。

他的这个科研的这个一些问题啊,这学生呢能够对这个这个研究领域,不同的问题有个很好的了解,不同的导师有个好的了解啊,这个A的部分基本上就是导师进课堂啊,这样的一个方式,这样就能够啊学生和导师之间啊。

能形成一个一对一啊的这个交流啊,未来呢他可以选择去香烟导师的实验室,去比较长期的这个啊去实习啊,呃整个这一套方式呢,实际上呢就是这门课,就通过这样的一些这个内容吧。

啊让大学的本科的同学从大二开始就能够呃,如果你对科研呢想了解,如果你想去啊进入科研实践啊,比较方便一点啊,我们通过一个课的方式啊,来做这样的一个这个相互的连接啊,当然你如果不上这门课,没有这样的一门课。

其实也没有关系啊,我这里说到的这些元素,你自己其实也可以去发现啊,导师呢你也自己可以去主动的联络啊,啊像涉及到的科研的工具啊,像这一门课,大家呢通过这一门课,那也是啊就有所了解啊。

其实呢只要你主动啊有这个意识,其实是不是有这门课也没有关系啊,但是呢就是说我这边呢,就是一个总体上的一个介绍,那么我可以看一下哈,大概在讲这个科研的一些方法呀,涉及到的一些这个呃素养啊。

这个方面呢到底讲些什么样的东东西哈,其实大概就是这样的一些东西,首先科研它作为一种所谓的生活方式,那我们需要心理上心态上是什么样子的,那在我们做科研之前,我们会其实是需要了解,做科研呢他是有责任的啊。

他是也涉及到科研的道德这些方面啊,其实也是需要提前有所了解,当然我们做科研的话,这个阅读的能力很重要啊,阅读和写作这个科技论文吧,啊或者说科技报告这这个能力呢很重要啊,那怎么样。

这也是通过其实一些啊讨论啊,经验的分享啊,其实网络上也有很多相应的这样的一些文章啊,去阅读啊啊一些经验对吧,分享的文章其实都挺多的啊,其实大家也可以有意识的去了解啊。

还有呢一个特别重要的一点就是科研的交流啊,就是其实科研的过程,它不是一个人关起门来闭门造车啊,它实际上是要不断的和别人去讨论沟通,然后当你有了成果以后,其实你也需要去展示你的成果啊,所以怎么去做交流。

怎么去做报告,其实这些呢都是涉及到一些能力的培养啊,啊其实在我们课堂上,大概就有这样的一些啊讨论的主题吧,啊我可能会分享一些文章啊,比如说我大概列了这些对吧,其实关于科研。

我有一个针对这个suddenly教授的一个反弹啊,图灵奖获得者,还有一个一篇啊,在网络上可能是特别经典的啊,一个一个报告啊,他是richard hamming啊写的,他的报告其实从他的报告总结的哈。

他就是你和你的研究啊,其实你去网络上一查找啊,这个文章就会出来,这个是一个非常经典的一个报告啊,啊这个你可以读读他的这个脚本啊,就是报告的这个啊,总结是应该可以获得很多收益的啊。

我们课堂上会分享这个文章,然后跟大家一起讨论啊,然后就像社会的责任啊,科研的伦理啊,这些方面也有些文章的阅读,大家也会来课堂上去讨论一下啊,呃作为各位你感兴趣,你也可以读出相应的文章。

和同学们互相之间讨论啊,主动对吧啊,不见得是在课堂上啊,你可以在课外啊啊这个兴趣小组啊这样的啊,其他就是文献阅读写作啊,沟通交流啊等等啊,这个方面呢有很多一些非常好的课件也好,或者是资料也好。

其实大家都可以去啊查找啊,这个我也列了这个,比如说像哈佛大学的这个,这个已经刚刚刚刚过世的哈,这个温斯顿教授哈,他有一个非常经典的报告啊,这怎么这个这个给报告啊,啊这个呃这方面的一些经验的分享啊。

非常的好,非常值得去去啊,听一下啊,然后呢第二部分呢就是我说的啊这个工具啊,其实呢在我们大学的这个呃课程学习当中啊,呃我们学到很多的知识,但是呢面对科研呢,那可能我们有一些啊工具啊。

不见得是在我们学的这些课程中啊,可能都这个都覆盖了啊,对但是像Python啊这样的东西哈,这个还是覆盖了哈,但是有一些这个很多的工具呢,是没有被啊覆盖啊,没有讲到,或者说没有足够的锻炼吧。

啊那这些东西呢是有必要把它拎出来啊,我们来做这么多分享,这也是我们的games,002这个课的一个主要的内容啊,其实在这个在这个这些内容的这个总结的时候,一方面是我们同学们的平常哈。

这个呃总结一方面呢还有一个参考,就是MIT有门课哈,它就是讲的是这个Missing semester of your cs education啊,就是你的cs课程中间可能会啊。

错过了的一个小学期的内容啊,大概说的呢是这么个意思啊,大家也可以去搜索啊,去了解一些材料啊,啊然后前面我说到了科研实践涉及到的哈,第三部分呢其实就是你啊具体要做科研,你要找到一位科研导师啊。

呃因为你可能是对某一个方向感兴趣嘛,对吧啊,这个那这个方向呢,可能不同的方向就有不同的老师,做这方面的研究啊,那你就寻找科研导师,这个非常重要啊,因为那导师的话他有很多的条件,不只是他有些经验啊。

他能给你分享一些问题啊,啊另外呢在实验室它有一些这个条件,设备啊,计算的资源啊,各个方面啊,呃同时呢一般来说导师还有学生嘛,有这个研究生啊,他们呢也可以共同啊来指导你啊。

所以这个寻找科研导师是个很重要的事情啊,然后当然就是你要实践啊,这个只有在实践当中啊,你才能是啊更好的学习啊,就是你那学学的就学到真东西啊,对啊这叫learn by doing啊,要边做边学啊。

这个在学的牢,这个是和课堂的学习呢非常不一样的啊,所以这点呢也特别的重要啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其实大概主要是这些,那么我们也都知道这个啊,呃所谓的站得高望得远啊,那么这个这个这有句名言在这啊,大家可能都听过对吧啊,如果你看得远,是因为你站在巨人的肩膀上啊,确实是这样啊,甭管说是巨人还是多高的人。

总的来说你能站在他的肩膀上啊,肩膀上呢你就能够看得更远,这个是非常重要的啊,我们每每一个这个阶段的科研的实践啊,啊经历啊,其实都是帮助我们不断的去站在更高,去看得更远啊,所以啊寻找这样的肩膀啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其实变得特别的重要哈,那这样的肩膀啊其实挺多的哈,除了我们啊经常可能会认为说导师对吧,其实还有很多啊,有非常多的这个,这个你都是可以站在他们的肩膀上啊,比如说导师的合作者对吧,不只是这个导师。

还有导师的合作者啊,比如说他来访问啊或者什么的啊,还有就是导师课题组的这个呃学长学姐啊,这些他们都是能给你一手的这个啊一些经验啊,或者指导,还有就是你的同学啊,其实三人行必有我师,这个是一点都不假啊。

所以呢你如果说有一个很好的一个同学团队啊,相互之间啊其实是可以学到很多的啊,当然你还可以把眼界放开一点啊,有很多的这个来访的这个这个杰出的一些啊,讲者学者啊,甚至你如果后来慢慢的对吧。

你也能够去参加一些国际会议,那么在国际会议那里就认识到同行,这个领域里面的啊非常优秀的学者对吧啊,一个很重要的事,就说如果你未来更多的投入到科研当中,你会发现每一个方向都会有它的一个社区啊。

对他有个community,这个社区就很多了对吧,如果是国内,它就是所谓的专业委员会啊,比如说你是做图形的,大家有图形方面的这个专业委员会啊,那么在国际上它有这个爱处不易啊。

ACM呢都有相应的这个不同的学科方向的,这样的一些社区啊,当然你去会议,实际上这个会议呢自然就构成了一个社区啊,就一去参会,那见到的都是你的同行啊,那这样的一个同行呢就是一个社区,这个是非常有意义的啊。

你都可以从他们的身上去,学到很多的这个经验啊,啊我特别的强调这个在科研的当中啊,交流特别的重要啊,就是各种各样的交流啊,就是你有想法啊,或者想法不成熟的时候,哎你需要跟人家交流。

把这个想法变得更加清楚啊,你有了一个比较清楚的想法,但是怎么解决啊,或者说一个提出一个一个很有意义的问题,怎么去解决这个问题啊,那你也需要跟大家交流交流对吧啊,其实不是说你有成熟的这个想法和解决方案。

你才去跟人家分享,其实不是这样的啊,这个分享的是他是这个发行问题啊,啊发现解决方案的一个过程啊,他绝对不是只是最后的一个结果的呈现啊,所以这个呢我是基本上作为啊,如果和本科生谈科研的话啊。

或者说在我的科研实践课上,我应该用的最多的这个经历呢,就是鼓励大家交流啊,帮助大家来建立一个交流的意识啊,呃这个其实非常非常非常的重要啊,它和课堂的学习不一样,课堂的学习你就是认真听讲对吧。

然后自己能够独立完成作业就很好啊,其实即使是在课程学习当中啊,交流啊也是变得很重要啊,这个而且呢我是鼓励这个啊,就是随时随地的交流,我我说哈啊这里故意画了用了这两个照片。

其实一个就说哎我们吃饭的时候也可以交流啊,对不对,我们吃饭的时候不只是说这个说点娱乐啊,八卦呀或者是什么的哈,其实有些时候如果说你是在科研这个状态,其实也可以,大家就聊一聊科研中遇到的一些问题。

其实可能在吃饭的时候突然有些灵感哈,这个在一种放松的状态啊,还有就是在走廊上碰着我们叫,How we how we conversation,就是走廊啊,走廊上走着走着碰着诶。

我最近有什么好的想法跟你交流一下,哎这两人就聊上了对吧,哎三言两语就把你的脑子里面的问题描述一下,其实所有的这些都是特别重要的啊,这个这个对科研很有帮助的,这样的一些小的行为,但是呢它其实并不小啊。

那如果说这个科研,那么我就说到就是实际上科研做科研啊,他需要一个很好的环境,他也需要一个好的文化啊,但你要说环境和文化可能是现有的对吧,但是实际上呢这个科研的环境和文化呢,是是每一个身处其中的人啊。

他都是能够参与去构建的啊,或者是改变的啊,这个呢其实我也啊,特别愿意在这个方面跟大家去分享一下啊,这下面呢有几页这个这个这个PPT呀,也是我啊就喜欢拿来这个说啊,这种在我们科研的文化呀。

这个这个文化意识上啊,其实有些时候我们是需要打开我们的一些,使既有的这种思维和行为的啊方式啊,呃呃这样的一些方式呢,是对你的科研是有益的哈啊那要打开这个方式,那我们首先认识到一些不足。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

或者说有些对比啊,那这里呢我借用了一位这个在德国的这个呃,华裔啊,这个这个一个女生啊,她呢用的非常形象的这个这个绘画吧,啊,illustration来表达这个东,西方的文化的一个不一样啊。

其实这个呢倒还挺有点幽默性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后又还挺形象,我可以分享几个吧,他做了好多啊,对,那么他是说,这个我们首先我们生长的环境可能会不大一样,对不对啊,在我们的生产过程中啊,每个人对吧,这个从小朋友长大。

他的这样的一个得到的这个attention,可能会不一样,是不是啊,这个,然后作为一个我们个人啊的一个自我的认同啊,个人的一个呃自我的这个这个认定和感受呢,其实也是在不懂得社会文化环境下呢。

也是会有所不一样啊,哪边是哪边,你们可以去这个啊,一眼可能就会能感受得到,还有就是说我的导师,我的老板对吧,到底在这个群体中间是什么样的一个位置,它是不一样的啊,他这个不一样的也决定了你思维的时候。

你是什么样的一个态度,对不对啊,你是不是能够主动地表达你的想法,是不是能够甚至挑战对吧,甭管是老师的还是的这个谁的,这个有经验的人的这些想法或者质疑啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

他可能也都会多少会影响到啊,当然还有我们的生活方式对吧,就是呃你是什么都是喜欢一个人对吧,行动还是说你喜欢不,你喜欢独立的这个这个这个这个行动,还是说什么事情哎大家都一样啊。

不要这个我我跟别人不一样对吧等等,这些也都是啊,当然还有在一些这个交流啊,社交的场合呃,大家的可能行为方式也不一样啊,是大家围成一个圈比较有序,还说我就是很自由的去探索,三三两两对吧,碰到熟人打个交道。

打打个招呼等等啊,这是一个比较形象的表达啊,不一定说那么准确,但是他这样的一个对比呢。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

也确实让我们意识到这个文化的一个不一样啊,这个当然是就不多说了哈,这个还有就是啊啊对,是这个这个这个呃大家的这个社交的关系呀,等等各个方面,还有就是说出现这个意见的时候,是直接的表达。

还是啊通过很复杂的方式的表达啊,其实在科研上呃,呃我是建议,就是大家能够直接的表达自己的想法,非常的重要啊,啊出现了问题,我们是直接去解决问题,还是绕过一些问题,还是说我们习惯性的啊绕开问题啊。

还是我们习惯性的啊面对问题解决问题啊,其实这都是一些这个从思维上的一个习惯啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

啊对这个就还有很多,这个这个这个女生还是挺挺有创造力的哈,很有创意啊,她她有很多的这个方面的一些illustration啊,啊榜样的力量,这个或者说团体的力量呢很重要啊。

啊各位同学呢如果有意啊进入到科研当中,你就要寻找呢同伴啊,寻找就是志同道合的人啊,呃也就是这个跟优秀的同学呢学习啊,嗯这样的话那你就不断的对吧,能够啊形成了你自己的一个一个群体吧。

啊这个优秀的人互相之间学习,那就可以更快的进步啊,这个呢其实啊是是啊也挺重要的哈,啊在我实验室呢我们是有一个比较啊常态的,就本科同学啊来实习的这样的一个呃传统啊,呃应该说呃就是每年吧。

基本上我们都有本科的同学啊参与实习,他从我们大二啊暑期可能正式开始,然后进入实验室,然后也做研究,然后最后他的这个研究的成果也得到啊发表啊,这个就是有啊一批的同学呢都是这样,我就大概的来过一下啊。

这个是已经在读博士的这个吴仁迪同学啊,现在在读博士的李星宇同学,这些都是在读博士,但是在他的本科期间啊,这里显示的都是他本科期间就发表的,这个像我们领域里面c graph的这个论文啊。

当然2万同学佩卓同学啊啊呃温一佳同学啊,对冠希同学啊,这个孙宇晨啊现在都是在读博士啊,徐文啊,旭文同学啊啊刘文哲同学,叶开同学就是我们这个课的这个老师之一哈,啊叶开同学啊,我们金瑞同学啊。

这两位嗯大家也看到他们的照片了啊,一会会见到真人啊啊还有我们的陶凌霄同学啊,这个也都是啊,这些呢都是在本科期间啊,在实验室做科研实践啊,呃就是他们呢非常积极的参与科研啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

也有一些成果啊,总的来说呢科研还是一个很有意思的事情啊,他和这个课堂的学习呢嗯还是不大一样的啊,我觉得本科阶段如果说你有兴趣啊,也能够去啊,也有精力啊,进入到科研当中啊,当然就说大家能来上这个课。

应该也是表明了啊,同学们可能是对科研还是感兴趣嘛,所以呢应该是个很好的开始啊,总的来说吧一个良好的心态啊,做科研啊,呃在各个方面呢啊锻炼自己啊,就是跟导师打交道,跟同学打交道,跟学长学姐打交道啊。

这个发现问题解决问题啊,怎么样这个平衡学习这个和啊科研对吧,怎么样啊,在你繁忙的学习之上,又还做科研啊,一个自己的这个时间的安排啊,时间的管理啊,还有你自己其他的很多的兴趣对吧啊,你也要去去探索啊。

各种事情之间的一个平衡等等,还有在这个科研实践科研的当中,我前面提到的要跟人交流啊,要讲述自己的工作等等,其实是一个非常非常有益的一个事情啊,大家倒不是说把科研最后的结果先放在一边。

这个过程本身是一个非常受益的啊,所以呢我就呃欢迎同学们加入到啊,这个课程的学习当中啊,能够呢从这里开始啊,也是建立一个community,然后呢未来能够享受科研,好吧,我的介绍呢就到这儿啊。

接下来呢我就把这个麦克风呢交给啊,金瑞同学来对接下来的课程做介绍,然后啊好吧,开始我们这个课程正式的分享。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

谢谢大家啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

好的,现在大家应该可以看到我的这个PPT的屏幕了,行好,也非常感谢陈老师的介绍,然后我在开始正式内容之前,先给大家呃介绍一下这门课的一些安排呃,我们这门课是games002呃。

名称叫做图形学研发基础工具,然后后面的课程将都由叶开和我呃来来讲,然后如果大家有什么问题的话,这个PPT上有一些有我们俩的联系方式,就是有邮箱可以发给我们发邮件呃,然后我们这门课是有一个网站的网站地址。

还有直播间的地址都在这里呃,时间呢就是从今天开始的,每周二晚上从七呃,从晚上七点开始,然后一般来讲会讲一个小时左右,然后如果是内容内容比较多的话,可能会讲到一个半小时呃,另外我们这门课是有一个QQ群的。

然后大家可以扫码加入一下,然后后续的如果有什么问题也可以,也欢迎大家在群里讨论,然后接下来我介绍一下这个作业的提交方式,我们有一个作业系统呃,大家可以点到这个第二个这个链接里面,去去注册一下呃。

这个作业系统嗯,然后之后的作业就在这个作业系统里面提交,然后注册的时候,它会嗯就是要求你填一下你的邮箱,然后请大家呃用自己的常用邮箱去注册,因为最终的奖品发放以及这种成绩评定,都是跟你的邮箱去相关的。

OK现在呃接下来内容可能会有点挡PPT,所以我就先把摄像头关一下,OK现在应该可以看清楚,就是作业安排和评分有这样几条,首先呢我们这一次呃,呃我们这门课呃总共会安排大概四次作业。

然后每次作业都是以书面报告的形式为主的,呃如果说某门课会留作业的话,就会在相应课程的末尾给出,然后提交入口也会在当日去开放啊,今天我们是不会留作业的,但是下一周应该会留第一次作业呃。

然后所有作业还有作业系统的注册的DL,都会设在呃这门课结课之后的一周,对,就是结课一周后的一个时间,我们是在5月28号结课,所以这些DDL都设在了6月4号的晚上,23:59分呃。

然后后面是评分的一些要求,就是每次作业的占占分,其实每次会给出的,然后有也不一定每次做作业占比都一样啊,接下来是我们会进对这个作业算一个总分,然后进行排名,如果总分一样的话,就会按照这个提交的时间。

如果提交的更快的话,就会把你排到更靠前的位置,然后奖品呢是待定的,大家可以期待一下,好啊这门课程的目的呢主要有这么两点,首先是填补你专业课的一个空缺,然后呃能够学会使用工具来提升你的效率。

呃我们就是学计算机的学生都知道就是专业课,其实他并不会去介绍呃太多,它主要是介绍一些知识性和技术性的内容,并不会介绍这种呃工具怎么使用,这种保姆级的教程并不会给你提供,这个顶多是给你丢一个链接。

让你自己去学啊,那我们这门课就是为给大家稍微带一个引导,然后也不一定会讲的非常的全面,但是可以作为一个引子,然后会提供一些资料,让大家呃不至于无从下手,呃,另外呢就是希望大家。

如果大家能够在这门学这门课之后,能够利用一些工具去更加提升你的科研效率,或者你平时做事情的效率的话,那这门课就很成功了,然后要需要注意一下,我们这个授课对象,是刚接触计算机或者图形学的学生。

所以啊对一些大佬来讲,这个课程可能就是课程内容就会过于简单了,呃我们介绍的也都是一些很基本的,就是大家基本上都会日常大量运用到的,一些工具啊,后面是我们这门课程的一个主要的内容呃。

这个大纲对我们主要会讲九次课呃,然后时间是每周二,但是会在那个呃会在劳动节skip1周呃,然后其中的前七节啊,前七节都是呃,其实跟图形学不是,就是不一定是图形学的学生才需才来上。

就是只要是你是呃计算机专业的,可能都会用到,都会大量用到这些内容,然后后面两节课才是跟图形学习呃,更相关一些图形学里面最常用的一些软件,就是我们做科研的话呃,需要用到的软件会去简单的介绍一下啊。

我们这门课前期节有部分的内容呢,是参考MIT的一呃一门课程,叫做the Missing semester of your cs education,但是这个网站里面是全英文的,然后这门这个课件呃。

在课后也可以在呃网网站上找到,然后这些链接都是可以点进去的,然后大家如果很好奇的话,就可以点进去看一下,好的,那我们就正式的开始啊,稍稍等一下,如果大家有问题的话,可以在弹幕提出来对课程安排上的问题啊。

录播录播是有的,OK我们在等呃,再等一会儿,如果没有别的问题,那我就开始真正的内容,小证书啊,小证书这个事情好像哎,我这个到时候我问一下助理,问一下助理吧,这个我不是很清楚啊,应该是会有的。

如果有奖品的话,应该是会有证书的吧,这个我也不是很清楚,对作业和课程内容安排上有什么问题,啊对所有的所有作业的截止时间都是这个时间,就不管我放出的时间是什么,所有作业的截止时间都是这个。

然后包括这个作业系统注册也是在这个呃的呃,作业系统注册的截止时间也是这个时间,也就是说你可以推到最后一天,把注册,还有所有作业一口气完成都是可以的,行哦,看上去没有更多的问题了,好没有更多的问题呃。

我就继续了,是这样的,就是因为这个呃因为我现在这个直播的设备啊,不不是特别方便看弹幕,所以大家如果有问题的话,尽量就是把问题攒到最后,就是讲完之后一起发弹幕好吧。

因为讲课过程中我也很有可能看不到你们弹幕,所以呃就大家凑合一下好呃,接下来我们进入正式的内容,今天讲的是LINUX和shell,首先来介绍一下LINUX系统的系统的概念,LINUX呢它是一群一群开源的。

基于LINUX内核的类UNIX操作系统集合,说起来比较绕,这里面主要有几个关键词,第一个是开源,第二个是LINUX内核,然后另外第三个是类UNIX,最后是一个操作系统的集合,首先开源的意思就是说。

LINUX的核心代码你都是可以找到的,是也可以使用的,如果你有条件也可以跑,也可以去呃,也可以去修改它,就是开源社区,你都是可以去做出一些贡献的,都没有问题。

然后左侧的图片呢展示出来就是LINUX这个系统,它的代码的GITHUB仓库,然后呃另外是呃第二个词是LINUX内核,什么叫什么叫内核呢,就是说呃我们可以看右边这样一个图,这样一个发型的图。

如果学过计算机的这个操作系统的同学,应该就会很熟悉啊,呃其实计算机系统,这个计算机其实可以其实就是一层一层的抽象,一层抽象包着一层抽象,就形成一种这种橘子,橘子皮不断的往里。

就是或者说是一种套娃的结构呃,最中心的部分就是直接的硬件呃,计算机硬件叫做hardware,然后直接控制硬件的外面一层呢是叫做内核,叫做系统内核,这些内核是直接跟硬件打交道的。

所以可以想象这些内核其实是非常呃不适合用,不适合让人类来直接操作的,它相当于就是你可以理解为,就是像机器语言一样复杂,所以我们就需要再次对它进行一个封装,这个封装就就到了shell shell。

它就是呃它的名称,它的中文意思其实就是一层壳对吧,它其实就是一层呃,就是连接就是外面外界和内内部的一个壳,这个壳就是它的作用呢就是和kernel去打交道,然后打交道的方式呢。

就是通过一个一行行的命令行来去做的,你一般会打开一个shell的窗口,它是一个DOS窗口,然后你会输入一系列的命令,然后让这个计算机去做一些事情,然后这个窗口其实就是运行了,一个叫shell的程序呃。

但是这个shell,其实也并不是我们最常接触到的东西,我们最常接触的东西应该是更外层的,叫做application,也就是呃应用呃,这个应用就是五花八门的了呃,一般来讲我们这种图形化界面。

具有图形化界面的一些应用软件,然后我们最常使用的这些东西,其实就是应用的级别的东西好,所以呃所以我刚才说的这个内核呢,指的其实就是kernel这一层呃,kernel这一层它是LINUX的。

所以它叫做基于LINUX内核,然后他说是说他是类UNIX,其实主要是强调一点,他不是UNIXLINUX呃,因为有一个笑话就是说linux is not unix。

这个LINUX的全称是linux is not unix呃,其实说的就是这样一个事情,就是LINUX和UNIX其实是不一样的,但他们很类似呃,另外最后是它是一个操作系统集合。

也就是说LINUX它并不是一个单独的操作系统,而是一个操作系统群,我们可以看到这是一个呃到2007年为止,一个比较老的时间线啊,呃这个时间线上标出了呃,就是各个时间出的一些系统操作系统。

这些操作系统都是LINUX,所以说这些总共计系统的集合就叫做LINUX,就每一个系统其实都是LINUX系统,然后我们今天呢主要关注呃,就是今天会做一些实践啊,实践都是在这种UBUNTU的呃。

这个系统上去进行的,乌邦图,大概可以找到,是在右上角的一个这个棕色的小点上对,为什么我们要用LINUX呢,首先它有一系列的优点,包括快稳定,然后有很方便的包管理,然后以及它是开源的呃。

开源为什么是个好处啊,就是因为呃开源的话就会有很多,全世界世界各地的这个CONTRIBUTER,世界各地的开发者都会对这个项目去进行贡献,所以它的生态会非常的好,并不是只局限在一个公司内。

它其实是一个很开放的一个工作模式,所以如果有开源的东西的话,然后你又非常了解它的内核,那开发者就能很非常详细的了解这个LINUX内核,所以可以很针对性的去为LINUX提出一些优化方法。

或者是一些其他其他方面的优化呃,所以开源,开源一般会导致一个比较好的生态环境,这也是LINUX所具有的优势之一,然后另外还有一些优点,包括功能齐全等等,其他的它有很多的优点,然后另外呃。

其实在我们就是在我们科研或者学习当中,其实是会有很多应用场景需要用到LINUX的啊,我这里列出了三点,但其实只是冰山一角啊,第一点就是使用远程服务器的时候,一般来讲如果你想做科研去跑一个很大的模型。

或者说跑一个deep neural network神经网络,你可能会需要租服务器,这个时候你就只能远程去连那个服务器了,然后远程连的这个服务器,那个服务器上的操作系统一般就是LINUX的。

所以这个时候你就是避免不了LINUX,然后第二点呢是有一些仿真环境,如果说是做那个机器人学robotics呃,应该会比较值得比较熟悉,比如说呃GAZIO,还有一些比如说C篇这种仿真环境。

有物理仿真的这种环境都是只只能在LINUX上运行,或者说只在LINUX上运行的比较好,其他系统兼容的不是很好的情况嗯,然后呃其实图形学领域啊,用LINUX还算比较少的了。

主要就是前两点就是前两点说的这样的用途呃,但是在其他领域,其实LINUX会用的用,用的这个方面会多得多,比如说在一个操作系统以及计算机网络,还有比如说呃你想做软件开发的领域。

都可都很有可能是只用LINUX,不用windows的这种情况,在图形学的话,以我个人的理解啊,还是windows要用的多一些,当然这些用途也列的都不全,如果呃有同学有一些别的可以补充。

可以补充的发在弹幕里啊,好那如何访问LINUX呢,就是怎么样去访问一个LINUX系统,怎么用它呃,有这样三种方法,第一种是你真的安装一个LINUX系统,就是你从一个白板电脑开始去安装,但是这个东西呃。

这个过程呢就会比较复杂,你需要用一个U盘启动盘,或者用一个CD,就是一个光盘呃,然后这里具体安装步骤的话,你可以课后去点一下我这个课件里的链接,或者说你在网上随便一搜就可以搜到,我们只要安装一个呃。

就是你你只要下对一个镜像,这下对那个就是下对版本,下对那个镜像的版本就行,一般来讲用的都是5BTO18呃,18。04或者20。04的那种呃,18。04或者20。04,这些版本也许有更新的也可以。

然后第二种方法是用WSLWSL,它的全称叫做windows subsystem for linux,也就是说,在这个WSL其实是windows下的一个应用程序,这个应用程序模拟了一个LINUX的环境。

然后它其实它的界面其实就是弹出一个窗口,待会我会讲到了,它就是弹出一个窗口啊,这个窗口里面就是LINUX的prompt,你可以输入LINUX的各种命令行去执行啊。

就就就像在使用一个LINUX的服务器一样,去使用你的电脑呃,然后这个WSL其实非常好用的,有的时候你呃比如说你只有windows系统,然后你需要下呃,你从某个GITHUB的仓库上clone1份代码。

但是这个代码呢只能在LINUX上跑通,那你这个时候就可以用WSL,而且WSL还有一个好处,就是说呃这个LINUX子系统的文件系统,和和你本机的这个windows系统其实是共享的。

你的windows可以访问到LINUX的文件系统,LINUX就是这个linux subsystem,也是可以访问到你windows的文件系统的,他们都是共通的,所以这是一个非常方便的事情。

然后呃对至于怎么安装WSL这个呃,这个一般来讲是要到windows10这个系统版本以上,才能去安装了,然后安装方法也可以去直接去参考,我这个PPT的链接,就是官方文档呃。

第三点呢就是就是使用虚拟机去进入一个LINUX,虚拟机的话,一般是用vm ware或者virtual box,这种虚拟机软件来实现,然后你还需要呃去下一个乌邦图的镜像,就是LINUX系统的镜像。

这样它才可以运行,然后虚拟机的话其实就是呃在你它虚拟机的话,其实就比WSL要要完善的多了,因为它会有一个完整的图形界面,都会给你完整的图形界面,也不只有终端,然后但是虚拟机里面的东西。

一般来讲和本机的这个文件是不不共享的,就是一般的手段,你可能可以通过一些特殊的手段让他们共享,但实际上呃一般来讲他们是嗯不太好沟通的,你可能只能通过网络的方法来传输文件什么的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

呃好接下来就是接下来的步骤呢,可能需要就是如果大家手边有电脑的话,其实是可以跟着我这个课件一起去操作的,后面我也会去实机演示一些,就是shell里的一些呃命令啊或者操作什么的。

首先第一步就是要打开你的shell,如果你用的是LINUX系统或者说LINUX虚拟机呃,你直接切到桌面,按Ctrl alt加T就可以打出终端,或者说你在那个程序里面搜索terminal这个词。

也可以打开终端,如果是windows用户可以,你可以打开power shell,power shell其实是LINUX里面类似shell的一个东西,一个程序,然后你在power shell里面去呃。

就输入WSL,然后回车,当然是前提是你要安装好了WSL啊,比如说我现在可以给大家解释一下,我打开power shell。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我打开power shell,然后输入WSL,OK稍等一下它就可以对它,就它的光标就变成这个样子了,这个样子就说明我们已经进入了这个LINUX子系统,然后可以在家在家认一下。

就是呃这个这个字符串代表什么意思啊,就是冒号前面的内容表示的是呃你的账户名称,这个at at前面的内容是你的用户名称,at后面的内容是你的电脑的名称,然后冒号后面的东西是表示你当前所在的路径,好。

我们现在可以去,我先去切换到一个我们今天讲课用的路径下面。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

好好,我们现在打开了shell之后呃,WSL用一和用二其实区别不是很大,对于这门课来说区别不是很大,但是如果你想用呃,如果你想运行一些比较fancy的,在LINUX上跑的程序的话,那那推荐用二对。

这门课用一和用二其实是没有区别的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

呃OK接下来我们就是从这个hello world开始啊,因为学任何一门语言,我们都是我们的第一个任务,都是能让这个语言输出hello world这个字符串。

那么现在学shell我们也是呃也也用同样的思路好,首先我们可以看一下这四个呃这样四行语句,这个其中呢它的echo echo的意思就是说将呃,后面跟着参数原封不动地输出到屏幕。

echo其实就是一个shell的指令了,然后我们可以看一下这四个语句,它们的结果可以,大家可以猜一下这个他们的结果是呃,分别是什么样的,有没有区别呢,对实际上对大家可以尝试一下对吧。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

不一定要猜,你看,比如说我先输入echo hello,空格world,然后他输出了hello world,然后如果我hello和world,中间那个空格前面加了一个反斜杠。

它输出的还是hello world,然后如果我去掉反斜杠,我加上引号,它输出还是world,Hello world,如果把双引号换成单引号还是hello world,所以说这四行语句啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

它输出结果是完全一样的,呃输出结果是一样,但是他的工作机理却完全不一样,为什么不一样呢,我们可以我我我来给大家讲一下,就是一个命令行,它的这个结构是什么样子的,首先它的第一个单词是表示它的指令。

echo指令就是它的作用,就是将后面的根的参数输出到屏幕,然后用空格来结束起第一个单词,然后空格后面的东西全都是参数对,全全部都是参数嗯,然后参数与参数之间也是用空格隔开的。

所以像第一行它其实跟了两个参数,一个hello,一个world,然后我们在回车之后,echo会把两个参数按照顺序输出,并且在中间隔一个空格,所以如果你在第一个呃,第一行指令里面。

hello和word中间输入多个空格。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

他最后输出的也是只有一个空格的版本,我可以给大家试一下。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是hello和world之间我们可以打很多空格,然后呃回车一下。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

发现中间还是只有一个空格,这就是因为hello和world是两个不同的参数呃,它会然后echo会把这两个参数按顺序输出,所以中间的这些空格其实都被视为了,就是两个参数之间的分隔符,可以理解对吧。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后第二个第二行就不一样了,第二行为什么不一样,因为空格前面加了一个这个转义字符反斜杠,反斜杠叫做转义符,转义符的意思就是说,把转义符后面紧跟着那个字符,变成字符串中的一部一部分。

所以因为这个反斜杠的存在,前面的hello和后面的一个world,就由中间这个空格连在一起了,所以在第二行当中,hello world是作为一个整体,作为一个参数传给echo的。

然后echo把它原封不动的输出,然后第三行和第四行其实也是类似的,呃也是类似的了,呃,就是如果你把引号就是你,你在外面扩上一层引号,那么中间的这个空格也会失去它的含义,就会变成字符串的一部分。

OK啊这里面其实涉及到一个小知识啊,就是引号的用法,这个引号在呃在这个shell里面,其实用法也是有一定讲究的,很有可能会很复杂的情,有可能会有很复杂的情况呃,然后这里我也给大家留了一个链接。

课后可以去了解一下,如果之后可能会遇到更复杂的指令,大家也能够看得懂懂,呃,刚才的echo是一个例子呃,echo可以替替换成更多的就很多的常用的命令,然后这里的这里的表其实列出来了呃。

所有可能的也不是所有的,就是列出来了一些比较常见的命令啊,然后其中加粗的可能是对,加粗的是嗯比较常用的呃,但是要注意一点啊,就是呃有一些命令可能是系统不自带的,有可能它会提示你去安装一个什么东西对。

那你就需要安装上安装一下呃,相应的程序你才能够执行这个命令,OK这个表格我就先跳过,然后大家可以课后去看,接下来我来讲一下shell是如何工作的,我们刚才说了啊,他其实对于一个指令。

它会把它拆成第一个单词和后面的部分对吧,第一个单词其实就是呃,其实指定了一个系统内置的程序的名称,它的shell工作的方式就是说去调用一系列的程序,来执行你的命令啊。

前面的那个指令我们调用了echo对吧,其实就是因为你的系统内置了一个名为,echo的程序,然后在你输入这条指令的时候,它调用了echo这个程序,把那个把你的后面的输入打印在屏幕上了。

对命令行的第一个词呢就是你指定的程序名称,然后用空格去结束它,然后空格之后根的东西都是参数,就是参数是其实是作为那个程序的一个输入的,可以这样理解,当然后面还有文件输入啊,这里只是说的参数输入呃。

在你输完整个命令行之后,你敲下回车就会开启一个紫禁城,去跑应相应程序,对这里是其实说shell它其实本质上也是一个程序,就是你计算机系统上一个程序,只不过这个程序呢。

它是它就是调用别人别的程序的一个程序对,但你敲敲下回车之后,这个shell它就会去开一个紫禁城跑跑,你去跑你想要调用的那个程序,那个程序和现在这个shell其实是独立的,只不过呢你按了回车之后。

这个shell其实是处于一个挂起的状态,正在等你那个程序运行完之后,shell在接管回来,所以你看上去好像他们是无缝衔接的,在同一个进程里跑,但实际上它其实开启了一个紫禁城去跑一个程,去跑你那个程序。

然后等你那个程序跑完之后,再把这个屏幕的控制权交还给shell,好这里这个东西其实呃就是如果你上,如果你上过ICS的话,ISS计算机导论课的话,你其实就会呃涉及到一个lab,就是让你写一个mini。

写一个tiny shell呃,其实就是让你实现这么一个功能,就是让你实现一个能调用其他程序的程序,对我们说了,shell它是跑就是选择一个程序来跑,那么后面的问题就自然地引发出来了。

呃shell要如何找到我想要调用的程序呢。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我只是给他一个名称对吧,但是他怎么知道我想要的程序在哪呢,答案呢就是在环境变量里面,环境变量呢其实就是一个名为pass,大写的pass的一个变量,我们可以用echo指令来输出一下环境变量。

看一下它有它的内容,然后请注意,如果想输出一个变量的话,变量的内容的话,我们需要在这个变量名前面,加上一个dollar符号,否则你的变量名会被解析成一个字符串。

好就是echo这个dollar pass之后敲回车,我们可以看到一个很很长很长的很长的字符串,对吧,仔细看呢,它其实就是一堆用冒号分隔开的路径,每一个路径其实就是它的搜索空间。

你可以理解为就是你在输入一个命令的时候,shell它会遍历这个pass中的所有的路径,来搜索你想要调用的程序。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果能找到它就会执行,找不到他就会报错,好的,接下来呢我就给大家介绍一下,自然而然的给大家介绍一下,LINUX当中的路径是什么样的一个概念啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就我们看到我们可以,其实可以从这个图中看到路径,其实大概就是这样一个字符串对吧,呃它里面会有一堆斜杠,然后斜杠中间会有一堆这个。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

文件名或者文件夹名,好,那LINUX当中路径具体是什么样子呢,呃这里面要要区分两点概念,LINUX当中有两种路径,第一种是绝对路径,第二种是相对路径,其实在windows也差不多啊。

LINUX是区分为两种路径,觉得路径呢是以这个斜杠开头的,然后这个斜杠其实它本身也是一个路径,它叫做根目录,然后相对路径呢,一般相对路径它是有点杠开头的,就是一个点,一个斜杠,一个小数点,一个斜杠。

这个相对路径是指从当前路径去出发啊,绝对路径是指从根目录出发。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当前路径是什么,当前路径就是我刚才说的这个呃终端里面冒号,后面这个部分就是我当前所在的这个位置,然后如果我们这个时候去呃,去有一个相对的路径的话,其实就表示的是我要从当前所在这个位置出发。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

去去索引我想要的路径。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后当前路径还可以用PWD指令去查看,对我在这里输入PWD,它就输出了我这个当前路径的一个完整的名称,那一个完整的对完整的名称。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后如果我们想切换当前路径,可以用CD指令,CD指令,CD指令是怎么用的呢。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是CD后面会跟一个路径,还有后面可以跟绝对路径,也可以跟相对路径,比如说我想呃直接切换到根目录,那我就CD斜杠,那我就可以切换到根目录了对吧,PWD看一眼,然后如果我想切换到一个相对路径。

那就直接点杠,比如说home,我就切换到我想要的这个相对路径下了呃,然后其实这个点杠也可以省去,从这个位置出发,我们这个点杠可以省去,其实直接CD home,然后这个x jr我们也可以到达。

我们想要的一个路径,但是一定要注意,如果你想用相对路径的话,千万不要用斜杠开头,因为斜杠开头的话。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是直接从头开始去找这个路径好的,然后此外呢还有一些特殊的路径,就是单个点表示当前路径,两个点表示副路径,副路径就是返回上一级的意思,然后减号键表示的是上次到达路径。

其实就类似于那个windows里面的那个后退,这个副路径呢类似于windows里面那个向上的按键,然后呃还有一个叫波浪线,我们在刚才也看到过不少的波浪线,波浪线其实就是说home文件夹所在的路径。

就是你的用户文件夹所在的路径。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在我这里呢,呃这个波浪线就是这个home杠x jr这样一个路径。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

好的哦,对在这里需要提到一个LINUX的性质,它就是LINUX是一切有一个一切皆文件的宗旨,他会把所有的资源都视为文件来管理,就包括所有的硬件设备以及网络,甚至是网络。

比如说你想网络远程发送给另外一个设备,一些消息,其实它的方式也是,往某一个特殊的文件里去写这个消息,然后往这个文件里去写完消息之后,其实这个呃这个信息就发送过去了,这个学术名词叫做网络套接字。

学计算机网络之后,学计算机网络之后,你们会接触到这个事情,然后它所带来的一个好处呢,就是不同类别的资源可以用同样的方式管理,相当于我只需要按照呃管理文件的方式一样,去管理所有的这些资源就可以了。

然后这里还有一个另外一个例子啊,就是在这样一个路径system class的这样一个目录下,其实每一个文件夹都代表了我的一种硬件设备。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后里面的所有文件呢,可以查看到设备的各种参数,我可以给大家示范一下呃,system到class,然后我们可以用ls s,查看一下当前目录下有哪些呃,有哪些文件或者文件夹,然后可以看到这有很多东西。

比如说power supply,就是我的电源,然后这里面还有很多乱七八糟的东西,我也不知道具体是什么,可能curse还有一个是光标对,我们可以进入power supply去查看一下。

然后里面会有各种就是电池信息啊,BT然后里面有一个u event的东西,我们可以查看一下,就是用cat指令去查看这个文件的内容,然后你可以看到,这里面就有和我电池相关的各种信息。

包括呃类型以及呃是否满电,然后容量等等等等信息就很丰富,所以可以看出他确实我的电池,其实在这个LINUX系统下就是一个文件。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就这么简单,再切回去,好的就是讲完这个文件之后啊,讲完这个路径之后,再给大家介绍一下管道这个事情呃,管道是什么,重定向,就文件重定向和管道是两个概念,首先呃shell当中它每个指令它都有输入和输出流。

默认情况下输入和输出流都是就是standard input output,也就是说我直接从屏幕读取输入,或以以及直接输出到屏幕,但是如果你想让某一个指令输出到文件,或者从文件中读入一些信息的话。

你可以用这个小于号和大于号来进行,小于号表示改变输入流,小于号后面会跟一个文件名,表示我把呃,我要从这个文件里去读取信息,然后大于号后面也是跟文,大于号也是在后面去跟文件名啊。

然后这表示我要向这个文件去写写一些东西,然后如果是双大于号,表示呃这个文件我会在末尾追加默认来,默认来讲就是如果单大于号,我是说我会从头去,我会把这个文件去清空,然后从头开始写,然后如果你是双大于号。

就会在末尾去追加,原来内容是保留的呃,另外一个东西就是叫做管道,管道是用一个竖线来表示,竖线前面是一条指令A,后面是另外一条指令B,它的意思就是说我把A指令的输出,作为B指令的输入,这里我记得我想想啊。

对这里有一个有一个例子,右下角我们可以看到这样一个一个漫画里面,就是下面那条指令就是cat呃,某一个文件名,然后竖线GREPO这个是什么意思呢,左边这个cat命令表示我要呃。

cat命令后面会跟一个文件名,表示我要把这个文件名呃,文件里面的所有内容输出出来,输出到屏幕上,但是现在我们后面加了一个管道,所以这个文件的内容不会输出到屏幕上,而是会呃传给后面那个指令。

后面这个graph指令是什么呢,grape后面会跟一个字符串,然后这个表示我要在呃grape,这个是在给grape的输入当中,去查找这个字符串。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

好,我现在有点抽象,我可以给大家做个示范啊,看一下,比如说我们先先看一下cat的功能。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

呃我们可以用cat指令去查看一个TXT文件呃,查看blank的TXT这个文件的内容,可以发现里面就是something对吧,然后如果我在后面去跟一个管道,然后后面去跟一个GREP这样一个命令的话。

我想去里面去找一个叫做,比如说ETETH这样一个字符串,那就这样写就可以了,然后回车你就会发现,它可以把这个ETH标出来,就是他就找到了这个东西,如果找不到,比如说ETB他找不到。

那他就相当于什么东西都不会输出,对这就是cat grape指令的一个呃一个用法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后这里也介绍了,就是管道的这个概念,接下来就是讲一下一个比较重要的话题,在LINUX下一个用户权限的问题。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

首先我们可以用ls s后面加一个选项,减号LLS减号呃,LS杠L来查看嗯,当前文件夹,当前路径下所有文件和文件夹的呃。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

的一些更多的信息,如果我只输入LS会发生什么,只会显示这些文件名称对吧,只会孤零零的显示名称,了解不到任何其他信息,但如果加上一个杠L的话,就可以显示出各种信息,然后前面这个字符串由WRWX这几个字符。

还有减号这几个字符组成的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个字符串就是它的权限位,然后权限位是什么呢,首先它的第一位叫做文件种类呃,有几种可能的情况,一种是LL表示软链接,它是link的缩写,然后D表示目录,它是directory的缩写。

然后减号呢就是其他文件,一般的文件,然后后面接下来有三行,而且有三列,接下来的三列表示的是用户权限,嗯对就是用户权限呢,指的就是我当前这个用户可以对它呃,可以对这个文件做什么。

然后后接下来的三列表示的是主权限,主权,现在表示就是我当前这个用户所在的这个组,有什么呃,可以对他做什么,然后再往后三列是其他用户的权限,也就是说其他组的其他用户呃,可以对这个文件做什么。

然后隔隔夜隔一列之后,我们可以再看后面有这个名称,红框里标出来的是用户的名称,也就是说这个文件是哪个用户创建的呃,后面这个白框标出来的东西叫做组名称,也就是说这个文件的所有者所在的组是什么。

然后再呃接下来我们再解释一下啊,我刚才只解释了用户权限,组权限和其他用户权限分别对应哪几位,然后然后实际上,但是这个RWX和减号分别的意义是什么呢,R就是read的一个缩写,叫做读取权限。

就是如果你有R这个权限的话,就说明你可以查看这个文件,然后W是right的缩写,就是说如果有这个权限,你就可以往这个文件里去写,就可以修改这个文件,然后X表示execute呃,如果你有这个权限。

你就可以直接运行这个文件,可以把这个文件当作可执行文件来运行。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

呃然后这个权限其实是可以修改的,它的修改方式呢就是用c h c h mode啊,它其实它的全称叫做change mode,用change mode这个命令去修改我的权限位,然后修改的方式有两种啊。

呃这里展示出来两种,第一种呢是逐位的去修改,第二种是我直接设置它主谓修改是什么意思呢,就是我首先最后是跟一个文件名,表示我要修改的对象,然后中间这个字符串呢其实是只有三个字母呃。

第一个字母可以是UGOAU,GO或者AU表示user,就是我只改变当前用户的权限,G表示改变当前组的权限,也就是说。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

改变当前用户权限的意思,就是说我我们回到上一张图啊,改变这篮筐里面前三位的一个信息,然后如果是G的话。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

改变主权限就是改变中间这个黄框里的信息,然后O就同理了,是改变就是后后三位的这个权限位,然后如果是A的话,表示我所有的所有的这个权限位会一起改,就是包括用户权限以及主权限,以及其他用户权限呃。

然后第二个字符呢可以是加号或者减号,然后第三个字符就是RWX当中有一种,然后如果前面你是加的话,就相当于我是要添加一个权限,就让它变得可以可以去嗯,就是给他这个权限,然后如果是减的话。

就是剥夺他这个权限,OK然后RWX刚才已经介绍过了,分别对应着什么对。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后我可以现在做个试,做个示例对吧,我们看现在我们的文件的状态,跟刚才展示的是一样的,就是这个权限位跟刚才是一样的,比如说我现在想嗯,想取消copy点PY这个文件的执行权限,所有用户的执行权限。

那要怎么做呢,就change mode,然后所有用户表示所有用户对应的是A,然后我们要去除权限,所以是减号,然后要去除的是执行权限,所以是后面跟一个X,然后最后跟上那个文件名啊。

对这里需要一个SUDO啊,因为这个是一个,因为这个文件它不是简单的文件,它是root权限,就是root账户创造创建的文件,所以它需要更高的权限才能改呃,这个之后呃,我我后面马上就会讲到。

我们先用SUDO去改一下,改完之后我们可以发现再用LS杠L去看的话,这个权限位已经变了,这copy点PY的权限位已经变了,这些所有的X的地方都变成了减号,好我们现在再把它改回来,然后现在改回来之后。

这些X位上都又加回来了,OK啊第二种修改的话就是更直接的方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

中间这个三个字母的字符串啊,变成了一个八进制的三位数,八进制的三位数,它的每一位分别对应呃,前三位权限位和中间三位权限位,以及最后三位权限位,方法是什么呢,就是如果有权限是设为一二进制中的一。

如果没有权限设为二进制中的零,那我们三位三位的看,把三位,把这三位的二位二进制数转化成一个八进制数,就对应我这个八进制数的这个当前这一位,比如说啊这个RWXRW减号,R减号X这样一个权限串呢。

它对应的就是765,就是765这样一个八进制数。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们也可以试一下,比如说我想改变对,我想改变还是改变copy点PY的这个对,改变copy点PY的权限,我们用第二种方式来改变CHMOD765copy,然后再看的话,我们就会发现这个串已经变成。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

和PPT上这个串是完全一样的了对吧,现在改回去,Sorry。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

OK哦对这是我们怎么去修改一个文件的权限嗯,接下来就我要介绍一下介绍的事情,就是用户权限呃,LINUX当中,系统当中总是会存在着一个最高最高的用户,这个用户一直会存在,它叫做root呃。

这个这个用户总是会具有最高权限,就是他想做什么都可以,其实就是说其他用户所能做的一些操作都是root,能做到操作的子集,呃然后如果说我们想。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

比如说我们现在现在的用户可以看到是x jr,这个用户他不是root对吧,但是我们想在这个状态下,以root身份去做某些事情该怎么办呢,就是前面加一个SUDO,就像我之前做的这个事情,叫做它的全称。

其实叫做super due,super就是超级超级的意思,超级管理员的意思,然后然后SUDO,然后再加上我后面想要调用的命令就可以了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

但是速度其实并不是呃万能的,有的时候呃我们总是会尝试solo对吧,就是比如说某个指令运行失败了,说权限不够,那我们就往往会在前面加上一个速度,然后再跑一下它就能运行过了。

但它其实也不是嗯不完全是这种情况,比如说对,比如说我现在有一个blank txt这个文件,它的权限位是这样子的,它是呃root的对吧,它是root创建的文件,所以我用普通用户的身份。

是没办法直接修改它的,那嗯如果如何对,如何如何,在这种不修改拥有者或者权限位的情况下,去写入这个blank呢,我们可以看到啊,就是对只有用户,只有root用户和用root用户组下的呃。

用户可以有right权限,而其他用户是不能有right权限的,我们现在属于其他用户这个范畴,所以现在是不能直接往里面写的,但是我现在又不想改权限位,那我现在要怎么写入blank的TXT呢。

我们可能会采用第一行这种方式。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是我呃。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因为呃,这就我们假设blank没有这个权限的约束的话。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们会怎么办,就是用一个echo命令对吧,echo something就是echo一个字符串,然后去用管道去重定向到blank,点TXT这个文件里,但是我们会发现,因为blank它是root的。

这就是只有root才有写权限,所以这个permission被被deny了,被拒绝了,我们不能这么做,所以这个时候我们会想加一个SUDO,尝试一下能不能成功,然后发现也也被拒绝了,这是为什么呢。

这是为什么呢,这是因为就是嗯这个速度,它管道它只管到echo这个命令,也就是说你这个速度只把管理员权限给了,echo这个指令,而后面这个管道写入的这个操作呢,还是由shell本身来做的。

而shell本身它不是以root的身份去登录的,所以shell本身不具有root的权限,也就不能去修改这个blank点TXT文件,所以正确的做法我们要换一种方式,就是echo something。

然后用管道给到下一个指令,下一个指令我们用SUDO来来来督促,用SUDO来修饰它,对然后这个时候我们会发现它就不再报错了,我们已经成功的写入了blank txt,这个是呃这个这里面涉及到一个新命令啊。

叫做T这个T它的意思是说呃从标准输入当中,这就是接受从标准输入当中去接受一些输入呃,输入的字符串,然后后面会跟一个文件名,把那个接收到的字符串写到这个文件名里面,然后这里面因为我们用管道管。

管道重定向了这个T的输入,所以呃这个前面这个前面这个命令的输出something,输入到这个T的指令,然后T再把它写到blank里面,但是这里我们给T加了一个Sol的权限。

所以T现在有有能力就有权限去修改blank了,所以这个修改就成功了,我说明白没有。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我应该可以说明白吧,好的,对这里PPT上讲的也是同样一个事情,接下来就是进入到下一个概念啊,叫包管理呃,就是我们在LINUX上就是使用一台新的电脑,上的新的电脑的时候,它一般不会带有很多软件。

它是一个空壳对吧,我们一般需要用shell去下载一些呃,各种各样的软件,然后安并且安装才能使用呃,有两种安装方式,最主流的安装方式,第一种是你从网站上去下载一个,手动下载一个点DEB的软件包。

它的扩展名是点DEB,然后呃下完之后呃,你在打开shell输入这样一个命令,叫做DPKG,这个DPKG它的作用呢,其实然后后面加上杠II就表示install DP k g,它的作用。

它的他的操作就是把这个点dB文件解压,并且安装,但是这个方法其实很不好,就是不太好用,为什么呢,呃因为首先你需要手动从网上下载,对你你需要自己从网站上去找一些软件包。

然后你自己找的软件包其实不一定靠谱对吧,有可能携带病毒什么的东西,呃然后你硬安装的话,可能就会让你的呃对你的电脑造成一些损害,所以我们就推荐下面这种方法,就是用app这个指令来去进行包管理。

如果我想安装一个这个名为X,名为叉叉叉的这样一个软件包的话,我可以用这样一个指令,Sudo apt get install,然后再跟上我想要这个软件包,然后这个软件包的名称呢。

其实就是呃名称其实是需要你去调研的东西,其实这个名称不是很好知道,就比如说呃对我想一下。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

比如说EXA。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我现在我现在这个电脑上没有EXA这个命令,然后你打打开E呃,你输入EXA之后,它会报错,然后他就会提示你去try一下这个指令,所以我就可以搜到app或者app get install ex a这个东西。

呃。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对这个可能可能他确实不叫ex啊,这个东西,就总之这个名称呢,可能你需要去网上去查一下这个名称,它他就是你给出这个xxx这个名称之后,他会去一个指定的地方,就是UBUNTU的原服务器。

一个指定的网站上去找,所以找到的都是官方提供的一些软件包,所以这个时候我们可以确认,这个下载下来的这个软件它一定是安全可靠的,然后如果呃,因为它默认是从5BT服务器上下载的嘛。

所以在国内的话有可能会比较慢,然后如果想加速,可以换成清华源,换成清华源的方法,也是可以,在这个课件里直接点这个链接就可以看的,就可以看的教程,然后切换元之后,我们需要执行这样一个命令。

就是sudo apt get,然后update一下update一下,然后才能真正切换成这个清华园,然后接下来我呃,以后我再去执行这个install命令的时候,都是从这个清华园上去获取软件包下载。

然后再安装的,然后清华园的话一般都是比较快的,不会出现网络卡顿的情况,好的,接下来再讲另外一个概念,叫做对,现在有北大圆了,我这个课件是之前做的,对你说的很好对,推荐用北大元,推荐用北大元。

清华园是我之前这个课件做的时候,北京还北大还没有,还没有北大元呢,现在可以呃,大家搜一下北大元就好了,嗯对接下来下一个变量是下下一个,这个概念是变量呃,变量的声明和赋值其实和Python里面有点像啊。

就是你直接指定一个名称,然后再接上一个,等于后面再接上它的值就可以了,前面这个FOF是变量名,后面这个bar是它的内容,就是一个字符串,然后我们一定要注意啊,这里等号两边是不能加空格的。

一边空格是不能加的,为什么呢,因为我们刚才说过,空格式其实是一个分隔符,如果你把它呃按照这样的方式就负空格,等号再空格半这样的方式输入给shell的话,他会理解为把父作为一个你想调用的命令。

把负作为命令的名称,然后等号和bar作为两个参数传给这个命令,那这个肯定不是你想要的,我只我想要的只是给这个面创建一个变量,并给它赋值对吧,这个所以你输入下面这一行很有可能就会报错。

报没有这个负这个命令,然后我在赋值完了之后,我想去访问这个变量,我想指定变量名去访问这个变量,内容方法就是刚才介绍过环境变量里面介绍过,在前面加一个刀刃符号。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

dollar符号就可以了,比如说我想echo,我想显示出我先负等于半,然后我想显示出这个负是什么什么东西,我就用echo dollar fu就可以了,它就会显示出bar呃,然后实际上呢。

这个dollar fo它其实是一个字符串,他会把这个dollar fo这个部分替换成,替换成这个bar,懂吧,其实所以说你在prompt里面输入dollar副,其实等价于现在输入bar。

他就是会用变量名的呃。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个变量的值去替换掉这个负,好然后还有一些特殊的变量,就是环境变量,就是我们可以用ENV这个指令。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查看所有的环境变量,可以看到有很多很多每一个都是一个变量名,等于后面值的一个格式。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

变量名等于值的格式,然后还有一个命令叫做set。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

set是我们可以。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

set的话就是它其实会显示更多的东西对吧。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个东西非常的多对,然后其中你看到前面,其实它也是包含了,我那个ENV里面所显示的变量的对,其实所以说是set,它其实就是查看环境变量与shell变量的一个并集,对它不仅包含环境变量。

还包含我当前shell这个环境下所有的变量,对,然后接下来就是这里面,我们提到了环境变量和shell变量这两个概念,他们其实是有点呃相互隔离的一个概念。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

相互隔离的两个概念啊,我们新建,我们刚才新建了一个负等于半对吧,我们刚刚新建了一个负等于半,那所以现在这个负这个变量,它只会被添加到shell变量即合理,而不会被添加到环境变量即合理。

所以shell变量就有点类似于每一次进程里面,我存储在呃,就是我每一次进程里加载出来的一个变量,就我每次打开这个shell,它都会重新加载我的shell变量嗯,而环境变量则是说你嗯或者这么解释。

就是我这次添加了for,然后我现在关掉这个。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

关掉这个shell,在重启之后它就不会有负了,比如说我现在把这个关掉,然后再打开WSL。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后我再想去echo一个dollar fu就没有了,就是它是没有了,变成空了对吧,刚才是B,也就是意味着,就是说shell变量每次在你退出shell的时候都会清空,然后你下次重启shell的话。

它就不会重新加载了,但环境变量则是每次启动shell的时候,都必必然会加载到当前,当前这个shell的这个环境里的一个变量。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所以它叫环境变量对吧,然后如果我们想把某些变量和,就是加入到环境变量里的话。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

可以用export这个命令啊,呃比如说我export对。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是我比如说我export一下,就是赋值语句前,就比如说我现在负等于半,我在这个负等于半前面加一个export,export export-08,那现在这个PO就被添加到环境变量里去了。

但是这个添加也是只有一次性的,只是我在这个shell里面,因为它已经加载到shell里面,然后再添加到环境变量里,它这是一次性的,你下次重启shell,它环境变量里还是没有负这个变量。

但是如果我们想永久添加的话,也是可以做到的,这个方法就是说我把呃我这个方法的,其实它的它的直观意义就是说,我在每次启动shell的时候,都先执行一下这个export语句,这样的话就自然是每次启动之后。

都会有环境变量里都会有这个变量对吧,呃方法呢,具体方法就是说把export赋值语句,放到那个home文件下的一个点BHRC文件当中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个文件是什么呢,就是比如说我看一下啊,这个文件因为是BHRC,因为它是有点开头的,所以它是在LINUX下是一个隐藏文件呃。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

平常的LS是看不到他的,我们需要ELS杠A才能看到它,杠A。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对你只有LS杠A才能看到隐藏的文件。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后这个文件它其实就是一个,我们可以查看一下啊,查看一下,他其实就是一堆代码,这些呃这个代码其实也就是shell语言啊,就是shell的一一堆命令组成的一个代码。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后如果我们想加入某一个呃环境变量。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

永久加入某个环境变量的话,我们在这个呃,在这个文件的末尾去追加上一个这样。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这样一个source呃,这样一个export语句就好了,然后呃如果想加完之后让本次生效,就因为你刚加完这个语呃,你刚加完这个语句,它其实不会执行的,你要重启shell窗口,它才会执行,如果想不退出窗口。

我就让他执行,怎么办呢,就是用一下source source source,然后后面接上by10RC这个文点,BSRC这个文件,它就会去执行一下BHRC里面所有的命令,然后也就把我刚才导进去的这个。

环境变量给加进去了,然后呃因为今天是第一节课,前面介绍了一下,所以今天可能会拖一点糖,呃接下来是命令替换和进程替换这两个东,两个操作,这个以我个人经验看来说是不是特别常用的,但是给大家介绍一下。

就是有的时候我们希望将命令的指令的输出,结果作为参数呃,这个这个方法是什么呢,就是我用呃dollar后面跟一个括号,括号里面是呃,括号里面放我想要执行的一个命令,这个事情会做什么,就是他做的事情呢。

就是把括号里面这个命令执行执行完之后,把它的输出替换掉整个串,所以相当于我就可以把呃命令的执行结果,放到我的一个命令行里,作为命令行的一部分了,然后还有一个类似的功能,就是叫做小于号,后面跟个括号。

括号里面填上一个进程,而且填填上一个命令,它的作用就是说把命令执行之后,他会把命令的输出重定向一个临时文件,这个文件是临时的,它的文件名其实呃就是它不会真正的创,在你的某一个目录下创建一个文件。

它只是是有一个临时临时的虚拟的文件,然后你可以把这个文件当做存在,然后这个文件文件名是什么呢,其实就是整个这个小于号括号,这个CMD它其实就会把这个文件名,自动的替换掉这个这个部分。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所以说比如说我想呃,比如说啊我想呃比较两个输出结果的差异,就是两个命令输出结果的差异,我可以用用进程替换这个技巧来做,我们比较是文件比较应该是DIFF吧,如果没记错的话,对对DIFF。

DIFF可以比较两个文件的差别,然后比如说我想比较两次echo的输出是否一样啊,比如说hello world和这个,2+1个杠吧,然后他就会给我显示出其中比较的结果对吧。

很明因为我的地府只能去后面去输入呃,去输入一个文件名呃,但是我们又想比较的东西,又不是来自一个文件的,而是来自一个指令的输出,所以就可以用这个进程替换这个东西,很巧妙的把它变成一个文件的操作。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就能用def指令了,好啊,后面还有一个概念就是shell脚本啊,呃我们这里会介绍一个概念叫做脚本语言,脚本语言呢它是通过解释器运行的一种语言。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

比如说BHBH其实就是shell所用的一个脚本。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那就是校所用的一种语言,Dash,还有Python,它都是脚本语言,它是通过解释器,它是边执行边编译的,你可以理解为解释器先读取一行的指令,然后立立刻开始,立刻开始执行这行指令。

然后执行完之后再读下一行,再去执行下一下阳的指令,Python和BH它都是这样的一个工作流程,另外一种语言呢都是叫做它,它叫做编译的,也就是它需要预编译的一种语言,比如说典型的就是C加加或者对CC加加。

还有C那些都是需要编译的语言,它是它的工作流程很不一样,它是需要提前有一个编译器,把你的程序代码源文件读进来,然后把它转换成另外一种机器语言,对编译器它其实是会把你的语言去转化成互呃。

转转化成一种中间表示,然后这个中间表示再把它转化成一个汇编语言,汇编语言再转化成二进制的那个机器语言,然后最终的二进制机器语言会会把它呃,就是会用这些二进制机器语言,去生成一个点EXE文件,或者在呃。

如果在LINUX下就不会有点ex e这个后缀了,就是会生成一个可执行文件,这个可执行文件,它它就是完全是一个二进制的文件,然后你需要呃单独去调用这个去,你需要单独去运行这个可执行文件。

才能真正的运行你这个程序的内容,就前面的编译过程其实并不会执行,但是在这个解释器里面,它是边编译边执行的,所以显示器和这就是这种脚本语言,和那种需要编译的语言之间的一个最大的差别。

然后如果我们想写一个脚本的话,我们需要在我们需要用到一个符号,叫做sharp bang,一个井号加上一个叹号,111个井号和叹号作为这个文件的开头,就这个没这个,然后这个系统就会默认你你这个东。

你这个呃,对系统就会把你这个文件去解析成一种脚本,然后sharp bang之后会跟一个什么呢,会跟一个路径,这个路径,就是说我想用哪个解释器去运行这个脚本,比如说如果我想。

我比如说我我我这个文件是一个Python脚本,那我后面就会跟跟着我这个Python,Python解释器的所在路径,如果是BS脚本的话,就跟一下PBS那个解释器的路径,然后实际在运行的时候。

对我们在这样写完一个脚本之后,我们一定要记得就用之前用的那个呃,之前学过那个change mode那个命令,需要把这个当前这个文本文件啊给他,就是给它加上可执行的可执行的权限,加上可执行权限之后。

我们就可以直接呃,直接输入这个文件的文件名就可以运行了,对我后面会做一个例子,就你一般来讲,如果想运行一个Python文件的话,你可能需要先输入Python,然后空格文件名对吧。

但现在如果我们用这个sharp bang,然后把他的呃权限位设好的话,我们就可以直接直接调用这,直接输入这个文件的文件名,就可以呃让Python去运行它,让Python解释器去解释它,然后直接运行。

然后在Python里面很巧的一种就是Python和BS里面,井号它都是一个表示常驻式的一个符号,所以在脚在你的那个解释器,去读取这个脚本文件的时候,它会把第一行忽略掉,你第一行忽略的那输入那个路径。

即使不符合语法也不会被看到,所以就可以很巧妙的把它忽略掉,然后嗯在你对它,但是它会起到一个就是引导这个解释器的,就是引导你运行哪个解释器的一个目的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对我现在来做个示范啊,比如说我们现在呃,我们现在有一个有一个文件已经写好,一个文件叫做copy点PY,我们先查看一下这个文件是什么啊,这个文件它是这样的,就是首先sharp bang。

然后后面跟的是我python3这个解释器的一个路径,对我呃它的格式是这样,我先先需要输入这个解释器的路径,然后空格跟上这个解释器的名称,然后接下来我怎么去运行,我先check过这个copy点PY。

它的权限位XX位都是亮着的对吧,也就是说它可以有有那个执行权限,那我们就呃,现在我们就可以直接这样点杠copy点PY,去执行它,然后它就执行了这个Python代码的内容。

他直接把hello world输出出来了对吧,呃这个过程是什么样子呢,我输入点杠copy点PY之后,这个首先这个shell它会去读取一下,这个copy点PY这个文件。

然后他发现的第一行有sharp bin符号,那他就去这个呃路径下,找到了我这个python3的这个解释器,然后它运行了python3copy点PY,它实际上运行的其实就是这个指令。

我不知道这样讲没讲明白啊,它实际上运行的就是python3copy,点PY这样的一个指令,所以这样的话它它主要的目的就是说,你可以这样写一个脚本文件,然后之后就可以直接双击运行。

对这之后就可以直接双击运行了,或者说在prompt里边,就在这个嗯terminal里边就可以用,直接点GUCOPY点PY,或者甚至直接copy点PY,是不是就可以运行哦,不不可以,那还是需要加上点杠。

点杠copy点PY,这样运行它就会稍微方便一点,就不需要前面总带一个解释器的名称了,你就可以把它当做一个可执行文件一样看待的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就可以了,OK今天讲的内容就这么多啊,然后大家如果有什么问题,可以在弹幕里打出来哦,点杠的意思,点杠我我前面讲过点是相对路径对吧,我们在前面在相对路径里其实讲过在这里呃,点表示当前路径嘛。

然后点杠其实就是说当前路径下的某个文件。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

比如说这里的点杠copy点PY,就是我当前路径下copy点PY这个文件,然后如果你在BH里面只输入点杠文件名的话,他会把这个文件名当做一个可执行的文件,直接去运行它,如果这个文件没有没有可执行权限的话。

它就会报错,比如说我现在只点杠blank,点TXT是不可以的,你看他permission denied,是因为我现在没有可执行权限权限,即便SUDO也不行,因为我的root用户也没有这个权限。

多块硬盘或者分区呃,我不是很懂你的意思,你想问什么,直接copy点PY是不行的,就是这个应该这个应该就是那个shell,它本身的一个特性吧,你需要如果你想运行一个可执行文件的话,你必须要哦。

我知道是为什么了,就是因为直接copy点PY不行的,原因是你环境变量里没有当前路径,所以它不会搜索到copy点PY这个文件,所以它会显示command not found。

如果你在pass里面就是这个呃,我想想啊,在pass这个路呃,这个环境变量里面,去添加上我当前这个路径的话,它就能找到copy点PY,你就可以省去点杠了,点杠它其实就是只指示一下,我这个路径到底在哪。

CD是不是都在LINUX里面,一般都没有那个没有那个硬盘分区,终端如何写一个pi文件啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一般还是用编辑器去写吧,比如说你可以下一个vs code,然后你可以如果你电脑上有code vs扣的话,你可以直接扣的打开那个呃,打开copy点PY这个文件,然后我就会弹出一个vs code。

等一下他可能需要更新啊,然后还有还有一些,如果你非要用终端的话,你就用那个VM,你WM可能也需要安装,有你用WM打开那个文件,然后就可以去编辑它,然后另外一种是WM,但是WM其实非常难用它。

它有很多很多的快捷键,这个其实在后面有一门课也会讲这个呃,有一个专门讲这个编辑器的一门课,一次课呃,会介绍一下WM,但是WM其实我本人也不会用,然后更简单好用的一个东西。

稍微新手友好一点的是叫NANO诶,等一下这个下载好像有点卡,比如说我可以用V吗,给你打开看一眼对,然后这里面是可以编辑的,但是里面有很多很多编辑的时候,有很多很多奇怪的快捷键。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后如果你还有还有一种编辑方法呢,对vim其实对VM会用的话,用起来是非常强的,一般大佬大佬都会用V吗,啊不是不是大佬都会用V吗,会用WM的都是大佬,对你还有一种方法去写copy点PY,就是用我的。

比如说我echo呃,用我的echo,然后用这个文件重定向,这个方法去写这个KYPY,别说我echo呃,print反斜杠,这个,呃这样应该也是可以写到copy点PY里的诶,可能都需要一下,对然后。

对这样他就被修改了,你可以用echo这一行一行的写,然后后面想写的话,你就直接追加就好了,但是这样写的会非常麻烦,所以还是建议用那个编辑器啊,对还有IMAX,IMAX也可以。

IMAX它的快捷键方式和WM很不一样,它IMAX也有一堆快捷键,大作业没有没有大作业,只有四次作业,所以这个课其实内容也不难,就是主要目的不是为了考验大家,而是为了给大家介绍一些工具。

就是让大家能够很轻松的学学会就行,可以我们时间也差不多了,如果没有更多的问题的话,我们今天就到这里了,windows工具课程,下节下节课就有,下节课就讲windows和power shell。

还有CMD,十十X系列会开班,什么叫10X系列,录像和课件什么时候上传,应该近期两天之内吧,我这个具体还得去问一下助理,因为呃这个不是我,我来管的,但是应该近期内就会上传哦,10X之类哦,哦10X系列。

10X系列,那就不是我开的呀,那你得问开课老师去,我肯定不知道,幺零几的话,这个这个我确实不知道,因为我只是讲我现在这门课,CMD和POWERSHELL不完全是一个不完全是。

games现在不是有101102103吗,等一下再说,有点往奇怪的方向发展了,我要给他们他们的课做广告了行,如果没有更多的问题,那我们今天就到这吧,好吧好感谢感谢大家的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值