α是什麼含義?
α在梯度降低算法中被稱做爲學習率或者步長,意味着咱們能夠經過α來控制每一步走的距離,以保證不走太快,錯過了最低點。同時也要保證不要走的太慢,致使太陽下山了,尚未走到山下。因此α的選擇在梯度降低法中每每是很重要的!α不能太大也不能過小,過小的話,可能致使遲遲走不到最低點,太大的話,會致使錯過最低點。以下圖所示:
爲何要梯度要乘以一個負號?
梯度前加一個負號,就意味着朝着梯度相反的方向前進!梯度的方向實際就是函數在此點上升最快的方向!而咱們須要朝着降低最快的方向走,天然就是負的梯度的方向,因此此處須要加上負號(有登山和下山之分)
實例以及具體實例python算法見:https://www.jianshu.com/p/c7e642877b0e
二、退火算法
在實際平常中,人們會常常遇到以下問題:在某個給定的定義域X內,求函數f(x)算法
對應的最優值。此處以最小值問題舉例(最大值問題能夠等價轉化成最小值問題),形式化爲:
框架
minx∈Xf(x).
模擬退火算法基本思想:
模擬退火其實也是一種貪心算法,可是它的搜索過程引入了隨機因素。在迭代更新可行解時,以必定的機率來接受一個比當前解要差的解,所以有可能會跳出這個局部的最優解,達到全局的最優解。如下圖爲例,假定初始解爲左邊藍色點A,模擬退火算法會快速搜索到局部最優解B,但在搜索到局部最優解後,不是就此結束,而是會以必定的機率接受到左邊的移動。也許通過幾回這樣的不是局部最優的移動後會到達全局最優勢D,因而就跳出了局部最小值。
函數
模擬退火算法描述:
模擬退火算法的優缺點:
具體實例python實現參考:https://blog.csdn.net/AI_BigData_wh/article/details/77943787?locationNum=2&fps=1學習
三、粒子種羣算法
(1)問題提出
設想這樣一個場景:一羣鳥在隨機的搜索食物。在這個區域裏只有一塊食物,全部的鳥都不知道食物在哪。可是它們知道本身當前的位置距離食物還有多遠。atom
那麼找到食物的最優策略是什麼?spa
最簡單有效的就是搜尋目前離食物最近的鳥的周圍區域。.net
(2)算法介紹
❃每一個尋優的問題解都被想像成一隻鳥,稱爲「粒子」。全部粒子都在一個D維空間進行搜索。
❃全部的粒子都由一個fitness-function肯定適應值以判斷目前的位置好壞。
❃每個粒子必須賦予記憶功能,能記住所搜尋到的最佳位置。
❃每個粒子還有一個速度以決定飛行的距離和方向。這個速度根據它自己的飛行經驗以及同伴的飛行經驗進行動態調整。
(3)基本PSO公式
3d
(3)基本PSO算法流程圖
關於每一個粒子的更新速度和位置的公式以下:
具體實例詳見:https://blog.csdn.net/zuochao_2013/article/details/53431767?ref=myread
四、遺傳算法
(1)遺傳算法:就是在一個解空間上,隨機的給定一組解,這組解稱爲父親種羣,經過這組解的交叉,變異,構建出新的解,稱爲下一代種羣,而後在目前已有的全部解(父親種羣和下一代種羣)中抽取表現好的解組成新的父親種羣,而後繼續上面的過程,直到達到了迭代條件或者獲取到了最優解(通常都是局部最優解)。
就像生物進化同樣,一羣生物,不適應環境的被淘汰了,剩下來的生物適應環境,因此他們會產生後代繼承他們的優秀基因(這裏也包含了基因的變異),他們的後代也是這樣一直被天然選擇下去,直到最後必然會產生最適應環境的個體。
(2)遺傳算法的框架
(3)對框圖解釋
適應度
所謂的適應度,本質上能夠理解爲一個代價函數,或者一個規則,經過對初始種羣中的個體計算適應度,可以獲得對初始種羣中的個體是否優劣的一個度量orm
選擇
選擇操做是根據種羣中的個體的適應度函數值所度量的優、劣程度決定它在下一代是被淘汰仍是被遺傳。
具體見:https://blog.csdn.net/changyuanchn/article/details/80331134
五、蟻羣算法
(1)原理
螞蟻找到食物的時候,就會向環境周圍散發一種信息素,固然了,信息素是在必定範圍內有效的,隨着時間推移會消失。其餘的螞蟻若是發現這種信息素了就會過來,這樣,就會有更多的螞蟻找到食物。固然了,若是最開始的螞蟻找到的路徑可能不是最優的,那麼螞蟻是怎樣找到最優的路徑呢?這就要歸功於螞蟻的創新精神了。在螞蟻感覺到信息素的時候他會沿着信息素多的方向走,可是他們偶爾也會另闢蹊徑,若是他們經過這條路也找到了食物,並且這條路比以前的路更短,那麼逐漸的更多的螞蟻會被吸引到這條路徑上來。爲何會有這樣的事情發生呢?由於在相同的時間裏,路徑越短,螞蟻走的次數就越多,散發的信息素濃度越高。
(2)蟻羣算法規則:
一、覓食規則
螞蟻感知範圍是一個3*3的格子,也就是說,他這個格子中有食物就直接過去。
二、移動規則
螞蟻會朝着信息素濃的地方移動,若是沒有感知到信息素,就會按着慣性一直走下去,別忘了,螞蟻會創新呦!
三、避障規則
螞蟻在遇到障礙物的時候會選擇隨機方向移動,同時遵循上面兩個規則。
四、信息素規則
螞蟻在剛發現食物的時候揮灑的信息素會多,距離越遠,信息素越少。
蟻羣算法是尋找最優路徑的算法,固然蟻羣算法在尋找路徑的過程當中可能會陷入局部最優解,蟻羣算法爲自組織尋找路徑行爲,適用於多無人系統路徑規劃相關方向。
原文以及實現:https://blog.csdn.net/zlk961543260/article/details/70172647
六、登山算法
(1)