老饼讲解-神经网络 机器学习 神经网络 深度学习
启发式寻解

寻解算法的本质与核心(必读)

作者 : 老饼 发表日期 : 2022-09-14 18:45:26 更新日期 : 2024-03-11 21:07:08
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



寻解算法也称为优化算法,是机器学习中最常接触的一类算法

本文本质地剖析寻解算法的核心内容与本质,使学习寻解算法时能事半功倍




   01. 寻解算法的是什么    



本节讲解什么是寻解算法,有什么用



    寻解算法是什么    


求找目标函数的最优解一直是机器学习上的一个核心问题
例如以下问题
已知  ,求一 x ,使得最小
备注:这里的 
不一定是一个数学表达式
要解决以上问题,往往不能靠数学手段求得精确解,
此时,我们退之求其次,不一定要求是最精确的解,只要求x 足够优秀即可
通常此时就会使用寻解算法, 寻解算法的流程一般如下:
先给x 设一个初始值
然后通过迭代, 不断调整 ,使的值越来越小
直到达到迭代条件,停止迭代,
最后输出整个迭代中最优秀的x 
 目前,已有很多成熟的寻解算法:梯度下降,模拟退火,蚁群算法等等





   02. 寻解算法的三个核心   



本节剖析寻解算法的核心和重点关注问题



    寻解算法的三个核心    


所谓寻解算法,就是设定一个机制,
使得随着 x 的调整, f(x) 能不断的下降

寻解算法的机制,一般可以分解为三个小机制:
1. 下降机制                  
 要有个机制,使随着 x  的迭代,越来越小
2. 未阶段局部最优机制
 要有个机制,在未阶段,
使  x  如果找到 x',就能找到 x' 最近的局部最优

3. 跳出局部最优机制   
 要有个机制,在到达局部最优时,仍有机会跳出这个局部最优
特别是要能跳出一些小的局部最优 

以上,是以解的最终质量设定的机制。
另在寻解速度上,我们还希望,能以更少的迭代次数,找到更优质的解

 




   03. 一些经典寻解算法的剖析   



本节以一些经典寻解算法为例进行剖析

进一步具体理解寻解算法的核心机制



   模拟退火   


模拟退火算法机制简述
 
模拟退火每次用一个邻解作为新解
如果新解比旧解更加优秀,就接受新解
如果新解不如旧解,则根据一定概率接受新解
 在新解不如旧解时,接受新解的概率与两解质量差、当前迭代次数负相关
模拟退火算法机制剖析
1.模拟退火的下降机制
 因为新解更好时一定接受,而新解质量越差,接受概率越小,
所以随着迭代次数,在概率上,会渐渐越来越优秀

2.模拟退火的局部最优机制 
 当迭代次数足够大时,模拟退火将不再接受更差的解
因此会一直沿着邻域更优秀的解迭代,直到局部最优

3.模拟退火的跳出局部最优机制
 模拟退火算法中的“按概率接受差解”正是为了跳出局部最优而设置的
它让解在遇到局部最优时,还有一定的概率跳出局部最优



     梯度下降算法   


梯度下降算法机制简述
梯度下降算法每次往负梯度方向小步调整,
直到达到最大迭代次数,或梯度极小
梯度下降算法机制剖析
1.梯度下降算法的下降机制        
负梯度方向,只要步长足够小,就会令 f(x)下降
2.梯度下降的局部最优机制       
每步调整都下降,只要一直调整下去,一定会达到局部最优
3.梯度下降的跳出局部最优机制
 梯度下降算法没有跳出局部最优的机制
所以作为弥补,就诞生了动量梯度下降法,
动量梯度下降算法增加了跳出局部最优的机制




     笔者编后语    


以上仅为说明,寻解算法的核心就是以上三点,
学习任何一个寻解算法,围绕这三点,可以更容易理解算法各个设计的目的
PASS:并且,围绕以上三点,也能自己设计一个寻解算法
在具体学习了各个寻解算法后,我们再作深一步的剖析与探讨









  End  








联系老饼