1. 程式人生 > >如何一文讀懂「進化策略」?這裡有幾組動圖!

如何一文讀懂「進化策略」?這裡有幾組動圖!

0?wx_fmt=gif&wxfrom=5&wx_lazy=1

640?wx_fmt=png&wxfrom=5&wx_lazy=1

原文來源:blog.otoro.net

「雷克世界」編譯:嗯~阿童木呀

640?wx_fmt=png&wxfrom=5&wx_lazy=1本文將藉助於一些視覺例項,闡述進化策略(Evolution Strategies,ES)是如何進行工作的。為了能夠讓讀者更為容易地瞭解更多詳細資訊,將盡量保持文中所涉及的等式簡明易懂,同時附加原始文章的連結。這是一系列文章中的第一篇文章,計劃展示該如何將這些演算法應用於MNIST、OpenAI Gym、RobSchool以及PyBullet環境的一系列任務中。

介紹

神經網路模型具有很強的表達性和靈活性,如果我們能夠找到合適的模型引數的話,那麼就可以使用神經網路,解決許多具有挑戰性的問題。深度學習的成功很大程度上來自於使用反向傳播演算法有效地計算目標函式在每個模型引數上的梯度的能力。有了這些梯度,我們就可以有效對引數空間進行搜尋,以找到一個解,而這個解通常足夠讓我們的神經網路完成困難的任務。

不過,有許多問題是反向傳播演算法無法解決的。例如,在強化學習(RL)問題中,我們也可以訓練一個神經網路做出決策,以執行一系列動作來完成環境中的某些任務。然而,當智慧體在當前執行了一個動作之後,對未來給予智慧體的獎勵訊號的梯度進行評估是非常重要的,特別是在未來,獎勵是跨越了許多時間步長之後實現的情況下。另外,即使我們能夠計算出精確的梯度,但也存在被困於區域性最優解的問題,而這個問題在強化學習任務中是極其常見的。

0?wx_fmt=gif

困於區域性最優解

可以這樣說,強化學習的整個領域都是致力於研究這一信用分配問題的,並且近年來也取得了很大的進步。但是,當獎勵訊號稀疏時,信用分配仍然是個難題。在實際中,獎勵可以是稀疏和嘈雜的。有時候,我們可能只得到一份獎勵,這就像是年終的獎金支票,主要是取決於僱主,我們很難弄清楚為什麼會這麼低。對於這些問題,與其依賴於對策略進行未來的非常嘈雜且可能毫無意義的梯度評估,還不如忽略任何梯度資訊,並嘗試使用諸如遺傳演算法(GA)或ES這樣的黑盒優化技術。

OpenAI發表了一篇名為《進化策略:作為強化學習的可擴充套件性替代方法》(https://blog.openai.com/evolution-strategies/)的論文,其中,他們展示了雖然進化策略在資料效率方面低於強化學習,但提供了不少益處。放棄梯度計算的能力使得該演算法能夠更有效地對其進行評估。也很容易將一個ES演算法的計算分配給數千臺機器進行平行計算。通過多次執行該演算法,他們還發現,與RL演算法發現的策略相比,使用ES發現的策略更具多樣化。

我想指出的是,即使是識別諸如設計一個神經網路架構這樣的機器學習模型問題,也是我們無法直接計算梯度的。雖然強化學習、進化、GA等可以應用於在模型空間中進行搜尋,以及它們的模型引數可以用來解決某些問題,但在本文中,我將把重點放在應用這些演算法來搜尋預先定義的模型的引數上。

什麼是進化策略(ES)?

0?wx_fmt=png

二維Rastrigin函式有很多區域性最優解(資料來源:維基百科)

下圖是自動調整2D Schaffer和Rastrigin函式的自上而下的曲線,用於測試連續黑盒優化演算法的幾個簡單玩具問題的其中兩個。圖中較亮的區域代表F(x,y)的較高值。正如你所看到的那樣,在這個函式中有很多區域性最優解。我們的任務是找到一組模型引數(x,y),使得F(x,y)能夠儘可能接近全域性最大值。

0?wx_fmt=png

 Schaffer-2D函式

0?wx_fmt=png

Rastrigin-2D函式

儘管進化策略有很多定義,但我們可以將進化策略定義為一種演算法,它能夠為使用者提供一組候選解以對問題進行評估。該評估基於一個目標函式,該函式接受給定的解,並返回一個單一的適應性值。基於當前解的適應性結果,該演算法將生成下一代候選解,而且極有可能比當前一代生成更好的結果。一旦使用者對最好的解滿意的話,迭代過程就會停止。

簡單進化策略(ES)

0?wx_fmt=gif

0?wx_fmt=gif

這個簡單的演算法通常只適用於簡單的問題。鑑於其貪婪的本質,它拋棄了除了最好的解之外的所有解,並且可能容易陷入區域性最優,以至更復雜的問題。而且從代表更多樣化想法的概率分佈中進行下一代取樣,而不是對來自當前一代的最佳解取樣,這一點可能更為有有益。

簡單遺傳演算法(Simple GA)

0?wx_fmt=gif

0?wx_fmt=gif

遺傳演算法通過追蹤一系列不同的候選解來重現下一代,以幫助實現多樣性。然而,在實際中,“精英生存”式的大多數解往往會隨著時間的推移而趨向於區域性最優解。同時還有GA的更為複雜的變體,例如CoSyNe、ESP和NEAT,其想法是將群體中的類似解集中到不同的種類中,以保持更好的多樣性。

協方差矩陣適應性進化策略(CMA-ES)

簡單ES和簡單GA的缺點是我們的標準偏差噪聲引數是固定的。有時候,我們想要進行更多的探索、增加搜尋空間的標準偏差。有時候,我們會非常有信心,覺得正接近一個很好的最優解,只想對解進行微調。我們基本上希望搜尋過程如下:

0?wx_fmt=gif

0?wx_fmt=gif

上圖中所示的搜尋過程就是由協方差矩陣適應進化策略(CMA-ES)生成的。CMA-ES

如果再一次對整個解進行設想的話,就整個搜尋過程而言,如下圖所示:

0?wx_fmt=gif

0?wx_fmt=gif

因為CMA-ES可以使用最佳解的資訊來調整其均值和協方差矩陣,所以在距離最佳解很遠時,它可以決定擴大至更廣泛的網路,或者當距離最佳解很近時,縮小搜尋空間。如果對CMA-ES演算法進行高度簡化描述的話,那就是:讓想法變為現實。有關更多詳細資訊,可閱讀CMA-ES作者Nikolaus Hansen編寫的CMA-ES教程。(https://arxiv.org/abs/1604.00772

該演算法是最流行的無梯度優化演算法之一,並且已經成為許多研究人員和從業者的首選演算法。唯一真正的缺點就是,如果我們需要解決的模型引數的數量很大的話,其效能是個問題。

自然進化策略(NES)

0?wx_fmt=gif

0?wx_fmt=gif

該演算法能夠動態地更改函式引數值,以便根據需要對解空間進行探索或微調。與CMA-ES不同的是,其在實現過程中沒有相關性結構,所以我們只能得到對角橢圓樣本、垂直或水平的樣本,但原則上如果需要的話,我們可以推出更新規則以合併整個協方差矩陣,但這一點是要以犧牲計算效率為代價的。

很多人喜歡這個演算法,因為同CMA-ES一樣,搜尋空間可以隨著時間的推移而擴充套件或縮小。因為在該實現中沒有使用相關引數,所以演算法的效率是較高的。

OpenAI進化策略(OpenAI-ES)

在OpenAI的論文(https://blog.openai.com/evolution-strategies/)中,他們實現了一種進化策略,這是前面提到的REINFORCE-ES演算法的一個特例。下面就是該策略:

0?wx_fmt=gif

0?wx_fmt=gif

Fitness Shaping

上面的大多數演算法通常都是與Fitness Shaping法結合在一起的,比如基於rank的Fitness Shaping方法。Fitness Shaping使我們能夠避免群體出現的異常值,從而避免了前面提到的近似梯度計算的影響。

MNIST

儘管ES可能是搜尋更為新穎的解的一種方法,而這種解是用基於梯度的方法難以找到的,但是在許多可以計算高質量梯度的上,它的效能仍然要遠遠低於基於梯度的方法。例如,只有傻瓜才會嘗試使用遺傳演算法進行影象分類,但世界上確實有這樣的人存在。所以有時候這些探索也是會有成果的!

由於所有機器學習演算法都應該在MNIST上進行測試,所以我也嘗試使用這些不同的ES演算法來尋找一個較小的、簡單的2層卷積神經網路的權重,用來對MNIST進行分類,而這只是為了看一下相較於SGD,我們所處的位置。卷積大約只有11000個引數,所以我們可以應用較慢的CMA-ES演算法。程式碼和實驗都在這裡。(https://github.com/hardmaru/pytorch_notebooks/tree/master/mnist_es

以下是各種ES方法的訓練結果。我們對在每輪結束時在整個訓練集上表現最好的模型引數進行追蹤,並在300輪之後在測試集上對該模型進行評估。有趣的是,測試集的準確性比那些得分較低的模型的訓練集要高。

0?wx_fmt=png

0?wx_fmt=png

我們應該對此結果保持一種質疑態度,因為它們基於單次執行,而不是5—10次的平均執行。 基於單次執行的結果似乎表明,CMA-ES在MNIST任務中是最好的,但是PEPG演算法沒有那麼大的影響。這兩種演算法都能達到98%的測試準確度,比SGD / ADAM基線低1%。也許動態地改變其協方差矩陣以及每一代的標準偏差引數的能力,使得它相較於OpenAI的更為簡單的變體而言,能夠更好地調整其權重。

回覆「轉載」獲得授權,微信搜尋「ROBO_AI」關注公眾號

中國人工智慧產業創新聯盟於2017年6月21日成立,超200家成員共推AI發展,相關動態:

640.png點選下圖加入聯盟

0.png

0?wx_fmt=gif

關注“雷克世界”後不要忘記置頂

我們還在搜狐新聞、雷克世界官網、騰訊新聞、網易新聞、一點資訊、天天快報、今日頭條、雪球財經……

↓↓↓點選閱讀原文檢視中國人工智慧產業創新聯盟手冊