全局最小与局部极小

        首先,学过高等数学的人肯定都知道最小值与极小值,此处我们可以将全局最小理解为最小值,局部极小理解为极小值,梯度对应三维空间我们可以理解为在某一点斜度的,我们寻找局部极小,首先选择某些出发点,然后沿着负方向(减小的方向)计算每一个点的梯度,最终找到一个点,使它在该点的任意方向梯度均为0,则给点为的值为局部极小,而全局最小则是将所有的局部极小都找出来,通过比较在局部极小里面选择最小的,即为全局最小。

        当然寻找全局最小点并没有那么容易,如果误差函数有多个局部极小,我们在寻找过程中很容易陷入局部极小,为了解决这个问题一般有以下策略:

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

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

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

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

         种群(Population):生物的进化以群体的形式进行,这样的一个群体称为种群。

      个体:组成种群的单个生物。

      基因 ( Gene ) :一个遗传因子。 

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

        基因可以理解为变量,有几个变量就有几个基因,将变量转变为对应基因的过程叫做编码(incode)常见的编码格式有二进制编码和浮点编码。

        遗传算法可以看一下:https://blog.youkuaiyun.com/qq_27755195/article/details/56597467


### 全局最小局部最小区别的概念及其实现方法 #### 定义区别 全局最小值是指在整个定义域范围内,目标函数取得的最低值。而局部最小值则是指在一个特定区域内的最低值,在此区域内其邻近点的目标函数值均大于等于它自身的值[^1]。 #### 寻找方法的区别 为了找到全局最小值而非仅仅局限于某个局部最小值,通常采用以下几种策略: 1. **多起点随机化搜索** 当存在多个局部最小值时,可以通过多次选取不同初始点的方式进行参数优化。每一轮优化结束后比较各轮次的结果,最终选择误差最小的那个解作为可能接近全局最小值的最佳候选者。 2. **调整优化终止条件** 控制优化过程中的精度要求,比如设置`TolFun`(即目标函数变化容忍度)。当目标函数的变化幅度低于设定阈值时结束运算;或者限定最大评估次数(MaxFunctionEvaluations),从而避免陷入过早停滞的状态[^2]。 3. **基于梯度的方法及其局限性** 使用梯度下降法等基于导数的技术可以快速定位到某一点附近的极小值位置。然而一旦到达某一平坦区段(即梯度趋近于零处),即使尚未抵达真正的全域最优解也可能被迫停下脚步。这是因为这些技术本质上依赖于当前状态下的斜率指引方向前进,所以容易被误导至非理想终点——也就是所谓的“局部陷阱”之中[^3]。 4. **进化算法的应用实例** - 遗传算法是一种模拟自然选择机制的过程来进行探索空间遍历的技术手段。例如对于给定测试用例 `two_min` 函数来说,尽管拥有两个明显分离出来的凹陷部分分别对应各自独立的小规模谷底坐标 `(0,-1)` 和另一个更深层次却远离原点的位置 `(101,–1–1/e)` ,但借助 GA 的强大能力依然能够成功发现后者代表的整体最佳选项[^4]。 ```matlab function y = two_min(x) if x <= 100 y = -exp(-(x/100)^2); else y = -exp(-1) + (x-100)*(x-102); end end rng default % For reproducibility options = optimoptions('ga','PlotFcn',@gaplot1drange); [x,fval] = ga(@two_min,1,[],[],[],[],[],[],[],options) ``` - 另外还有像人工蜂群这样的群体智能模型同样适用于复杂环境下的寻优任务。它们通过模仿生物行为模式完成信息交换共享并不断改进解决方案直至满足预设标准为止。下面展示了一个利用 Python 编写的简单例子来演示如何运用 ABC 方法处理经典的 Rastrigin 多维非线性方程组求解问题[^5]: ```python import numpy as np def rastrigin(X): A = 10 dim = X.shape[0] return A * dim + sum([(xi**2 - A * np.cos(2 * np.pi * xi)) for xi in X]) class Bee: def __init__(self, dimension, lower_bound=-5.12, upper_bound=5.12): self.position = np.random.uniform(lower_bound, upper_bound, dimension) self.fitness = None def evaluate(self, func): self.fitness = func(self.position) # Define parameters here... bees_population_size = ... dimensions = ... best_solution = abc_algorithm(bees_population_size, dimensions, max_iterations,... ,rastrigin ) print(best_solution) ``` #### 总结 综上所述,无论是理论层面还是实际应用当中,区分以及有效获取全局最小值相较于单纯识别局部最小值而言都显得更为困难也更重要。前者往往需要综合考虑更多因素并通过反复试验验证才能达成目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值