精华内容
下载资源
问答
  • 对卷积的定义和意义的通俗解释

    万次阅读 多人点赞 2019-03-31 10:17:49
    作为一个学物理出身的人,一个公式倘若倘若给不出结合实际的直观的通俗解释(也就是背后的“物理”意义),就觉得少了点什么,觉得不是真的懂了。 教科书上一般定义函数的卷积如下: 连续形式: 离散形式:.....

    对卷积的困惑

    卷积这个概念,很早以前就学过,但是一直没有搞懂。教科书上通常会给出定义,给出很多性质,也会用实例和图形进行解释,但究竟为什么要这么设计,这么计算,背后的意义是什么,往往语焉不详。作为一个学物理出身的人,一个公式倘若倘若给不出结合实际的直观的通俗的解释(也就是背后的“物理”意义),就觉得少了点什么,觉得不是真的懂了。

    教科书上一般定义函数f,g的卷积f*g(n)如下:

    连续形式:

    (f*g)(n)=\int_{-\infty }^{\infty}f(\tau )g(n-\tau)d\tau

    离散形式:

    (f*g)(n)=\sum_{\tau=-\infty }^{\infty}f(\tau)g(n-\tau)

    并且也解释了,先对g函数进行翻转,相当于在数轴上把g函数从右边褶到左边去,也就是卷积的“卷”的由来。

    然后再把g函数平移到n,在这个位置对两个函数的对应点相乘,然后相加,这个过程是卷积的“积”的过程。

    这个只是从计算的方式上对公式进行了解释,从数学上讲无可挑剔,但进一步追问,为什么要先翻转再平移,这么设计有何用意?还是有点费解。

    好在有万能的互联网,尤其是知乎,CSDN这样的网站,很多的热心网友对卷积举了很多形象的例子进行了解释,如卷地毯、丢骰子、打耳光、存钱等等,参见知乎上这两个两个经典的问题,回答的人很多:

    如何通俗易懂地解释卷积https://www.zhihu.com/question/22298352

    卷积为什么叫「卷」积?  https://www.zhihu.com/question/54677157

    读完觉得非常生动有趣,但过细想想,还是感觉有些地方还是没解释清楚,甚至可能还有瑕疵,或者还可以改进(这些后面我会做一些分析)。

    带着问题想了两个晚上,终于觉得有些问题想通了,所以就写出来跟网友分享,共同学习提高。不对的地方欢迎评论拍砖。。。

    明确一下,这篇文章主要想解释两个问题:

    1. 卷积这个名词是怎么解释?“卷”是什么意思?“积”又是什么意思?

    2. 卷积背后的意义是什么,该如何解释?

    考虑的应用场景

    为了更好地理解这些问题,我们先给出两个典型的应用场景:

    1. 信号分析

    一个输入信号f(t),经过一个线性系统(其特征可以用单位冲击响应函数g(t)描述)以后,输出信号应该是什么?实际上通过卷积运算就可以得到输出信号。

    2. 图像处理

    输入一幅图像f(x,y),经过特定设计的卷积核g(x,y)进行卷积处理以后,输出图像将会得到模糊,边缘强化等各种效果。

    对卷积的理解

    对卷积这个名词的理解:所谓两个函数的卷积,本质上就是先将一个函数翻转,然后进行滑动叠加。

    在连续情况下,叠加指的是对两个函数的乘积求积分,在离散情况下就是加权求和,为简单起见就统一称为叠加。

    整体看来是这么个过程:

                    翻转——>滑动——>叠加——>滑动——>叠加——>滑动——>叠加.....

    多次滑动得到的一系列叠加值,构成了卷积函数。

    卷积的“卷”,指的的函数的翻转,从 g(t) 变成 g(-t) 的这个过程;

    卷积的“积”,指的是滑动积分/加权求和。

    有些文章只强调滑动叠加求和,而没有说函数的翻转,我觉得是不全面的;有的文章对“卷”的理解其实是“积”,我觉得是张冠李戴。

    对卷积的意义的理解:

    1. 从“积”的过程可以看到,我们得到的叠加值,是个全局的概念。以信号分析为例,卷积的结果是不仅跟当前时刻输入信号的响应值有关,也跟过去所有时刻输入信号的响应都有关系,考虑了对过去的所有输入的效果的累积。在图像处理的中,卷积处理的结果,其实就是把每个像素周边的,甚至是整个图像的像素都考虑进来,对当前像素进行某种加权处理。所以说,“积”是全局概念,或者说是一种“混合”,把两个函数在时间或者空间上进行混合。

    2. 那为什么要进行“卷”?直接相乘不好吗?我的理解,进行“卷”(翻转)的目的其实是施加一种约束,它指定了在“积”的时候以什么为参照。在信号分析的场景,它指定了在哪个特定时间点的前后进行“积”,在空间分析的场景,它指定了在哪个位置的周边进行累积处理。

    举例说明

    下面举几个例子说明为什么要翻转,以及叠加求和的意义。

    例1:信号分析

    如下图所示,输入信号是 f(t) ,是随时间变化的。系统响应函数是 g(t) ,图中的响应函数是随时间指数下降的,它的物理意义是说:如果在 t=0 的时刻有一个输入,那么随着时间的流逝,这个输入将不断衰减。换言之,到了 t=T时刻,原来在 t=0 时刻的输入f(0)的值将衰减为f(0)g(T)。

    考虑到信号是连续输入的,也就是说,每个时刻都有新的信号进来,所以,最终输出的是所有之前输入信号的累积效果。如下图所示,在T=10时刻,输出结果跟图中带标记的区域整体有关。其中,f(10)因为是刚输入的,所以其输出结果应该是f(10)g(0),而时刻t=9的输入f(9),只经过了1个时间单位的衰减,所以产生的输出应该是 f(9)g(1),如此类推,即图中虚线所描述的关系。这些对应点相乘然后累加,就是T=10时刻的输出信号值,这个结果也是f和g两个函数在T=10时刻的卷积值。

    显然,上面的对应关系看上去比较难看,是拧着的,所以,我们把g函数对折一下,变成了g(-t),这样就好看一些了。看到了吗?这就是为什么卷积要“卷”,要翻转的原因,这是从它的物理意义中给出的。

    上图虽然没有拧着,已经顺过来了,但看上去还有点错位,所以再进一步平移T个单位,就是下图。它就是本文开始给出的卷积定义的一种图形的表述:

    所以,在以上计算T时刻的卷积时,要维持的约束就是: t+ (T-t) = T  。这种约束的意义,大家可以自己体会。

    例2:丢骰子

    在知乎问题 如何通俗易懂地解释卷积?中排名第一的 马同学在中举了一个很好的例子(下面的一些图摘自马同学的文章,在此表示感谢),用丢骰子说明了卷积的应用。

    要解决的问题是:有两枚骰子,把它们都抛出去,两枚骰子点数加起来为4的概率是多少?

    分析一下,两枚骰子点数加起来为4的情况有三种情况:1+3=4, 2+2=4, 3+1=4

    因此,两枚骰子点数加起来为4的概率为:

    写成卷积的方式就是:

    \displaystyle (f*g)(4)=\sum _{m=1}^{3}f(4-m)g(m)\\

    在这里我想进一步用上面的翻转滑动叠加的逻辑进行解释。

    首先,因为两个骰子的点数和是4,为了满足这个约束条件,我们还是把函数 g 翻转一下,然后阴影区域上下对应的数相乘,然后累加,相当于求自变量为4的卷积值,如下图所示:

    进一步,如此翻转以后,可以方便地进行推广去求两个骰子点数和为 时的概率,为f g的卷积 f*g(n),如下图所示:

    由上图可以看到,函数 g 的滑动,带来的是点数和的增大。这个例子中对f和g的约束条件就是点数和,它也是卷积函数的自变量。有兴趣还可以算算,如果骰子的每个点数出现的概率是均等的,那么两个骰子的点数和n=7的时候,概率最大。

    例3:图像处理

    还是引用知乎问题 如何通俗易懂地解释卷积?中 马同学的例子。图像可以表示为矩阵形式(下图摘自马同学的文章):

    preview

    对图像的处理函数(如平滑,或者边缘提取),也可以用一个g矩阵来表示,如:

    g=\begin{bmatrix} &b_{-1,-1} &b_{-1,0} &b_{-1,1}\\ &b_{0,-1} &b_{0,0} &b_{0,1} \\ &b_{1,-1} &b_{1,0} &b_{1,1} \end{bmatrix}

    注意,我们在处理平面空间的问题,已经是二维函数了,相当于:

    f(x,y)=a_{x,y}        g(x,y)=b_{x,y}      

    那么函数f和g的在(u,v)处的卷积 f*g(u,v)该如何计算呢?

    按卷积的定义,二维离散形式的卷积公式应该是:

    (f * g)(u, v)=\sum_{i} \sum_{j} f(i, j)g(u-i, v-j)=\sum_{i} \sum_{j} a_{i,j} b_{u-i,v-j}

    从卷积定义来看,应该是在x和y两个方向去累加(对应上面离散公式中的i和j两个下标),而且是无界的,从负无穷到正无穷。可是,真实世界都是有界的。例如,上面列举的图像处理函数g实际上是个3x3的矩阵,意味着,在除了原点附近以外,其它所有点的取值都为0。考虑到这个因素,上面的公式其实退化了,它只把坐标(u,v)附近的点选择出来做计算了。所以,真正的计算如下所示:

    首先我们在原始图像矩阵中取出(u,v)处的矩阵:

    f=\begin{bmatrix} &a_{u-1,v-1} &a_{u-1,v} &a_{u-1,v+1}\\ &a_{u,v-1} &a_{u,v} &a_{u,v+1} \\ &a_{u+1,v-1} &a_{u+1,v} &a_{u+1,v+1} \end{bmatrix}

    然后将图像处理矩阵翻转(这个翻转有点意思,可以有几种不同的理解,其效果是等效的:(1)先沿x轴翻转,再沿y轴翻转;(2)先沿x轴翻转,再沿y轴翻转;),如下:

    原始矩阵:

    翻转后的矩阵:g^{'}=\begin{bmatrix} &b_{1,1} &b_{1,0} &b_{1,-1}\\ &b_{0,1} &b_{0,0} &b_{0,-1} \\ &b_{-1,1} &b_{-1,0} &b_{-1,-1} \end{bmatrix}

    (1)先沿x轴翻转,再沿y轴翻转

    g=\begin{bmatrix} &b_{-1,-1} &b_{-1,0} &b_{-1,1}\\ &b_{0,-1} &b_{0,0} &b_{0,1} \\ &b_{1,-1} &b_{1,0} &b_{1,1} \end{bmatrix}=>\begin{bmatrix} &b_{1,-1} &b_{1,0} &b_{1,1}\\ &b_{0,-1} &b_{0,0} &b_{0,1} \\ &b_{-1,-1} &b_{-1,0} &b_{-1,1} \end{bmatrix}=>\begin{bmatrix} &b_{1,1} &b_{1,0} &b_{1,-1}\\ &b_{0,1} &b_{0,0} &b_{0,-1} \\ &b_{-1,1} &b_{-1,0} &b_{-1,-1} \end{bmatrix}=g^{'}

    (2)先沿y轴翻转,再沿x轴翻转

    g=\begin{bmatrix} &b_{-1,-1} &b_{-1,0} &b_{-1,1}\\ &b_{0,-1} &b_{0,0} &b_{0,1} \\ &b_{1,-1} &b_{1,0} &b_{1,1} \end{bmatrix}=>\begin{bmatrix} &b_{-1,1} &b_{-1,0} &b_{-1,-1}\\ &b_{0,1} &b_{0,0} &b_{0,-1} \\ &b_{1,1} &b_{1,0} &b_{1,-1} \end{bmatrix}=>\begin{bmatrix} &b_{1,1} &b_{1,0} &b_{1,-1}\\ &b_{0,1} &b_{0,0} &b_{0,-1} \\ &b_{-1,1} &b_{-1,0} &b_{-1,-1} \end{bmatrix}=g^{'}

    计算卷积时,就可以用fg^{'}的内积:

    f*g(u,v)=a_{u-1,v-1} \times b_{1,1} + a_{u-1,v} \times b_{1,0} + a_{u-1,v+1} \times b_{1,-1} + a_{u,v-1} \times b_{0,1} + a_{u,v} \times b_{0,0} + a_{u,v+1} \times b_{0,-1} + a_{u+1,v-1} \times b_{-1,1} + a_{u+1,v} \times b_{-1,0} + a_{u+1,v+1} \times b_{-1,-1}

    请注意,以上公式有一个特点,做乘法的两个对应变量a,b的下标之和都是(u,v),其目的是对这种加权求和进行一种约束。这也是为什么要将矩阵g进行翻转的原因。

    以上计算的是(u,v)处的卷积,延x轴或者y轴滑动,就可以求出图像中各个位置的卷积,其输出结果是处理以后的图像(即经过平滑、边缘提取等各种处理的图像)。

    再深入思考一下,在算图像卷积的时候,我们是直接在原始图像矩阵中取了(u,v)处的矩阵,为什么要取这个位置的矩阵,本质上其实是为了满足以上的约束。因为我们要算(u,v)处的卷积,而g矩阵是3x3的矩阵,要满足下标跟这个3x3矩阵的和是(u,v),只能是取原始图像中以(u,v)为中心的这个3x3矩阵,即图中的阴影区域的矩阵。

    推而广之,如果如果g矩阵不是3x3,而是6x6,那我们就要在原始图像中取以(u,v)为中心的6x6矩阵进行计算。由此可见,这种卷积就是把原始图像中的相邻像素都考虑进来,进行混合。相邻的区域范围取决于g矩阵的维度,维度越大,涉及的周边像素越多。而矩阵的设计,则决定了这种混合输出的图像跟原始图像比,究竟是模糊了,还是更锐利了。

    比如说,如下图像处理矩阵将使得图像变得更为平滑,显得更模糊,因为它联合周边像素进行了平均处理:

    g=\begin{bmatrix} &\frac{1}{9} &\frac{1}{9} &\frac{1}{9}\\ &\frac{1}{9} &\frac{1}{9} &\frac{1}{9} \\ &\frac{1}{9} &\frac{1}{9} &\frac{1}{9} \end{bmatrix}  

    而如下图像处理矩阵将使得像素值变化明显的地方更为明显,强化边缘,而变化平缓的地方没有影响,达到提取边缘的目的:

    g=\begin{bmatrix} &-1 &-1 &-1\\ &-1 &9 &-1 \\ &-1 &-1 &-1 \end{bmatrix}

    对网上一些解释的不同意见

    网上有一些对卷积的形象解释,如知乎问题卷积为什么叫「卷」积?中 荆哲 ,以及问题 如何通俗易懂地解释卷积?中 马同学 等人提出的如下比喻:

    其实图中“卷”的方向,是沿该方向进行积分求和的方向,并无翻转之意。因此,这种解释,并没有完整描述卷积的含义,对“卷”的理解值得商榷。

    一些参考资料

    《数字信号处理(第二版)》程乾生,北京大学出版社

    《信号与系统引论》 郑君里,应启珩,杨为理,高等教育出版社

    展开全文
  • 区块链BlockChains通俗解释

    千次阅读 2018-06-23 16:45:46
    区块链BlockChains通俗解释 最近区块链比较火。最早我是听一个朋友提起,因为我对科技驱动东西一直很感兴趣,所以也做了一些了解。简单讲,区块链就是一个去中心化信任机制。过去区块链主要应用在比特币上,...

    区块链BlockChains通俗解释

     最近区块链比较火。最早我是听一个朋友提起的,因为我对科技驱动的东西一直很感兴趣,所以也做了一些了解。简单讲,区块链就是一个去中心化的信任机制。

    过去区块链主要应用在比特币上,一直到最近半年,区块链已经渐渐开始有了一些其他应用,特别是在金融领域,所以不断有人问我:“给我们讲讲区块链吧”。我今天给大家找来一篇文章,偏科普性质,不需要大家对技术和金融有任何背景,希望对大家有所帮助。

    问:什么是区块链?

    答:区块链是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。

    通俗一点说,区块链技术就指一种全民参与记账的方式。所有的系统背后都有一个数据库,你可以把数据库看成是就是一个大账本。那么谁来记这个账本就变得很重要。

    目前就是谁的系统谁来记账,微信的账本就是腾讯在记,淘宝的账本就是阿里在记。但现在区块链系统中,系统中的每个人都可以有机会参与记账。在一定时间段内如果有任何数据变化,系统中每个人都可以来进行记账,系统会评判这段时间内记账最快最好的人,把他记录的内容写到账本,并将这段时间内账本内容发给系统内所有的其他人进行备份。这样系统中的每个人都了一本完整的账本。这种方式,我们就称它为区块链技术。

    答:可以发现,这是在牺牲一点效率的情况下,获得了极大的安全性。首先没有一本中央大账本了,所以无法摧毁。每个节点都仅仅是系统的一部分,每个节点权利相等,都有着一模一样的账本。摧毁部分节点对系统一点都没有影响。其次,无法作弊,因为除非你能控制系统内大多数人的电脑都进行修改,否则系统会参照多数人的意见来决定什么才是真实结果,结果会发现修改自己的账本完全没有意义(因为别人不承认)。其次,由于没有中心化的中介机构存在,让所有的东西都通过预先设定的程序自动运行,不仅能够大大降低成本,也能提高效率。而由于每个人都有相同的账本,能确保账本记录过程是公开透明的。

    问:区块链解决了什么问题吗?

    答:区块链最重要的是解决了中介信用问题。在过去,两个互不认识和信任的人要达成协作是难的,必须要依靠第三方。比如支付行为,在过去任何一种转账,必须要有银行或者支付宝这样的机构存在。但是通过区块链技术,比特币是人类第一次实现在没有任何中介机构参与的情况下,完成双方可以互信的转账行为。这是区块链的重大突破。

    问:区块链技术主要可以用在哪些行业?

    答:区块链主要的优势是无需中介参与、过程高效透明且成本很低、数据高度安全。所以如果在这三个方面有任意一个需求的行业都有机会使用区块链技术。

    问:金融领域为什么要使用区块链技术?有什么实质性的好处?

    答:区块链技术在金融领域中主要的优势去中介化和极大的降低成本。

    首先金融行业目前由于防止单点故障和系统性风险,需要进行层层审计来控制金融风险,但由此也造成高昂的内部成本。并且由于不断增加的监管法规出现,特别是2008年金融危机导致对于金融管控门槛不断升高,而反恐战争导致反洗钱和反恐怖主义融资的范围也让监管的广度和深度逐渐扩大,导致整个金融系统的监管成本急剧增加。

    在这种情况下,区块链技术能够通过防篡改和高透明的方式让真个金融系统极大的降低成本。根据西班牙最大银行桑坦德发布的一份报告显示,2020年左右如果全世界的银行内部都使用区块链技术的话,大概每年能省下200亿美元的成本。这样的数据足以说明“区块链”给传统金融领域带来的巨大变革和突破。

    此外由于历史原因,导致传统金融机构在结算和清算时都依靠中央结算所来完成,而由此造成的问题就是效率低下。传统的跨国结算就是因为要通过类似于SWIFT这样的机构,所以跨国电汇往往是按天来计算的。但是比特币在使用区块链技术时,在完全没有中心化运营机构的情况下,完美的运行了七年,不仅能够实现实时结算和清算,而且没有出现过任何一笔账目错误。

    所以,如果所有的金融系统能够实现去中心化的实时结算和清算,不仅仅将极大的提高全球金融效率,并且由此能够改变全球金融的格局!
    展开全文
  • 区块链通俗解释

    千次阅读 2018-03-08 09:34:56
    最近区块链比较火。最早我是听一个朋友提起,因为我对科技驱动东西一直很感兴趣,...我今天给大家找来一篇文章,偏科普性质,不需要大家对技术和金融有任何背景,希望对大家有所帮助。问:什么是区块链?答:...
     最近区块链比较火。最早我是听一个朋友提起的,因为我对科技驱动的东西一直很感兴趣,所以也做了一些了解。简单讲,区块链就是一个去中心化的信任机制。

    过去区块链主要应用在比特币上,一直到最近半年,区块链已经渐渐开始有了一些其他应用,特别是在金融领域,所以不断有人问我:“给我们讲讲区块链吧”。我今天给大家找来一篇文章,偏科普性质,不需要大家对技术和金融有任何背景,希望对大家有所帮助。

    问:什么是区块链?

    答:区块链是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。

    通俗一点说,区块链技术就指一种全民参与记账的方式。所有的系统背后都有一个数据库,你可以把数据库看成是就是一个大账本。那么谁来记这个账本就变得很重要。

    目前就是谁的系统谁来记账,微信的账本就是腾讯在记,淘宝的账本就是阿里在记。但现在区块链系统中,系统中的每个人都可以有机会参与记账。在一定时间段内如果有任何数据变化,系统中每个人都可以来进行记账,系统会评判这段时间内记账最快最好的人,把他记录的内容写到账本,并将这段时间内账本内容发给系统内所有的其他人进行备份。这样系统中的每个人都了一本完整的账本。这种方式,我们就称它为区块链技术。

    答:可以发现,这是在牺牲一点效率的情况下,获得了极大的安全性。首先没有一本中央大账本了,所以无法摧毁。每个节点都仅仅是系统的一部分,每个节点权利相等,都有着一模一样的账本。摧毁部分节点对系统一点都没有影响。其次,无法作弊,因为除非你能控制系统内大多数人的电脑都进行修改,否则系统会参照多数人的意见来决定什么才是真实结果,结果会发现修改自己的账本完全没有意义(因为别人不承认)。其次,由于没有中心化的中介机构存在,让所有的东西都通过预先设定的程序自动运行,不仅能够大大降低成本,也能提高效率。而由于每个人都有相同的账本,能确保账本记录过程是公开透明的。

    问:区块链解决了什么问题吗?

    答:区块链最重要的是解决了中介信用问题。在过去,两个互不认识和信任的人要达成协作是难的,必须要依靠第三方。比如支付行为,在过去任何一种转账,必须要有银行或者支付宝这样的机构存在。但是通过区块链技术,比特币是人类第一次实现在没有任何中介机构参与的情况下,完成双方可以互信的转账行为。这是区块链的重大突破。

    问:区块链技术主要可以用在哪些行业?

    答:区块链主要的优势是无需中介参与、过程高效透明且成本很低、数据高度安全。所以如果在这三个方面有任意一个需求的行业都有机会使用区块链技术。

    问:金融领域为什么要使用区块链技术?有什么实质性的好处?

    答:区块链技术在金融领域中主要的优势去中介化和极大的降低成本。

    首先金融行业目前由于防止单点故障和系统性风险,需要进行层层审计来控制金融风险,但由此也造成高昂的内部成本。并且由于不断增加的监管法规出现,特别是2008年金融危机导致对于金融管控门槛不断升高,而反恐战争导致反洗钱和反恐怖主义融资的范围也让监管的广度和深度逐渐扩大,导致整个金融系统的监管成本急剧增加。

    在这种情况下,区块链技术能够通过防篡改和高透明的方式让真个金融系统极大的降低成本。根据西班牙最大银行桑坦德发布的一份报告显示,2020年左右如果全世界的银行内部都使用区块链技术的话,大概每年能省下200亿美元的成本。这样的数据足以说明“区块链”给传统金融领域带来的巨大变革和突破。

    此外由于历史原因,导致传统金融机构在结算和清算时都依靠中央结算所来完成,而由此造成的问题就是效率低下。传统的跨国结算就是因为要通过类似于SWIFT这样的机构,所以跨国电汇往往是按天来计算的。但是比特币在使用区块链技术时,在完全没有中心化运营机构的情况下,完美的运行了七年,不仅能够实现实时结算和清算,而且没有出现过任何一笔账目错误。

    所以,如果所有的金融系统能够实现去中心化的实时结算和清算,不仅仅将极大的提高全球金融效率,并且由此能够改变全球金融的格局!
    展开全文
  • 1.核函数本质 核函数其实准确来说就是一个内积(低维和高维内积相等),相似度,和那个映射函数没有任何关系(因为有时候你根本找不到...2. 核函数的性质 核函数必须是连续,对称,并且最优选地应该具有正(半)

    1.核函数本质

    核函数其实准确来说就是一个内积(低维和高维的内积相等),相似度,和那个映射函数没有任何关系(因为有时候你根本找不到那个映射函数),即使找到了映射函数也没啥意义。比如说你想把二维映射到三维,自己凑项数恰好凑成了二次多项式函数,最大的意义就是让你看清楚了原理。
    你的根本目的就是图个省事在低维空间里面算
    然后再说一下英文里kernel trick本质是是个tirck就说明他确实不是什么太高深的东西,就是一个计算内积的工具

    2. 核函数的性质

    核函数必须是连续的,对称的,并且最优选地应该具有正(半)定Gram矩阵。据说满足Mercer定理的核是正半定数,意味着它们的核矩阵只有非负特征值。使用肯定的内核确保优化问题将是凸的和解决方案将是唯一的。

    然而,许多并非严格定义的核函数在实践中表现得很好。一个例子是Sigmoid内核,尽管它广泛使用,但它对于其参数的某些值不是正半定的。 Boughorbel(2005)也实验证明,只有条件正定的内核在某些应用中可能胜过大多数经典内核。

    内核还可以分为各向异性静止,各向同性静止,紧凑支撑,局部静止,非稳定或可分离非平稳。此外,内核也可以标记为scale-invariant(规模不变)或scale-dependent(规模依赖),这是一个有趣的属性,因为尺度不变内核驱动训练过程不变的数据的缩放。

    补充:Mercer 定理:任何半正定的函数都可以作为核函数。所谓半正定的函数f(xi,xj),是指拥有训练数据集合(x1,x2,…xn),我们定义一个矩阵的元素aij = f(xi,xj),这个矩阵式n*n的,如果这个矩阵是半正定的,那么f(xi,xj)就称为半正定的函数。这个mercer定理不是核函数必要条件,只是一个充分条件,即还有不满足mercer定理的函数也可以是核函数

    3. 几种常用的核

    3.1 线性核

    线性内核是最简单的内核函数。 它由内积<x,y>加上可选的常数c给出。 使用线性内核的内核算法通常等于它们的非内核对应物,即具有线性内核的KPCA与标准PCA相同。
    表达式 :在这里插入图片描述

    3.2 多项式核函数

    多项式核是非固定内核。 多项式内核非常适合于所有训练数据都归一化的问题。我记得一般都会把问题归一化吧??

    表达式:k(x,y)=(αx ^ T y + c)^ d

    可调参数是斜率α,常数项c和多项式度d。

    3.3 高斯核函数

    高斯核是径向基函数核的一个例子。

    在这里插入图片描述
    或者,它也可以使用来实现

    在这里插入图片描述

    可调参数sigma在内核的性能中起着主要作用,并且应该仔细地调整到手头的问题。 如果过高估计,指数将几乎呈线性,高维投影将开始失去其非线性功率。 另一方面,如果低估,该函数将缺乏正则化,并且决策边界将对训练数据中的噪声高度敏感。

    3.4指数的内核

    指数核与高斯核密切相关,只有正态的平方被忽略。 它也是一个径向基函数内核。

    表达式:在这里插入图片描述
    。和高斯核确实很像。

    3.5 拉普拉斯算子核

    拉普拉斯核心完全等同于指数内核,除了对sigma参数的变化不那么敏感。 作为等价的,它也是一个径向基函数内核。
    表达式:
    在这里插入图片描述重要的是注意,关于高斯内核的σ参数的观察也适用于指数和拉普拉斯内核。

    4. sklearn svm

    4.1.SVM的分类表达式

    y = wx+b,w表示权重,b表示偏置
    可以看出来,是一个线性分类器,那么就只能解决一个,就是我们输入的数据是线性可分的

    所以总的来说:
    1.如果数据是线性可分的(一般表现为特征维度远远大于数据量,或者数据维度很大),就可以直接使用线性核函数kernel=”liner”
    2.如果数据是线性不可分,那么就要使用核函数将数据x变成线性可分,然后带回线性分类器,比如有输入数据x,核函数k,那么SVM分类器就表示为:y = wk(x)+b,
    SVM的核函数共有5种’linear’(其实就是不使用核函数), ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’

    但实际过程中根本不知道你的数据是线性可分还是不是线性可分的,所以一般都是使用数据把所有SVM各个核函数跑一遍,谁高选谁

    4.2 SVM代码实例

    from sklearn.svm import SVC
    clf = SVC()
    clf.set_params(kernel=svm_kernel,probability=probability).fit(X_train, y_train)
    clf.predict(X_test)
    

    4.2.1 SVM的参数

    • C=1.0, 惩罚因子C,即对误差的宽容度。c越高,说明越不能容忍出现误差,容易过拟合。C越小,容易欠拟合。
    • kernel=’rbf’, SVM核函数,可以为’linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’,或者自定义。
    • degree=3, 只作用于’poly’核函数,设置多项式核函数的最高此项次数
    • gamma=’auto’,决定了数据映射到新的特征空间后的分布,gamma越大,支持向量越少,gamma值越小,支持向量越多。支持向量的个数影响训练与预测的速度
    • coef0=0.0,
    • shrinking=True,
    • probability=False, 如果要返回分类的百分比,就把这个设置为True
    • tol=1e-3,
    • cache_size=200, 缓存
    • class_weight=None,
    • verbose=False,
    • max_iter=-1, 最大迭代次数
    • decision_function_shape=’ovr’, 设置多分类比较方式,1对1,还是1对多
    • random_state=None

    4.2.2 各个核函数可调参的参数

    C参数,任何核函数都可调 一般选择10^t , t=[- 4,4]

    1. linear没其它参数可调的
    2. poly 多项式核函数 重点就调一个degree参数,可以选择1-12
    3. RBF 径向基核函数 gamma参数可以选择下面几个数的倒数:0.1 0.2 0.4 0.6 0.8 1.6 3.2 6.4 12.8,默认的是类别数的倒数,即1/k,2分类的话就是0.5
    4. sigmoid 一般还可调2个参数,gamma,coef0,一般可选1 2 3 4,r选0.2 0.4 0.6 0.8 1

    4.3. sklearn中SVM的问题

    1. 不支持多线程并行运算
    2. 不支持在线计算
    3. 2种预测方法predict和predict_proba(取最高概率)最终结果居然不一样
    展开全文
  • 我们先从大家比较熟悉的栈说起吧,它是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取。 这就如同我们要取出放在箱子里面底下的东西(放入的比较早的物体),我们首先要移开压在它上面的物体...
  • 如何通俗的解释全微分?

    万次阅读 多人点赞 2018-10-18 19:44:51
    按道理把这个两个概念作为学科名字,很显然是非常重要,但是我觉得很奇怪,《高等数学》同济版并不怎么讲“微分”这个概念,而是着重在讲解“微分”一个性质“导数”,可能教材目的是为了做题和考试吧。...
  • 以下内容全部是转载来自 作者:palet ...来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。...教科书上通常会给出定义,给出很多性质,也会用实例和图形进行解释,但...
  • 关于矩阵最通俗的解释

    千次阅读 2016-12-06 20:29:58
    此文系转载,感谢原作雪蝴蝶,码这么多字,太辛苦了,...一上来就介绍逆序数这个“前无古人,后无来者”古怪概念,然后用逆序数给出行列式一个极不直观定义,接着是一些简直犯傻行列式性质和习题——把这行乘一
  • 题目描述 一个整型数组里除了两个数字之外,其他数字都出现了两次。...通俗解释:相同数异或为0,并且0和任何数异或都会是它本身。 所以如:[2,2,6,7,8,6,8,7,3,5],异或后相同会抵消,最后只剩
  • 点击上方↑↑↑“OpenCV学堂”关注我来源:公众号Datawhale授权转载对卷积的困惑卷积这...作为一个学物理出身的人,一个公式倘若倘若给不出结合实际的直观的通俗解释(也就是背后的“物理”意义),就觉得少了点什么...
  • 什么是经济危机?经济危机是指经济系统没有产生足够消费价值。也就是生产能力过剩危机...如果危机的性质属于这种被动型,很难认为这种货币在危机之后还会回升,危机过程实际上是对该国货币价值重新寻求和确认
  • 点击上方“智能与算法之路”,选择“星标”公众号第一时间获取价值...作为一个学物理出身的人,一个公式倘若倘若给不出结合实际的直观的通俗解释(也就是背后的“物理”意义),就觉得少了点什么,觉得不是真的懂...
  • 一上来就介绍逆序数这个“前无古人,后无来者”古怪概念,然后用逆序数给出行列式一个极不直观定义,接着是一些简直犯傻行列式性质和习题——把这行乘一个系数加到另一行上,再把那一列减过来,折腾得那叫一...
  • 对卷积困惑卷积这个概念,很早以前就学过,但是一直没有搞懂。教科书上通常会给出定义,给出很多性质,也会用实例和图形进行解释,但究竟为什么要这么设计,这么计算,背后意义是什么,往往语焉不详...
  • 牛顿法与梯度下降法数学公式推导过程 迭代更新数学公式推导过程 ...这时将看成函数,则根据函数最小值性质,当偏导数等于0时出取得,从而得到,所以,根据等式特点得到,只有两者都取0时才能使等式等于0,...
  • 如何通俗易懂地解释卷积? 卷积如何在数字信号...作为一个学物理出身的人,一个公式倘若倘若给不出结合实际的直观的通俗解释(也就是背后的“物理”意义),就觉得少了点什么,觉得不是真的懂了。 教科书上一般...
  • 知乎真是大神众多,建议去看原文,这里仅作记录。 链接:如何通俗易懂的理解卷积? ...作为一个学物理出身的人,一个公式倘若倘若给不出结合实际的直观的通俗解释(也就是背后的“物理”意义...
  • 关系的性质 - 自返

    2019-07-03 19:43:24
    一、自返 通俗解释: 自己本身有没有这个性质,如自己是否了解自己等 一定了解(自返) 不一定了解(非自返) 肯定不了解(禁自返) 1.1 自返关系:在关系判断中,关系项之间所存在某种关系是否也存在于某关系...
  • Softmax函数输入是一个N维向量,向量元素是任意实数,输出也是一个N维向量,但是有如下性质: 输出向量元素取值范围是(0, 1) 对输出向量所有元素求和时,和为1 Softmax函数是这样一个映射 S(a):RN→RNS(a)...

空空如也

空空如也

1 2 3 4
收藏数 66
精华内容 26
关键字:

性质的通俗解释