精华内容
下载资源
问答
  • 1)ww的算法为每年1月1日为第... 公式 每周第一天 :date + * 7 - 7  每周最后一天:date + * 7 - 1 2)iw的算法为星期一至星期日算一,且每年的第一个星期一为第一,  例如20050101为星期六,所以...

    1)ww的算法为每年1月1日为第一周开始,date+6为每一周结尾

      例如20050101为第一周的第一天,而第一周的最后一天为20050101+6=20050107

      公式 每周第一天 :date + 周 * 7 - 7

      每周最后一天:date + 周 * 7 - 1

    2)iw的算法为星期一至星期日算一周,且每年的第一个星期一为第一周,

       例如20050101为星期六,所以用iw的算法是前年的53周,而20050103之后才是第一周的开始。

      公式 每周第一天 :next_day(date) + 周 * 7 - 7

      每周最后一天:next_day(date) + 周 * 7 - 1

    3)其它:

      A、查今天是 "本月" 的第几周

      SELECT TO_CHAR(SYSDATE,'WW') - TO_CHAR(TRUNC(SYSDATE,'MM'),'WW') + 1 AS "weekOfMon" from dual;

      或

      SELECT TO_CHAR(SYSDATE,'W') AS "weekOfMon" from dual;

      B、查今天是 "今年" 的第几周

      select to_char(sysdate,'ww') from dual;

      或

      select to_char(sysdate,'iw') from dual;

    附注 iw与ww的相互转换

    oracle 中的写法

            select to_char(sysdate,'iw') from dual
    mysql中的写法

            SELECT DATE_FORMAT(now(),'%u')
            //大写U与小写u不一样

     下面附上mysql中日期标识符的作用,

            %M 月名字(January……December) 
            %W 星期名字(Sunday……Saturday) 
            %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) 
            %Y 年, 数字, 4 位   www.2cto.com  
            %y 年, 数字, 2 位 
            %a 缩写的星期名字(Sun……Sat) 
            %d 月份中的天数, 数字(00……31) 
            %e 月份中的天数, 数字(0……31) 
            %m 月, 数字(01……12) 
            %c 月, 数字(1……12) 
            %b 缩写的月份名字(Jan……Dec) 
            %j 一年中的天数(001……366) 
            %H 小时(00……23) 
            %k 小时(0……23) 
            %h 小时(01……12) 
            %I 小时(01……12) 
            %l 小时(1……12) 
            %i 分钟, 数字(00……59) 
            %r 时间,12 小时(hh:mm:ss [AP]M) 
            %T 时间,24 小时(hh:mm:ss) 
            %S 秒(00……59) 
            %s 秒(00……59) 
            %p AM或PM 
            %w 一个星期中的天数(0=Sunday ……6=Saturday ) 
            %U 星期(0……52), 这里星期天是星期的第一天 
            %u 星期(0……52), 这里星期一是星期的第一天 
            %% 一个文字“%”。
    原文链接:https://blog.csdn.net/qq_41622282/article/details/99689319   和  https://blog.csdn.net/ztg2006/article/details/5287035

     

     

    展开全文
  • 1)ww的算法为每年1月1日为第一开始,... 公式 每周第一天 :date + * 7 - 7  每周最后一天:date + * 7 - 1 2)iw的算法为星期一至星期日算一,且每年的第一个星期一为第一,  例如20050101为星

    1)ww的算法为每年1月1日为第一周开始,date+6为每一周结尾

      例如20050101为第一周的第一天,而第一周的最后一天为20050101+6=20050107

      公式 每周第一天 :date + 周 * 7 - 7

      每周最后一天:date + 周 * 7 - 1

    2)iw的算法为星期一至星期日算一周,且每年的第一个星期一为第一周,

       例如20050101为星期六,所以用iw的算法是前年的53周,而20050103之后才是第一周的开始。

      公式 每周第一天 :next_day(date) + 周 * 7 - 7

      每周最后一天:next_day(date) + 周 * 7 - 1

    3)其它:

      A、查今天是 "本月" 的第几周

      SELECT TO_CHAR(SYSDATE,'WW') - TO_CHAR(TRUNC(SYSDATE,'MM'),'WW') + 1 AS "weekOfMon" from dual;

      或

      SELECT TO_CHAR(SYSDATE,'W') AS "weekOfMon" from dual;

      B、查今天是 "今年" 的第几周

      select to_char(sysdate,'ww') from dual;

      或

      select to_char(sysdate,'iw') from dual;

     

    展开全文
  • 泰勒公式的展开细节解析

    万次阅读 多人点赞 2017-08-05 08:58:22
    上周写完了《《三体》读后思考-泰勒展开/维度打击/黑暗森林》后收到一些邮件,进一步思考了关于泰勒展开的意义。也许我掌握的那些网络技术比如Linux Netfilter,NAT之类,太过底层太过小众,所以大家几乎都是没有感...

    上周写完了《《三体》读后思考-泰勒展开/维度打击/黑暗森林》后收到一些邮件,进一步思考了关于泰勒展开的意义。也许我掌握的那些网络技术比如Linux Netfilter,NAT之类,太过底层太过小众,所以大家几乎都是没有感兴趣的,倒是这种科普性质的文章和那些吐槽类的文章,会引发一系列的互动,这对我来讲是好事,因为我喜欢跟人交流技术和思想。

    声明

    本来这篇文章应该添加在《三体》读后感后的“补遗”一节呢,后来觉得太长了,有点喧宾夺主的意思,就单独写了一篇文章。
      其实吧,这篇文章已经跟《三体》小说没有太大的关系了,这纯粹是一篇关于数学的文章,但是由于本文要涉及大量关于“趋势的趋势的趋势”,“走势的走势的走势的走势”,“导数的导数的导数的导数的导数…”,为了保持一致性,我将本文的题目写成了“《三体》读后感的读后感…”,可能后面还有,未完待续!

    第一部分.泰勒展开解释

    很多人对我解释的泰勒展开提出了自己的疑问,这些疑问大致都是对下面的问题表示不解:
    为什么可以从一个单独的点不断求导就可以画出整个函数的曲线?即“一点是如何蕴含整个世界”的。
    诚然,这个问题其实在数学上是及其容易证明的,在定量的角度,随便找出一本讲微积分或者数学分析的书都可以得到令人满意的回答,我在文章《《三体》读后思考-泰勒展开/维度打击/黑暗森林》中也给出了一个简易的推导。然而,在满足了逻辑上的自洽后,我们很多人对一件逻辑上合情合理的事情便有了探索其实际意义的欲望,比如我们会问,它的物理意义是什么,它的几何意义是什么,甚至更基本的,它的意义是什么?就这么问着问着,便似乎有了一点哲学探索的味道,在我看来,这便是最精彩的!
       很多人都看过双截棍表演,但现如今很少有人了解鞭术了,其实你可以把鞭子看成是N趋近于无穷大时的N截棍,玩起来更难。其实我也不是很懂,就是为了解释这个泰勒展开才稍微看了一点关于鞭术的东西,具体来讲,执鞭人手执鞭子在原地只是上下左右按照一定的规则甩鞭,一条很长的鞭子就会整体展现成各种漂亮的曲线,他是怎么做到的?
       当然,从物理上讲,这当然是若干列波从执鞭处向鞭子的另一端传播,传播的过程在不同的点产生了定向的效果,然而似乎不是一个很好的足以让人满意的解释,我们的问题是,那个执鞭人的手需要怎么个动作,才能让鞭子整体上看来是那种效果?
      这个问题我是回答不了,因为我不懂鞭术,身边也没有懂的人,但是这个问题似乎和本文一开始的那个问题讲的是同一回事,即从一个点来蕴含整体的行为。

      我的观点是:既然走势可以让人预测曲线上邻接的下一点的大致位置,那么走势的走势便可以相对精确地预测邻接下一点的具体位置,紧接着,走势的走势的走势便可以告诉人们这种趋势可以延续到什么时候,再继续…这似乎超出了人们的想象力…我们还是用简单的数学来表示吧。我们先从1阶导数,2阶导数,3阶导数的几何意义说起。
      先看1阶导数,我们知道,它是经过曲线上某点的切线的斜率:

    这里写图片描述

    我们来看这个1阶导数可以预测到多远处呢?如果我们仅仅知道该点的坐标以及有这么一个该点的1阶导数的值,我们几乎什么都预测不了,除了知道在该点处有沿着切线向上的趋势之外,这没能为我们画出这个曲线带来帮助,似乎下面的曲线都能满足,然而真正正确的只有一个:

    这里写图片描述

    换句话说,1阶导数只能将邻接的下面的点定位到两个范围中的一个:

    这里写图片描述

    so,我们需要进一步的信息,我们继续求2阶导数,看看能挖掘出什么新玩意儿。
      2阶导数是1阶导数的导数,换句话说,它代表了检测点切线的变化趋势,有了这个趋势,我们是不是可以相对精确地预测邻接的点的位置了呢?我们先看2阶导数的几何意义为何。学过数学的都知道,2阶导数表示了曲线的凸凹,对于凸函数,2阶导数是负数,它表示切线的斜率会越来越小,而对于凹函数,2阶导数是正数,它表示切线的斜率越来越大:

    这里写图片描述

    因此,有了2阶导数,我们对接下来的曲线走势定位就更加精确了,我们可以进一步缩小邻接的点的取值范围:

    这里写图片描述

    具体的坐标由2阶导数的具体值来约束。
      到了这一步,进一步将曲线往前延伸似乎是无望的,因为:

    1.首先,我们不知道代表检测点凸凹性的2阶导数的值在将来会不会逆转,即我们不知道曲线会不会由凸变凹或者由凹变凸;
    2.其次,即便假设函数的凸凹性不变,我们也不知道接下来曲线是越来越凸/凹呢?还是反过来呢?

    毕竟,我们只求得了检测点的1阶和2阶导数,注意,它们都只是一个数字,而不是一个带有自变量的新的函数,所以我们通过1阶导数和2阶导数,得到仅仅是2个值,仅此而已,如果我们能得到关于曲线任意一点的2阶导数的函数表达式,那么我们当然可以预测曲线2阶函数的走势,但在本文中,我不会那么做,我就假设,我们没有这个函数表达式,只有一个检测点的2阶导数的值!怎么办?
      我们继续看3阶导数。在此之前,我必须要澄清一个我的观点。
      我在知乎上查过相关资料,另外还特意请教过一些搞数学的老师或者朋友,得到的解答可能都是从哪个地方看到的一致性解答,说3阶,4阶,5阶…导数这些没有几何意义和物理意义,数学只追求逻辑上的完整,自包容,而不是去追求什么几何意义,物理意义。我并不赞成这个说法,以霍金为例,它的虚时间模型虽然只是数学上的技巧,但是最终的目标却是为他的有限无界的宇宙几何模型服务,这说明,完成逻辑完整性证明和寻找其意义同等重要,可能后者还会更重要,我没有看到哪一个伟大的物理学发现背后仅仅是纯粹的思辨性的数学,不管是牛顿的引力场,还是爱因斯坦的引力场,还是霍金的量子引力,在逻辑严谨性支撑的前脸,都有一个漂亮得体的几何模型作为表象。

      3阶导数不难求,继续对2阶导数表达式求导,然后代入检测点的x值即可,然而3阶导数的意义是什么?其实仔细想想,并不难理解,这正如2阶导数主导1阶导数的变化从而把1阶导数自认为正确的“以直代曲”的直线模拟拉成弯曲的或者凸或者凹的曲线一样,3阶导数同样主导2阶导数的变化,它可以表示“曲线是继续凸下去或者继续凹下去,还是会在某一个x值后逆转,由凸变凹或者由凹变凸”。用语言表示比较苍白难以理解,于是我画个图示:

    这里写图片描述

    好了,有了3阶导数,我们似乎进一步将曲线向前推进了,至少是预测出了一种趋势,然而这个趋势是必然的吗?考虑到一种情况,比如当前检测点的2阶导数值为1,表示曲线在检测点是凹的,而同时3阶导数的值为-1,这表示可能接下来邻接点的2阶导数会比1小一点,最终会变成0甚至负数,这意味着曲线会由凹变凸,即经历一个拐点,但这种预测一定会发生吗?
      不一定!But why?
      虽然当前检测点的3阶导数值为-1,但这并不意味着它会一直保持-1,如果它一直保持-1,那么我们的预测正确,但是如果曲线的3阶导数在该检测点是递增的呢?这意味着会发生下面的情况:
    在曲线从检测点 x0 开始,2阶导数变为0甚至负数之前,其3阶导数就已经从-1递增到0以上了,这说明虽然曲线的凹性越来越显得不那么凹,有变平变凸的趋势,但这种趋势的趋势越来越弱,还没等曲线变成凸的,这种作用便消失了,曲线将会继续保持凹型发展下去…
      上面的判断简直可以弥补3阶导数的误差,曲线进一步前进,很帅!那么如何判断3阶导数的走势呢?简单,求4阶导数!
    进一步,以上这样发展会持续多久呢?好吧,求5阶导数吧,可以再推进一步。我们对曲线走势的掌握离开检测点随着越来越高阶导数的求解渐行渐远,6阶导数,7阶,8阶,9阶…我们对曲线走势的预测将越来越接近原先的函数。

      我来画一个实际的例子结束讨论:

    这里写图片描述


    这是不是有点像鞭术大师执鞭表演,力道和甩鞭模式从大师的手掌开始沿着鞭体传播,模式的频率越低,影响的越远。除了鞭术,还有双截棍,如果玩双截棍的时候打到了自己,那么一定是哪个导数没有求好,比如4阶导数搞错了…
      在了解了曲线的走势后,剩下的就是用二项式去拟合了。其实,这种二项式叠加的拟合方式并没有什么特殊的含义,只是因为它是可以做到的而已,你同样可以用傅立叶变换的方式将一个函数在频域上展开,因为那也是一种可能的方式。其实任何两个或者多个带有实际效应的表达式叠加在一起,整体而言都会表现出各个叠加体局部的性质,这里重要的是一个纯数学上的技巧,即如何确定二项式的系数,可以肯定的是系数跟各阶导数是相关的,剩下的问题就是待定系数法求解了,这并不是需要赘述的内容。
      综上,在这个待定系数的角度,二项式拟合任何曲线实属凑出来的,因为凑出来的二项式叠加表达式的各阶导数值恰好等于原函数的各阶导数值。
      然而这并不能让不断寻找意义的人满意,如果非要在纯数学之外去寻找这样做的意义,那么我们可以从中值定理入手去理解。说好了不谈这些诸如中值定理的,但事实上,想彻底理解一个数学概念,这些概念是避不开的,问题是,我们如何更简单地(而不是更复杂地)去理解它们。
      以拉格朗日中值定理为例,它的中值定理是这样的:

    f(x)x0,x,[x0,x],ξ[x0,x]使:f(x)=f(x0)+f(ε)(xx0)

    按照这个思路展开,既然在直观的1阶导数情形下,拉格朗日中值定理拥有的几何意义,那么在2阶导数均拟合的情况下,是不是可以有下面的描述呢:

    f(x)x0,x,[x0,x],ξ[x0,x]使:f(x)=f(x0)+f(x0)(xx0)+f(x0)2!(xx0)2+f(ε)3!(xx0)3

    这个式子可以推广到 N 阶,这是一种很常见的思路,把一个式子一般化后推广,然后小心求证其合理性,待到证明完成,便可以进一步地解释现象,这种思路承接了近代绝大部分的科学技术进步!
      我来给出上式子的一个几何解释,虽然我们想象不到2阶导数依照其几何意义如何画出来,但是我们可以把原始的函数本身升一个维度,然后用积分的思想去理解2阶导数的几何意义。
      理解我在说什么了吗?我的意思简单点说,就是积分式的1阶导数(其实是导函数)就是被积函数,被积函数的1阶导数就是积分式的2阶导数,而我们知道积分式是有几何意义的,它表示面积,而被积函数则表示曲线,再进一步积分式的2阶导数则表示曲线上某点切线的斜率…这样,相当于我们将2阶导数看成了切线斜率,将1阶导数看成了曲线本身,而原始函数看成了曲线与x轴围成的面积:

    Farea=f(x)=x0g(x)dx
    f=g(x)
    f=g=线

    这样我们就可以用拼接图形求总面积的方式来在更高的维度表达类似拉格朗日中值定理的式子了。我们看一个图示:

    这里写图片描述

    我们依照上面的图示,试着求一下 OxDA 的总面积,首先我们将其表示成各个小块的和的形式:

    SOxDA=SOx0P0A+Sx0xCP0+SP0CB+SP0BD

    然后我们依照图示中的几何关系来分别求各个小块的面积,幸运的是,以直代曲的思想在此体现的淋漓尽致,我们要求的只是简单的三角形,矩形的面积,而我们知道这些完全用加减乘除四则混合运算就足够了,是不是很符合二项式叠加的思想呢?殊途同归!首先看 SOx0P0A ,由定义,我们知道它就是 f(x0) ,接下来看 Sx0xCP0 ,它是个矩形,变长分别为 xx0 LP0x0 ,而 LP0x0 按照定义,它就是 g(x0) ,而 g(x0) 又是什么呢?很显然根据上面的微积分关系,他就是 f(x0) ,到此为止我们可以把面积求和算式写成如下的样子了:

    SOxDA=f(x)=f(x0)+f(x0)(xx0)+SP0CB+SP0BD

    还剩下两项,现在来看 SP0CB ,它是个三角形,我们知道它的底边长就是 xx0 ,而高则是 LCB ,同时我们知道切线的斜率就是 f(x0) ,那么 LCB 显然就是 f(x0)(xx0) 咯!我们把它代入到上面的式子:

    SOxDA=f(x)=f(x0)+f(x0)(xx0)+12f(x0)(xx0)+SP0BD

    最后还剩一下一项了,即 SP0BD ,它太小了,并且貌似不是很容易计算,因为它不是三角形,也不是任何用直线围成的,它的上沿是一条曲线…这可怎么办?我们注意到,当 x x0趋于接近的时候,这块小面积就趋近于 0 了,这便是可以忽略不计了,这就是极限的思想,当然这不是本文的主题咯。我在画上面的示意图的时候,特意将x x0 拉开了一定的距离,这是为了直观,在真正的微积分运算中,这段距离就是无穷小,那么图形 SP0BD 的面积也就是无穷小了,暂且记为 O(SP0BD) ,最终的式子为:

    SOxDA=f(x)=f(x0)+f(x0)(xx0)+12f(x0)(xx0)+O(SP0BD)

    这样,当切分的区间越来越细致时, O(SP0BD) 越来越趋向于 0 (这个很容易用积分中值定理从直观上看出来,事实上,O(SP0BD)的值就等于 f(ε)3!(xx0)3 ).
      好了,这就是一个在2阶情况下,中值定理大致的几何印象。循着这个思路推广下去,泰勒公式就在眼前了。
      虽然我们想象不出来 N 阶中值定理的几何意义,但是正像物理学中经常提及超维一样,我们也可以把二维的笛卡尔坐标系拓展成“无限维度空间中的超立方体”。这样的假设下,似乎还不是特别令人满意,但也就只能这样了。
      事实上,我这里可以给出一点提示,利用积分中值定理可以证明泰勒公式在意义层面的合理性,利用分部积分从我上面给出的2阶导数直观几何意义开始,可以逐渐导出完整的泰勒公式!我不会在本文正文中去表达这些内容,因为怕公式太多。当你看线条找不出线条,夹角之间的关系时,试试面积,升个维度试试。
      最后,记住一个结论,N阶导数的几何意义物理意义要比如何用泰勒多项式表达任意表达式更加重要,后者只是说明它“恰好能做到”而已,除了泰勒多项式,傅立叶展开也可以达到同样的效果,另外,还可能有别的。
      在观察二项式拟合任意函数的时候,我们知道“它恰恰可以做到”,现在的问题是如何感性的认识到这一点,即“它为什么就可以做到?”,我们以下面的两个多项式为例,来点感性认识:

    f(x)=x2
    f(x)=x3

    我们把它们画在一个图里:

    这里写图片描述

    可以看得出,2次多项式的曲线表明它是关于 y 轴对称,而3次多项式的曲线表明它是关于O对称的。这个时候,我们试试两个二项式加和的图像时什么,为了保持对比,我把原始的两个二项式留在了图里:

    这里写图片描述

    感觉2次的多项式完全被3次多项式碾压覆盖,表现不出任何它自己的特征,我们可以清晰地看到,在 x 取值小于0的时候,根本表现不出2次曲线的行为,这似乎不是一个好消息,因为直观地看,次数越高的多项式在整体的求和表达式中越占据主导地位,那些次数较低的多项式都只是配角,负责曲线水平或者垂直的移动而已…这似乎打破了“任意次多项式求和表达式”可以拟合任何曲线的神话。
      然而,我们没有考虑缩放。
      直观地看,虽然3次曲线在x变化时,其 y 值的变化剧烈程度要大于2次曲线(从其1阶导数上便能看得出,2次曲线是2x,3次曲线是 3x2 ),如果我们能适当地,恰到好处的把二者的差异通过缩放平滑掉,那么结果如何呢?考虑到我们只能用四则混合运算,非常简单,给3次多项式除以一个大于1的系数,减小它的 y 效应,或者给2次多项式乘以一个大于1的系数,从而增加它的y效应,我们来看看结果如何。先看缩小3次曲线效应的结果:

    这里写图片描述

    再看增加2次曲线效应的结果:

    这里写图片描述

    这基本上达到了我们的预期。
      到这里,我们知道,二项式的加和表达式是“可以”拟合任何曲线的,而泰勒展开式的那些系数则是一组“恰到好处”的系数,它保证了原表达式和展开表达式的各阶导数都是相等的!

      我想,我终于把该表述的都说完了,有人提到说让我用动画去表示曲线的拟合,这个确实要比用图形和文字更加震撼,然而It is beyond my ability,我并不会这些东西,我所用的gnuplot都要折腾好久,我并没有什么更好的简单的工具来帮我做更加直观的东西,所以就只能通过画草图和文字加以赘述,实为能力所限,实在抱歉。
      我们考虑一个形象的表述来结束关于这个话题的讨论,那就是牛顿定律的 公式:

    v=at
    s=f(t)=v0t+12at2

    我们知道, 的1阶导数就是速度,2阶导数就是加速度,在恒力 F0 作用下,2阶导数是一个不随时间变化的定值,那么问题是,时间 t 后的位移由谁决定,仔细想想就会明白,如果我们忽略恒力导致的加速度a,即忽略 的2阶导数,那么时间t后的位移为:

    st=vt0t

    很显然,在恒力的作用下,这与真实的位移结果差很多,距离当前时间越远,结果误差就越大,很显然,在离当前时间 t0 的适当远 t 处,位移/时间的2阶导数便派上了用场,在恒力作用下,它可以精确计算相对于当前时间的位移。
      以上的讨论仅仅是在恒力作用下牛顿第二定律导出的结论,然而如果施加的力不是恒定的,而是一个关于时间t变化的变力 F=f(t) ,那么此时仅仅2阶导数便不足以刻画时间 t 后精确的位移了,此时要想预测时间t后的位移,随着 t 距离当前时间的远去,的3阶导数,4阶导数…便派上了用场,注意,变化率的变化率使得我们能在越来越远的地方预测趋势,这个正是和上文中关于泰勒展开的讨论是一致的。

    值得一提的是,牛顿在当初导出微积分重要结论的时候,就是为了研究物理运动的,特别是天体的运动,因此关于位移/时间在微积分上的结论应该是从《自然哲学的数学原理》中可以看到的第一手结论。

    第二部分.另外一种刻画的方式

    一般而言,我们在画一个函数的图像时,基本就两点:

    1.首先求解各阶导数,判断其增减性,凸凹性,极值,拐点等,并且描出这些点;
    2.其次,拟合若干个可以判断的具体点。

    这样,大致的曲线就画出来了,可以看到,这种画法跟素描的方式非常像,简直就是素描!先画轮廓,然后进一步细化。然而我觉得这不是云天明故事中针眼画师的画法,这也不是我的画法。
      不管怎样,虽然两种不同的画法在操作细节上是截然不一致的,但是结果是,两种方案的结论是完全一致的,函数被刻画了,性质坦然地舒展了,还有什么性质没有暴露呢?嗯,也许在无穷远处的无穷小的误差可能会引发逻辑上的争论。但此事并不经常,也不绝对。
      在正文中我是通过一个单独的点来蕴含整体模式的,然而在数学上,多数的建议却是,采用了素描的方式从粗到细地去刻画。两类的效果是一致的。

    第三部分.关于导数和频率

    我们知道,1阶导数就是函数在 x 变化时,对应到y变化的效应,而2阶导数则是 x 变化时,对应到函数1阶导数的变化效应,以此类推。最后我们发现,整个N阶导数对应是一系列不同频率的变化效应,而整个原始的函数曲线正是这些不同频率的效应的叠加,用这个思路去解释傅立叶展开是非常合理的,然而我们发现它竟然也可以对应地去解释泰勒展开!
      随着求导阶数的增加,效应频率也在不断降低,最终这些不同频率的效应将反馈到函数曲线上的任意一点,而这就完整勾勒出了整条曲线。如果能掌握了这个道理,那么那些执鞭者便可以从单点甩出任意曲线了,我们都知道,频率越高,传播距离越短,频率越低,传播距离越长,当然执鞭者也知道这个道理。这一切在数学上的反映,那就是:
    求导越深,频率越低,影响越远,曲线越拟合。
    爆炸!旋转升降座椅一定会爆炸!赶紧换椅子。

    很多人在看了这些文章后,都给了一些建议,比如说加入一些动画,我起初是不擅长这些的,然而主音吉他手告诉我说gnuplot里做gif超级简单,于是我在周一下班后仔细研究了一下,确实很简单,虽然还没有完全掌握关键的语法,但是比葫芦画瓢还是可以的。
      以下是一个 y=sin(x) 的泰勒展开的gif动画,红色代表原始的 y=sin(x) ,绿色曲线的每一帧表示多了一阶的导数,也就是展开式中多了一项,可以看得出,随着求导的深入,绿色曲线将越来越拟合原始的正弦曲线,能拟合到什么程度呢?答案是“你想到什么程度,就能到什么程度”
    这里写图片描述

    附录

    A. 分部积分法推导泰勒公式

    我们从正文中提到的的中值定理的变形体入手:

    f(x)=f(x0)+f(x0)(xx0)+

    为了简单起见,我忽略掉了余项 O(SP0BD) ,注意,只是在写法上忽略了余项,事实上它是会一直存在的,这个余项会随着推导的进行,一直往后逼,越来越小。
      我们首先希望推倒多米诺骨牌的第一块试试看,升个维度,把导数写成积分的形式,我们有:

    f(x)=f(x0)+xx0f(xr)dr

    请注意, r 是计算积分使用的变量,它和计算整个叠加和所用的x是不同的。以上就是整个多米诺骨牌布景了,现在该推倒第一块了!使用分部积分法则:

    udv=uvvdu

    u=f(xr)
    v=r

    xx0f(xr)dr=(f(xr)r)xx0xx0rdf(xr)

    xx0f(xr)dr=f(x0)(xx0)+xx0f(xr)2dr2

    f(x)=f(x0)+f(x0)(xx0)+xx0f(xr)2dr2

    好了,多米诺骨牌的第一块已然推倒了…接下来就观测吧!给出点提示:注意上面式子的第三部分:

    f(xr)2dr2

    如果我们再次设 u=f(xr) v=r2 呢,继续享受上面的分部积分过程吧
      大致意思就是这样,过程就不详细写了。

    B.泰勒公式失效的场景(这个附录会很长)

    是滋补鸡汤还是慢性毒药,刚刚喝完的时候是无法获知的,然而,当你喝下去这碗汤后3天,如果它是鸡汤,你无法在这么短的时间内体会到它带给你的益处,如果它是毒药,你将死去…
      是时候把物理意义扯出来了。
      在正文中,我强调的那些可以“从一点窥见整个世界”的曲线其实有有条件的,那就是它的定义域必须是全体实数,且处处可导,若不是这样的话,情况就会复杂得多,这些复杂的情况在本附录讨论。在详细讨论前,有个声明。
      由于本文并不是在同一时间写的,中间间隔了一个工作周,在这一周中我学会并喜欢上了Geogebra,所以我放弃了gnuplot,以下的图示全部来自于Geobebra。让我们开始吧!
      首先看一个简单的反比例函数 y=1x ,我们看下它的图像:

    这里写图片描述

    且问曲线如何从A点“按照趋势”延伸到B点?A点和B点之间有一堵墙,该墙不可逾越!因为分母不能是 0 ,所以y轴理所当然就是这堵不可逾越的墙了,换句话说, y 轴左右两边是隔离的两个世界,在数学上,这个x=0的点就叫做奇点
      奇点的意义在于,在该点,曲线是没有定义的,在这种点处,求导什么的都是毫无意义的,这些点真的就是“奇异”的点,任何计算,任何公式,定律都毫无意义(下文中将会赋予奇点以意义!)。
      知道了奇点的概念后,再说一个例子。
      有一天我微信上问温州皮鞋厂老板有没有什么好玩的东西,老板说算 5 比较好玩,然后我便犯了一个低级的错误。我信口开河“把 y=x12 泰勒展开,把 5 代入不就可以了吗”,为了在计算中不引入根号,瞬间想到了在x=1处展开…计算是简便了,然而结果对吗?
      我们先来看一段动画,即在 x=1 处展开 y=x12 的最多 n=50 阶逼近的过程(Geogebra做这个非常帅!简单直接易上手!):

    这里写图片描述

    n=1 n=50 ,把 x=5 代入均得不到正确的结果。可见,结论并不是我们之前预期的那样,在“ x=1 这一个点窥见整条曲线”,显然“能窥见”的曲线范围仅仅局限在大致 (0,2) 这个区间里。到底发生了什么?在进一步阐释物理意义之前,我还有点建议,如果你没有接触过复分析,收敛圆,收敛半径,审敛法这些,那么正好,如果你接触过这些但只是懂概念,能推导,那么建议暂时忘掉,如果你精通这些,那么不建议继续阅读下去。
    ………….
    霍金的宇宙模型中,奇点是所有经典物理定律完全失效的地方,它既是,它同时又是所有!霍金认为,量子理论可以解释奇点里发生的事,毕竟物理学不是哲学,人们显然不能接受纯粹的无或者无穷。奇点蕴含了整个宇宙本身,在创世之初的那一瞬间,奇点就是整个宇宙,它是时间,它是空间,它是上帝本体!
      宇宙的膨胀意味着时间的膨胀和空间的膨胀,既然是膨胀,肯定需要多余的物质和能量,当我们吹气球的时候,气球之所以会膨胀,那是因为有气体不断地注入气球内部,同时气球球壁还有足够的厚度可以展开,总之,整个过程是需要物质(球壁)和能量(吹气)的!宇宙外面是什么并不是我们讨论的范围,霍金认为宇宙就是宇宙,是一个自洽的整体,那么显然没有在宇宙外面吹气的那个人,宇宙也不会有球壁…促使宇宙膨胀的物质和能量来自哪里?
      来自奇点!
      来自奇点!
      来自奇点!
      奇点早就蕴含了一切!
      用霍金宇宙的奇点思想理解数学上的奇点概念,是朴素的。一条连续且光滑的曲线,它由它的奇点蕴含并生成,以 y=1x 为例,它由两条连续且光滑的曲线构成, x=0 是该函数的一个奇点,也是唯一的奇点,那么 x=0 处便蕴含并可生成整个两条曲线了。
      你可以把奇点想象成一个无线维度浓缩在一起的一个点,就像面团一样,可以展开到任何维度,可以擀成饺子皮,可以拉成拉面,可以团成馒头…现在我们用奇点的概念来描述一下函数 y=x12 的曲线的生成过程:

    这里写图片描述

    如果不加干预,整个曲线会一直展开下去,直到遇到定义域的边界,那么在泰勒公式的干预下,事情有所不同,当我们说将原函数在 x=a 处泰勒展开的时候,实际上我们是接管了整个展开过程, x>a 的后面的曲线将不再从奇点拉出,而是由泰勒公式预测出来并展开,此时奇点的物质和能量将停止向外释放,原始函数的曲线生成将停止,此后,泰勒展开的过程将用另外一条曲线去替代原始函数的曲线。需要注意的是,当我们将函数 f(x) x=a 处泰勒展开的时候,并非只针对 x>a 的点有效,而是所有定义域的点都有效,毕竟泰勒展开式和原始函数是完全不同的两个函数!
      由上面的过程性描述可知,如果将 f(x) x=a 处泰勒展开了,那么泰勒公式仅仅能看到的是曲线从其奇点开始到 x=a 结束这个区间的部分,其余的部分它是看不到的。这意味着什么?
      这意味着,泰勒公式仅仅可以利用曲线来自奇点的从奇点到这个展开点之间的小区间的“物质”和“能量”,这些能量有多少决定了泰勒公式能量曲线往后(离开奇点的方向上)延展多远,如果说从奇点到泰勒展开点,能量已经释放了 E ,那么泰勒公式就只能利用大小等于E的能量去展开原函数:

    这里写图片描述

    事实上也确实这样,抛开这些烧脑的东西,在我们日常生活中也经常会碰到类似的情况。
      当一个人讲话的时候,一些喜欢接话头的人就会插嘴说,我知道你想说什么,我来说吧。然而这种出风头的策略并非总是奏效。如果原来讲话的人刚开始说话,那么插话的人往往也预测不了太多的内容,然而如果最开始讲话的人说了很久,那么一些暗中观察的插话者往往能预测很多的内容并接着说下去。回到我们的泰勒展开,也就是说,展开点离开奇点越远,那么泰勒公式拟合的就越远,这背后的思想就是能量守恒,奇点已经将能量积累到了展开点,那么泰勒公式也就仅仅能用这么多能量(事实上所谓的能量就是各阶导数信息)来展开,这么多能量能跑多远呢?积累过程跑了多远,那就还能跑那么远!想想单摆运动吧,就这个道理。
      那么 y=sin(x) y=ex 这些函数的奇点在哪里?这些函数的奇点在无穷远处。这意味着,在任意一个展开点,函数曲线本身都已经积累的无穷的能量(即信息),这说明泰勒公式可以将其完全展开到无穷。
      离奇点越近,各种趋势越不易表现出来,奇点附近刚开始积累趋势,趋势尚未表现,这就是能量和运动的观点,我就是这样避开了那些收敛圆,收敛半径这些概念的。

    C.到底什么是数学

    如果你觉得数学纯思辨性的类似哲学的东西,那么你可以忽略我下面的所述,如果不是,请看完它,哪怕是心里压着邪火,保持着愤怒。
      只有在古希腊数学才是纯思辨哲学的分支,从罗马帝国的地中海世界开始,一直到今天,数学都只是工具,解题工具。当然这里说的解题并非我们考试中的解题,而是实实在在的处理数据时必须要解决的难题。
      不要把炼丹术和占星术看作是迷信这种不可救药的东西,它们和数学的关系源远流长。首先指出,现代数学和古希腊数学完全不是一个概念,甚至几乎没有什么关联,所以在理解现代数学本质的概念的时候,千万不要去想什么毕达哥拉斯学派什么的。炼丹术和占星术是现代化学和天文学的先祖,当它们无法用咒语欺骗国王的时候,它们就必须拿出证据来保住自己的饭碗,这无形中将它们推向了现代科学的“深渊”。千万不要将哥白尼,伽利略,牛顿…他们看成是拥有现代科学品质的明事理的人,在他们的年代,他们无一例外都披着神学的外衣,只是他们在处理一些棘手问题的时候,偶然间发现了一些所谓的真相,要让这些真相在逻辑上变得合理,他们必须处理大量的数据从而期望导出一些隐藏在这些数据背后的关系。在处理数据的时候,他们无一例外地被数据和关系的复杂性困扰,于是乎他们搞出一些处理技巧,这些技巧就是现代数学的前身,因此可以说炼丹术和占星术引导了现代物理,现代物理激发了现代数学,这其中一脉相承的就是神学和哲学的不断渗透和对抗。
      明白了这些之后,你会发现现在中学大学里的数学课程的教法是多么没有意义。这些课程看似很深邃,然而都是毫无意义的。我记得我上大学的时候(当时还是本科,后来才“进修到大专”),老师给我们讲梯度散度旋度,最后的输出就是背诵了一大堆的定理和公式,我问老师这些有什么用,老师说这些期末考试是必考点,以后考研也会考…后来我退学后跑到了女朋友(小小的妈妈)学校外面的村子里租了个房子,刚过去时,正逢她们班要期末考试了,也要考高等数学,什么洛必达法则,牛顿/莱布尼兹公式…爆炸,她们是日语教育专业啊!考这玩意儿毛用啊!
      然而抱怨是苍白的,我依然要拖着疲惫的身躯去给她们讲高等数学,对了,还包括她的同班男生,反正就是我女朋友全班…讲着讲着我就上瘾了(其实也没讲多久),当有人问我学这些有什么用的时候,我总是微笑着回答,这些都是必考点,以后你们考研也会考,说这话时我特别自豪,微笑里带着些许嘲讽和洒脱,因为我TMD再也不用考试和考研了!我不知道当时这样回答我的老师是不是也是这么想的。
    ….
    在以后的学习生涯中,我彻底摒弃了学校里的那一套,因为我再也不用考试了,而且也不会再参加任何形式的考试。所以我变得天马行空,我从马鞍面导出了Linux Netfilter的设计模型,最终确认作者也是这么想的,然后我想仅仅是精通iptables的配置或者看完conntrack的代码是多么Low啊,于是便更进一步探索了Cisco和Netfilter在设计上的差异,最终实现了基于Netfilter的Cisco模型…在我学习最小二乘法的时候,我试图理解平方的深意,后来我看了牛顿的《原理》之后,发现了平方律和立方律简直就是构成我们世界的基本元素啊!
      王姐姐说牛顿是外星人,我表示赞同。然而牛顿是怎么思考的?!
      1905年,爱因斯坦的奇迹年,主角是一位不修边幅,收入不高的专利局小职员,有点像《三体》小说作者刘慈欣,在火电站工作,不好好上班天天上班时间写小说…然而就是这个爱因斯坦道出了现代数学的本质,它只是工具!爱因斯坦从来没有系统学习过现代数学,他只是在用到的时候去请教身边的数学专家,他真的就是把数学当扳手使的。我不晓得其它的人怎么想,我只知道,狄拉克的算符,费曼的积分,霍金的虚时间轴,这些都是数学上的技巧,你要是问有什么物理意义,我觉得他们本人都说不出,只是这么处理很方便,仅此而已吧。
      那么,既然现代数学只是个工具,岂不是很Low?!No!每一个数学上的突破,均代表了一系列的总结,最终会引领新的突破,这方面,数学已经替代了哲学。在我工作的计算机领域,任何一个想法,如果你不能用数学表示出来,那便是不可处理的,请问不可处理的东西能完成KPI吗?于是便有了数学建模。然而模型的建立谈何容易。
    【外出买菜,未完待续】
    (TODO)

    展开全文
  • 贝叶斯公式本质

    千次阅读 2017-03-13 17:10:14
    转载地址:http://mp.weixin.qq.com/s?__biz=MzA3OTgzMzUzOA==&mid=503740283&idx=1&sn=ea4aa313b699f04cd603889571343bd9#rd ...答案是,它们都会用到同一个数学公式——贝叶斯公式。它虽然看起来很简单、很不

    转载地址:http://mp.weixin.qq.com/s?__biz=MzA3OTgzMzUzOA==&mid=503740283&idx=1&sn=ea4aa313b699f04cd603889571343bd9#rd

        大数据、人工智能、海难搜救、生物医学、邮件过滤,这些看起来彼此不相关的领域之间有什么联系?答案是,它们都会用到同一个数学公式——贝叶斯公式。它虽然看起来很简单、很不起眼,但却有着深刻的内涵。那么贝叶斯公式是如何从默默无闻到现在广泛应用、无所不能的呢?

    一、什么是贝叶斯公式

        18世纪英国业余数学家托马斯·贝叶斯(Thomas Bayes,1702~1761)提出过一种看上去似乎显而易见的观点:“用客观的新信息更新我们最初关于某个事物的信念后,我们就会得到一个新的、改进了的信念。” 这个研究成果,因为简单而显得平淡无奇,直到他死后的两年才于1763年由他的朋友理查德·普莱斯帮助发表。它的数学原理很容易理解,简单说就是,如果你看到一个人总是做一些好事,则会推断那个人多半会是一个好人。这就是说,当你不能准确知悉一个事物的本质时,你可以依靠与事物特定本质相关的事件出现的多少去判断其本质属性的概率。用数学语言表达就是:支持某项属性的事件发生得愈多,则该属性成立的可能性就愈大。与其他统计学方法不同,贝叶斯方法建立在主观判断的基础上,你可以先估计一个值,然后根据客观事实不断修正。
        1774年,法国数学家皮埃尔-西蒙·拉普拉斯(Pierre-Simon Laplace,1749-1827)独立地再次发现了贝叶斯公式。拉普拉斯关心的问题是:当存在着大量数据,但数据又可能有各种各样的错误和遗漏的时候,我们如何才能从中找到真实的规律。拉普拉斯研究了男孩和女孩的生育比例。有人观察到,似乎男孩的出生数量比女孩更高。这一假说到底成立不成立呢?拉普拉斯不断地搜集新增的出生记录,并用之推断原有的概率是否准确。每一个新的记录都减少了不确定性的范围。拉普拉斯给出了我们现在所用的贝叶斯公式的表达:
                                P(A/B)=P(B/A)*P(A)/P(B),
        该公式表示在B事件发生的条件下A事件发生的条件概率,等于A事件发生条件下B事件发生的条件概率乘以A事件的概率,再除以B事件发生的概率。公式中,P(A)也叫做先验概率,P(A/B)叫做后验概率。严格地讲,贝叶斯公式至少应被称为“贝叶斯-拉普拉斯公式”。

    二、默默无闻200年

        贝叶斯公式现在已经非常流行,甚至在热门美剧《生活大爆炸》中谢耳朵也秀了一下。但它真正得到重视和广泛应用却是最近二三十年的事,其间被埋没了200多年。这是为什么呢?原因在于我们有另外一种数学工具——经典统计学,或者叫频率主义统计学(我们在学校学的主要是这种统计学),它在200多年的时间里一直表现不错。从理论上讲,它可以揭示一切现象产生的原因,既不需要构建模型,也不需要默认条件,只要进行足够多次的测量,隐藏在数据背后的原因就会自动揭开面纱。
        在经典统计学看来,科学是关于客观事实的研究,我们只要反复观察一个可重复的现象,直到积累了足够多的数据,就能从中推断出有意义的规律。而贝叶斯方法却要求科学家像算命先生一样,从主观猜测出发,这显然不符合科学精神。就连拉普拉斯后来也放弃了贝叶斯方法这一思路,转向经典统计学。因为他发现,如果数据量足够大,人们完全可以通过直接研究这些样本来推断总体的规律。
        打个比方来帮助我们理解这两种统计学方法的区别。假如我们想知道某个区域里海拔最低的地方,经典统计学的方法是首先进行观测,取得区域内不同地方的海拔数据,然后从中找出最低点。这个数据量必须足够多,以反映区域内地形全貌的特征,这样我们才能相信找到的就是实际上的最低点。而贝叶斯方法是我不管哪里最低,就凭感觉在区域内随便选个地方开始走,每一步都往下走,虽然中间可能有一些曲折,但相信这样走早晚能够到达最低点。可以看出,贝叶斯方法的关键问题是这个最终到达的低点可能不是真正的最低点,而是某个相对低点,它可能对该区域的地形(碗型、马鞍形等)和最初我们主观选择的出发点有依赖性。如果问题域是碗型的,我们到达的就是最低点;但如果是马鞍形或者其他复杂曲面,那么我们到达的可能是多个相对低点(极点)中的一个,而不是真正的最低点。这是贝叶斯方法最受经典统计学方法诟病的原因,也是它在过去的200多年被雪藏的原因所在。


    图1 贝叶斯方法原理示意图

    三、初显威力

        长期以来,贝叶斯方法虽然没有得到主流学界的认可,但其实我们经常会不自觉地应用它来进行决策,而且还非常有效。比如炮兵在射击时会使用贝叶斯方法进行瞄准。炮弹与子弹不同,它的飞行轨迹是抛物线,瞄准的难度更大,因此他们会先根据计算和经验把炮管调整到一个可能命中的瞄准角度(先验概率),然后再根据炮弹的实际落点进行调整(后验概率),这样在经过2-3次射击和调整后炮弹就能够命中目标了。
        在日常生活中,我们也常使用贝叶斯方法进行决策。比如在一个陌生的地方找餐馆吃饭,因为之前不了解哪家餐馆好,似乎只能随机选择,但实际上并非如此,我们会根据贝叶斯方法,利用以往积累的经验来提供判断的线索。经验告诉我们,通常那些坐满了客人的餐馆的食物要更美味些,而那些客人寥寥的餐馆,食物可能不怎么样而且可能会被宰。这样,我们就往往通过观察餐厅的上座率来选择餐馆就餐。这就是我们根据先验知识进行的主观判断。在吃过以后我们对这个餐馆有了更多实际的了解,以后再选择时就更加容易了。所以说,在我们认识事物不全面的情况下,贝叶斯方法是一种很好的利用经验帮助作出更合理判断的方法。
        而两个标志性的事件在让学术界开始重视贝叶斯方法上起到了重要作用。

       (1)联邦党人文集作者公案

        1787年5月,美国各州(当时为13个)代表在费城召开制宪会议;1787年9月,美国的宪法草案被分发到各州进行讨论。一批反对派以“反联邦主义者”为笔名,发表了大量文章对该草案提出批评。宪法起草人之一亚历山大·汉密尔顿着急了,他找到曾任外交国务秘书(即后来的国务卿)的约翰·杰伊,以及纽约市国会议员麦迪逊,一同以普布利乌斯(Publius)的笔名发表文章,向公众解释为什么美国需要一部宪法。他们走笔如飞,通常在一周之内就会发表3-4篇新的评论。1788年,他们所写的85篇文章结集出版,这就是美国历史上著名的《联邦党人文集》。
        《联邦党人文集》出版的时候,汉密尔顿坚持匿名发表,于是,这些文章到底出自谁人之手,成了一桩公案。1810年,汉密尔顿接受了一个政敌的决斗挑战,但出于基督徒的宗教信仰,他决意不向对方开枪。在决斗之前数日,汉密尔顿自知时日不多,他列出了一份《联邦党人文集》的作者名单。1818年,麦迪逊又提出了另一份作者名单。这两份名单并不一致。在85篇文章中,有73篇文章的作者身份较为明确,其余12篇存在争议。
        1955年,哈佛大学统计学教授Fredrick Mosteller找到芝加哥大学的年轻统计学家David Wallance,建议他跟自己一起做一个小课题,他想用统计学的方法,鉴定出《联邦党人文集》的作者身份。
        但这根本就不是一个小课题。汉密尔顿和麦迪逊都是文章高手,他们的文风非常接近。从已经确定作者身份的那部分文本来看,汉密尔顿写了9.4万字,麦迪逊写了11.4万字。汉密尔顿每个句子的平均长度是34.55字,而麦迪逊是34.59字。就写作风格而论,汉密尔顿和麦迪逊简直就是一对双胞胎。汉密尔顿和麦迪逊写这些文章,用了大约一年的时间,而Mosteller和Wallance甄别出作者的身份花了10多年的时间。
        如何分辨两人写作风格的细微差别,并据此判断每篇文章的作者就是问题的关键。他们所采用的方法就是以贝叶斯公式为核心的包含两个类别的分类算法。先挑选一些能够反映作者写作风格的词汇,在已经确定了作者的文本中,对这些特征词汇的出现频率进行统计,然后再统计这些词汇在那些不确定作者的文本中的出现频率,从而根据词频的差别推断其作者归属。这其实和我们现在使用的垃圾邮件过滤器的原理是一样的。
        他们是在没有计算机帮助的条件下用手工处理“大数据”,这一工程的耗时耗力是可想而知的。将近100个哈佛大学的学生帮助他们处理数据。学生们用最原始的方式,用打字机把《联邦党人文集》的文本打出来,然后把每个单词剪下来,按照字母表的顺序,把这些单词分门别类地汇集在一起。有个学生干得累了,伸了个懒腰,长长地呼了一口气。他这一口气用力太猛,一下子把刚刚归置好的单词条吹得如柳絮纷飞,一屋子学生瞬间石化,估计很多人连灭了他的心都有。而这只是手工大数据时代的日常。
         Mosteller和Wallance这是要在干草垛里找绣花针。他们首先剔除掉用不上的词汇。比如,《联邦党人文集》里经常谈到“战争”、“立法权”、“行政权”等,这些词汇是因主题而出现,并不反映不同作者的写作风格。只有像“in”,“an”,“of”,“upon”这些介词、连词等才能显示出作者风格的微妙差异。一位历史学家好心地告诉他们,有一篇1916年的论文提到,汉密尔顿总是用“while”,而麦迪逊则总是用“whilst”。但仅仅有这一个线索是不够的。“while”和“whilst”在这12篇作者身份待定的文章里出现的次数不够多。况且,汉密尔顿和麦迪逊有时候会合写一篇文章,也保不齐他们会互相改文章,要是汉密尔顿把麦迪逊的“whilst”都改成了“while”呢?
        当学生们把每个单词的小纸条归类、粘好之后,他们发现,汉密尔顿的文章里平均每一页纸会出现两次“upon”,而麦迪逊几乎一次也不用。汉密尔顿更喜欢用“enough”,麦迪逊则很少用。其它一些有用的词汇包括:“there”、“on”等等。1964年,Mosteller和Wallance发表了他们的研究成果。他们的结论是,这12篇文章的作者很可能都是麦迪逊。他们最拿不准的是第55篇,麦迪逊是作者的概率是240:1。
        这个研究引起了极大的轰动,但最受震撼的不是宪法研究者,而是统计学家。Mosteller和Wallance的研究,把贝叶斯公式这个被统计学界禁锢了200年的幽灵从瓶子中释放了出来。
        (2)天蝎号核潜艇搜救

        2014年初马航MH370航班失联,所有人都密切关注搜救的进展情况。那么我们是用什么方法在茫茫大海中寻找失联的飞机或者船只的呢?这要从天蝎号核潜艇说起。
        1968年5月,美国海军的天蝎号核潜艇在大西洋亚速海海域突然失踪,潜艇和艇上的99名海军官兵全部杳无音信。按照事后调查报告的说法,罪魁祸首是这艘潜艇上的一枚奇怪的鱼雷,发射出去后竟然敌我不分,扭头射向自己,让潜艇中弹爆炸。
        为了寻找天蝎号的位置,美国政府从国内调集了包括多位专家的搜索部队前往现场,其中包括一位名叫John Craven的数学家,他的头衔是“美国海军特别计划部首席科学家”。在搜寻潜艇的问题上,Craven提出的方案使用了上面提到的贝叶斯公式。他召集了数学家、潜艇专家、海事搜救等各个领域的专家。每个专家都有自己擅长的领域,但并非通才,没有专家能准确估计到在出事前后潜艇到底发生了什么。有趣的是,Craven并不是按照惯常的思路要求团队成员互相协商寻求一个共识,而是让各位专家编写了各种可能的“剧本”,让他们按照自己的知识和经验对于情况会向哪一个方向发展进行猜测,并评估每种情境出现的可能性。据说,为了给枯燥的工作增加一些趣味,Craven还准备了威士忌酒作为“投注”正确的奖品。
        因为在Craven的方案中,结果很多是这些专家以猜测、投票甚至可以说赌博的形式得到的,不可能保证所有结果的准确性,他的这一做法受到了很多同行的质疑。可是因为搜索潜艇的任务紧迫,没有时间进行精确的实验、建立完整可靠的理论,Craven的办法不失为一个可行的办法。
        由于失事时潜艇航行的速度快慢、行驶方向、爆炸冲击力的大小、爆炸时潜艇方向舵的指向都是未知量,即使知道潜艇在哪里爆炸,也很难确定潜艇残骸最后被海水冲到哪里。Craven粗略估计了一下,半径20英里的圆圈内的数千英尺深的海底,都是天蝎号核潜艇可能沉睡的地方,要在这么大的范围,这么深的海底找到潜艇几乎成了不可能完成的任务。


        Craven把各位专家的意见综合到一起,得到了一张20英里海域的概率图。整个海域被划分成了很多个小格子,每个小格子有两个概率值p和q,p是潜艇躺在这个格子里的概率,q是如果潜艇在这个格子里,它被搜索到的概率。按照经验,第二个概率值主要跟海域的水深有关,在深海区域搜索失事潜艇的“漏网”可能性会更大。如果一个格子被搜索后,没有发现潜艇的踪迹,那么按照贝叶斯公式,这个格子潜艇存在的概率就会降低:

        由于所有格子概率的总和是1,这时其他格子潜艇存在的概率值就会上升:


        每次寻找时,先挑选整个区域内潜艇存在概率值最高的一个格子进行搜索,如果没有发现,概率分布图会被“洗牌”一次,搜寻船只就会驶向新的“最可疑格子”进行搜索,这样一直下去,直到找到天蝎号为止。
        最初开始搜救时,海军人员对Craven和其团队的建议嗤之以鼻,他们凭经验估计潜艇是在爆炸点的东侧海底。但几个月的搜索一无所获,他们才不得不听从了Craven的建议,按照概率图在爆炸点的西侧寻找。经过几次搜索,潜艇果然在爆炸点西南方的海底被找到了。
        由于这种基于贝叶斯公式的方法在后来多次搜救实践中被成功应用,现在已经成为海难空难搜救的通行做法。

        2009年法航空难搜救的后验概率分布图:


        与计算机的结合使贝叶斯公式巨大的实用价值进一步体现出来,它不但为我们提供了一条全新的问题解决路径,带来工具和理念的革命,而且甚至可能是人类大脑本身的认知和构建方式。



        贝叶斯公式在联邦党人文集作者公案和天蝎号核潜艇搜救中大显身手后(详见大数据背后的神秘公式(上):贝叶斯公式),开始引起学术界的注意和重视,而其上世纪八十年代在自然语言处理领域的成功,向我们展示了一条全新的问题解决路径。计算能力的不断提高和大数据的出现使它的威力日益显现,一场轰轰烈烈的“贝叶斯革命”正在发生。

        一、真正的突破
        自然语言处理就是让计算机代替人来翻译语言、识别语音、认识文字和进行海量文献的自动检索。但是人类的语言可以说是信息里最复杂最动态的一部分。人们最初想到的方法是语言学方法,让计算机学习人类的语法、分析语句等等。尤其是在乔姆斯基(有史以来最伟大的语言学家)提出 “形式语言” 以后,人们更坚定了利用语法规则的办法进行文字处理的信念。遗憾的是,几十年过去了,在计算机语言处理领域,基于这个语法规则的方法几乎毫无突破。
        其实早在几十年前,数学家兼信息论的祖师爷香农 (Claude Shannon)就提出了用数学方法处理自然语言的想法。遗憾的是当时的计算机根本无法满足大量信息处理的需要,所以他的这一想法并没有引起重视。
        率先成功利用数学方法解决自然语言处理问题的是语音和语言处理大师贾里尼克 (Fred Jelinek)。他引入一个全新的视角,认为语音识别就是根据接收到的一个信号序列推测说话人实际发出的信号序列(说的话)和要表达的意思。这就把语音识别问题转化为一个通信问题,而且进一步可以简化为用贝叶斯公式处理的数学问题。
        一般情况下,一个句子中的每个字符都跟它前面的所有字符相关,这样公式中的条件概率计算就非常复杂,难以实现。为了简化问题,他做了两个假设:

        1、 说话人说的句子是一个马尔科夫链,也就是说,句子中的每个字符都只由它前一个字符决定;
        2、 独立输入假设,就是每个接受的字符信号只由对应的发送字符决定。
        这样的简化看起来有点简单粗暴,每个字符在语义上都是和文章的其他部分相关的,怎么可能只跟它前一个字符相关呢?很多人不相信用这么简单的数学模型能解决复杂的语音识别、机器翻译等问题。其实不光是一般人,就连很多语言学家都曾质疑过这种方法的有效性。但事实证明,这个基于贝叶斯公式的统计语言模型比任何当时已知的借助某种规则的解决方法都有效。贾里尼克和贝克夫妇在七十年代分别独立提出用这个模型进行语音识别,八十年代微软公司用这个模型成功开发出第一个大词汇量连续语音识别系统。现在我们手机上的语音识别和语音输入功能都已经非常成熟而且好用了。
        更加可贵的是,这种语音识别系统不但能够识别静态的词库,而且对词汇的动态变化具有很好的适应性,即使是新出现的词汇,只要这个词已经被大家高频使用,用于训练的数据量足够多,系统就能正确地识别。这反映出贝叶斯公式对现实变化的高度敏感,对增量信息有非常好的适应能力。
        自然语言处理方面的成功开辟了一条全新的问题解决路径:
         1、原来看起来非常复杂的问题可以用贝叶斯公式转化为简单的数学问题;
         2、可以把贝叶斯公式和马尔科夫链结合以简化问题,使计算机能够方便求解;虽然我们不完全了解为什么这种看似粗暴的简化并不影响我们的研究过程,但从实践看来它非常有效;
         3、将大量观测数据输入模型进行迭代——也就是对模型进行训练,我们就可以得到希望的结果。
        随着计算能力的不断提高、大数据技术的发展,原来手工条件下看起来不可思议的进行模型训练的巨大工作量变得很容易实现,它们使贝叶斯公式巨大的实用价值体现出来。

    二 经典统计学的困难和贝叶斯革命
       (1)经典统计学的困难
        当贝叶斯方法在实际应用中不断证明自己的同时,经典统计学却遇到了困境。经典统计学比较适合于解决小型的问题,同时该方法要求我们获得足够多的样本数据,而且要求这些样本能够代表数据的整体特征。在处理涉及几个参数的问题时,它可以得心应手。但如果相对于问题的复杂程度,我们只掌握少量的信息时,经典统计学就显得力不从心了,原因就是数据的稀疏性问题。
        都大数据时代了,还存在数据稀疏性问题吗?答案是肯定的。具体来说,一个取决于n个参数,并且每个参数只有两种表现(0或者1)的系统,共有2的n次方种现象。如果某类癌症的产生过程中有100个基因参与(这其实很保守了,人类总共有几万个基因),那么它有2的100次方种可能的基因图谱;根据采样定理进行估算,采用经典统计学方法至少需要获得1%-10%的样本才能确定其病因,也就是需要制作出数万亿亿亿个患有该疾病的病人的基因图谱!这不具备可操作性。所以用经典统计学方法无法解释由相互联系、错综复杂的原因(相关参数)所导致的现象。
       (2)贝叶斯网络带来工具革命
        而目前的情况是,相对简单的问题已经解决得差不多了,剩下的都非常复杂。龙卷风的形成、星系的起源、致病基因、大脑的运作机制等,要揭示隐藏在这些问题背后的规律,就必须理解它们的成因网络,把错综复杂的事件梳理清楚。由于经典统计学失效,科学家别无选择,他们必须从众多可能奏效的法则中选择一些可以信任的,并以此为基础建立理论模型。为了能做出这样的选择,为了能在众多可能性中确定他们认为最为匹配的,过去,科学家多少是依靠直觉来弥补数据上的缺失和空白。而贝叶斯公式正好以严谨的数学形式帮他们实现了这一点。科学家把所有假设与已有知识、观测数据一起代入贝叶斯公式,就能得到明确的概率值。而要破译某种现象的成因网络,只需将公式本身也结成网络,即贝叶斯网络,它是贝叶斯公式和图论结合的产物。
        网络化想法的提出也不是一帆风顺的。直到上世纪80年代,美国数学家朱迪亚·珀尔才证明,使用贝叶斯网络应该可以揭示复杂现象背后的成因。操作原理是这样的:如果我们不清楚一个现象的成因,首先根据我们认为最有可能的原因来建立一个模型;然后把每个可能的原因作为网络中的节点连接起来,根据已有的知识、我们的预判或者专家意见给每个连接分配一个概率值。接下来只需要向这个模型代入观测数据,通过网络节点间的贝叶斯公式重新计算出概率值。为每个新数据、每个连接重复这种计算,直到形成一个网络图,任意两个原因之间的连接都得到精确的概率值为止,就大功告成了。即使实验数据存在空白或者充斥噪声和干扰信息,不懈追寻各种现象发生原因的贝叶斯网络依然能够构建出各种复杂现象的模型。贝叶斯公式的价值在于,当观测数据不充分时,它可以将专家意见和原始数据进行综合,以弥补测量中的不足。我们的认知缺陷越大,贝叶斯公式的价值就越大。

        和前面提到的马尔可夫链类似,我们可以假设贝叶斯网络中每个节点的状态值取决于其前面的有限个状态。不同的是,贝叶斯网络比马尔可夫链灵活,它不受马尔可夫链的链状结构的约束,因此可以更准确地描述事件之间的相关性。可以说,马尔可夫链是贝叶斯网络的特例,而贝叶斯网络是马尔可夫链的推广,它给复杂问题提供了一个普适性的解决框架。
        为了确定各个节点之间的相关性,需要用已知数据对贝叶斯网络进行迭代和训练。由于网络结构比较复杂,理论上,用现有的计算机是不可计算的(基于冯·诺依曼结构的计算机无法解决这种NP复杂度的问题,NP(Non-deterministic Polynomial)指用非确定机在多项式时间内可以解决的问题类)。但对于一些具体的应用,可以根据实际情况对网络结构(采用网络拓扑的图同构技术)和训练过程进行简化,使它在计算上可行。如果量子计算机开发成功,将能够完全解决其计算问题。这样,贝叶斯公式为科学家开辟的新路就完全打通了。

    心血管疾病成因的贝叶斯网络

        今天一场轰轰烈烈的“贝叶斯革命”正在发生:生物学家用贝叶斯公式研究基因的致病机制;基金经理用贝叶斯公式找到投资策略;互联网公司用贝叶斯公式改进搜索功能,帮助用户过滤垃圾邮件;大数据、人工智能和自然语言处理中都大量用到贝叶斯公式。既然在手工时代,我们无法预测到今天贝叶斯公式与计算机结合的威力,那么我们怎么能忽视贝叶斯网络与量子计算机结合可能蕴藏的巨大潜力呢?

       (3)人类大脑的构建方式?
        贝叶斯公式不仅在自然科学领域掀起革命,它的应用范围也延伸到了关于人类行为和人类大脑活动的研究领域。教育学家突然意识到,学生的学习过程其实就是贝叶斯公式的运用;心理学家证明贝叶斯方法是儿童运用的唯一思考方法,其他方法他们似乎完全不会。进一步,心理学研究的成果使科学家思考人类的大脑结构是否就是一个贝叶斯网络。这个公式不仅是研究人类思维的工具,它可能就是大脑本身的构建方式。这个观点十分大胆,但获得越来越广泛的认可。因为贝叶斯公式是我们在没有充分或准确信息时最优的推理结构,为了提高生存效率,进化会向这个模式演进。贝叶斯公式突然渗透到一切科学领域,提供了通用的研究框架,这是十分罕见的事情。
        人工智能近年来取得了长足的进步,但目前的人工智能通常需要从大量的数据中进行学习,而人类具有“仅从少量案例就形成概念”的能力,两者之间存在巨大差距。比如,尽管你这辈子只见过一个菠萝,但你一眼就能看出菠萝的特征,很快就能从一堆水果中认出菠萝来,甚至还能在纸上画出菠萝的简笔画,而目前的人工智能算法得看成千上万张菠萝的图片才能做到。
        不过,这种情况或许已经开始改变了。2015年底,一篇人工智能论文登上了《 科学 》杂志的封面,为人们带来了人工智能领域的一个重大突破: 三名分别来自麻省理工学院、纽约大学和多伦多大学的研究者开发了一个“只看一眼就会写字”的计算机系统。只需向这个系统展示一个来自陌生文字系统的字符,它就能很快学到精髓,像人一样写出来,甚至还能写出其他类似的文字——更有甚者,它还通过了图灵测试,我们很难区分下图中的字符是人类还是机器的作品。这个系统采用的方法就是贝叶斯程序学习(Bayesian Program Learning)——一种基于贝叶斯公式的方法。这不但是人工智能领域的重大突破,而且为我们认识人脑的学习机制提供了重要参考。

    人机

    人和机器作品对比图

        三、理念的革命
        这不仅仅是一场科学的革命,同样也是一场理念的革命。当科学不断强调其对世界认识的客观性时,贝叶斯公式却融入了主观性因素:它并不向我们表述世界,而是表述我们所掌握的知识和经验。这些带有观察者个人因素的知识是脱离研究现象本身的;而它在向我们描述外部现实世界的同时,也描述了观察者对现实的认知的缺陷。更重要的,它迫使我们认识到,科学理论和科学模型反映的是现实的心理意象,而不是现实本身。而现实为我们提供数据,以保证对现实的意象不会离现实本身太远。在寻找各种现象原因的同时,它也在规范着我们的思想。
        四、贝叶斯公式这么牛,与我何干?
        我们经常需要在信息不充分或者不准确的情况下进行判断和决策,一条街上哪个饭馆最靠谱?在自习室惊鸿一瞥的女神有没有男朋友?老公的公文包里发现一只口红,他有没有出轨?新开发的App应该等做得尽善尽美再发布,还是应该尽早发布,用互联网的力量帮助它完善?我应该选择哪个工作offer或者还是考公务员才能使自己的收益最大化?
        贝叶斯公式为我们提供了一些决策原则:
        平时注意观察和思考,建立自己的思维框架,这样在面临选择时就容易形成一个接近实际情况的先验概率,这样经过少量的试错和纠错的迭代循环就可能得到理想的结果;在经过很多次选择和实践的历练后就能够形成自己的直觉,在面对陌生情况时,根据自己的经验和少量信息就能够快速地做出比较准确的判断。
        大数据时代获得信息的成本越来越低,社会也变得更加开放和包容,初始状态(先验概率)的重要性下降了,即使最初选择不理想,只要根据新情况不断进行调整,仍然可以取得成功。所以如果当下觉得很难做出选择,那就倾听内心的声音,让直觉来选择,这有利于治疗选择恐惧症。
        以开发App的例子来说,先按照自己的想法弄个可用的原型出来,然后充分利用互联网的力量,让活跃的用户社区帮助它快速迭代,逐渐使它的功能和体验越来越好。
        对新鲜事物保持开放的心态,愿意根据新信息对自己的策略和行为进行调整。
        “大胆假设,小心求证”,“不断试错,快速迭代”,这些都可以看成贝叶斯公式的不同表述。英国哲学家以赛亚·伯林(Isaish Berlin)曾经援引古希腊诗人的断简残片“狐狸多知而刺猬有一大知”,将人的策略分为狐狸和刺猬两类。刺猬用一个宏大的概念解释所有现象,而狐狸知道很多事情,用多元化的视角看待问题,它也愿意包容新的证据以使得自己的模型与之相适应。在这个快速变化的时代,固守一个不变的信条的刺猬很难适应环境的变化,而使用贝叶斯公式的灵活的狐狸才更容易生存。

    展开全文
  • select to_char(sysdate,'ww') ,to_char(sysdate,'iw') from dual; select to_char(sysdate,'ddd') from dual;...1)ww的算法为每年1月1日为第一开始,date+6为每一结尾  例如20050101为第一的第
  • 大数据背后的神秘公式:贝叶斯公式

    万次阅读 多人点赞 2016-07-29 08:56:08
    答案是,它们都会用到同一个数学公式——贝叶斯公式。它虽然看起来很简单、很不起眼,但却有着深刻的内涵。那么贝叶斯公式是如何从默默无闻到现在广泛应用、无所不能的呢?一 什么是贝叶斯公式18世纪英国业余数学家...
  • 做事的常识,成功的公式

    千次阅读 2016-08-15 07:06:22
    你打算每天早上提前十分钟到公司,列出今天要完成的三件事,可周一因为堵车、周二因为下雨、周三因为送孩子上幼儿园、周四早上没什么事儿却睡过了头,结果一四天都没能提前到公司 你准备每天下班前十分钟整理...
  • 原创 LaTex 论文排版(2): 插入公式 (从MathType公式编辑器导入到LaTex中) ...
  • 股市公式编辑器

    千次阅读 2017-03-01 16:34:44
    通达信公式教程 公式入门 我们大多数的用户并不是完全了解“公式编辑器”的意义,简单地,我们可以从以下几个角度进行理解: 一、指标分析: “公式编辑器”好比是一个工作母床,通过这个工作母床可以制造出所...
  • 答案是,它们都会用到同一个数学公式——贝叶斯公式。它虽然看起来很简单、很不起眼,但却有着深刻的内涵。那么贝叶斯公式是如何从默默无闻到现在广泛应用、无所不能的呢? 18世纪英国业余数学家托马斯·贝叶斯...
  • 小学奥数公式2

    千次阅读 2013-04-14 01:38:23
    小学奥数公式宝典 1和差倍问题 和差问题和倍问题差倍问题 已知条件几个数的和与差几个数的和与倍数几个数的差与倍数 公式适用范围已知两个数的和,差,倍数关系 公式①(和-差)÷2=较小数 较小数+差=较大数 ...
  • 移动平均算法公式

    千次阅读 2017-08-05 22:19:00
    MA/SMA/DMA/EMA移动平均算法公式 1、简单移动平均MA 用法: MA(X,N):X的N日简单移动平均 算法(X1+X2+X3+...+Xn)/N 2、移动平均SMA 用法: SMA(X,N,M),求X的N日移动平均,M/N为给予观测值X的权重,N...
  •  公式 每周第一天 :date + * 7 - 7  每周最后一天:date + * 7 - 1 2)iw的算法为星期一至星期日算一,且每年的第一个星期一为第一,  例如20050101为星期六,所以用iw的算法是前年的53,而20050103...
  • 泰勒公式意义详解

    万次阅读 多人点赞 2018-04-07 19:48:38
    这是我从其它博客转载过来的,非常敬佩原作者,我觉得他写的比大多数课本写得好,我希望将来我们的数学教育能多有一些像这样优秀的人,而不是学习都是为了考试: 原地址 : ...
  • 安全库存公式的解析

    千次阅读 2019-04-22 10:12:49
    安全库存公式: 在计算安全库存公式时,其实我们面对的是两个正态分布: 1. 供应周期的正态分布 2. 需求的正态分布 安全库存就是在这两个正态分布的上下浮动过程中能覆盖一定供应水平的一个标准差。 举例来说...
  • 凯利公式-----应用

    万次阅读 2018-03-19 17:26:29
    作者:贾元宏链接:...凯利公式:f=(bp-q)/b,也即=p-q/b,(p为胜率,q为赔率,b为赔率)关于凯利公式的应用必要条件以及应用场景,我通过问答来逐步论证:(以下投资的仓位分析中假设不载考虑市场属性的问题...
  • 想学奥数但没有基础怎么办?学霸教你速成的方法,那就是记公式!今天小编给大家整理了,小学奥数公式大全,家长们赶紧替孩子收着吧!
  • @DbColumn 1 从当前或的 Notes 数据库的视图或文件夹里查找并返回一个完整的列值 2 使用数据源信息激来激活 ODBC 驱动程序 @DbCommand 给出 ODBC.INI 文件中的数据源信息,利用这些信息来激活 ODBC 驱动器。驱动器...
  • 成为数据分析师 第七:Python- CSDN博客 七成为数据分析师 第六:统计学- CSDN博客 七成为数据分析师 第五:Mysql- CSDN博客 七成为数据分析师 第四:数据可视化- CSDN博客 七成为数据分析...
  • Oracle日期周详解以及周开始结束时间计算 ...IW是ISO标准周,它的含义是ISO标准周以周别为“主线”,每年最多可以有53个周别,但是每年至少要包含52个周别;如果一年当中第52周别之后至当年的12月..
  • 大智慧公式编写教程

    万次阅读 2007-07-29 19:44:00
    大智慧公式编写教程 公式入门我们大多数的用户并不是完全了解“公式编辑器”的意义,简单地,我们可以从以下几个角度进行理解:一、指标分析:“公式编辑器”好比是一个工作母床,通过这个工作母床可以制造出所需要...
  • 但是还有一种工程中应用最广发,最漂亮,奇迹般的表达方式,它就是大名鼎鼎的欧拉公式: 这个公式是欧拉再1740年左右发现的,那个时候乾隆才当了4年皇帝. 下面用运动的方式来图形化演示欧拉公式到底说了什么 ...
  •  这的上机题目是“命题公式”:形如q->p(q蕴含于p)在不同赋值情况下的真假性。  先分析一下思路,总体上讲,在我能力范围内的表达式求值方法通常是利用栈来实现(在此之外还有二叉树),命题公式的求值同样...
  • 贝叶斯公式由浅入深大讲解-AI基础算法入门 - math,数学专栏 - 陆军的个人网站 https://www.zhoulujun.cn/html/theory/math/2017_0913_8050.html 1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,...
  • 高数复习(4)--格林公式的理解

    千次阅读 多人点赞 2020-08-22 16:58:23
    ---------------------------公式----------------------------- 非常简单美观,而且实用,巧妙的把对坐标的曲线积分(一般这个难)转化到二重积分上。 ---------------------------理解----------------------------...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,344
精华内容 6,137
关键字:

周别公式