下面我们就仔细分析下这三种方式,看看有没有办法能过跳出来到全局最优,并且保证收敛的速度。 2.1 Local Minima - 局部最优解
其实,工业界对于局部最优解的使用方式大抵如下(前提目前工业界都是比较大的深度神经网络):在需要吹牛的时候,会不断的鼓吹模型的局部最优解,并且进而夸大模型训练的难度,然后说自己采用了xxx高深的技术,跳出了局部最优,达到了全局最优的目标。其实吧,比较扯淡,大家做模型的时候其实根本很少考虑局部最优解的情况(而且很多人也没这个意识),默认都是达到了全局最优解,不收敛的话重新选特征改网络结构,重新再训一次。那么关于局部最优解与全局最优解有没有什么理论支撑呢,在什么情况下发生呢?在下不才,以自己浅薄的知识推导一番,如果不当之处,欢迎各位读者帮忙指正。
首先,无论是全局最优或者是局部最优我们统称为最优解(谷底),都是相对于所有的参数而言,需要在所有参数达到最优(谷底),那么我们假设目前的参数是N个,每个参数取得最优(谷底)的概率是P,则整体达到最优(谷底)的概率是,以目前的工业界使用的深度学习模型为例,普遍都是百万级以上(SOTA模型动辄就达到千亿、万亿的参数),那么这个概率出现的是非常小的,所有当出现最优解的时候,很大程度上判断应该不是Local Minima,而是Global Minima。
所以,基本在工业界基本没有人费劲的去解所谓的”Local Minima"的问题,默认最优(谷底)就是全局的。我思故我在,我如果不思那就不在!基本就是不收敛改各种超参与网络重训,通过高级优化器与参数的配合改变梯度路径,上面说过所有参数一致的最优概率非常小,连续两次碰到的情况基本不太可能,进而重训会很大程度上会加快收敛速度与模型泛化能力。
不过这个高级优化器里面的东西就是解决局部最优的重点,引入冲量与自适应学习率,不过很多人不理解,请继续往下看。 2.2 The Plateau & Saddle Point