人工神經網路筆記-粒子群最佳化(Partical Swarm Optimization

來源:互聯網
上載者:User

關於粒子群最佳化的內容可以通過搜尋得到。

下面主要是個人對於粒子群最佳化的一點理解,以及應用於BP神經網路中做權重的調整

原文在:http://baike.baidu.com/view/1531379.htm

引用下面一些內容

===============我是引用的分界線=================
粒子根據如下的公式來更新自己的 速度和新的位置
v[] = w * v[] + c1 * rand() * (pbest[] - present[]) + c2 * rand() * (gbest[] - present[])
present[] = persent[] + v[]
v[] 是粒子的速度, w是慣性權 重,persent[] 是當前粒子的位置. pbest[] and gbest[] 如前定義 rand () 是介於(0, 1)之間的隨 機數. c1, c2 是學習因子. 通常 c1 = c2 = 2.
===============我是引用的分界線 =================

一般用X表示粒子的位置,V表示粒子的速度

X和V都是向量,因此很容易地就會和BP神經網路的權重聯想到一起。

在看PSO和BP神經網路如何結合起來使用的過程中,我一直比較疑惑的就是到底是讓X代替權重,還是 用V代替權重。或者是用X和V的乘積的。經過多方面的探討,基本達成共識的就是 用X代替權重。

因為一個粒子就代表了一組權重,如果只是利用一個粒子的話。。。那麼gbest[]和pbest[]就沒有多 大的意義了,起碼是只要一個就可以了。因此很多人就把粒子的數目做成10-30個之間。也就是這個結合 PSO的BP神經網路有10-30組權重了。一般意義上的BP神經網路就只有一組權重而已。那麼這種思想對於 神經網路來說就是不只是依賴一組權重來進行最優解的搜尋,而是利用多組權重來進行搜尋。這樣能跳 出局部最小的機會已經大了很多了。非常不錯的思想。不過計算量已經比一般的BP大很多了,起碼變數 已經比原來的多了。不過慶幸的是這些變數都是可控制的向量。需要調整的只是幾個參數而已。

研究粒子群最佳化(Partical Swarm Optimization - PSO) 主要是因為之前做的BP神經網路在維度達到 100多的時候很容易陷入局部最小,所以不得不考慮如何最佳化了。

本來想用類比退火演算法來做權重的調整的。但是看了粒子群最佳化(Partical Swarm Optimization - PSO) 之後覺得這種思想更優。到底是哪裡更好了?呵呵。說不出。只是一種感性的理解罷了。

PS:

我畢竟不是學數學的,我畢竟不是讀電腦的,神經網路裡麵包含的思想與理論很多時候都超出了我 的理解。神經網路這麼多年的發展,這麼多前輩的努力成果,不是我等小輩能馬上明白的。頓時感覺壓 力很大。但是當我對他產生了強烈的興趣的時候,一種無形的力量驅動著我去不斷地去求知。不為什麼 ,只為我喜歡的,我就是想知道。^_^

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.