有史以來最容易理解的遺傳演算法
首先有一個種小東西,它們都生活在大草原上,跑的快的就不會被吃掉,就可以生存下來。
這個東西的一般是長這樣的:
它由幾個元素組成:
- Node,暫且把它叫做腿,也就是上圖圓圓的東西顏色越深表示和地面的摩擦力越大
- Muscal,肌肉,連接圓圈的粗線,顏色越深越粗的肌肉表示更有力量,而且每一條肌肉都有不同的原始長度。肌肉越強,他就越有能力拉動連接的兩個Node
- 還有最重要的下圖:時鐘。也就是這些肌肉有拉長的時間和收縮的時間。在拉長時間,肌肉總想讓兩腿之間距離變遠,收縮時間肌肉又想讓腿之間距離近。
是不是很複雜?
其實就可以想像一下:幾個鐵球被幾根橡皮筋連接在一起,橡皮筋在有規律的抽動,然後這個東西隨著抽動會向前跑。
所以然後我們的目標來了:什麼樣的這樣的東西(幾個球,幾根皮筋,強度多少)可以跑的最快?
就是遺傳演算法發揮作用的時候到了。
第一步,第一批種子選手
遺傳演算法首先要有父本。也就是初始的一些這樣的小東西。
一般來說要是我們知道一些知識,比如大概知道什麼樣子的東西可以跑的快的話,可以挑一些出來作為父本。
但是我們現在連這些東西怎麼跑都不知道,怎麼會知道哪個跑的快?
於是最粗暴的就是:隨便來1000個!
100個隨機生成的小東西。有三條腿的,也有四條五條六條七條的,肌肉也有多有少。然後我們看看他們跑的怎麼樣。
第一位選手:
怎麼說呢,在一陣蠕動當中,一號選手竟然可以在15秒跑出差不多1米的距離。表現非常不錯!
你以為這個不夠快?
看看比如2號選手:
「請不要躺在地上」
還有其他選手
總體來說,因為是全部隨機生成的選手,很多都只能留在原地,而且有一半選手選擇了向後退而不是向前。
遺傳演算法第二步:生存
「適者生存」
第一代的父本,按照在15秒之內跑的距離排序。跑的慢的就會被淘汰掉。
但是,並不一定是所有跑的慢的都會大自然就一定會被淘汰掉。只是說,跑的快的更容易保留下來,跑的慢的更容易死掉。
大自然就是這麼神奇,會允許一些幸運的弱者生存下來。說不定會在下一代表現出不一樣的特點。
第一代的1000個,淘汰掉一半,剩下的才有資格作為下一代的父本,留下基因。下圖黑色的代表被淘汰了。
遺傳演算法第三步:產生後代
就像兩個黑頭髮生下來有大概率是黑頭髮,父母都1米9生下孩子大概率都也會很高。但是也會有兩個父母都不聰明生的天才小孩。
遺傳演算法里也是一樣,兩個父親(不要在意這些細節)結合產生的後代,有可能「腿」會不一樣粗:
也很有可能「肌肉」會不一樣強壯:
但是也會相對比較少見有變異的:
腿不一樣多。當然都是大自然的力量,和隔壁住了誰關係不大。
變異在遺傳演算法中的意義就在於:就算父本的基因中不包含有最佳的基因(比如父本都是5條腿,但是最佳的方案其實是3條),也有可能會通過變異產生。變異的結果如果很好,就會留下來成為新的父本。這樣下一代群體中就包含了最佳的基因。
於是我們又有了下一代:上一代500個樣本的孩子-->1000個新的樣本。
遺傳演算法最後一步:迭代
我們已經有了完整的過程,
- 有一個群體
- 群體根據成績(目標函數)隨機淘汰
- 交叉產生新的群體
- 群體再次淘汰
- 不斷的重複3和4,直到找到滿足條件的樣本(達到要求),或者群體不能再顯著的進化。
我們看一下這樣的遺傳演算法,最終可以達到什麼樣子的效果
到第10代的時候,跑的最快的一個已經可以在15秒跑到快3米。跑起來是這個樣子的
這個小東西有5條腿,已經可以穩定向前蠕動
到了第30代:
感覺已經要快飛起來了。還是5條腿。
30代的時候,跑的最快的一個已經可以在15秒內跑到6米,而中間值(千人馬拉松第500名)也可以跑到3米。整個群體都在飛快的進步
這個圖顯示了進化中每一代跑的最快的(上邊黑線)和群體中位數(紅線)的成績。
然後到了62代,一個有4條腿的傢伙成為了新的冠軍:
看來是進化的力量發揮了作用。有4條腿的族群中進化出現了一個非常利於跑步的結構:後邊一條黑色腿,前邊一條白色腿,中間兩條相似的腿。
而且在整個群體中,4條腿6根肌肉的生物也佔據了大部分,其他3條腿,5條腿的大多慢慢都被淘汰了。
結果
到了300代的時候,增長速度變得非常緩慢,停止模擬。
這一代里有個叫博爾特的跑的簡直要飛起來了,我們欣賞一下:
大自然真是神奇~學到了么?
——————
關注我會有意想不到的事情發生
還有有喜歡的可以關注專欄/投稿/聊天
機械+數據工程師/職業發展/一起成長
機械數據工程師的未來文章預告:
如何從機械轉到數據?
和專業的出身的數據分析師相比沒有競爭力,工業背景的數據分析師可以做什麼?
————————————————
原視頻:
https://www.zhihu.com/video/971534793821835264 https://www.zhihu.com/video/971534861256912896 https://www.zhihu.com/video/971534883608371200 https://www.zhihu.com/video/971534901137371136想要下載的可以聯繫~版權原作者所有
推薦閱讀:
※牢地基築高樓,美林數據在電力和製造業穩紮穩打
※(python)數據挖掘、機器學習演算法學習材料分享
※推薦系統乾貨總結
※還在與數據表格鬥毆?這12個數據可視化工具正準備來解放你
※如何構建一般時間序列問題的回歸解決方案