要看清AI时代的创业生存法则,我们需要借助跨界思想家纳西姆·尼古拉斯·塔勒布(NassimNicholasTaleb)在其硬核数学著作《肥尾效应》(StatisticalConsequencesofFatTails 二、关键数学基础:肥尾语境下的底层逻辑为了在AI时代活得更久,创业者必须理解《肥尾效应》中几个极其关键的数学概念在极端世界中的表现形式:1.大数定律的失效与减慢(LawofLargeNumbers)在正态分布下 但塔勒布指出,如果底层分布是肥尾,它们相加后依然是肥尾,根本无法通过简单叠加来消灭极端风险。AI创业启示:如果你同时做了5个高度依赖某一家闭源大模型API的应用,不要以为这叫“多元化产品线组合”。 三、肥尾思维下的AI创业生存法则:凸性选择权既然AI时代无法预测,那创业者该如何做出选择?塔勒布在《肥尾效应》以及前作《反脆弱》《非对称风险》中给出了最终的解:构建凸性选择权(Convexity)。 去积极捕捉由于肥尾效应带来的、远超常人想象的爆发式红利。结语:从“预测未来”到“改变架构”《肥尾效应》用严谨的数学框架向我们证明了:在极端世界里,试图通过精准预测未来来制定战略,无异于在沙滩上建城堡。
这就是肥尾分布,具体如下图: 对于非肥尾的分布,两个3倍标准差事件发生的概率要显著的大于一个6倍标准差事件发生的概率。 相反,对于肥尾分布,远离分布中心的极端事件扮演着非常重要的角色,破产更可能来自一个单一的极端事件,而不是一系列的坏事件。黑天鹅并不是更为常见,但它们产生的结果更为严重。 肥尾带来的后果是什么? 下面的图表显示,要使平均值稳定,需要在一个肥尾分布下(下图)进行更多的观测。 因为肥尾的存在,每次抽样的矩估计都不准确,所以高矩量将不再有参考意义或者压根就不存在。 9、并不存在一个所谓的大的方差,因为肥尾的存在,方差的大小很难定义,特别当肥尾分布很严重时,很难说存在一个确定的范围。 10、动态对冲将不能对冲掉期权的风险。 如何处理肥尾?
下载地址 ios版本还没更新,还被卡着- - 因为之前提交都是3天内搞定,所以让我产生,苹果的审核会在3天内完成的错觉…… 这次可能要一周了…… 虽说第一章勉强上线了,但是其实依然很不完善。 不过我
尾调用 1. 定义 尾调用是函数式编程中一个很重要的概念,当一个函数执行时的最后一个步骤是返回另一个函数的调用,这就叫做尾调用。 这就叫做尾调用优化,如果所有的函数都是尾调用的话,那么在调用栈中的调用帧始终只有一条,这样会节省很大一部分的内存,这也是尾调用优化的意义。 尾递归 1. 那么什么是尾递归? 前面我们知道了尾调用的概念,当一个函数尾调用自身,就叫做尾递归。 function foo () { return foo(); } 复制代码 2. 如果用尾递归来计算阶乘呢? 要注意的是,经过测试,Chrome和Firefox并没有对尾调用进行优化,Safari对尾调用进行了优化。 Node高版本也已经去除了通过--harmony_tailcalls参数启用尾调用优化。
尾调用 1. 定义 尾调用是函数式编程中一个很重要的概念,当一个函数执行时的最后一个步骤是返回另一个函数的调用,这就叫做尾调用。 这就叫做尾调用优化,如果所有的函数都是尾调用的话,那么在调用栈中的调用帧始终只有一条,这样会节省很大一部分的内存,这也是尾调用优化的意义。 尾递归 1. 那么什么是尾递归? 前面我们知道了尾调用的概念,当一个函数尾调用自身,就叫做尾递归。 function foo () { return foo(); } 2. 如果用尾递归来计算阶乘呢? 要注意的是,经过测试,Chrome和Firefox并没有对尾调用进行优化,Safari对尾调用进行了优化。 Node高版本也已经去除了通过--harmony_tailcalls参数启用尾调用优化。
什么是尾调用 尾调用(Tail Call)是函数式编程的一个重要概念,本身非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。 这就是”尾调用优化“的意义。 尾递归 函数调用自身成为递归。如果尾调用自身就成为尾递归。 递归非常耗费内存,因为需要同时保存成百上千个调用帧,很容易发生”栈溢出“错误(stack overflow)。 对于其他支持”尾调用优化“的语言(比如 Lua、ES6),只需要知道循环可以用递归代替,而一旦使用递归,就最好使用尾递归。 严格模式 ES6 的尾调用优化只在严格模式下开启,正常模式下是无效的。 尾递归优化只在严格模式下生效,那么在正常模式下, 或者在那些不支持该功能的环境中,有没有办法啊使用尾递归优化呢?
尾递归和尾递归优化 之前提到过尾调用,尾调用就是函数的最后一步调用另外一个函数。那么递归就是调用自身,尾递归就是再函数的最后一步调用自身。? 在计算机学里,尾调用是指一个函数里的最后一个动作是返回一个函数的调用结果的情形,即最后一步新调用的返回值直接被当前函数的返回结果。此时,该尾部调用位置被称为尾位置。 尾调用中有一种重要而特殊的情形叫做尾递归。经过适当处理,尾递归形式的函数的运行效率可以被极大地优化。 ---wikipedia 和尾调用一样,尾递归因为调用栈中只存在一个调用记录,因此不会像普通递归那样耗费那么多内存。 if (n === 1) return total return f(n - 1, n * total) // ⚡ total 结果和 n 相乘作为参数放入到函数中 } 默认大部分浏览器不会对尾递归进行优化
// 不尾递归 function f(n) { if (n === 0 || n === 1) return n else return f(n - 1) + f(n - 2) } // 尾递归
怯懦的朋友在叛离之后,会成为最凶残的仇敌——埃·斯宾塞 中文文档 Kotlin 支持一种称为尾递归的函数式编程风格。 这允许一些通常用循环写的算法改用递归函数来写,而无堆栈溢出的风险。 在递归调用后有更多代码时,不能使用尾递归,并且不能用在 try/catch/finally 块中。目前在 Kotlin for JVM 与 Kotlin/Native 中支持尾递归。
尾调用(Tail Call)是函数式编程的一个重要概念,本文介绍它的含义和用法。 一、什么是尾调用? 尾调用的概念非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。 function f(x){ return g(x); } 上面代码中,函数f的最后一步是调用函数g,这就叫尾调用。 以下两种情况,都不属于尾调用。 这就是"尾调用优化"的意义。 三、尾递归 函数调用自身,称为递归。如果尾调用自身,就称为尾递归。 对于其他支持"尾调用优化"的语言(比如Lua,ES6),只需要知道循环可以用递归代替,而一旦使用递归,就最好使用尾递归。 尾调用优化发生时,函数的调用栈会改写,因此上面两个变量就会失真。严格模式禁用这两个变量,所以尾调用模式仅在严格模式下生效。
本文最后更新于 1163 天前,其中的信息可能已经有所发展或是发生改变。 #include<iostream> #include<cmath> using namespace std; int main(){ long long sum=1; int count=0; for(int i=0;i<100;i++){ long long temp; cin>>temp; sum=sum*temp; long long tt=sum; while(1){ cout<
其实质量控制三部曲,还有一个很关键的点没有讲解,就是多个样本整合,并且区分批次效应和生物学差异。 所以我这里把归一化和标准化替换成为去除样本/细胞效应或者去除基因效应: 首先去除样本/细胞效应:因为不同样本或者细胞的测序数据量不一样,所以同样的一个基因在不同细胞,哪怕你看到的表达量是一样的,但是背后细胞整体测序数据量的差异其实反而说明了这个基因在不同细胞表达量其实是有差异的 然后去除基因效应,这个主要是在绘制热图的时候会需要使用,因为个别基因表达量超级高,在热图里面一枝独秀,实际上我们并不会关心不同基因的表达量高低,我们仅仅是想看指定基因在不同细胞的高低而已,这样的话,就把该基因的表达量在不同细胞的数值 0.2761133 -0.2761133 -0.2337521 HES2 -0.4569104 -0.4569104 -0.4569104 -0.4569104 -0.4569104 其实样本/细胞效应不仅仅是文库大小 每个细胞测序数据量的不一致是很容易理解的,但其实细胞之间还有很多其它效应,比如线粒体基因含量,ERCC含量等等,那些处理起来,其实就是深入了解我们讲解seurat里面的NormalizeData和ScaleData
统计推断:假设检验 提起 「肥」与「瘦」不由的想起了苏轼 老人家的诗词《孙莘老求墨妙亭诗》其中一句传为经典:“短长肥瘦各有态,玉环飞燕谁敢憎”,促成 “环肥燕瘦”一词。 今天我们把“谁”代指财富,看 “富” 是憎肥?还是憎瘦。也巧妙的证伪本文主题。 先一睹,以肥为美的唐美人:杨玉环 杨玉环 托夫勒斯基赵四说:“没有调查没有发言权,没有数据也不敢妄下断言。 是否,是否,总是富肥穷瘦?答案是:否。 用假设检验的方法来,再一次验证结论,提高可靠性。 在经济快速发展的今天,人们物质生活水平不断提高的社会,“富不一定肥,穷不一定瘦”也是社会进步的一种表现。同时心中有一个很大的“问号”,为什么“富缺偏瘦”,富与瘦到底有没有因果关系?谁是因?谁是果呢? 有人认为:“拥有自律的生活,积极的锻炼,对自己身材有掌控力的人,他们更容易获得财富” 是非难断,但是富和瘦是存在相关性的,也许在这个快速发展的社会,可以说胖是对穷的一种潜标签,不管是富憎肥,还是穷憎瘦。
肥仔爱喝可乐水、嚼槟榔 需求 肥仔白 体重 75.0 公斤 肥仔白 每天 嚼槟榔 会花掉10元RMB 肥仔白 每次 喝可乐 会花掉3.5元RMB # -*- coding: utf-8 -*- 肥仔类 - 扩展 : 枪杀小肥仔 需求 肥仔类增加 __del__ 内置方法,当被del的时候,打印“我被干掉啦,好惨啊” 编写一个枪类,写一个fire方法,开枪干掉小肥仔 首先给肥仔类增加方法,代码如下 F:/pythonProject/CigarettesSystem/DeadFatBoy.py pay 10 yuan RMB pay 3.5 yuan RMB 李白 的体重 75 公斤 李白 这个小肥仔挂掉啦 ,好惨啊 写一个Gun类,来干掉这个小肥仔 class Gun: def fire(self,obj): print("fire the hole!!") 李白 这个小肥仔挂掉啦,好惨啊
需要了解如何优化尾递归的话,我们需要从最开始讲起。 什么是尾调用 什么是尾递归 如何优化尾递归 尾调用 从字面理解,自然而言就是在函数的尾部返回一个函数的调用,通常来说,指的是函数执行的最后一步。 const fn = () => f1() || f2() // 这里的话, f2函数有可能是尾调用,f1不可能是尾调用 为什么f1函数不是呢,我们看这个函数的等价形式? 这样子,我们也可以理解成,不同的语言编译器或者是解释器做了尾递归优化,才让它不会爆栈。 既然是这样子的话,尾递归的优化,取决于浏览器,那具体有哪些主流浏览器支持呢? 手动优化 既然我们知道了,很多浏览器对于尾递归的优化支持的浏览器并不多,那你会好奇,当我们使用尾递归进行优化的时候,依然出现栈溢出的错误,那么我们如何解决呢?? 对于尾递归而言,我们需要了解优化它的原理,如果有必要的话,将递归的形式写成迭代的形式,通过迭代方式,降低重复值的计算,当然了,这个过程,有时候是比较难的,值得我们去思考。 参考 尾调用和尾递归
添加尾缀说明 Java在变量赋值的时候,其中float、double、long数据类型变量,需要在赋值直接量后面分别添加f或F、d或D、l或L尾缀来说明。 float fNum = 1.2; //报错,因为1.2虚拟机是默认为double类型,不能直接赋值给float类型变量 float fNew = 1.3f;//正确,因为尾缀添加了f,即告诉了虚拟机 总结 所以,当Java中遇到这三种类型变量需要赋直接量时候,最好都添加上相应的尾缀。这样不仅会防止编译器报错,也会增加程序的可读性。 但是下面这种情况就算添加尾缀也是错的,因为尾缀仅是为了告诉虚拟机该直接数属于什么数据类型,而不能实现数据类型强制转换。
因最近又回忆起“尾递归”,故本文通过2个例子再跟大伙儿探讨一下尾递归。。。 什么是尾递归: 当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。 1:n*fac2(n-1); 31 } 32 /* 33 * 阶乘构造尾递归,进行编译优化 34 */ 35 public static int fac(int 15 + isPalindrome3(s)); 16 } 17 } 18 19 /* 20 * 构造尾递归 21 true 尾递归的意义: 从以上尾递归的实现过程当中我们可以发现,回归过程中不用做任何操作(运算),这样的一种特性使得在执行尾递归的过程时,能够被某些特定编译器进行优化,减少内存空间的消耗。
这就是ES6尾调用优化的关键递归优化的条件代码在严格模式下执行外部函数的返回值,是对尾调用函数的调用尾调用函数返回后,不需要执行额外的逻辑尾调用函数不是外部函数作用域中自由变量的闭包下面是《高程》里面的示例 ,帮助大家理解// 无优化: 尾调用没有返回function outer(){ inner();}// 无优化: 尾调用没有直接返回function outer(){ let innerResult = inner(); return innerResult;}//无优化: 尾调用返回值后,必须要转型为字符串function outer(){ return inner().toString() ();}其实我觉得上面的倒数第二个,它是完全可以尾调用优化的。 ,比较尾递归和非尾递归的时间。
前面一篇笔记高速直调激光器里提到啁啾效应,COO对此比较感兴趣。我解释了下,说是光的频率随时间变化,就像小鸟叽叽喳喳的叫声。COO不是特别满意,所以这篇详细地讲一讲啁啾效应。 (图片来自 http://ticc.mines.edu/csm/wiki/images/f/f0/UFO05-Dispersion.pdf) 三阶非线性效应也会导致啁啾效应的产生,例如克尔效应,自相位调制效应等 由于啁啾效应,光脉冲中不同频率的群速度大小不一,例如红光速度快,蓝光速度慢,导致最终叠加起来的脉冲宽度变大。如何消除啁啾效应? 啁啾效应也可以发挥好的作用,例如在啁啾脉冲放大(chirped-pulse amplification)技术中,利用啁啾效应使得脉冲展宽这一现象,展宽后脉冲的峰值功率降低,可以进一步提高其功率,从而得到大功率的激光脉冲 (图片来自文献1) 由于群速度色散,非线性效应,注入电流的变化等原因,导致啁啾效应的产生。啁啾效应的直接结果是脉冲展宽,其有理有弊,需要合理应用。 以上是对啁啾效应的简单介绍,欢迎大家留言讨论。
t 分布:捕捉肥尾 核心参数是自由度 ν(nu): • ν → ∞ 时,退化为正态分布 • ν = 30 以上,与正态几乎无差别 • ν = 5-10,典型金融数据 • ν < 3,极端肥尾 A股日收益率拟合出的 分布检验:从直觉到统计 描述性统计 第一步永远是算出四个数字: • 均值、标准差:位置和离散 • 偏度:是否对称 • 峰度:是否肥尾 偏度 < -0.1:左偏,暴跌更常见 峰度 > 5:显著肥尾 KS 左端下弯 左尾比理论更肥 两端同时偏离 整体肥尾 A股日收益率的QQ图,两端同时飞出——标准肥尾。 但有一个重要性质:拟合出的自由度ν直接告诉你肥尾程度。 • ν > 30:接近正态 • ν = 5-10:典型金融数据 • ν < 5:极端肥尾 对VaR的实际影响 理论讲完了,实际影响有多大? 正态分布是基准,不是真相——金融数据几乎总是肥尾的 2. t分布的自由度ν是肥尾的度量——ν < 5 就要高度警惕 3. 分布假设直接影响风险指标——VaR可能被低估10%以上 三个实践工具: 1.