炼丹
炼丹算法
现在大家都用 GSS 算法,全称是 Graduate Student Search 算法。翻译成中文就是博士生人肉搜索算法,又称炼丹算法。
缘由
好吧,其实除了 GSS 算法,我们也有一些别的算法,比如之前提到的贝叶斯算法(Bayesian Optimization),还有 Hyperband 算法,等等,其实都是一些很优美的算法。那么,既然之前提到贝叶斯算法可以用来炒鸡蛋,为什么现在大家仍然使用博士生人肉搜索这种原始的方法做调参数问题呢?
答案是来自高维度的诅咒。当需要考虑的参数个数过多的时候,可能性就会呈指数级别增长,而已有的算法却没有很好的机制来处理这个问题。对于调参数的问题来说,每一次实验的代价都很大(想想炒鸡蛋,每次实验都会要牺牲一个鸡蛋),因此一旦需要做的实验数量随着参数个数指数增长之后,算法就会失效。一般来说,已有的算法只能够处理不到 20 个参数的问题。
而博士生人肉搜索则不然。像小蜜蜂一样的博士生们通过辛勤的劳动,往往能够从众多参数中找到若干最重要的 10 个 20 个参数,然后再把它们塞到已有算法里面自动调一调,往往就能够得到很好的结果。