這一章要介紹的是神經演化(neuroevolution)這種結合基因演算法及類神經網路的機器學習方法。
在訓練類神經網路模型時,模型是透過調整權重來學習,所以想要讓模型學得快又好,就必須使用最佳化的技術來尋找最佳的權重;這也是為什麼在Keras的compile()方法中,會有個用來設定要使用哪種最佳化方法的optimizer參數的原因。訓練模型時要用最佳化的技術來尋找最佳的權重,可是最佳化的技術那麼多,光在Keras官網的〈Available optimizers〉這份文件中,就列出了十多種可以選用,那到底要用哪一個呢?其實,每種最佳化技術都有其優缺點,沒有哪個一定就比較好,要用哪一種,就看使用者的選擇。
既然在訓練模型時需要用到最佳化技術來調整權重,而又沒有哪種最佳化技術一定比較好,那可不可以用先前介紹過的基因演算法呢?當然可以!基因演算法不僅可以用來尋找類神經網路模型的最佳權重,在某些情況下,甚至於也可以用來調整模型本身的結構;這就是神經演化技術的基本原理。
在這章中,除了介紹神經演化的技術原理及做法之外,也會用一個遊戲界熟悉的例子來示範如何使用神經演化技術。另外,在最後,還會把神經演化技術應用到先前第五章介紹過的轉向行為上,讓自主代理人能夠自己發展出轉向行為,而不用我們事先幫它設計好演算法。















