Adam的epsilon如何影响学习率的Scaling Law?
By 苏剑林 | 2024-11-18 | 2259位读者 | 引用上一篇文章《当Batch Size增大时,学习率该如何随之变化?》我们从多个角度讨论了学习率与Batch Size之间的缩放规律,其中对于Adam优化器我们采用了SignSGD近似,这是分析Adam优化器常用的手段。那么一个很自然的问题就是:用SignSGD来近似Adam究竟有多科学呢?
我们知道,Adam优化器的更新量分母会带有一个$\epsilon$,初衷是预防除零错误,所以其值通常很接近于零,以至于我们做理论分析的时候通常选择忽略掉它。然而,当前LLM的训练尤其是低精度训练,我们往往会选择偏大的$\epsilon$,这导致在训练的中、后期$\epsilon$往往已经超过梯度平方大小,所以$\epsilon$的存在事实上已经不可忽略。
因此,这篇文章我们试图探索$\epsilon$如何影响Adam的学习率与Batch Size的Scaling Law,为相关问题提供一个参考的计算方案。
百科翻译:氢氧化钠(NaOH)的详细介绍
By 苏剑林 | 2009-07-08 | 63434位读者 | 引用对于我们来说,维基百科是一个难得的资料库,但是与其英文版相比,中文版就相形见绌了,就好像本文中所讲的氢氧化钠,在中文版的资料为http://zh.wikipedia.org/w/index.php?title=NaOH&variant=zh-cn;而在英文版的资料为http://en.wikipedia.org/wiki/NaOH 可见英文版本是多么丰富。为了使大家能够更多地了解到科学,笔者特地翻译了一些英文版的维基百科中一些资料。
百科翻译:臭氧的性质
By 苏剑林 | 2009-07-08 | 23741位读者 | 引用臭氧对于我们来说是极为重要的,可以说,没有臭氧,我们都会死于紫外线的强烈照射之下!这里翻译了一些关于臭氧的信息,来源于http://en.wikipedia.org/wiki/Ozone,中文维基为http://zh.wikipedia.org/w/index.php?title=%E8%87%AD%E6%B0%A7&variant=zh-cn
臭氧,英文名为Ozone或trioxygen,化学式$O_3$,每个臭氧分子含有3个氧原子,属于三原子分子。与氧气是同素异形体(组成元素相同,但是结构不同,所表现出来的性质也不同),但比氧气更不稳定。在地表上的臭氧是一种空气污染物,对人和动物的呼吸道系统会产生有害影响。而大气层上部的臭氧层则能够吸收大量的紫外线,使地球的生物不受过量紫外线的侵害。
增强typecho的搜索功能
By 苏剑林 | 2018-01-09 | 67129位读者 | 引用科学空间是使用typecho程序搭建的博客,侧边栏提供了搜索功能,然而typecho内置搜索功能仅仅是基于字符串的全匹配查找,因此导致很多合理的查询都没法得到结果,比如“2018天象”、“新词算法”都没法给出结果,原因就是文章中都不包含这些字符串。
于是就萌生了加强搜索功能的想法,之前也有读者建议过这个事情。这两天搜索了一下,本来计划用Python下的Whoosh库来建立一个全文检索引擎,但感觉整合和后期维护的工作量太大,还是放弃了。后来想到在typecho自身的搜索上加强,在公司同事(大佬)的帮助下,完成了这个改进。
由于是直接修改typecho源文件实现的改进,因此如果typecho升级后就可能被覆盖,因此在这里做个备忘。
探索
通过在Github检索我发现,typecho的搜索功能是在var/Widget/Archive.php
中实现的,具体代码大概在1185~1192行:
新词发现的信息熵方法与实现
By 苏剑林 | 2015-10-26 | 107756位读者 | 引用在本博客的前面文章中,已经简单提到过中文文本处理与挖掘的问题了,中文数据挖掘与英语同类问题中最大的差别是,中文没有空格,如果要较好地完成语言任务,首先得分词。目前流行的分词方法都是基于词库的,然而重要的问题就来了:词库哪里来?人工可以把一些常用的词语收集到词库中,然而这却应付不了层出不穷的新词,尤其是网络新词等——而这往往是语言任务的关键地方。因此,中文语言处理很核心的一个任务就是完善新词发现算法。
新词发现说的就是不加入任何先验素材,直接从大规模的语料库中,自动发现可能成词的语言片段。前两天我去小虾的公司膜拜,并且试着加入了他们的一个开发项目中,主要任务就是网络文章处理。因此,补习了一下新词发现的算法知识,参考了Matrix67.com的文章《互联网时代的社会语言学:基于SNS的文本数据挖掘》,尤其是里边的信息熵思想,并且根据他的思路,用Python写了个简单的脚本。
以自然数幂为系数的幂级数
By 苏剑林 | 2010-10-16 | 31297位读者 | 引用$\sum_{i=0}^{\infty} a_i x^i=a_0+a_1 x+a_2 x^2+a_3 x^3+...$
最近为了数学竞赛,我研究了有关数列和排列组合的相关问题。由于我讨厌为某个问题而设计专门的技巧,所以我偏爱通用的方法,哪怕过程相对麻烦。因此,我对数学归纳法(递推法)和生成函数法情有独钟。前者只需要列出问题的递归关系,而不用具体分析,最终把问题转移到解函数方程上来。后者则巧妙地把数列${a_n}$与幂级数$\sum_{i=0}^{\infty} a_i x^i$一一对应,巧妙地通过代数运算或微积分运算等得到结果。这里我们不用考虑该级数的敛散性,只需要知道它对应着哪一个“母函数”(母函数展开泰勒级数后得到了级数$\sum_{i=0}^{\infty} a_i x^i$)。显然,这两种方法的最终,都是把问题归结为代数问题。
最近评论