全局最小与局部极小

首先,学过高等数学的人肯定都知道最小值与极小值,此处我们可以将全局最小理解为最小值,局部极小理解为极小值,梯度对应三维空间我们可以理解为在某一点斜度的,我们寻找局部极小,首先选择某些出发点,然后沿着负方向(减小的方向)计算每一个点的梯度,最终找到一个点,使它在该点的任意方向梯度均为0,则给点为的值为局部极小,而全局最小则是将所有的局部极小都找出来,通过比较在局部极小里面选择最小的,即为全局最小。
【全局最小与局部极小】
当然寻找全局最小点并没有那么容易,如果误差函数有多个局部极小,我们在寻找过程中很容易陷入局部极小,为了解决这个问题一般有以下策略:

1:选取多组不同参数值初始化多个神经网络,按标准方法训练后,选择其中最小的解作为最终值。可以理解为从不同的初始点寻找局部极小,尽量使搜索范围可以遍及所有,当然这种方法仍有可能取不到全局最小,例如全局最小在中间。

2:使用模拟退火技术,对于这个技术的介绍此处省略,有兴趣的可以自己百度,不是很难理解。下面为我自己的理解,模拟退火技术就是当取到局部极小时,给它一个概率使它仍可以继续往下搜索,但是如果搜索到的值比局部极小值大时,概率会逐渐降低,如果上坡很长则有可能翻不出去,最后全局最小即取该点,如果上坡不是很长则跳出局部极小。该方法也有一个很大的弊端,有可能会跳出全局最小。

3:使用随机梯度下降,随机梯度与批量梯度此处不做说明。我的理解如下,批量梯度与随机梯度区别在于是否用到m个样本数据,随机梯度是选择一个数据来求梯度,因此它的变化往往很大,同时计算量与批量梯度相比大大减少,但是准确率比不过批量梯度。

最后介绍一下遗传算法,遗传算法也常用来训练神经网络以更好地逼近全局最小。

种群(Population):生物的进化以群体的形式进行,这样的一个群体称为种群。
个体:组成种群的单个生物。
基因 ( Gene ) :一个遗传因子。

染色体 ( Chromosome ) :包含一组的基因。

基因可以理解为变量,有几个变量就有几个基因,将变量转变为对应基因的过程叫做编码(incode)常见的编码格式有二进制编码和浮点编码。
遗传算法可以看一下:https://blog.csdn.net/qq_27755195/article/details/56597467


    推荐阅读