各算法理解

1、梯度下降算法

此公式的意义是:J是关于Θ的一个函数,我们当前所处的位置为Θ0点,要从这个点走到J的最小值点,也就是山底。首先我们先确定前进的方向,也就是梯度的反向,然后走一段距离的步长,也就是α,走完这个段步长,就到达了Θ1这个点!

α是什么含义?

α在梯度下降算法中被称作为学习率或者步长,意味着我们可以通过α来控制每一步走的距离,以保证不走太快,错过了最低点。同时也要保证不要走的太慢,导致太阳下山了,还没有走到山下。所以α的选择在梯度下降法中往往是很重要的!α不能太大也不能太小,太小的话,可能导致迟迟走不到最低点,太大的话,会导致错过最低点。如下图所示:

为什么要梯度要乘以一个负号?

梯度前加一个负号,就意味着朝着梯度相反的方向前进!梯度的方向实际就是函数在此点上升最快的方向!而我们需要朝着下降最快的方向走,自然就是负的梯度的方向,所以此处需要加上负号(有爬山和下山之分)

实例以及具体实例python算法见:https://www.jianshu.com/p/c7e642877b0e

 2、退火算法

在实际日常中,人们会经常遇到如下问题:在某个给定的定义域X内,求函数f(x)

对应的最优值。此处以最小值问题举例(最大值问题可以等价转化成最小值问题),形式化为:

 

 

minxXf(x).

模拟退火算法基本思想:

模拟退火其实也是一种贪心算法,但是它的搜索过程引入了随机因素。在迭代更新可行解时,以一定的概率来接受一个比当前解要差的解,因此有可能会跳出这个局部的最优解,达到全局的最优解。以下图为例,假定初始解为左边蓝色点A,模拟退火算法会快速搜索到局部最优解B,但在搜索到局部最优解后,不是就此结束,而是会以一定的概率接受到左边的移动。也许经过几次这样的不是局部最优的移动后会到达全局最优点D,于是就跳出了局部最小值。

模拟退火算法描述:

模拟退火算法的优缺点:

具体实例python实现参考:https://blog.csdn.net/AI_BigData_wh/article/details/77943787?locationNum=2&fps=1

 

 3、粒子种群算法
(1)问题提出

设想这样一个场景:一群鸟在随机的搜索食物。在这个区域里只有一块食物,所有的鸟都不知道食物在哪。但是它们知道自己当前的位置距离食物还有多远。

                         那么找到食物的最优策略是什么

最简单有效的就是搜寻目前离食物最近的鸟的周围区域。

(2)算法介绍

每个寻优的问题解都被想像成一只鸟,称为“粒子”。所有粒子都在一个D维空间进行搜索。

❃所有的粒子都由一个fitness-function确定适应值以判断目前的位置好坏。

❃每一个粒子必须赋予记忆功能,能记住所搜寻到的最佳位置。

❃每一个粒子还有一个速度以决定飞行的距离和方向。这个速度根据它本身的飞行经验以及同伴的飞行经验进行动态调整。
(3)基本PSO公式

 (3)基本PSO算法流程图
关于每个粒子的更新速度和位置的公式如下:
具体实例详见:https://blog.csdn.net/zuochao_2013/article/details/53431767?ref=myread
 
 4、遗传算法
(1)遗传算法:就是在一个解空间上,随机的给定一组解,这组解称为父亲种群,通过这组解的交叉,变异,构建出新的解,称为下一代种群,然后在目前已有的所有解(父亲种群和下一代种群)中抽取表现好的解组成新的父亲种群,然后继续上面的过程,直到达到了迭代条件或者获取到了最优解(一般都是局部最优解)。
就像生物进化一样,一群生物,不适应环境的被淘汰了,剩下来的生物适应环境,所以他们会产生后代继承他们的优秀基因(这里也包含了基因的变异),他们的后代也是这样一直被自然选择下去,直到最后必然会产生最适应环境的个体。
(2)遗传算法的框架
(3)对框图解释

适应度

所谓的适应度,本质上可以理解为一个代价函数,或者一个规则,通过对初始种群中的个体计算适应度,能够得到对初始种群中的个体是否优劣的一个度量

选择

选择操作是根据种群中的个体的适应度函数值所度量的优、劣程度决定它在下一代是被淘汰还是被遗传。

 
具体见:https://blog.csdn.net/changyuanchn/article/details/80331134
 
5、蚁群算法
(1)原理
      蚂蚁找到食物的时候,就会向环境周围散发一种信息素,当然了,信息素是在一定范围内有效的,随着时间推移会消失。其他的蚂蚁如果发现这种信息素了就会过来,这样,就会有更多的蚂蚁找到食物。当然了,如果最开始的蚂蚁找到的路径可能不是最优的,那么蚂蚁是怎样找到最优的路径呢?这就要归功于蚂蚁的创新精神了。在蚂蚁感受到信息素的时候他会沿着信息素多的方向走,但是他们偶尔也会另辟蹊径,如果他们通过这条路也找到了食物,而且这条路比之前的路更短,那么逐渐的更多的蚂蚁会被吸引到这条路径上来。为什么会有这样的事情发生呢?因为在相同的时间里,路径越短,蚂蚁走的次数就越多,散发的信息素浓度越高。
(2)蚁群算法规则:
1、觅食规则
蚂蚁感知范围是一个3*3的格子,也就是说,他这个格子中有食物就直接过去。
2、移动规则
蚂蚁会朝着信息素浓的地方移动,如果没有感知到信息素,就会按着惯性一直走下去,别忘了,蚂蚁会创新呦!
3、避障规则
蚂蚁在遇到障碍物的时候会选择随机方向移动,同时遵循上面两个规则。
4、信息素规则
蚂蚁在刚发现食物的时候挥洒的信息素会多,距离越远,信息素越少。
          蚁群算法是寻找最优路径的算法,当然蚁群算法在寻找路径的过程中可能会陷入局部最优解,蚁群算法为自组织寻找路径行为,适用于多无人系统路径规划相关方向。
原文以及实现:https://blog.csdn.net/zlk961543260/article/details/70172647
 
6、爬山算法
(1)
 
 
posted @ 2018-11-17 10:23  cn_gzb  阅读(725)  评论(0编辑  收藏  举报